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

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

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

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

  • OpenLDAP

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

  • باغ وحش

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

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

    در فایل پیکربندی مثالی که در زیر نشان داده شده است، گره 9 با تعدیل کننده :observer برچسب گذاری شده است تا شما پنج رای دهنده داشته باشید: گره های 1، 2، 3، 7 و 8.

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

  • کاساندرا

    همه مراکز داده باید به همان تعداد گره کاساندرا داشته باشند.

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

    تمام گره های کاساندرا باید پسوند ": d , r " داشته باشند. به عنوان مثال ' ip :1,1 = مرکز داده 1 و رک / منطقه در دسترس 1 و ' ip :2,1 = مرکز داده 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.201.121.192.168.121.124 "

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

  • Postgres

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

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

    جدول زیر تنظیمات قبل و بعد از Postgres را برای هر دو سناریو نشان می دهد:

    قبل از بعد از

    Single Master Postgres node در dc-1

    گره Master Postgres در dc-1

    گره Standby Postgres در dc-2

    گره Master Postgres در dc-1

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

    گره Master Postgres در dc-1

    گره Standby Postgres در dc-2

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

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

    باید اطمینان حاصل کنید که پورت های لازم بین گره های دو مرکز داده باز هستند. برای نمودار پورت، الزامات بندر را ببینید.

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

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

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

در زیر فایل‌های پیکربندی بی‌صدا برای دو مرکز داده نشان داده شده است، جایی که هر مرکز داده دارای 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-1 ، setup.sh را در گره مدیریت سرور اجرا کنید:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
  3. در dc-2 ، apigee-setup روی همه گره ها نصب کنید. برای اطلاعات بیشتر به نصب ابزار Edge apigee-setup مراجعه کنید.
  4. در dc-2 ، Cassandra و ZooKeeper را روی گره های مناسب نصب کنید:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  5. در dc-2 ، دستور rebuild را روی تمام گره‌های 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 ، Routes and Message Processors را روی گره های مناسب نصب کنید:
    /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 ، نام گروه های تجزیه و تحلیل و مصرف کننده را تعیین کنید. بسیاری از دستورات زیر به این اطلاعات نیاز دارند.

      به طور پیش فرض، نام گروه تجزیه و تحلیل "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 ، سرورهای جدید Master/Standby 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

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

      2. سرورهای PG را به عنوان 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. در گره مدیریت سرور 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. در گره مدیریت سرور 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
    7. سرور آماده به کار قدیمی Postgres را از 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. سرور آماده به کار dc-1 Postgres موجود را حذف کنید:
        apigee-adminapi.sh servers delete -u UUID \
          --admin adminEmail --pwd adminPword --host localhost
  13. فضاهای کلیدی 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 نام gateway pod است که توسط ویژگی MP_POD در فایل پیکربندی dc-2 تعریف شده است.

    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. در گره مدیریت سرور 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 است که در سازمان مستقر شده است.