درحال افزودن مرکز داده

این سند نحوه افزودن مرکز داده (که منطقه نیز نامیده می‌شود) به مرکز داده موجود را شرح می‌دهد.

ملاحظات قبل‌از افزودن مرکز داده

قبل‌از نصب و افزودن مرکز داده، باید با نحوه پیکربندی سرورهای OpenLDAP،‏ ZooKeeper،‏ Cassandra، و Postgres در مراکز داده آشنا شوید. همچنین باید مطمئن شوید که درگاه‌های لازم بین گره‌ها در دو مرکز داده باز باشند.

  • OpenLDAP

    هر مرکز داده سرور OpenLDAP خودش را دارد که با تکرار فعال پیکربندی شده است. وقتی مرکز داده جدید را نصب می‌کنید، باید OpenLDAP را برای استفاده از تکرار پیکربندی کنید، و باید سرور OpenLDAP را در مرکز داده موجود برای استفاده از تکرار بازپیکربندی کنید.

  • ZooKeeper

    برای ویژگی ZK_HOSTS برای هر دو مرکز داده، نشانی‌های IP یا نام‌های ساناد همه گره‌های ZooKeeper را از هر دو مرکز داده، با همان ترتیب، مشخص کنید و هر گره‌ای را با اصلاح‌کننده «:observer» علامت‌گذاری کنید. گره‌های بدون اصلاح‌کننده :observer «رأی‌دهنده» نامیده می‌شوند. باید تعداد فردی «رأی‌دهنده» در پیکربندی‌تان داشته باشید.

    در این توپولوژی، میزبان ZooKeeper در میزبان ۹ ناظر است:

    در نمونه فایل پیکربندی نشان‌داده‌شده در زیر، گره ۹ با اصلاح‌کننده :observer برچسب‌گذاری شده است تا پنج رأی‌دهنده داشته باشید: گره‌های ۱، ۲، ۳، ۷، و ۸.

    برای ویژگی ZK_CLIENT_HOSTS برای هر مرکز داده، نشانی‌های IP یا نام‌های ساناد فقط گره‌های ZooKeeper در مرکز داده را، با همان ترتیب، برای همه گره‌های ZooKeeper در مرکز داده مشخص کنید.

  • Cassandra

    برای CASS_HOSTS برای هر مرکز داده، مطمئن شوید که همه نشانی‌های IP کاساندرا (نه نام‌های ساناد) را برای هر دو مرکز داده مشخص کرده‌اید. برای مرکز داده ۱، ابتدا گره‌های Cassandra را در آن مرکز داده فهرست کنید. برای مرکز داده ۲، ابتدا گره‌های Cassandra را در آن مرکز داده فهرست کنید. گره‌های Cassandra را با همان ترتیب برای همه گره‌های Cassandra در مرکز داده فهرست کنید.

    همه گره‌های Cassandra باید پسوند «:d,r» داشته باشند؛ برای مثال «ip:1,1 = مرکز داده ۱ و قفسه/منطقه دردسترس ۱ و «ip:2,1 = مرکز داده ۲ و قفسه/منطقه دردسترس ۱.

    برای مثال، «192.168.124.201:1,1 192.168.124.202:1,1 192.168.124.203:1,1 192.168.124.204:2,1 192.168.124.205:2,1 192.168.124.206:2,1»

    اولین گره در قفسه/منطقه دردسترس ۱ هر مرکز داده به‌عنوان سرور بذر استفاده خواهد شد. در این مدل استقرار، راه‌اندازی Cassandra به این شکل است:

  • Postgres

    به‌طور پیش‌فرض، Edge همه گره‌های Postgres را در حالت اصلی نصب می‌کند. بااین‌حال، وقتی چند مرکز داده دارید، گره‌های Postgres را برای استفاده از تکرار اصلی-آماده‌به‌کار پیکربندی می‌کنید تا اگر گره اصلی ازکار افتاد، گره آماده‌به‌کار بتواند به ترافیک سرور ادامه دهد. معمولاً سرور اصلی Postgres را در یک مرکز داده و سرور آماده‌به‌کار را در مرکز داده دوم پیکربندی می‌کنید.

    اگر مرکز داده موجود قبلاً پیکربندی شده است تا دو گره Postgres در حالت اصلی/آماده‌به‌کار اجرا شوند، به‌عنوان بخشی از این روش، گره آماده‌به‌کار موجود را لغو ثبت کنید و آن را با یک گره آماده‌به‌کار در مرکز داده جدید جایگزین کنید.

    جدول زیر پیکربندی Postgres را قبل و بعداز هر دو سناریو نشان می‌دهد:

    پیش‌از بعد از

    گره Postgres اصلی تکی در dc-1

    گره اصلی Postgres در dc-1

    گره Postgres آماده‌به‌کار در dc-2

    گره اصلی Postgres در dc-1

    گره Postgres آماده‌به‌کار در dc-1

    گره اصلی Postgres در dc-1

    گره Postgres آماده‌به‌کار در dc-2

    لغو ثبت گره Postgres آماده‌به‌کار قدیمی در dc-1

  • الزامات درگاه

    باید مطمئن شوید که درگاه‌های لازم بین گره‌ها در دو مرکز داده باز هستند. برای نمودار درگاه، به الزامات درگاه مراجعه کنید.

درحال به‌روزرسانی مرکز داده موجود

افزودن مرکز داده مستلزم انجام مراحل نصب و پیکربندی گره‌های مرکز داده جدید است، اما همچنین مستلزم به‌روزرسانی گره‌ها در مرکز داده اصلی است. These modifications are necessary because you are adding new Cassandra and ZooKeeper nodes in the new data center that have to be accessible to the existing data center, and you have to reconfigure OpenLDAP to use replication.

درحال ایجاد فایل‌های پیکربندی

در زیر فایل‌های پیکربندی بی‌صدا برای دو مرکز داده نشان داده شده است، که هر مرکز داده دارای ۶ گره است، همان‌طور که در توپولوژی‌های نصب نشان داده شده است. توجه داشته باشید که فایل پیکربندی برای dc-1 تنظیمات بیشتری را به موارد زیر اضافه می‌کند:

  • OpenLDAP را با تکرار در دو گره OpenLDAP پیکربندی کنید.
  • گره‌های جدید Cassandra و ZooKeeper را از dc-2 به فایل پیکربندی dc-1 اضافه کنید.
# Datacenter 1
IP1=IPorDNSnameOfNode1
IP2=IPorDNSnameOfNode2
IP3=IPorDNSnameOfNode3
IP7=IPorDNSnameOfNode7
IP8=IPorDNSnameOfNode8
IP9=IPorDNSnameOfNode9 
HOSTIP=$(hostname -i)
MSIP=$IP1
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=2
LDAP_SID=1
LDAP_PEER=$IP7
APIGEE_LDAPPW=secret
MP_POD=gateway-1
REGION=dc-1
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1 $IP7:2,1 $IP8:2,1 $IP9:2,1"
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com 
SMTPPASSWORD=smtppwd   
SMTPSSL=n
SMTPPORT=25
SMTPMAILFROM="My Company <myco@company.com>"
# Datacenter 2
IP1=IPorDNSnameOfNode1
IP2=IPorDNSnameOfNode2
IP3=IPorDNSnameOfNode3
IP7=IPorDNSnameOfNode7
IP8=IPorDNSnameOfNode8
IP9=IPorDNSnameOfNode9 
HOSTIP=$(hostname -i)
MSIP=$IP7
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=2
LDAP_SID=2
LDAP_PEER=$IP1
APIGEE_LDAPPW=secret
MP_POD=gateway-2
REGION=dc-2
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP7:2,1 $IP8:2,1 $IP9:2,1 $IP1:1,1 $IP2:1,1 $IP3:1,1"
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com 
SMTPPASSWORD=smtppwd   
SMTPSSL=n
SMTPPORT=25
SMTPMAILFROM="My Company <myco@company.com>"

افزودن مرکز داده جدید

برای نصب مرکز داده جدید، از روال زیر استفاده کنید.

در این روش، مراکز داده نام‌های زیر را دارند:

  • dc-1: مرکز داده موجود
  • dc-2: مرکز داده جدید

برای افزودن مرکز داده جدید:

  1. در dc-1، setup.sh را در گره‌های Cassandra اصلی با فایل پیکربندی dc-1 جدید که شامل گره‌های Cassandra از dc-2 است دوباره اجرا کنید:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. در dc-1، setup.sh را در گره «سرور مدیریت» دوباره اجرا کنید:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1

    اگر از درآمدزایی استفاده می‌کنید، فرمان راه‌اندازی درآمدزایی را دوباره اجرا کنید:

    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1

  3. در dc-2،‏ apigee-setup را در همه گره‌ها نصب کنید. برای اطلاعات بیشتر، به نصب ابزار کمکی apigee-setup در Edge مراجعه کنید.
  4. در dc-2، Cassandra و ZooKeeper را در گره‌های مناسب نصب کنید:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. در dc-2، فرمان بازسازی را در همه گره‌های Cassandra اجرا کنید و نام منطقه dc-1 را مشخص کنید:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1

    فقط درصورتی باید نام کاربری و گذرواژه را ارسال کنید که اصالت‌سنجی JMX را برای Cassandra فعال کرده باشید.

  6. در dc-2، «سرور مدیریت» را در گره مناسب نصب کنید:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. در گره «سرور مدیریت» در dc-2،‏ apigee-provision را نصب کنید، که ابزار apigee-adminapi.sh را نصب می‌کند:
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. در dc-2، «مسیرها» و «پردازشگرهای پیام» را در گره‌های مناسب نصب کنید:
    /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. در dc-2،‏ Qpid را در گره‌های مناسب نصب کنید:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. در dc-2، Postgres را در گره مناسب نصب کنید:
    /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  11. راه‌اندازی Postgres master/standby برای گره‌های Postgres. گره Postgres در dc-1 اصلی است و گره Postgres در dc-2 سرور آماده‌به‌کار است.
    1. در گره اصلی در dc-1، فایل پیکربندی را ویرایش کنید تا تنظیم شود:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. تکرار را در نسخه اصلی جدید فعال کنید:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
    3. در گره آماده‌به‌کار در dc-2، فایل پیکربندی را ویرایش کنید تا موارد زیر را تنظیم کنید:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    4. در گره آماده‌به‌کار در dc-2، سرور را متوقف کنید و سپس هرگونه داده Postgres موجود را حذف کنید:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
      rm -rf /opt/apigee/data/apigee-postgresql/

      درصورت لزوم، می‌توانید قبل‌از حذف این داده‌ها از آن‌ها پشتیبان‌گیری کنید.

    5. گره آماده‌به‌کار را در dc-2 پیکربندی کنید:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  12. در dc-1، پیکربندی تجزیه‌وتحلیل را به‌روز کنید و سازمان‌ها را پیکربندی کنید.
    1. در گره «سرور مدیریت» dc-1، شناسه UUID گره Postgres را دریافت کنید:
      apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \
        --admin adminEmail --pwd adminPword --host localhost

      UUID در انتهای داده‌های برگردانده‌شده نشان داده می‌شود. آن مقدار را ذخیره کنید.

    2. در گره «سرور مدیریت» dc-2، شناسه UUID گره Postgres را همان‌طور که در مرحله قبلی نشان داده شده است دریافت کنید. آن مقدار را ذخیره کنید.
    3. در گره «سرور مدیریت» dc-1، نام گروه‌های analytics و consumer را تعیین کنید. بسیاری از فرمان‌های زیر به این اطلاعات نیاز دارند.

      به‌طور پیش‌فرض، نام گروه تجزیه‌وتحلیل «axgroup-001» و نام گروه مصرف‌کننده «consumer-group-001» است. در فایل پیکربندی بی‌صدا برای یک منطقه، می‌توانید نام گروه Analytics را بااستفاده از ویژگی AXGROUP تنظیم کنید.

      اگر از نام گروه‌های مصرف‌کننده و تجزیه‌وتحلیل مطمئن نیستید، از فرمان زیر برای نمایش آن‌ها استفاده کنید:

      apigee-adminapi.sh analytics groups list \
        --admin adminEmail --pwd adminPword --host localhost

      این فرمان نام گروه تجزیه‌وتحلیل را در فیلد نام و نام گروه مصرف‌کننده را در فیلد گروه‌های مصرف‌کننده برمی‌گرداند.

    4. در گره سرور مدیریت dc-1، سرور Postgres موجود را از گروه تجزیه‌وتحلیل بردارید:
      1. گره Postgres را از گروه مصرف‌کننده بردارید:
        apigee-adminapi.sh analytics groups consumer_groups datastores remove \
          -g axgroup-001 -c consumer-group-001 -u UUID \
          -Y --admin adminEmail --pwd adminPword --host localhost

        اگر dc-1 به‌گونه‌ای پیکربندی شده است که دو گره Postgres در حالت اصلی/آماده‌به‌کار اجرا شوند، هر دو را بردارید:

        apigee-adminapi.sh analytics groups consumer_groups datastores remove \
          -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" \
          -Y --admin adminEmail --pwd adminPword --host localhost
      2. گره Postgres را از گروه تجزیه‌وتحلیل بردارید:
        apigee-adminapi.sh analytics groups postgres_server remove \
          -g axgroup-001 -u UUID -Y --admin adminEmail \
          --pwd adminPword --host localhost

        اگر dc-1 برای داشتن دو گره Postgres که در حالت اصلی/آماده‌به‌کار اجرا می‌شوند پیکربندی شده است، هر دو را بردارید:

        apigee-adminapi.sh analytics groups postgres_server \
          remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \
          --pwd adminPword --host localhost
    5. در گره «سرور مدیریت» dc-1، سرورهای Postgres اصلی/آماده‌به‌کار جدید را به گروه تجزیه‌وتحلیل اضافه کنید:
      1. هر دو سرور Postgres را به گروه تجزیه‌وتحلیل اضافه کنید:
        apigee-adminapi.sh analytics groups postgres_server \
          add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \
          --pwd adminPword --host localhost

        که UUID_1 با گره Postgres اصلی در dc-1 مطابقت دارد و UUID_2 با گره Postgres آماده‌به‌کار در dc-2 مطابقت دارد.

      2. سرورهای PG را به‌عنوان اصلی/آماده‌به‌کار به گروه مصرف‌کننده اضافه کنید:
        apigee-adminapi.sh analytics groups consumer_groups datastores \
          add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail \
          --pwd adminPword --host localhost
    6. سرورهای Qpid را از dc-2 به گروه Analytics اضافه کنید:
      1. در گره سرور مدیریت dc-1، شناسه UUID گره‌های Qpid را در dc-2 دریافت کنید:
        apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \
          --admin adminEmail --pwd adminPword --host localhost

        UUIDها در انتهای داده‌های برگردانده‌شده نشان داده می‌شوند. این مقادیر را ذخیره کنید.

      2. در گره Management Server مربوط به dc-1، گره‌های Qpid را به گروه analytics اضافه کنید (هر دو فرمان را اجرا کنید):
        apigee-adminapi.sh analytics groups qpid_server \
          add -g axgroup-001 -u "UUID_1" --admin adminEmail \
          --pwd adminPword --host localhost
        
        apigee-adminapi.sh analytics groups qpid_server \
          add -g axgroup-001 -u "UUID_2" --admin adminEmail \
          --pwd adminPword --host localhost
      3. در گره Management Server مربوط به dc-1، گره‌های Qpid را به گروه مصرف‌کننده اضافه کنید (هر دو فرمان را اجرا کنید):
        apigee-adminapi.sh analytics groups consumer_groups consumers \
        add -g axgroup-001 -c consumer-group-001 -u "UUID_1" \
        --admin adminEmail --pwd adminPword --host localhost
        
        apigee-adminapi.sh analytics groups consumer_groups consumers \
        add -g axgroup-001 -c consumer-group-001 -u "UUID_2" \
        --admin adminEmail --pwd adminPword --host localhost

        اگر از درآمدزایی استفاده می‌کنید، گره‌های Qpid را به گروه MINT در گره «سرور مدیریت» dc-1 اضافه کنید:

        apigee-adminapi.sh analytics groups qpid_server \
        add -g mxgroup001 -u UUID_1 --admin adminEmail \
        --pwd adminPword --host localhost
        
        apigee-adminapi.sh analytics groups qpid_server \
        add -g mxgroup001 -u UUID_2 --admin adminEmail \
        --pwd adminPword --host localhost
    7. لغو ثبت‌نام و حذف سرور آماده‌به‌کار Postgres قدیمی از dc-1:
      1. سرور آماده‌به‌کار Postgres dc-1 موجود را لغو ثبت کنید:
        apigee-adminapi.sh servers deregister -u UUID -r dc-1 \
          -p analytics -t postgres-server -Y --admin adminEmail \
          --pwd adminPword --host localhost

        که UUID گره Postgres آماده‌به‌کار قدیمی در dc-1 است.

      2. سرور آماده‌به‌کار Postgres dc-1 موجود را حذف کنید:
        apigee-adminapi.sh servers delete -u UUID \
          --admin adminEmail --pwd adminPword --host localhost
  13. فضاهای کلید Cassandra را با ضریب تکرار صحیح برای دو مرکز داده به‌روز کنید. فقط باید این مرحله را یک‌بار در هر سرور Cassandra در هریک از مراکز داده اجرا کنید:
    1. ابزار کمکی Cassandra cqlsh را شروع کنید:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. فرمان‌های CQL زیر را در پیام‌واره «cqlsh>» اجرا کنید تا سطوح تکرار را برای فضاهای کلید Cassandra تنظیم کنید:
      1. ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' }; 
      2. ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. بااستفاده از این فرمان، فضاهای کلید را مشاهده کنید:
        select * from system.schema_keyspaces;
      4. خروجی cqlsh:
        exit
  14. فرمان nodetool زیر را در همه گره‌های Cassandra در dc-1 اجرا کنید تا حافظه آزاد شود:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

    فقط درصورتی باید نام کاربری و گذرواژه را ارسال کنید که اصالت‌سنجی JMX را برای Cassandra فعال کرده باشید.

  15. برای هر سازمان و هر محیطی که می‌خواهید در مراکز داده پشتیبانی کنید:
    1. در گره «سرور مدیریت» dc-1، MP_POD جدید را به «سازمان» اضافه کنید:
      apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 \
        --admin adminEmail --pwd adminPword --host localhost

      که در آن gateway-2 نام پاد درگاه است که توسط ویژگی MP_POD در فایل پیکربندی dc-2 تعریف شده است.

    2. «پردازشگرهای پیام» جدید را به سازمان و محیط اضافه کنید:
      1. در گره Management Server مربوط به dc-2، شناسه UUID گره‌های Message Processor را در dc-2 دریافت کنید:
        apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \
          -t message-processor --admin adminEmail --pwd adminPword --host localhost

        UUIDها در انتهای داده‌های برگردانده‌شده نشان داده می‌شوند. این مقادیر را ذخیره کنید.

      2. در گره «سرور مدیریت» dc-1، برای هر «پردازشگر پیام» در dc-2، «پردازشگر پیام» را به محیطی برای سازمان اضافه کنید:
        apigee-adminapi.sh orgs envs servers add -o orgName -e envName \
          -u UUID --admin adminEmail --pwd adminPword --host localhost
    3. در گره «سرور مدیریت» dc-1، سازمان را بررسی کنید:
      apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \
        --admin adminEmail --pwd adminPword --host localhost

      که در آن apiProxyName نام پراکسی API مستقرشده در سازمان است.

  16. اگر از درآمدزایی استفاده می‌کنید، گره «درآمدزایی» را در DC2 نصب کنید.

    فرمان راه‌اندازی MINT را در سرور «مدیریت» و گره‌های «پردازشگر پیام» در DC2 اجرا کنید:

    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1