إضافة مركز بيانات

يوضّح هذا المستند كيفية إضافة مركز بيانات (يُعرف أيضًا باسم منطقة) إلى مركز بيانات حالي.

اعتبارات قبل إضافة مركز بيانات

قبل إضافة مركز بيانات، يجب أن تعرف كيفية ضبط خوادم SymasLDAP وZooKeeper وCassandra وPostgres في مراكز البيانات. يجب أيضًا التأكّد من أنّ المنافذ اللازمة مفتوحة بين العُقد في مركزَي البيانات.

  • SymasLDAP

    يحتوي كل مركز بيانات على خادم SymasLDAP خاص به تم إعداده مع تفعيل ميزة النسخ المتماثل. عند تثبيت مركز البيانات الجديد، عليك ضبط SymasLDAP لاستخدام النسخ المتماثل، كما عليك إعادة ضبط خادم SymasLDAP في مركز البيانات الحالي لاستخدام النسخ المتماثل.

  • ZooKeeper

    بالنسبة إلى الموقع ZK_HOSTS في كلا مركزَي البيانات، حدِّد عناوين IP أو أسماء نظام أسماء النطاقات لجميع عُقد ZooKeeper من كلا مركزَي البيانات، بالترتيب نفسه، وضع علامة على أي عُقد باستخدام المعدِّل ":observer". تُسمّى العُقد التي لا تتضمّن المعدِّل :observer "المصوّتين". يجب أن يكون لديك عدد فردي من "المصوّتين" في الإعدادات.

    في هذه البنية، يكون مضيف ZooKeeper على المضيف 9 هو المراقب:

    في مثال ملف الإعدادات الموضّح أدناه، تم وضع علامة :observer على العقدة 9 حتى يكون لديك خمسة مصوّتين: العقد 1 و2 و3 و7 و8.

    بالنسبة إلى السمة ZK_CLIENT_HOSTS لكل مركز بيانات، حدِّد عناوين IP أو أسماء نظام أسماء النطاقات لعُقد ZooKeeper فقط في مركز البيانات، وبالترتيب نفسه، لجميع عُقد ZooKeeper في مركز البيانات.

  • Cassandra

    بالنسبة إلى CASS_HOSTS لكل مركز بيانات، تأكَّد من تحديد جميع عناوين IP الخاصة بـ Cassandra (وليس أسماء نظام أسماء النطاقات) لكلا مركزي البيانات. بالنسبة إلى مركز البيانات 1، أدرِج عقد Cassandra في مركز البيانات هذا أولاً. بالنسبة إلى مركز البيانات 2، أدرِج عقد Cassandra في مركز البيانات هذا أولاً. أدرِج عقد Cassandra بالترتيب نفسه لجميع عقد Cassandra في مركز البيانات.

    يجب أن تحتوي جميع عُقد 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.124.205:2,1 192.168.124.206:2,1"

    سيتم استخدام العقدة الأولى في الحزمة/منطقة التوفّر 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

    إلغاء تسجيل عقدة Standby Postgres القديمة في dc-1

  • متطلبات المنفذ

    يجب التأكّد من أنّ المنافذ اللازمة مفتوحة بين العُقد في مركزَي البيانات. للاطّلاع على مخطط المنفذ، راجِع متطلبات المنفذ.

تعديل مركز البيانات الحالي

تتطلّب إضافة مركز بيانات تنفيذ خطوات تثبيت عُقد مركز البيانات الجديد وضبطها، كما تتطلّب تعديل العُقد في مركز البيانات الأصلي. هذه التعديلات ضرورية لأنّك ستضيف عُقد Cassandra وZooKeeper جديدة في مركز البيانات الجديد الذي يجب أن يكون متاحًا لمركز البيانات الحالي، وعليك إعادة ضبط SymasLDAP لاستخدام النسخ المتماثل.

إنشاء ملفات الإعداد

في ما يلي ملفات الإعداد الصامتة لمركَزَي البيانات، حيث يحتوي كل مركز بيانات على 6 عُقد كما هو موضّح في طُرق التثبيت. يُرجى العِلم أنّ ملف الإعداد الخاص بـ dc-1 يضيف إعدادات إضافية إلى:

  • اضبط SymasLDAP باستخدام النسخ المتماثل على مستوى عقدتَي SymasLDAP.
  • أضِف عقد 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 الرئيسي/الاحتياطي لعُقد 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، عدِّل إعدادات "إحصاءات Google" واضبط إعدادات المؤسسات.
    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

      يظهر المعرّف الفريد العالمي في نهاية البيانات التي تم إرجاعها. احفظ هذه القيمة.

    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. على عقدة خادم الإدارة 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. على عقدة خادم الإدارة (Management Server) في 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. على عقدة خادم الإدارة (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 على عقدة 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 الاحتياطي القديم وحذفه من 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 باستخدام عامل النسخ المتماثل الصحيح لمركزَي البيانات. عليك تنفيذ هذه الخطوة مرة واحدة فقط على أي خادم 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. في عقدة "خادم الإدارة" (Management Server) الخاصة بـ 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. في عقدة خادم الإدارة (Management Server) في 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 هو اسم خادم وكيل لواجهة برمجة التطبيقات تم نشره في المؤسسة.

  16. إذا كنت تستخدم تحقيق الربح، ثبِّت عقدة "تحقيق الربح" في DC2.

    نفِّذ أمر إعداد MINT في خوادم الإدارة وعُقد معالجة الرسائل في مركز البيانات 2:

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