يصف هذا المستند كيفية إضافة مركز بيانات (يسمى أيضًا منطقة) إلى بيانات حالية الأوسط.
الاعتبارات الواجب مراعاتها قبل إضافة مركز بيانات
قبل تثبيت إضافة مركز بيانات، يجب أن تفهم كيفية تهيئة 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: مركز البيانات الجديد
لإضافة مركز بيانات جديد:
- في 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، عدِّل إعدادات "إحصاءات Google" واضبط المؤسسات.
- في عقدة خادم الإدارة 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" بشكلٍ تلقائي، واسم المستهلك هي "مجموعة المستهلكين 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 إلى مجموعة الإحصاءات:
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.
- إضافة خوادم 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
تظهر أرقام التعريف الفريدة العالمية في نهاية البيانات المعروضة. احفظ تلك القيم.
- في عقدة خادم الإدارة من 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
- في عقدة خادم الإدارة من 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
حيث يمثل المعرّف الفريد العالمي عقدة 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 keyspaces:
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
تظهر أرقام التعريف الفريدة العالمية في نهاية البيانات المعروضة. احفظ تلك القيم.
- في عقدة خادم الإدارة من 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 الجديد إلى
المؤسسة: