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

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

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

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

  • OpenLDAP

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

  • ZooKeeper

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

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

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

    بالنسبة إلى السمة ZK_CLIENT_HOSTS لكل مركز بيانات، حدِّد عناوين IP أو أسماء نظام أسماء النطاقات (DNS) لعُقد 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

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

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

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

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

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

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

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

  • ضبط OpenLDAP باستخدام ميزة النسخ المتماثل على عُقدتَي OpenLDAP
  • إضافة عُقد Cassandra وZooKeeper الجديدة من مركز البيانات 2 إلى ملف الإعدادات لمركز البيانات 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 الأصلية باستخدام ملف الإعدادات الجديد لمركز البيانات 1 الذي يتضمّن عُقد Cassandra من مركز البيانات 2:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
  2. على dc-2، ثبِّت apigee-setup على جميع العُقد. لمزيد من المعلومات، يُرجى الاطّلاع على تثبيت أداة apigee-setup في Edge.
  3. على dc-2، ثبِّت Cassandra وZooKeeper على العُقد المناسبة:
    /opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
  4. على 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
  5. على dc-2، شغِّل أمر إعادة الإنشاء على جميع عُقد Cassandra، مع تحديد اسم منطقة مركز البيانات 1:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1

    عليك فقط إدخال اسم المستخدم وكلمة المرور إذا فعّلت ميزة المصادقة باستخدام JMX لـ Cassandra.

  6. على مركز البيانات 2، ثبِّت "خادم الإدارة" على العُقدة المناسبة:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
  7. على عُقدة "خادم الإدارة" في مركز البيانات 2، ثبِّت apigee-provision، الذي يثبِّت الأداة apigee-adminapi.sh
    /opt/apigee/apigee-service/bin/apigee-service apigee-provision install
  8. على مركز البيانات 2، ثبِّت أجهزة توجيه الرسائل ومعالجاتها على العُقد المناسبة:
    /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
  9. على مركز البيانات 2، ثبِّت Qpid على العُقد المناسبة:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
  10. على مركز البيانات 2، ثبِّت Postgres على العُقدة المناسبة:
    /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
  11. اضبط وضع العُقدة الرئيسية/الاحتياطية لـ Postgres لعُقد Postgres. عُقدة Postgres في مركز البيانات 1 هي العُقدة الرئيسية، وعُقدة Postgres في مركز البيانات 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. على مركز البيانات 1، عدِّل إعدادات "إحصاءات Google" واضبط المؤسسات.
    1. على عُقدة "خادم الإدارة" في مركز البيانات 1، احصل على المعرّف الفريد العالمي لعُقدة Postgres:
      apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \
        --admin adminEmail --pwd adminPword --host localhost

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

    2. على عُقدة "خادم الإدارة" في مركز البيانات 2، احصل على المعرّف الفريد العالمي لعُقدة Postgres كما هو موضّح في الخطوة السابقة. احفظ هذه القيمة.
    3. على عُقدة "خادم الإدارة" في مركز البيانات 1، حدِّد اسمَي مجموعتَي "إحصاءات Google" والمستهلكين. تتطلّب العديد من الأوامر أدناه هذه المعلومات.

      تلقائيًا، يكون اسم مجموعة "إحصاءات Google" هو "axgroup-001"، واسم مجموعة المستهلكين هو "consumer-group-001". في ملف الإعدادات الصامت لمنطقة، يمكنك ضبط اسم مجموعة "إحصاءات Google" باستخدام السمة AXGROUP.

      إذا لم تكن متأكدًا من اسمَي مجموعتَي "إحصاءات Google" والمستهلكين، استخدِم الأمر التالي لعرضهما:

      apigee-adminapi.sh analytics groups list \
        --admin adminEmail --pwd adminPword --host localhost

      يعرض هذا الأمر اسم مجموعة "إحصاءات Google" في حقل الاسم، واسم مجموعة المستهلكين في حقل مجموعات المستهلكين.

    4. على عُقدة "خادم الإدارة" في مركز البيانات 1، أزِل خادم Postgres الحالي من مجموعة "إحصاءات Google":
      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 من مجموعة "إحصاءات Google":
        apigee-adminapi.sh analytics groups postgres_server remove \
          -g axgroup-001 -u UUID -Y --admin adminEmail \
          --pwd adminPword --host localhost

        إذا كان مركز البيانات 1 مضبوطًا على تشغيل عُقدتَي Postgres في وضع العُقدة الرئيسية/الاحتياطية، أزِل كلتَيهما:

        apigee-adminapi.sh analytics groups postgres_server \
          remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \
          --pwd adminPword --host localhost
    5. على عُقدة "خادم الإدارة" في مركز البيانات 1، أضِف خادمَي Postgres الجديدَين في وضع العُقدة الرئيسية/الاحتياطية إلى مجموعة "إحصاءات Google":
      1. أضِف كلا خادمَي Postgres إلى مجموعة "إحصاءات Google":
        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 الرئيسية في مركز البيانات 1 ، ويتطابق UUID_2 مع عُقدة Postgres الاحتياطية في مركز البيانات 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 إلى مجموعة "إحصاءات Google":
      1. على عُقدة "خادم الإدارة" في مركز البيانات 1، احصل على المعرّفات الفريدة العالمية لعُقد Qpid في مركز البيانات 2:
        apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \
          --admin adminEmail --pwd adminPword --host localhost

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

      2. على عُقدة "خادم الإدارة" في مركز البيانات 1، أضِف عُقد Qpid إلى مجموعة "إحصاءات Google" (شغِّل كلا الأمرَين):
        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. على عُقدة "خادم الإدارة" في مركز البيانات 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

        إذا كنت تستخدِم تحقيق الربح، أضِف عُقدة "تحقيق الربح" إلى مركز البيانات 2.

        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 الاحتياطي القديم واحذفه من مركز البيانات 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

        حيث يكون المعرّف الفريد العالمي هو عُقدة Postgres الاحتياطية القديمة في مركز البيانات 1.

      2. احذف خادم Postgres الاحتياطي الحالي في مركز البيانات 1:
        apigee-adminapi.sh servers delete -u UUID \
        --admin adminEmail --pwd adminPword --host localhost
  13. عدِّل مساحات مفاتيح Cassandra باستخدام عامل النسخ المتماثل الصحيح لمركزَي البيانات. عليك تنفيذ هذه الخطوة مرة واحدة فقط على أي خادم Cassandra في أي من مركزَي البيانات:
    1. ابدأ أداة cqlsh في Cassandra:
      /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 في مركز البيانات 1 لتحرير الذاكرة:
    /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

    عليك فقط إدخال اسم المستخدم وكلمة المرور إذا فعّلت ميزة المصادقة باستخدام JMX لـ Cassandra.

  15. لكل مؤسسة ولكل بيئة تريد دعمها في مراكز البيانات:
    1. على عُقدة "خادم الإدارة" في مركز البيانات 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 في ملف الإعدادات لمركز البيانات 2.

    2. أضِف معالجات الرسائل الجديدة إلى المؤسسة والبيئة:
      1. على عُقدة "خادم الإدارة" في مركز البيانات 2، احصل على المعرّفات الفريدة العالمية لعُقد "معالج الرسائل" في مركز البيانات 2:
        apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \
          -t message-processor --admin adminEmail --pwd adminPword --host localhost

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

      2. على عُقدة "خادم الإدارة" في مركز البيانات 1، لكل "معالج رسائل" في مركز البيانات 2، أضِف "معالج الرسائل" إلى بيئة للمؤسسة:
        apigee-adminapi.sh orgs envs servers add -o orgName -e envName \
          -u UUID --admin adminEmail --pwd adminPword --host localhost
    3. على عُقدة "خادم الإدارة" في مركز البيانات 1، تحقَّق من المؤسسة:
      apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \
        --admin adminEmail --pwd adminPword --host localhost

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

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

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

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