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

Edge for Private Cloud ‏v4.18.01

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

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

قبل تثبيت مركز بيانات، يجب معرفة كيفية ضبط إعدادات 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 في مركز البيانات.
  • كاساندرا
    يجب أن تحتوي جميع مراكز البيانات على العدد نفسه من عُقد كاساندرا.

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

    يجب أن تحتوي جميع عُقد Cassandra على اللاحقة ':<d>,<r>'، على سبيل المثال '<ip>:1,1 = مركز البيانات 1 والرف/منطقة التوفّر 1 و'<ip>:2,1 = مركز البيانات 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 لاستخدام النسخ.

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

في ما يلي ملفات الضبط الصامتة لمركزَي البيانات، حيث يتضمّن كل مركز data 6 عقد كما هو موضّح في Topologies للتركيب. يُرجى ملاحظة أنّ ملف الإعدادات لـ 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 الأصلية باستخدام ملف الإعدادات الجديد الذي يتضمّن عقد 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 على جميع العقد. اطّلِع على تثبيت أداة إعداد apigee في Edge للحصول على مزيد من المعلومات.
  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 -h cassIP rebuild dc-1
  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 هي الخادم الاحتياطي.

    ملاحظة: إذا سبق أن تم إعداد dc-1 لاستخدام node Postgres في وضع الخادم الرئيسي/الخادم الاحتياطي، يمكنك استخدام node Postgres الرئيسية الحالية في dc-1 كخادم رئيسي، وnode Postgres في dc-2 كخادم احتياطي، وذلك كجزء من هذا الإجراء. لاحقًا في هذه العملية، ستلغي تسجيل خادم Postgres الاحتياطي الحالي في dc-1.
    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-repliction-on-stopby -f configFile
  12. على dc-1، عدِّل إعدادات "إحصاءات Google" واضبط المؤسسات.
    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 في نهاية البيانات المعروضة. احفظ هذه القيمة.

      ملاحظة: إذا تم ضبط dc-1 لتشغيل عقدتَي Postgres في وضع "الرئيسي/الاحتياطي"، ستظهر لك عنوانَا IP وعنوانَا UUID في الإخراج. حفظ المعرّفَين الفريدَين (UUID) من عناوين IP، من المفترض أن تتمكّن من تحديد معرّف UUID الخاص بالوحدة الرئيسية ومعرّف 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. UUID
      2. ."



        UUID
    5. في عقدة "خادم الإدارة" في dc-1، أضِف خوادم Postgres الجديدة للمسؤول/الخيار الاحتياطي إلى مجموعة الإحصاءات:
      1. أضِف خادمَي Postgres إلى مجموعة الإحصاءات:
        > apigee-adminapi.sh مجموعتان analyticss postgres_server add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail --pwd adminPword --host localhost

        تتطابق UUID_1 مع عقدة UUID_master في UUID_21.
      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

        تظهر أرقام تعريف 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. ألغِ تسجيل خادم 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. يمكنك حذف خادم Postgres الاحتياطي الحالي dc-1:
        ملاحظة: لا يؤدي هذا الأمر إلى إلغاء تثبيت عقدة خادم Postgres. يؤدي ذلك إلى إزالتها من قائمة عقد Edge فقط. يمكنك لاحقًا إلغاء تثبيت Postgres من node ، إذا لزم الأمر.
        > خوادم apigee-adminapi.sh delete -u UUID --admin adminEmail --pwd adminPword --host localhost
  13. حدِّث مساحات مفاتيح Cassandra باستخدام عامل النسخ الصحيح لمركزَي البيانات. ليس عليك سوى تنفيذ هذه الخطوة مرة واحدة على أي خادم Cassandra في أي من مركزَي البيانات:

    ملاحظة: تعمل جميع الأوامر أدناه على ضبط عامل النسخ على "3"، ما يشير إلى ثلاث عقد Cassandra في المجموعة. عدِّل هذه القيمة حسب الحاجة لعملية التثبيت.
    1. ابدأ تشغيل أداة Cassandra cqlsh:
      > /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
    2. نفِّذ أوامر CQL التالية في موجه "cqlsh>" لضبط مستويات النسخ المتعدّد لمساحات مفاتيح Cassandra:
      1. cqlsh> ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      2. cqlsh> ALTER KEYSPACE "system_traces" WITH backuption = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
      3. يمكنك عرض مساحات المفاتيح باستخدام الأمر:
        cqlsh> select * from system.schema_keyspaces;
      4. الخروج من الأمر cqlsh:
        cqlsh> خروج
  14. شغِّل الأمر nodetool التالي على جميع عقد Cassandra في dc-1 لتحرير الذاكرة:
    > /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP cleanup
  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

        تظهر معرّفات 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 Publishings -o orgName -a apiProxyName --admin adminEmail --pwd adminPword --host localhost

      حيث apiProxyName هو اسم واجهة برمجة التطبيقات التي تم نشرها في