الإصدار 4.18.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
يجب أن تحتوي جميع مراكز البيانات على العدد نفسه من عُقد 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 عُقد كما هو موضّح في مخططات التثبيت. يُرجى ملاحظة أنّ ملف الإعداد لـ 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: مركز البيانات الجديد
- في dc-1، أعِد تشغيل setup.sh على عُقد Cassandra الأصلية باستخدام ملف الإعدادات الجديد dc-1 الذي يتضمّن عُقد Cassandra من dc-2:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1 - في dc-1، أعِد تشغيل setup.sh على عقدة خادم الإدارة:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1 - على dc-2، ثبِّت apigee-setup على جميع العُقد. لمزيد من المعلومات، يُرجى الاطّلاع على تثبيت أداة apigee-setup في Edge.
- في dc-2، ثبِّت Cassandra وZooKeeper على العُقد المناسبة:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2 - في dc-2، شغِّل أمر إعادة الإنشاء على جميع عُقد Cassandra، مع تحديد اسم منطقة dc-1:
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP rebuild dc-1 - في dc-2، ثبِّت Management Server على العقدة المناسبة:
> /opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2 - في عقدة خادم الإدارة في dc-2، ثبِّت
apigee-provision، الذي يثبِّت
الأداة المساعدة apigee-adminapi.sh:
> /opt/apigee/apigee-service/bin/apigee-service apigee-provision install - على dc-2، ثبِّت "الموجّهات" و"معالِجات الرسائل" على العُقد المناسبة:
> /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2 - في dc-2، ثبِّت Qpid على العُقد المناسبة:
> /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2 - في dc-2، ثبِّت Postgres على العقدة المناسبة:
> /opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2 - إعداد Postgres master/standby لعُقد Postgres عقدة Postgres في dc-1 هي العقدة الرئيسية، وعقدة Postgres في dc-2 هي الخادم الاحتياطي.
ملاحظة: إذا تم ضبط dc-1 مسبقًا ليكون لديه عقدتا Postgres تعملان في وضع رئيسي/احتياطي، كجزء من هذا الإجراء، استخدِم عقدة Postgres الرئيسية الحالية في dc-1 كعقدة رئيسية، وعقدة Postgres في dc-2 كخادم احتياطي. لاحقًا في هذا الإجراء، ستلغي تسجيل خادم Postgres الاحتياطي الحالي في dc-1.- في العقدة الرئيسية في dc-1، عدِّل ملف الإعداد لضبط ما يلي:
PG_MASTER=IPorDNSofDC1Master
PG_STANDBY=IPorDNSofDC2Standby - تفعيل النسخ المتماثل على الخادم الرئيسي الجديد:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle - في عقدة الاستعداد في dc-2، عدِّل ملف الإعداد لضبط ما يلي:
PG_MASTER=IPorDNSofDC1Master
PG_STANDBY=IPorDNSofDC2Standby - في العقدة الاحتياطية في dc-2، أوقِف الخادم ثم احذف أي
بيانات Postgres حالية:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
> rm -rf /opt/apigee/data/apigee-postgresql/
ملاحظة: يمكنك الاحتفاظ بنسخة احتياطية من هذه البيانات قبل حذفها إذا لزم الأمر. - اضبط عقدة الاستعداد في dc-2:
> /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- في العقدة الرئيسية في dc-1، عدِّل ملف الإعداد لضبط ما يلي:
- على dc-1، عدِّل إعدادات "إحصاءات Google" واضبط المؤسسات.
- في عقدة خادم الإدارة في 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 في الناتج. احفظ كلا المعرّفَين الفريدَين العالميَين. من خلال عناوين IP، من المفترض أن تتمكّن من تحديد المعرّف الفريد العالمي (UUID) للعقدة الرئيسية والعقدة الاحتياطية. - في عقدة خادم الإدارة في dc-2، احصل على معرّف UUID لعقدة Postgres كما هو موضّح في الخطوة السابقة. احفظ هذه القيمة.
- في عقدة خادم الإدارة في dc-1، حدِّد اسم مجموعات الإحصاءات والمستهلكين. تتطلّب العديد من الأوامر أدناه هذه المعلومات.
يكون اسم مجموعة الإحصاءات تلقائيًا axgroup-001، واسم مجموعة المستهلكين consumer-group-001. In the silent config file for a region, you can set the name of the analytics group by using the AXGROUP property.
إذا لم تكن متأكدًا من أسماء مجموعات الإحصاءات والمستهلكين، استخدِم الأمر التالي لعرضها:
> apigee-adminapi.sh analytics groups list --admin adminEmail --pwd adminPword --host localhost
يعرض هذا الأمر اسم مجموعة الإحصاءات في حقل الاسم، واسم مجموعة المستهلكين في حقل consumer-groups. - في عقدة خادم الإدارة في dc-1، أزِل خادم Postgres الحالي من مجموعة الإحصاءات:
- أزِل عقدة 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 - أزِل عقدة 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
- أزِل عقدة Postgres من مجموعة المستهلكين:
-
في عقدة خادم الإدارة في dc-1، أضِف خوادم Postgres الرئيسية/الاحتياطية الجديدة إلى مجموعة الإحصاءات:
- أضِف خادمَي 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. - أضِف خوادم 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
- أضِف خادمَي Postgres إلى مجموعة الإحصاءات:
- أضِف خوادم Qpid من dc-2 إلى مجموعة الإحصاءات:
- في عقدة خادم الإدارة في 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) في نهاية البيانات المعروضة. احفظ هذه القيم. - في عقدة خادم الإدارة في 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 - في عقدة خادم الإدارة في 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
- في عقدة خادم الإدارة في dc-1، احصل على المعرّفات الفريدة العالمية (UUID) لعقد Qpid
في dc-2:
- ألغِ تسجيل خادم Postgres الاحتياطي القديم واحذفه من dc-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. - احذف خادم Postgres الاحتياطي الحالي في dc-1:
ملاحظة: لا يؤدي هذا الأمر إلى إلغاء تثبيت عقدة خادم Postgres. بل تتم إزالته فقط من قائمة عُقد Edge. يمكنك لاحقًا إلغاء تثبيت Postgres من العقدة، إذا لزم الأمر.
> apigee-adminapi.sh servers delete -u UUID --admin adminEmail --pwd adminPword --host localhost
- ألغِ تسجيل خادم Postgres الاحتياطي الحالي في dc-1:
- في عقدة خادم الإدارة في dc-1، احصل على المعرّف الفريد العالمي (UUID) لعقدة Postgres:
- عدِّل مساحات مفاتيح Cassandra باستخدام عامل النسخ المتماثل الصحيح لمركزَي البيانات. عليك تنفيذ هذه الخطوة مرة واحدة فقط على أي خادم Cassandra في أي من مركزَي البيانات:
ملاحظة: تضبط جميع الأوامر أدناه عامل النسخ المتماثل على "3"، ما يشير إلى ثلاث عُقد Cassandra في المجموعة. عدِّل هذه القيمة حسب الحاجة لعملية التثبيت.- ابدأ أداة Cassandra cqlsh:
> /opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP - نفِّذ أوامر CQL التالية في الطلب "cqlsh>" لضبط مستويات النسخ المتماثل لمساحات مفاتيح Cassandra:
- cqlsh> ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- cqlsh> ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- يمكنك عرض مساحات المفاتيح باستخدام الأمر:
cqlsh> select * من system.schema_keyspaces; - اخرج من cqlsh:
cqlsh> exit
- ابدأ أداة Cassandra cqlsh:
- شغِّل أمر nodetool التالي على جميع عُقد Cassandra في dc-1 لإخلاء الذاكرة:
> /opt/apigee/apigee-cassandra/bin/nodetool -h cassandraIP cleanup - لكل مؤسسة ولكل بيئة تريد إتاحتها في جميع مراكز البيانات:
- في عقدة خادم الإدارة في 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. - أضِف معالِجات الرسائل الجديدة إلى المؤسسة والبيئة:
- في عقدة خادم الإدارة في dc-2، احصل على المعرّفات الفريدة العالمية لعقد معالج الرسائل في dc-2:
> apigee-adminapi.sh servers list -r dc-2 -p gateway-2 -t message-processor --admin adminEmail --pwd adminPword --host localhost
تظهر المعرّفات الفريدة العالمية في نهاية البيانات التي تم عرضها. احفظ هذه القيم. - في عقدة خادم الإدارة في dc-1، لكل معالج رسائل
في dc-2، أضِف معالج الرسائل إلى بيئة للمؤسسة:
> apigee-adminapi.sh orgs envs servers add -o orgName -e envName -u UUID --admin adminEmail --pwd adminPword --host localhost
- في عقدة خادم الإدارة في dc-2، احصل على المعرّفات الفريدة العالمية لعقد معالج الرسائل في dc-2:
- في عقدة خادم الإدارة في dc-1، تحقَّق من المؤسسة:
> apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName --admin adminEmail --pwd adminPword --host localhost
حيث apiProxyName هو اسم الخادم الوكيل لواجهة برمجة التطبيقات الذي تم نشره في المؤسسة.
- في عقدة خادم الإدارة في dc-1، أضِف MP_POD الجديد إلى
المؤسسة: