لمحة عن خدمة صيانة حديقة الحيوانات

Edge for Private Cloud، الإصدار 4.17.09

تم تصميم مجموعات ZooKeeper لتعمل، مع عدم فقدان البيانات، على الرغم من فقدان عقدة ZooKeeper واحدة أو أكثر. يمكن استخدام هذه المرونة بفعالية لإجراء الصيانة على عُقد ZooKeeper بدون فترات توقف عن العمل للنظام.

لمحة عن ZooKeeper وEdge

في Edge، تحتوي عُقد ZooKeeper على بيانات تكوين حول موقع وتكوين مكونات Edge المختلفة، وترسل إشعارًا إلى المكونات المختلفة لتغييرات التهيئة. الكل تحديد طوبوغرافية Edge المتوافقة لنظام إنتاج تحديد استخدام ما لا يقل عن ثلاثة ZooKeeper العُقد.

استخدم ZK_HOSTS و خصائص ZK_CLIENT_HOSTS في ملف إعداد Edge لتحديد عُقد ZooKeeper. للاختبار

ZK_HOSTS="$IP1 $IP2 $IP3"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"

حيث:

  • ZK_HOSTS - لتحديد عناوين IP عُقد ZooKeeper. يجب إدراج عناوين IP بالترتيب نفسه في جميع عُقد ZooKeeper.

    في بيئة مركز بيانات متعددة، أدرِج جميع عُقد ZooKeeper من جميع مراكز البيانات.
  • ZK_CLIENT_HOSTS - يحدد عناوين IP من عُقد ZooKeeper التي يستخدمها مركز البيانات فقط. يجب إدراج عناوين IP في ملف بالترتيب نفسه في جميع عُقد ZooKeeper في "مركز البيانات".

    في عملية تثبيت واحدة لمركز البيانات، هذه هي العُقد نفسها المحددة بواسطة ZK_HOSTS. في متعددة مراكز البيانات، فإن ملف تهيئة Edge الخاص بكل مركز بيانات يجب أن يسرد فقط عُقد ZooKeeper لمركز البيانات هذا

يتم تلقائيًا تحديد جميع عُقد ZooKeeper كعُقد لمصوت. وهذا يعني أن النقاط يشاركون جميعًا في اختيار القائد في ZooKeeper. يمكنك تضمين مفتاح تعديل " :observer" مع ZK_HOSTS على إلى أنّ الملاحظة هي عقدة مراقب، وليست مصوت. لا تؤثر عقدة المراقب المشاركة في انتخاب القائد.

عادةً ما تحدد مُعدّل ":observer" عند إنشاء بيانات Edge متعددة المراكز أو عندما يحتوي مركز بيانات واحد على عدد كبير من عُقد ZooKeeper. على سبيل المثال، في إحدى يُعد تثبيت Edge الذي يضم 12 مضيفًا مع مركزي بيانات، ZooKeeper على العقدة 9 في مركز البيانات 2 هو المراقب:

يمكنك بعد ذلك استخدام الإعدادات التالية في ملف الإعداد لمركز البيانات 1:

ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"

وبالنسبة لمركز البيانات

ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer"
ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"

حول القادة والمتابعين والناخبين والمراقبين

في تثبيت ZooKeeper متعدد العُقد، يتم تحديد إحدى العُقد باعتبارها القائد. يتم تحديد جميع عُقد ZooKeeper الأخرى كمتابعين. بينما يمكن أن تحدث القراءات من أي عقدة ZooKeeper، تتم إعادة توجيه جميع طلبات الكتابة إلى المسؤول. على سبيل المثال، ستظهر رسالة جديدة تمت إضافة المعالج إلى Edge. تمت كتابة هذه المعلومات إلى قائد ZooKeeper. جميع المتابعين ثم تكرار البيانات.

في وقت تثبيت Edge، تقوم بتعيين كل عقدة ZooKeeper كمصوت أو مراقب. تشير رسالة الأشكال البيانية يتم بعد ذلك اختيار القائد من قبل جميع عُقد ZooKeeper. المطلب الوحيد لانتخاب هو أنه يجب أن يتوفر نصاب كامل من عُقد الناخبين في ZooKeeper. حاسمة يعني النصاب أن أكثر من نصف جميع عُقد ZooKeeper للناخبين، عبر جميع مراكز البيانات، وظيفي.

وفي حال عدم توفُّر نصاب كامل من عُقد الناخبين، لا يمكن انتخاب قائد. في هذا السيناريو، لا يمكن لـ Zookeeper تقديم الطلبات. وهذا يعني أنه لا يمكنك تقديم طلب إلى إدارة Edge أو معالجة طلبات Management API أو تسجيل الدخول إلى واجهة مستخدم Edge حتى تتم استعادة النصاب.

على سبيل المثال، في عملية تثبيت واحدة لمركز بيانات:

  • لقد ثبَّت ثلاثة عُقد في ZooKeeper
  • جميع عُقد ZooKeeper هي مصوتون
  • يتكوّن النصاب من عقدتَين نشطتَين للتصويت
  • في حال توفر عقدة واحدة فقط للناخبين، لا يمكن أن تعمل مجموعة ZooKeeper

في عملية تثبيت باستخدام مركزَي بيانات:

  • لقد ثبّت ثلاثة عُقد ZooKeeper لكل مركز بيانات، بإجمالي ست عُقد
  • يحتوي مركز البيانات 1 على ثلاث عقد للناخبين
  • يحتوي مركز البيانات 2 على نقطتين للمصوتين وعقدة مراقب واحدة
  • يستند النصاب إلى الناخبين الخمسة في كلا مركزَي البيانات، وبالتالي ثلاث نقاط ناخبة عاملة
  • في حال توفُّر عقدتين فقط أو أقل، لن تتمكّن مجموعة ZooKeeper من الوظيفة

إضافة عقد كمُصوِّتين أو المراقبون

قد تتطلب متطلبات النظام إضافة عُقد ZooKeeper إضافية إلى جهاز Edge التثبيت. تعمل إضافة ZooKeeper العقد كيفية إضافة عُقد ZooKeeper إضافية إلى Edge. عند الإضافة عُقد ZooKeeper، يجب مراعاة نوع العُقد المراد إضافتها: الناخب أو المراقب.

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

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

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

في مركز بيانات واحد، تقترح Apigee ألا يكون لديك أكثر من خمسة ناخبين بغض النظر عن عدد عُقد المراقب. في مركزَي بيانات، تنصح Apigee بعدم توفُّر المزيد من من تسعة ناخبين (خمسة في مركز بيانات واحد وأربعة أصوات في الآخر). يمكنك بعد ذلك إضافة أكبر عدد عقد المراقب حسب الضرورة لتلبية متطلبات النظام.

اعتبارات الصيانة

يمكن تنفيذ صيانة حديقة ZooKeeper على مجموعة تعمل بكامل طاقتها بدون توقف عن العمل على عقدة واحدة في المرة الواحدة. من خلال التأكد من إيقاف عقدة ZooKeeper واحدة فقط يمكنك التأكد في أي وقت من وجود نصاب كامل من عُقد الناخبين المتاحة لانتخاب أو قائد.

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

عند العمل مع مراكز بيانات متعددة، تذكر أن مجموعة ZooKeeper لا التمييز بين مراكز البيانات. تعرض تجميعات ZooKeeper جميع عُقد ZooKeeper في جميع مراكز البيانات كمجموعة واحدة.

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

الآثار المترتبة على الصيانة

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

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

إجراء الصيانة

يجب عدم مراعاة إجراء أي إجراءات صيانة إلا بعد التأكد من أن تطبيق ZooKeeper مجموعة المشروع الفعالة. يفترض هذا أن نقاط المراقب وظيفية وأن هناك ما يكفي عقد الناخبين المتاحة أثناء الصيانة للحفاظ على النص البرمجي.

عند استيفاء هذه الشروط، يمكن أن تتحمّل مجموعة ZooKeeper ذات الحجم العشوائي من فقدان عقدة واحدة في أي وقت بدون فقدان البيانات أو التأثير الهادف على الأداء. هذا النمط تعني أن لديك حرية إجراء الصيانة على أي جزء في المجموعة طالما أنها في جزء واحد العقدة في المرة الواحدة.

كجزء من إجراء الصيانة، استخدم الإجراءات التالية لتحديد نوع عقدة ZooKeeper (قائد أو ناخب أو مراقب):

  1. إذا لم يكن مثبّتًا في عقدة ZooKeeper، ثبّت nc:
    > sudo yum install nc
  2. نفِّذ الأمر nc التالي على العقدة:
    . > إحصاءات الصدى | مضيف محلي في NC 2181

    حيث 2181 هو منفذ ZooKeeper. من المفترض أن تظهر لك نتيجة في النموذج:
    إصدار Zookeeper: 3.4.5-1392090، تاريخ الإنشاء: 30/09/2012 الساعة 17:52 بتوقيت غرينيتش
    العملاء: /a.b.c.d:xxxx[0](كيued=0,recved=1,sent=0)
    الحد الأدنى لوقت الاستجابة/المتوسط/الأقصى: 0/0/0
    تاريخ الاستلام:
    1 تمّ إرسال
    0 الروابط: 1
    مميز: 0
    Zxid: 0xc00000044
    الوضع: متابع
    عدد العُقد: 653


    في سطر الوضع للمخرج بالنسبة إلى العُقد، يجب أن يظهر لك مراقب أو قائد أو متابع (أي ناخب غير قائدًا) بناءً على تهيئة العقدة.

    ملاحظة: في عملية تثبيت مستقلة لـ Edge باستخدام عقدة ZooKeeper واحدة، تم ضبط الوضع على مستقل.
  3. كرِّر الخطوتين 1 و2 في كل عقدة ZooKeeper.

ملخّص

أفضل طريقة لإجراء الصيانة على مجموعة ZooKeeper هي تنفيذها مرة واحدة في الوقت. تذكير:

  • يجب الحفاظ على اكتمال النصاب في عُقد الناخبين أثناء الصيانة لضمان سياسة ZooKeeper المجموعة تحافظ على النشاط
  • لا يؤثر حذف نقطة الرصد في النصاب أو القدرة على اختيار القائد
  • يتم احتساب النصاب على جميع عُقد ZooKeeper في جميع مراكز البيانات
  • متابعة أعمال الصيانة للخادم التالي بعد تشغيل الخادم السابق
  • استخدام الأمر nc لفحص عقدة ZooKeeper