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

الإصدار 4.19.01 من Edge for Private Cloud

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

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

قبل تثبيت إضافة مركز بيانات، يجب أن تفهم كيفية تهيئة OpenLDAP، خوادم ZooKeeper وCassandra وPostgres عبر مراكز البيانات. يجب عليك أيضًا التأكد من أن المنافذ اللازمة مفتوحة بين النقاط في مركزي البيانات.

  • OpenLDAP

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

  • ZooKeeper

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

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

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

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

  • كاساندرا

    يجب أن يكون لجميع مراكز البيانات نفس عدد عُقد Cassandra.

    بالنسبة إلى CASS_HOSTS لكل مركز بيانات، تأكَّد من تحديد جميع عناوين IP لجهاز Cassandra. عناوين (وليس أسماء نظام أسماء النطاقات) لكل من البيانات الرئيسية. بالنسبة لمركز البيانات 1، قم بإدراج عقد Cassandra في مركز البيانات هذا أولاً. لمركز البيانات 2، قم بإدراج عقد كاساندرا في مركز البيانات هذا أولاً. سرد عُقد 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 جديدتَين في مركز البيانات التي يجب أن تتوفر إمكانية الوصول إليها من خلال مركز البيانات الحالي، ويجب إعادة تهيئة بروتوكول 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 على عُقد 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
  3. في dc-2، ثبِّت 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. في عقدة خادم الإدارة dc-1، احصل على المعرّف الفريد العالمي الخاص بـ Postgres العقدة:
      apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \
        --admin adminEmail --pwd adminPword --host localhost

      يظهر المعرّف الفريد العالمي (UUID) في نهاية البيانات المعروضة. احفظ هذه القيمة.

    2. في عقدة خادم الإدارة dc-2، احصل على المعرّف الفريد العالمي الخاص بـ Postgres كما هو موضح في الخطوة السابقة. احفظ هذه القيمة.
    3. في عقدة خادم الإدارة من dc-1، حدد اسم التحليلات ومجموعات المستهلكين. يتطلب العديد من الأوامر أدناه هذه المعلومات.

      يكون اسم مجموعة الإحصاءات هو "axgroup-001" بشكلٍ تلقائي، واسم المستهلك هي "مجموعة المستهلكين 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، أضف الصفحة الرئيسية/وضع الاستعداد الجديد نشر الخوادم في مجموعة الإحصاءات:
      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 Ehere مع عقدة 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، احصل على معرفات UUID لـ Qpid العُقد في dc-2:
        apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \
          --admin adminEmail --pwd adminPword --host localhost

        تظهر أرقام التعريف الفريدة العالمية في نهاية البيانات المعروضة. احفظ تلك القيم.

      2. في عقدة خادم الإدارة من 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. إلغاء تسجيل خادم الاستعداد الحالي 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

        حيث يمثل المعرّف الفريد العالمي عقدة 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 keyspaces:
      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، احصل على المعرفات الفريدة العامة (UUID) عُقد معالج الرسائل في dc-2:
        apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \
          -t message-processor --admin adminEmail --pwd adminPword --host localhost

        تظهر أرقام التعريف الفريدة العالمية في نهاية البيانات المعروضة. احفظ تلك القيم.

      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 هو اسم الخادم الوكيل لواجهة برمجة التطبيقات الذي تم نشره في المؤسسة.