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

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

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

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

  • اوپن‌لدپ

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

  • نگهبان باغ وحش

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

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

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

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

  • کاساندرا

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

    تمام گره‌های کاساندرا باید دارای پسوند ': 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"

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

  • پستگرس

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

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

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

    قبل از بعد از

    یک گره مستر پستگرس در dc-1

    گره مستر پستگرس در dc-1

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

    گره مستر پستگرس در dc-1

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

    گره مستر پستگرس در dc-1

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

    حذف ثبت گره Postgres قدیمی Standby در dc-1

  • الزامات بندر

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

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

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

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

در زیر فایل‌های پیکربندی خاموش برای دو مرکز داده نشان داده شده است، که در آن هر مرکز داده دارای 6 گره است، همانطور که در توپولوژی‌های نصب نشان داده شده است. توجه داشته باشید که فایل پیکربندی برای 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 را روی گره‌های اصلی کاساندرا با فایل پیکربندی جدید dc-1 که شامل گره‌های کاساندرا از dc-2 است، دوباره اجرا کنید:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. در dc-2 ، apigee-setup را روی همه گره‌ها نصب کنید. برای اطلاعات بیشتر به نصب ابزار Edge apigee-setup مراجعه کنید.
  3. در dc-2 ، کاساندرا و ZooKeeper را روی گره‌های مناسب نصب کنید:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  4. در dc-1 ، فایل setup.sh را دوباره روی گره Management Server اجرا کنید:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1

    در صورت لزوم، تنظیمات کسب درآمد را دوباره اجرا کنید:

    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1
  5. در dc-2 ، دستور rebuild را روی تمام گره‌های کاساندرا اجرا کنید و نام ناحیه dc-1 را مشخص کنید:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1

    فقط در صورتی که احراز هویت JMX را برای کاساندرا فعال کرده باشید، باید نام کاربری و رمز عبور خود را وارد کنید.

  6. در dc-2 ، سرور مدیریت را روی گره مناسب نصب کنید:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. روی گره Management Server در 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 سرور master و گره Postgres در dc-2 سرور standby است.
    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. در گره Management Server مربوط به 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. در گره Management Server مربوط به 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. در گره Management Server مربوط به dc-1 ، سرور Postgres موجود را از گروه analytics حذف کنید:
      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 در حالت master/standby داشته باشد، هر دو را حذف کنید:

        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 را از گروه analytics حذف کنید:
        apigee-adminapi.sh analytics groups postgres_server remove \
          -g axgroup-001 -u UUID -Y --admin adminEmail \
          --pwd adminPword --host localhost

        اگر dc-1 طوری پیکربندی شده است که دو گره Postgres در حالت master/standby داشته باشد، هر دو را حذف کنید:

        apigee-adminapi.sh analytics groups postgres_server \
          remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \
          --pwd adminPword --host localhost
    5. در گره Management Server مربوط به dc-1 ، سرورهای Postgres اصلی/آماده به کار جدید را به گروه analytics اضافه کنید:
      1. هر دو سرور Postgres را به گروه analytics اضافه کنید:
        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. در گره Management Server مربوط به 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

        اگر از Monetization استفاده می‌کنید، گره‌های Qpid را به گروه MINT در گره Management Server مربوط به 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 standby قدیمی را از dc-1 غیرفعال و حذف کنید:
      1. سرور آماده به کار فعلی dc-1 Postgres را از حالت ثبت خارج کنید:
        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. فضاهای کلید کاساندرا را با ضریب تکثیر صحیح برای دو مرکز داده به‌روزرسانی کنید. شما فقط باید این مرحله را یک بار روی هر سرور کاساندرا در هر دو مرکز داده اجرا کنید:
    1. ابزار Cassandra cqlsh را اجرا کنید:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. دستورات CQL زیر را در اعلان "cqlsh>" اجرا کنید تا سطوح تکثیر برای فضاهای کلید کاساندرا تنظیم شود:
      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 زیر را روی تمام گره‌های کاساندرا در dc-1 اجرا کنید تا حافظه آزاد شود:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

    فقط در صورتی که احراز هویت JMX را برای کاساندرا فعال کرده باشید، باید نام کاربری و رمز عبور خود را وارد کنید.

  15. برای هر سازمان و برای هر محیطی که می‌خواهید از طریق مراکز داده پشتیبانی کنید:
    1. در گره Management Server مربوط به dc-1 ، فایل MP_POD جدید را به Organization اضافه کنید:
      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. در گره Management Server مربوط به dc-1 ، سازماندهی را بررسی کنید:
      apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \
        --admin adminEmail --pwd adminPword --host localhost

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

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

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

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