يوضّح هذا المستند كيفية إضافة مركز بيانات (يسمى أيضًا منطقة) إلى مركز بيانات حالي.
اعتبارات قبل إضافة مركز بيانات
قبل تثبيت إضافة مركز بيانات، يجب أن تفهم كيفية ضبط خوادم OpenLDAP وCOKeeper و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 في مركز البيانات.يجب أن تحتوي جميع عُقد 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.202:124."
سيتم استخدام العقدة الأولى في منطقة مدى التوفّر 1 في كل مركز بيانات كخادم أساسي. في نموذج النشر هذا، سيبدو إعداد "كاساندرا" على النحو التالي:
-
Postgres
يثبّت Edge جميع عُقد Postgres في وضع رئيسي تلقائيًا. ومع ذلك، عندما تكون لديك عدة مراكز بيانات، يمكنك ضبط عُقد Postgres لاستخدام النسخ المماثل في وضع الاستعداد الرئيسي بحيث في حال تعذُّر العُقدة الرئيسية، يمكن أن تستمر عُقدة الاستعداد في حركة بيانات الخادم. وعادةً ما يمكنك ضبط خادم Postgres الرئيسي في أحد مراكز البيانات والخادم الاحتياطي في مركز البيانات الثاني.
إذا تم إعداد مركز البيانات الحالي بحيث يتضمّن عُقدتي Postgres في وضع الاستعداد الرئيسي/وضع الاستعداد، سيتم إلغاء تسجيل عقدة الاستعداد الحالية واستبدالها بعقدة Postgres في مركز البيانات الجديد.
يعرض الجدول التالي إعدادات Postgres قبل وبعد ضبط كلا السيناريوهين:
قبل بعد عقدة Master 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: مركز البيانات الجديد
لإضافة مركز بيانات جديد:
- في 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
على جميع العُقد. راجِع تثبيت أداة إعداد واجهة برمجة التطبيقات 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 [-u username -pw password] -h cassIP rebuild dc-1
ما عليك سوى تمرير اسم المستخدم وكلمة المرور في حال تفعيل مصادقة JMX لـ Cassandra.
- في dc-2، ثبِّت خادم الإدارة على العقدة المناسبة:
/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 رئيسية/جاهزة لعقد Postgres. عقدة Postgres في dc-1 هي
العقدة الرئيسية، بينما عقدة Postgres في dc-2 هي خادم الاستعداد.
- في العقدة الرئيسية في 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، يمكنك تعديل إعدادات الإحصاءات وإعداد المؤسسات.
- في عقدة خادم الإدارة في dc-1، احصل على المعرّف الفريد العالمي لعقدة Postgres:
apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \ --admin adminEmail --pwd adminPword --host localhost
يظهر المعرّف الفريد العالمي (UUID) في نهاية البيانات التي يتم عرضها. احفظ هذه القيمة.
- في عقدة خادم الإدارة في dc-2، احصل على المعرّف الفريد العالمي لعقدة Postgres كما هو موضّح في الخطوة السابقة. احفظ هذه القيمة.
- في عقدة خادم الإدارة في dc-1، حدِّد اسم
الإحصاءات ومجموعات المستهلكين. وتتطلّب العديد من الأوامر أدناه هذه المعلومات.
بشكل تلقائي، يكون اسم مجموعة الإحصاءات هو "axgroup-001"، واسم مجموعة المستهلكين هو "consumer-group-001". في ملف الإعداد الصامت لإحدى المناطق، يمكنك ضبط اسم مجموعة الإحصاءات باستخدام السمة
AXGROUP
.إذا لم تكن متأكدًا من أسماء الإحصاءات ومجموعات المستهلكين، استخدِم الأمر التالي لعرضها:
apigee-adminapi.sh analytics groups list \ --admin adminEmail --pwd adminPword --host localhost
يعرض هذا الأمر اسم مجموعة الإحصاءات في حقل الاسم، واسم مجموعة المستهلكين في حقل مجموعات المستهلكين.
- في عقدة خادم الإدارة في 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:
- إلغاء تسجيل خادم وضع الاستعداد الحالي في 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.
- احذف خادم وضع الاستعداد الحالي dc-1 Postgres:
apigee-adminapi.sh servers delete -u UUID \ --admin adminEmail --pwd adminPword --host localhost
- إلغاء تسجيل خادم وضع الاستعداد الحالي في dc-1 Postgres:
- في عقدة خادم الإدارة في dc-1، احصل على المعرّف الفريد العالمي لعقدة Postgres:
- تحديث مسافات مفاتيح Cassandra باستخدام عامل النسخ المتماثل الصحيح لمركزَي البيانات. ما عليك
سوى تنفيذ هذه الخطوة مرة واحدة على أي خادم Cassandra في أي من مركزَي البيانات:
- شغِّل أداة Cassandra
cqlsh
:/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
- نفِّذ أوامر CQL التالية في طلب "cqlsh>" لضبط مستويات النسخ المتماثل لمساحات مفاتيح Cassandra:
ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- يمكنك عرض مسافات المفاتيح باستخدام الأمر:
select * from system.schema_keyspaces;
- مخرج
cqlsh
:exit
- شغِّل أداة Cassandra
- نفِّذ الأمر
nodetool
التالي على جميع عُقد Cassandra في dc-1 لإخلاء ذاكرة:/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup
ما عليك سوى تمرير اسم المستخدم وكلمة المرور في حال تفعيل مصادقة JMX لـ Cassandra.
- لكل مؤسسة ولكل بيئة تريد دعمها في جميع مراكز البيانات:
- في عقدة خادم الإدارة في 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، احصل على أرقام التعريف الفريدة العالمية (UUID) لعُقد معالج الرسائل في dc-2:
apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \ -t message-processor --admin adminEmail --pwd adminPword --host localhost
تظهر أرقام التعريف الفريدة العالمية (UUID) في نهاية البيانات التي تم إرجاعها. احفظ هذه القيم.
- في عقدة خادم الإدارة في 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، احصل على أرقام التعريف الفريدة العالمية (UUID) لعُقد معالج الرسائل في 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 الجديد إلى المؤسسة: