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

Edge for Private Cloud نسخه ۴.۱۸.۰۱

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

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

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

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

    In this topology, the ZooKeeper host on host 9 is the observer:



    In the example configuration file shown below, node 9 is tagged with the “:observer” modifier so that you have five voters: Nodes 1, 2, 3, 7, and 8.

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

    برای CASS_HOSTS برای هر مرکز داده، مطمئن شوید که همه نشانی‌های IP مربوط به Cassandra (نه نام‌های ساناد) را برای هر دو مرکز داده مشخص کرده‌اید. برای مرکز داده ۱، ابتدا گره‌های 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. On dc-1, rerun setup.sh on the original Cassandra nodes with the new dc-1 confiig file that includes the Cassandra nodes from 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
  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. On dc-2, run the rebuild command on all Cassandra nodes, specifying the region name of dc-1:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP rebuild dc-1
  6. در dc-2، «سرور مدیریت» را در گره مناسب نصب کنید:
    > /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. On the Management Server node in dc-2, install apigee-provision, which installs the apigee-adminapi.sh utility:
    > /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. On dc-2, install Qpid on the appropriate nodes:
    > /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 سرور آماده‌به‌کار است.

    توجه: اگر dc-1 ازقبل پیکربندی شده است تا دو گره Postgres داشته باشد که در حالت اصلی/آماده‌به‌کار اجرا می‌شوند، به‌عنوان بخشی از این رویه، از گره Postgres اصلی موجود در dc-1 به‌عنوان اصلی و از گره Postgres در dc-2 به‌عنوان سرور آماده‌به‌کار استفاده کنید. در ادامه این روال، سرور آماده‌به‌کار Postgres موجود را در dc-1 لغو ثبت خواهید کرد.
    1. در گره اصلی در dc-1، فایل پیکربندی را ویرایش کنید تا موارد زیر را تنظیم کنید:
      PG_MASTER=IPorDNSofDC1Master
      PG_STANDBY=IPorDNSofDC2Standby
    2. Enable replication on the new master:
      > /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. On the standby node in dc-2, stop the server and then delete any existing Postgres data:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
      > rm -rf /opt/apigee/data/apigee-postgresql/

      Note: If necessary, you can backup this data before deleting it.
    5. Configure the standby node in dc-2:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  12. در dc-1، پیکربندی تجزیه‌وتحلیل را به‌روز کنید و سازمان‌ها را پیکربندی کنید.
    1. On the Management Server node of dc-1, get the UUID of the Postgres node:
      > apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server --admin adminEmail --pwd adminPword --host localhost

      The UUID appears at the end of the returned data. آن مقدار را ذخیره کنید.

      توجه: اگر dc-1 به‌گونه‌ای پیکربندی شده باشد که دو گره Postgres در حالت اصلی/آماده‌به‌کار اجرا شوند، دو نشانی IP و UUID در خروجی می‌بینید. هر دو UUID را ذخیره کنید. از IPها، باید بتوانید تعیین کنید کدام UUID برای گره اصلی و کدام برای گره آماده‌به‌کار است.
    2. در گره «سرور مدیریت» dc-2، شناسه UUID گره Postgres را همان‌طور که در مرحله قبل نشان داده شده است دریافت کنید. آن مقدار را ذخیره کنید.
    3. در گره «سرور مدیریت» dc-1، نام گروه‌های analytics و consumer را تعیین کنید. بسیاری از فرمان‌های زیر به این اطلاعات نیاز دارند.
      به‌طور پیش‌فرض، نام گروه analytics برابر با axgroup-001 و نام گروه consumer برابر با consumer-group-001 است. در فایل پیکربندی بی‌صدا برای یک منطقه، می‌توانید نام گروه تجزیه‌وتحلیل را بااستفاده از ویژگی AXGROUP تنظیم کنید.

      اگر از نام گروه‌های مصرف‌کننده و تجزیه‌وتحلیل مطمئن نیستید، از فرمان زیر برای نمایش آن‌ها استفاده کنید:
      > apigee-adminapi.sh analytics groups list --admin adminEmail --pwd adminPword --host localhost

      این فرمان نام گروه تجزیه‌وتحلیل را در فیلد نام و نام گروه مصرف‌کننده را در فیلد گروه‌های مصرف‌کننده برمی‌گرداند.
    4. در گره سرور مدیریت dc-1، سرور Postgres موجود را از گروه تجزیه‌وتحلیل بردارید:
      1. گره Postgres را از consumer-group بردارید:
        > 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 اصلی/آماده‌به‌کار جدید را به گروه Analytics اضافه کنید:
      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. Add the PG servers to the consumer-group as master/standby:
        > 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 به گروه تجزیه‌وتحلیل اضافه کنید:
      1. On the Management Server node of dc-1, get the UUIDs of the Qpid nodes in dc-2:
        > apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server --admin adminEmail --pwd adminPword --host localhost

        The UUIDs appear at the end of the returned data. این مقادیر را ذخیره کنید.
      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. در گره «سرور مدیریت» 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
    7. لغو ثبت‌نام و حذف سرور آماده‌به‌کار قدیمی Postgres از dc-1:
      1. Deregister the existing dc-1 Postgres standby server:
        > apigee-adminapi.sh servers deregister -u UUID -r dc-1 -p analytics -t postgres-server -Y --admin adminEmail --pwd adminPword --host localhost

        where UUID is the old standby Postgres node in dc-1.
      2. سرور آماده‌به‌کار Postgres dc-1 موجود را حذف کنید:
        توجه: این فرمان گره سرور Postgres را حذف نصب نمی‌کند. این کار فقط آن را از فهرست گره‌های Edge برمی‌دارد. بعداً درصورت لزوم می‌توانید Postgres را از گره حذف نصب کنید.
        > apigee-adminapi.sh servers delete -u UUID --admin adminEmail --pwd adminPword --host localhost
  13. فضاهای کلید Cassandra را با ضریب تکرار صحیح برای دو مرکز داده به‌روز کنید. فقط باید این مرحله را یک‌بار در هر سرور Cassandra در هریک از مراکز داده اجرا کنید:

    توجه: همه فرمان‌های زیر ضریب تکرار را روی «۳» تنظیم می‌کنند که نشان‌دهنده سه گره Cassandra در خوشه است. این مقدار را درصورت لزوم برای نصب خود تغییر دهید.
    1. Start the Cassandra cqlsh utility:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. فرمان‌های CQL زیر را در پیام‌واره «cqlsh>» اجرا کنید تا سطوح تکرار را برای فضاهای کلید Cassandra تنظیم کنید:
      1. cqlsh> ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. بااستفاده از این فرمان، فضاهای کلید را مشاهده کنید:
        cqlsh> select * from system.schema_keyspaces;
      4. از cqlsh خارج شوید:
        cqlsh> exit
  14. Run the following nodetool command on all Cassandra nodes in dc-1 to free memory:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP cleanup
  15. برای هر سازمان و هر محیطی که می‌خواهید در مراکز داده پشتیبانی کنید:
    1. On the Management Server node of dc-1, add the new MP_POD to the Organization:
      > apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 --admin adminEmail --pwd adminPword --host localhost

      where gateway-2 is the name of the gateway pod as defined by the MP_POD property in the dc-2 config file.
    2. «پردازشگرهای پیام» جدید را به سازمان و محیط اضافه کنید:
      1. در گره «سرور مدیریت» dc-2، شناسه UUID گره‌های «پردازشگر پیام» را در dc-2 دریافت کنید:
        > apigee-adminapi.sh servers list -r dc-2 -p gateway-2 -t message-processor --admin adminEmail --pwd adminPword --host localhost

        شناسه‌های UUID در انتهای داده‌های برگردانده‌شده نشان داده می‌شوند. این مقادیر را ذخیره کنید.
      2. On the Management Server node of dc-1, for each Message Processor in dc-2, add the Message Processor to an environment for the org:
        > 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 مستقرشده در سازمان است.