إيقاف مركز بيانات

في بعض الأحيان، قد تحتاج إلى إيقاف مركز بيانات نهائيًا. على سبيل المثال، إذا كنت تجري ترقية لنظام التشغيل، عليك تثبيت نظام التشغيل الجديد في مركز بيانات جديد ثم إيقاف مركز البيانات القديم. تعرض الأقسام التالية مثالاً على إيقاف مركز بيانات نهائيًا، حيث يوجد مركزان للبيانات، dc-1 وdc-2، في تثبيت مجمّع يتألف من 12 عقدة:

  • ‫dc-1 هو مركز البيانات الذي سيتم إيقافه نهائيًا.
  • ‫dc-2 هو مركز بيانات ثانٍ يُستخدم في إجراء الإيقاف النهائي.

إذا كنت تقوم بترقية نظام التشغيل لديك، فقد يكون dc-2 هو مركز البيانات الذي قمت بتثبيت الإصدار الجديد من نظام التشغيل (OS) فيه. ومع ذلك، لا يلزم تثبيت نظام تشغيل جديد لإيقاف تشغيل مركز البيانات.

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

يُرجى مراعاة ما يلي عند إيقاف مركز بيانات نهائيًا:

  • احظر جميع زيارات وقت التشغيل والإدارة إلى مركز البيانات الذي يتم إيقافه نهائيًا وأعِد توجيهها إلى مراكز بيانات أخرى.
  • بعد إيقاف مركز البيانات نهائيًا، ستنخفض السعة في مجموعة Apigee. وللتعويض عن ذلك، يمكنك زيادة السعة في مراكز البيانات المتبقية أو إضافة مراكز بيانات بعد إيقاف التشغيل.
  • أثناء عملية إيقاف الخدمة، هناك احتمال لفقدان بيانات الإحصاءات، وذلك حسب مكونات الإحصاءات المثبّتة في مركز البيانات الذي سيتم إيقاف الخدمة فيه. يمكنك الاطّلاع على مزيد من التفاصيل في مقالة إضافة عُقد Qpid أو إزالتها.
  • قبل إيقاف مركز بيانات نهائيًا، عليك فهم طريقة ضبط جميع المكوّنات في جميع مراكز البيانات، خاصةً خوادم SymasLDAP وZooKeeper وCassandra وPostgres. يجب أيضًا الاحتفاظ بنُسخ احتياطية من جميع المكوّنات وإعداداتها.

قبل البدء

  • خادم الإدارة: تعتمد جميع خطوات إيقاف التشغيل بشكل كبير على خادم الإدارة. إذا كان لديك خادم إدارة واحد فقط، ننصحك بتثبيت مكوّن خادم إدارة جديد على مركز بيانات غير dc-1 قبل إيقاف خادم الإدارة على dc-1، والتأكّد من أنّ أحد خوادم الإدارة متاح دائمًا.
  • الموجّه: قبل إيقاف الموجّه نهائيًا، عليك إيقاف إمكانية الوصول إلى الموجّهات عن طريق حظر المنفذ 15999. تأكَّد من عدم توجيه أي زيارات أثناء وقت التشغيل إلى أجهزة التوجيه التي سيتم إيقافها نهائيًا.
  • ‫Cassandra وZooKeeper: توضّح الأقسام أدناه كيفية إيقاف dc-1 في إعداد مركزَي بيانات.

    إذا كان لديك أكثر من مركزَي بيانات، احرص على إزالة جميع الإشارات إلى العُقدة التي سيتم إيقافها نهائيًا (dc-1 في هذه الحالة) من جميع ملفات الإعداد الصامتة في جميع مراكز البيانات المتبقية. بالنسبة إلى عُقد Cassandra التي سيتم إيقافها، يمكنك إزالة هذه المضيفات من CASS_HOSTS. يجب أن تظل عُقد Cassandra المتبقية بالترتيب الأصلي لـ CASS_HOSTS.

  • Postgres: في حال إيقاف Postgres الرئيسي، تأكَّد من ترقية أي من العُقد الاحتياطية المتاحة لتصبح Postgres الرئيسي الجديد. على الرغم من أنّ خادم QPID يحتفظ بمخزن مؤقت في قائمة الانتظار، إذا لم يكن خادم Postgres الرئيسي متاحًا لفترة أطول، قد تفقد بيانات الإحصاءات.

المتطلبات الأساسية

  • قبل إيقاف أي مكوّن نهائيًا، ننصحك بإجراء نسخة احتياطية كاملة من جميع العُقد. استخدِم الإجراء الخاص بإصدار Edge الحالي لإجراء النسخ الاحتياطي. لمزيد من المعلومات حول الاحتفاظ بنسخة احتياطية، يُرجى الاطّلاع على مقالة الاحتفاظ بنسخة احتياطية واستعادة البيانات.

  • تأكَّد من أنّ Edge يعمل قبل إيقافه، وذلك باستخدام الأمر:
    /opt/apigee/apigee-service/bin/apigee-all status
  • تأكَّد من عدم وصول أي زيارات في وقت التشغيل حاليًا إلى مركز البيانات الذي توقفه عن العمل.

ترتيب إيقاف المكوّنات نهائيًا

إذا ثبّت Edge for Private Cloud على عُقد متعددة، عليك إيقاف مكوّنات Edge على هذه العُقد بالترتيب التالي:

  1. واجهة مستخدم Edge الجديدة (edge-management-ui وedge-management-ui-static)
  2. خادم الإدارة (edge-management-server)
  3. Symas LDAP (apigee-openldap)
  4. جهاز التوجيه (جهاز توجيه الحافة)
  5. معالج الرسائل (edge-message-processor)
  6. خادم Qpid وQpidd (edge-qpid-server وapigee-qpidd)
  7. قاعدة بيانات Postgres وPostgreSQL ‏ (edge-postgres-server وapigee-postgresql)
  8. ‫ZooKeeper‏ (apigee-zookeeper)
  9. ‫Cassandra‏ (apigee-cassandra)

توضّح الأقسام التالية كيفية إيقاف كل مكوّن.

واجهة مستخدم Edge الجديدة

لإيقاف وإلغاء تثبيت مكوّنات واجهة مستخدم New Edge الخاصة بـ dc-1، أدخِل الأوامر التالية:

/opt/apigee/apigee-service/bin/apigee-service edge-management-ui stop
/opt/apigee/apigee-service/bin/apigee-service edge-management-ui uninstall
/opt/apigee/apigee-service/bin/apigee-service edge-management-ui-static uninstall

خادم الإدارة

لإيقاف خادم الإدارة على dc-1، اتّبِع الخطوات التالية:

  1. أوقِف خادم الإدارة على dc-1:
    apigee-service edge-management-server stop
  2. ابحث عن المعرّف الفريد العالمي (UUID) لخادم الإدارة المسجَّل في dc-1:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET “http://{MS_IP}:8080/v1/servers?pod=central&region=dc-1&type=management-server”
  3. إلغاء تسجيل نوع الخادم:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=management-server&region=dc-1&pod=central&uuid=UUID&action=remove"
  4. احذف الخادم. ملاحظة: إذا تم تثبيت مكوّنات أخرى أيضًا على هذا الخادم، يجب إلغاء تسجيلها جميعًا أولاً قبل حذف المعرّف الفريد العالمي (UUID).
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/{UUID}
  5. إلغاء تثبيت مكوّن Management Server على dc-1:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall

Symas LDAP

يوضّح هذا القسم كيفية إيقاف SymasLDAP على dc-1.

ملاحظة: إذا كان لديك أكثر من مركزَي بيانات، يُرجى الاطّلاع على عمليات الإعداد التي تتضمّن أكثر من مركزَي بيانات أدناه.

لإيقاف SymasLDAP على dc-1، اتّبِع الخطوات التالية:

  1. احتفِظ بنسخة احتياطية من عقدة dc-1 SymasLDAP باتّباع الخطوات الواردة في كيفية الاحتفاظ بنسخة احتياطية.
  2. يمكنك إيقاف عملية نسخ البيانات بين مركزَي البيانات dc-1 وdc-2 من خلال تنفيذ الخطوات التالية في كلا المركزَين.

    1. التحقّق من الحالة الحالية:
            /opt/symas/bin/ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {credentials} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

      يجب أن يكون الناتج مشابهًا لما يلي:

      olcSyncrepl: {0}rid=001 provider=ldap://{HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={credentials} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1
    2. أنشِئ ملفًا break_repl.ldif يحتوي على الأوامر التالية:
      dn: olcDatabase={2}mdb,cn=config
      changetype: modify
      delete: olcSyncRepl
      
      dn: olcDatabase={2}mdb,cn=config
      changetype: modify
      delete: olcMirrorMode
    3. نفِّذ الأمر ldapmodify:
            /opt/symas/bin/ldapmodify -x -w {credentials} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f path/to/file/break_repl.ldif

      من المفترض أن يكون الناتج مشابهًا لما يلي:

      modifying entry "olcDatabase={2}mdb,cn=config"
      modifying entry "olcDatabase={2}mdb,cn=config"
  3. يمكنك التحقّق من أنّ dc-2 لم يعُد ينسخ البيانات إلى dc-1 من خلال إنشاء إدخال في dc-2 LDAP والتأكّد من عدم ظهوره في LDAP الخاص بـ dc-1.

    يمكنك اختياريًا اتّباع الخطوات أدناه، والتي تنشئ مستخدمًا يملك حق الوصول للقراءة فقط في عقدة dc-2 SymasLDAP، ثم التحقّق مما إذا كان المستخدم قد تم نسخه طبق الأصل أم لا. ويتم حذف المستخدم بعد ذلك.

    1. أنشِئ ملفًا باسم readonly-user.ldif في dc-2 يتضمّن المحتوى التالي:
      dn: uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com
      objectClass: organizationalPerson
      objectClass: person
      objectClass: inetOrgPerson
      objectClass: top
      cn: readonly-user
      sn: readonly-user
      userPassword: {testPassword}
    2. أضِف المستخدم باستخدام الأمر `ldapadd` في dc-2:
      /opt/symas/bin/ldapadd -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" -f path/to/file/readonly-user.ldif

      ستكون النتيجة مشابهة لما يلي:

      adding new entry "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
    3. ابحث عن المستخدم في dc-1 للتأكّد من عدم تكراره. إذا لم يكن المستخدم موجودًا في dc-1، ستتأكد من أنّ كلا خادمَي LDAP لم يعودا يكرران البيانات:
      /opt/symas/bin/ldapsearch -H ldap://{HOST}:{PORT} -x -w {credentials} -D "cn=manager,dc=apigee,dc=com" -b uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com -LLL

      من المفترض أن تكون النتيجة مشابهة لما يلي:

      No such object (32)
      Matched DN: ou=users,ou=global,dc=apigee,dc=com
    4. أزِل المستخدم الذي يملك الإذن بالقراءة فقط والذي أضفته سابقًا:
      /opt/symas/bin/ldapdelete -v -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
  4. أوقِف SymasLDAP في dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  5. ألغِ تثبيت مكوّن SymasLDAP على dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall

جهاز التوجيه

يوضّح هذا القسم كيفية إيقاف جهاز توجيه نهائيًا. يمكنك الاطّلاع على مقالة إزالة خادم لمزيد من التفاصيل حول إزالة جهاز التوجيه.

تؤدي الخطوات التالية إلى إيقاف جهاز التوجيه من dc-1. إذا تم ضبط عُقد Router متعددة في dc-1، نفِّذ الخطوات في جميع عُقد Router واحدة تلو الأخرى

ملاحظة: يُفترض هنا أنّه تم ضبط منفذ فحص السلامة 15999 الخاص بجهاز التوجيه في جهاز موازنة الحمل، وأنّ حظر المنفذ 15999 سيجعل جهاز التوجيه غير متاح. قد تحتاج إلى إذن الوصول إلى الجذر لحظر المنفذ.

لإيقاف جهاز توجيه، اتّبِع الخطوات التالية:

  1. أوقِف إمكانية الوصول إلى أجهزة التوجيه عن طريق حظر المنفذ 15999، وهو منفذ التحقّق من السلامة. تأكَّد من حظر حركة بيانات وقت التشغيل في مركز البيانات هذا:

    iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
  2. تأكَّد من إمكانية الوصول إلى جهاز التوجيه:

    curl -vvv -X GET http://{ROUTER_IP}:15999/v1/servers/self/reachable

    من المفترض أن يكون الناتج مشابهًا لما يلي:

    About to connect() to 10.126.0.160 port 15999 (#0)
    Trying 10.126.0.160...
    Connection refused
    Failed connect to 10.126.0.160:15999; Connection refused
    Closing connection 0
    curl: (7) Failed connect to 10.126.0.160:15999; Connection refused
  3. احصل على المعرّف الفريد العالمي (UUID) لجهاز التوجيه، كما هو موضّح في الحصول على المعرّفات الفريدة العالمية (UUID).
  4. أوقِف جهاز التوجيه باتّباع الخطوات التالية:
    /opt/apigee/apigee-service/bin/apigee-service edge-router stop
  5. أدرِج مجموعات البوابة المتاحة في المؤسسة باستخدام الأمر التالي:
    curl -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"

    يُرجى الاطّلاع على لمحة عن Pods.

  6. إلغاء تسجيل نوع الخادم:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=router&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  7. إلغاء تسجيل الخادم:
    curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. إلغاء تثبيت "edge-router":
    /opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
    يُرجى الاطّلاع على إزالة خادم.
  9. احذف قواعد iptables لتفعيل المنفذ المحظور 15999:
    iptables -F

معالج الرسائل

يصف هذا القسم كيفية إيقاف معالج الرسائل من dc-1. يُرجى الاطّلاع على إزالة خادم لمزيد من التفاصيل حول إزالة معالج الرسائل.

بما أنّنا نفترض أنّ dc-1 يحتوي على تثبيت مجمّع مكوّن من 12 عقدة، هناك عقدتان لمعالج الرسائل تم ضبطهما في dc-1. نفِّذ الأوامر التالية في كلتا العقدتَين.

  1. احصل على المعرّفات الفريدة العالمية (UUID) لمعالِجات الرسائل، كما هو موضّح في الحصول على المعرّفات الفريدة العالمية.
  2. أوقِف معالج الرسائل:
    apigee-service edge-message-processor stop
  3. إلغاء تسجيل نوع الخادم:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  4. إلغاء ربط بيئة بمعالج الرسائل
    curl -H "Content-Type:application/x-www-form-urlencoded" <AdminEmailID>:'<AdminPassword>’  \
    -X POST http://{MS_IP}:8080/v1/organizations/{ORG}/environments/{ENV}/servers \
    -d "action=remove&uuid=UUID"
  5. إلغاء تسجيل نوع الخادم:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  6. إلغاء تثبيت معالج الرسائل:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
  7. إلغاء تسجيل الخادم:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID

خادم Qpid وQpidd

يوضّح هذا القسم كيفية إيقاف Qpid Server ‏ (edge-qpid-server) وQpidd ‏(apigee-qpidd). تم ضبط عقدتَي Qpid في dc-1، لذا عليك اتّباع الخطوات التالية لكلتا العقدتَين:

  1. احصل على المعرّف الفريد العالمي (UUID) الخاص بـ Qpidd، كما هو موضّح في الحصول على المعرّفات الفريدة العالمية (UUID).
  2. إيقاف edge-qpid-server وapigee-qpidd:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  3. الحصول على قائمة بمجموعات "إحصاءات Google" والمستهلكين:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax
  4. إزالة Qpid من مجموعة المستهلكين:
    curl -u <AdminEmailID>:'<AdminPassword>' -H "Content-Type: application/json"  -X DELETE \ "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/consumer-groups/{consumer_group}/consumers/{QPID_UUID}"
  5. إزالة Qpid من مجموعة الإحصاءات:
    curl -v -u <AdminEmailID>:'<AdminPassword>' \
    -X DELETE "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/servers?uuid={QPID_UUID}&type=qpid-server"
  6. ألغِ تسجيل خادم Qpid من تثبيت Edge:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
    -d "type=qpid-server&region=dc-1&pod=central&uuid={QPID_UUID}&action=remove"
  7. أزِل خادم Qpid من عملية تثبيت Edge:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. أعِد تشغيل جميع مكوّنات edge-qpid-server على جميع العُقد للتأكّد من تطبيق التغيير على هذه المكوّنات:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server wait_for_ready
  9. ألغِ تثبيت edge-qpid-server وapigee-qpidd:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    $ /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall

Postgres وPostgresql

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

جارٍ إيقاف Postgres الرئيسي

ملاحظة: في حال إيقاف Postgres الرئيسي، تأكَّد من ترقية أي من العُقد الاحتياطية المتاحة لتصبح Postgres الرئيسي الجديد. بينما تخزّن قوائم انتظار QPID البيانات مؤقتًا، إذا لم يكن Postgres الرئيسي متاحًا لفترة طويلة، قد تفقد بيانات الإحصاءات.

لإيقاف Postgres الرئيسي:

  1. احتفِظ بنسخة احتياطية من العقدة الرئيسية dc-1 Postgres باتّباع التعليمات الواردة في الروابط التالية:
  2. احصل على المعرّفات الفريدة العالمية (UUID) لخوادم Postgres، كما هو موضّح في الحصول على المعرّفات الفريدة العالمية (UUID).
  3. في dc-1، أوقِف edge-postgres-server وapigee-postgresql على الجهاز الرئيسي الحالي:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  4. على العقدة الاحتياطية في dc-2، أدخِل الأمر التالي لجعلها العقدة الرئيسية:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql promote-standby-to-master <IP of OLD Progress master>

    ملاحظة: إذا كان لديك أكثر من عقدة Postgres احتياطية واحدة، يجب إضافة إدخالات المضيف على العقدة الرئيسية الجديدة وتعديل إعدادات النسخ المتماثل لجميع عقد Postgres الاحتياطية المتاحة.

    لإضافة إدخالات المضيف إلى Postgres الرئيسي الجديد: اتّبِع الخطوات الواردة في القسم المناسب أدناه:

    إذا لم يتبقَّ سوى عقدة احتياطية واحدة

    على سبيل المثال، لنفترض أنّه قبل إيقاف التشغيل، تم إعداد ثلاث عُقد Postgres. لقد أوقفت العقدة الرئيسية الحالية ورقّيت إحدى عُقد postgres الاحتياطية المتبقية إلى عقدة رئيسية. اضبط عقدة الاستعداد المتبقية باتّباع الخطوات التالية:

    1. على الخادم الرئيسي الجديد، عدِّل ملف الإعداد لضبط ما يلي:
      PG_MASTER=IP_or_DNS_of_new_PG_MASTER
      PG_STANDBY=IP_or_DNS_of_PG_STANDBY
    2. فعِّل النسخ المتماثل على النسخة الرئيسية الجديدة:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle

    إذا كان هناك أكثر من عقدة احتياطية واحدة متبقية

    1. أضِف الإعدادات التالية في /opt/apigee/customer/application/postgresql.properties:
      conf_pg_hba_replication.connection=host replication apigee standby_1_ip/32 trust \n host replication apigee standby_2_ip/32 trust
    2. تأكَّد من أنّ الملف ‎ /opt/apigee/customer/application/postgresql.properties مملوك لمستخدم apigee:
      chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
    3. إعادة تشغيل apigee-postgresql:
      apigee-service apigee-postgresql restart
    4. لتعديل إعدادات النسخ المتماثل على عقدة احتياطية، اتّبِع الخطوات التالية:

      1. عدِّل ملف الإعداد /opt/silent.conf وعدِّل الحقل PG_MASTER باستخدام عنوان IP الخاص بخادم Postgres الرئيسي الجديد.
      2. أزِل أي بيانات قديمة في Postgres باستخدام الأمر التالي:
        rm -rf /opt/apigee/data/apigee-postgresql/
      3. إعداد النسخ المتماثل على عقدة الاستعداد:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    5. تأكَّد من إعداد خادم Postgres الرئيسي بشكل صحيح من خلال إدخال الأمر التالي في dc-2:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    6. إزالة خوادم Postgresql وإضافتها من مجموعة الإحصاءات ومجموعة المستهلكين
      1. أزِل خادم Postgres القديم من مجموعة الإحصاءات باتّباع التعليمات الواردة في مقالة إزالة خادم Postgres من مجموعة إحصاءات.
      2. أضِف خادم postgres جديدًا إلى مجموعة الإحصاءات باتّباع التعليمات الواردة في إضافة خادم Postgres حالي إلى مجموعة إحصاءات.
    7. ألغِ تسجيل خادم postgres القديم من dc-1:
      curl -u <AdminEmailID>:<AdminPassword> -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server®ion=dc-1&pod=analytics&uuid=UUID&action=remove"
            
    8. احذف خادم postgres القديم من dc-1:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    9. يمكن الآن إيقاف خادم Postgres الرئيسي القديم نهائيًا. إلغاء تثبيت edge-postgres-server وapigee-postgresql:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    إيقاف تشغيل Postgres الاحتياطي

    ملاحظة: يعرض مستند التثبيت المجمّع المكوّن من 12 عقدة عقدة dc-1 postgresql كعقدة رئيسية، ولكن لتسهيل الأمر، يُفترض في هذا القسم أنّ عقدة dc-1 postgresql هي عقدة احتياطية وأنّ عقدة dc-2 postgresql هي عقدة رئيسية.

    لإيقاف Postgres standby، اتّبِع الخطوات التالية:

    1. احصل على المعرّفات الفريدة العالمية (UUID) لخوادم Postgres باتّباع التعليمات الواردة في الحصول على المعرّفات الفريدة العالمية.
    2. أوقِف apigee-postgresql على عقدة الاستعداد الحالية في dc-1:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
    3. إزالة خوادم Postgresql وإضافتها من مجموعة الإحصاءات ومجموعة المستهلكين
      1. أزِل خادم Postgres القديم من مجموعة الإحصاءات باتّباع التعليمات الواردة في مقالة إزالة خادم Postgres من مجموعة إحصاءات.
      2. أضِف خادم postgres جديدًا إلى مجموعة الإحصاءات باتّباع التعليمات الواردة في إضافة خادم Postgres حالي إلى مجموعة إحصاءات.
    4. ألغِ تسجيل خادم postgres القديم من dc-1:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server&region=dc-1&pod=analytics&uuid=UUID&action=remove"
    5. احذف خادم postgres القديم من dc-1:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    6. أصبح من الآمن الآن إيقاف خادم Postgres الرئيسي القديم. إلغاء تثبيت edge-postgres-server وapigee-postgresql:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    ZooKeeper وCassandra

    يوضّح هذا القسم كيفية إيقاف خوادم ZooKeeper وCassandra في عملية إعداد مركزَي بيانات.

    إذا كان لديك أكثر من مركزَي بيانات، احرص على إزالة جميع الإشارات إلى العقدة التي يتم إيقافها نهائيًا (dc-1 في هذه الحالة) من جميع ملفات الإعداد الصامتة في جميع مراكز البيانات المتبقية. بالنسبة إلى عُقد Cassandra التي سيتم إيقافها، يمكنك إزالة هذه المضيفات من CASS_HOSTS. يجب أن تظل عُقد Cassandra المتبقية بالترتيب الأصلي لـ CASS_HOSTS.

    ملاحظة حول ZooKeeper: يجب الحفاظ على نصاب قانوني لعُقد الناخبين أثناء تعديل السمة ZK_HOST في ملف الإعداد، لضمان بقاء مجموعة ZooKeeper تعمل بشكل صحيح. يجب أن يكون لديك عدد فردي من عُقد التصويت في إعداداتك. لمزيد من المعلومات، يُرجى الاطّلاع على مهام صيانة Apache ZooKeeper.

    لإيقاف خوادم ZooKeeper وCassandra:

    1. احتفِظ بنسخة احتياطية من عقدتَي dc-1 Cassandra وZooKeeper باتّباع التعليمات الواردة في الروابط التالية:
    2. أدرِج معرّفات UUID لخوادم ZooKeeper وCassandra في مركز البيانات الذي سيتم إيقاف عُقد Cassandra فيه.

      apigee-adminapi.sh servers list -r dc-1 -p central -t application-datastore --admin <AdminEmailID> --pwd '<AdminPassword>' --host localhost
    3. إلغاء تسجيل نوع الخادم:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MS_IP:8080/v1/servers -d "type=cache-datastore&type=user-settings-datastore&type=scheduler-datastore&type=audit-datastore&type=apimodel-datastore&type=application-datastore&type=edgenotification-datastore&type=identityzone-datastore&type=user-settings-datastore&type=auth-datastore&region=dc-1&pod=central&uuid=UUID&action=remove"
    4. إلغاء تسجيل الخادم:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
    5. عدِّل ملف الإعدادات عن طريق إزالة عناوين IP للعُقد المتوقّفة نهائيًا من ZK_HOSTS وCASS_HOSTS.

      مثال: لنفترض أنّ لديك عناوين IP $IP1 $IP2 $IP3 في dc-1 و$IP4 $IP5 $IP6 في dc-2، وأنّك ستوقف dc-1. بعد ذلك، عليك إزالة عناوين IP‏ $IP1 $IP2 $IP3 من ملفات الإعداد.

      • إدخالات ملف الإعداد الحالي:
        ZK_HOSTS="$IP1 $IP2 $IP3 $IP4 $IP5 $IP6"
        CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1, $IP4:2,1 $IP5:2,1 $IP6:2,1”
      • إدخالات ملف الإعداد الجديدة:
        ZK_HOSTS="$IP4 $IP5 $IP6"
        CASS_HOSTS="$IP4:2,1 $IP5:2,1 $IP6:2,1"
    6. عدِّل ملف الإعداد الصامت (الذي تم تعديله في الخطوة هـ) باستخدام عناوين IP للعُقَد التي تمت إزالتها وإيقاف تشغيلها، ثم شغِّل ملف تعريف خادم الإدارة على جميع العُقَد التي تستضيف خوادم الإدارة:
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
    7. عدِّل ملف الإعداد باستخدام عناوين IP للعُقَد التي تم إيقافها نهائيًا وشغِّل الملف الشخصي لـ MP/RMP على جميع عُقَد "الموجّه" و"معالج الرسائل":
      • إذا تم ضبط Edge Router وMessage Processor على العُقدة نفسها، أدخِل ما يلي:
        /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
      • إذا تم ضبط Edge Router وMessage Processor على عُقد منفصلة، أدخِل ما يلي:

        بالنسبة إلى جهاز التوجيه:

        /opt/apigee/apigee-setup/bin/setup.sh -p r -f updated_config_file

        بالنسبة إلى معالج الرسائل:

        /opt/apigee/apigee-setup/bin/setup.sh -p mp -f updated_config_file
    8. أعِد ضبط جميع عُقد Qpid، مع إزالة عناوين IP للعُقد التي تم إيقافها نهائيًا من ملف الاستجابة:
      /opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
    9. أعِد ضبط جميع عُقَد Postgres، مع إزالة عناوين IP للعُقَد التي تم إيقافها نهائيًا من ملف الاستجابة:
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f updated_config_file
    10. تعديل مساحة المفاتيح system_auth إذا كان مصادقة Cassandra مفعَّلة على عقدة Cassandra حالية، عدِّل عامل النسخ المتماثل لمساحة مفاتيح system_auth من خلال تنفيذ الأمر التالي:
      ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-2': '3'};

      يضبط هذا الأمر عامل النسخ المتماثل على '3'، ما يشير إلى ثلاث عُقد Cassandra في المجموعة. عدِّل هذه القيمة حسب الحاجة.

      بعد إكمال هذه الخطوة، من المفترض ألا تحتوي بنية Cassandra على dc-1 في أي من مساحات المفاتيح.

    11. أوقِف تشغيل عُقد Cassandra على dc-1، واحدة تلو الأخرى.

      لإيقاف عقد Cassandra نهائيًا، أدخِل الأمر التالي:

      /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission
    12. تحقَّق من اتصال عُقد Cassandra من dc-1 باستخدام أحد الأوامر التالية:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'

      أو أمر التحقّق الثانوي الذي سيتم تنفيذه على العقدة المتوقّفة نهائيًا:

      /opt/apigee/apigee-cassandra/bin/nodetool netstats

      من المفترض أن يعرض الأمر أعلاه ما يلي:

      Mode: DECOMMISSIONED
    13. نفِّذ ملف DS الشخصي لجميع عقد Cassandra وZooKeeper في dc-2:
      /opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
    14. إيقاف apigee-cassandra وapigee-zookeeper في dc-1:
      apigee-service apigee-cassandra stop
      apigee-service apigee-zookeeper stop
    15. إلغاء تثبيت apigee-cassandra وapigee-zookeeper في dc-1:
      apigee-service apigee-cassandra uninstall
      apigee-service apigee-zookeeper uninstall

    احذف عمليات الربط من dc-1

    لحذف عمليات الربط من dc-1، اتّبِع الخطوات التالية:

    1. احذف عمليات الربط من dc-1.
      1. أدرِج جميع الحاويات المتاحة ضمن المؤسسة:
        curl -v -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://MS_IP:8080/v1/o/ORG/pods"
      2. للتحقّق مما إذا تمت إزالة جميع عمليات الربط، احصل على معرّفات UUID للخوادم المرتبطة بالمجموعات:
        curl -v -u  <AdminEmailID>:'<AdminPassword>' \
        -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"

        إذا لم يعرض هذا الأمر أي معرّفات UUID، يعني ذلك أنّ الخطوات السابقة قد أزالت جميع عمليات الربط، ويمكنك تخطّي الخطوة التالية. بخلاف ذلك، نفِّذ الخطوة التالية.

      3. أزِل جميع عمليات ربط الخادم لمعرّفات UUID التي تم الحصول عليها في الخطوة السابقة:
        curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
      4. إلغاء ربط المؤسسة بمجموعة الأجهزة:
        curl -v -u  <AdminEmailID>:'<AdminPassword>'  "http://MS_IP:8080/v1/o/ORG/pods" -d "action=remove&region=dc-1&pod=gateway-1" -H "Content-Type: application/x-www-form-urlencoded" -X POST
    2. احذف مجموعات الأجهزة:
      curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
    3. احذف المنطقة.
      curl -v -u <AdminEmailID>:'<AdminPassword>'  "http://MS_IP:8080/v1/regions/dc-1" -X DELETE

    في هذه المرحلة، تكون قد أكملت عملية إيقاف dc-1.

    الملحق

    تحديد المشاكل وحلّها

    إذا كان لا يزال هناك خوادم في بعض المجموعات بعد تنفيذ الخطوات السابقة، يُرجى اتّباع الخطوات التالية لإلغاء تسجيل الخوادم وحذفها. ملاحظة: يمكنك تغيير الأنواع والوحدة حسب الحاجة.

    1. احصل على معرّفات UUID باستخدام الأمر التالي:
      apigee-adminapi.sh servers list -r dc-1 -p POD -t  --admin <AdminEmailID> --pwd  '<AdminPassword>’ --host localhost
    2. إلغاء تسجيل نوع الخادم:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MP_IP:8080/v1/servers -d "type=TYPE=REGION=dc-1&pod=POD&uuid=UUID&action=remove"
    3. احذف الخوادم واحدًا تلو الآخر:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MP_IP:8080/v1/servers/UUID

    التحقق من صحة البيانات

    يمكنك التحقّق من صحة عملية الإيقاف النهائي باستخدام الأوامر التالية.

    خادم الإدارة

    1. نفِّذ الأوامر التالية من خوادم الإدارة في جميع المناطق.
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=central&region=dc-1
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=gateway&region=dc-1
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=analytics&region=dc-1
    2. نفِّذ الأمر التالي على جميع المكوّنات للتحقّق من متطلبات المنافذ لجميع منافذ الإدارة.
      curl -v http://MS_IP:8080/v1/servers/self
    3. اطّلِع على مجموعة الإحصاءات.
      curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/o/ORG/e/ENV/provisioning/axstatus
      curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/analytics/groups/ax
    4. عُقد Cassandra/ZooKeeper

      1. على جميع عُقد Cassandra، أدخِل:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> statusthrift

        سيؤدي ذلك إلى عرض الحالة running أو not running لتلك العقدة المحدّدة.

      2. في عُقدة واحدة، أدخِل ما يلي:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> ring
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> status

        ستعرض الأوامر أعلاه معلومات مركز البيانات النشط.

      3. على عُقد ZooKeeper، أدخِل أولاً:
        echo ruok | nc <host> 2181
        

        يعرض هذا الأمر imok.

        بعد ذلك، أدخِل ما يلي:

        echo stat | nc <host> 2181 | grep Mode
        

        ستكون قيمة Mode التي يعرضها الأمر أعلاه إحدى القيم التالية: observer أو leader أو follower.

      4. في إحدى عُقد ZooKeeper، نفِّذ ما يلي:
        /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt
      5. على العقدة الرئيسية في Postgres، نفِّذ ما يلي:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

        تأكَّد من أنّ الردّ يشير إلى أنّ العقدة هي العقدة الرئيسية.

      6. على العقدة الاحتياطية، نفِّذ ما يلي:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

        تأكَّد من أنّ الردّ يؤكّد أنّ العقدة هي العقدة الاحتياطية.

      7. سجِّل الدخول إلى قاعدة بيانات PostgreSQL باستخدام الأمر التالي:
        psql -h localhost -d apigee -U postgres

        أدخِل كلمة مرور المستخدم postgres (الإعداد التلقائي: postgres) عندما يُطلب منك ذلك.

        بعد ذلك، نفِّذ الاستعلام التالي للتحقّق من الحدّ الأقصى client_received_start_timestamp:

        SELECT max(client_received_start_timestamp) FROM "analytics"."$org.$env.fact" LIMIT 1;

      السجلّات

      راجِع السجلّات في المكوّنات للتأكّد من عدم وجود أخطاء.