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

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

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

قبل‌از افزودن مرکز داده، باید با نحوه پیکربندی سرورهای 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

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

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

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

افزودن مرکز داده مستلزم انجام مراحل نصب و پیکربندی گره‌های مرکز داده جدید است، اما همچنین مستلزم به‌روزرسانی گره‌ها در مرکز داده اصلی است. این اصلاحات ضروری است زیرا گره‌های جدید Cassandra و ZooKeeper را در مرکز داده جدید اضافه می‌کنید که باید برای مرکز داده موجود دردسترس باشد، و باید OpenLDAP را برای استفاده از تکثیر دوباره پیکربندی کنید.

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

در زیر، فایل‌های پیکربندی بی‌صدا برای دو مرکز داده نشان داده شده است، که در آن هر مرکز داده دارای ۶ گره است، همان‌طور که در توپولوژی‌های نصب نشان داده شده است. توجه داشته باشید که فایل پیکربندی 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، راه‌اندازی را در گره «سرور مدیریت» دوباره اجرا کنید:
    /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 اصلی/آماده‌به‌کار برای گره‌های 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

      «شناسه منحصربه‌فرد جهانی» در انتهای داده‌های برگشتی نشان داده می‌شود. آن مقدار را ذخیره کنید.

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

      به‌طور پیش‌فرض، نام گروه تجزیه‌وتحلیل «axgroup-001» و نام گروه مصرف‌کننده «consumer-group-001» است. در فایل پیکربندی بی‌صدای یک منطقه، می‌توانید نام گروه تجزیه‌وتحلیل را بااستفاده از دارایی 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 به گروه تجزیه‌وتحلیل اضافه کنید:
      1. در گره «سرور مدیریت» dc-1، شناسه‌های یکتای گره‌های Qpid در dc-2 را دریافت کنید:
        apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \
          --admin adminEmail --pwd adminPword --host localhost

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

      2. در گره «سرور مدیریت» dc-1، گره‌های Qpid را به گروه تجزیه‌وتحلیل اضافه کنید (هر دو فرمان را اجرا کنید):
        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

        اگر از درآمدزایی استفاده می‌کنید، گره‌های 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. سرور آماده‌به‌کار dc-1 Postgres موجود را حذف کنید:
        apigee-adminapi.sh servers delete -u UUID \
          --admin adminEmail --pwd adminPword --host localhost
  13. فضاهای کلید Cassandra را با عامل تکثیر صحیح برای دو مرکز داده به‌روز کنید. این مرحله را فقط باید یک‌بار در هریک از سرورهای Cassandra در هریک از مراکز داده اجرا کنید:
    1. ابزار cqlsh Cassandra را شروع کنید:
      /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. در گره «سرور مدیریت» dc-2، شناسه‌های یکتای گره‌های «پردازشگر پیام» در 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