إضافة دعم رف Cassandra

يقدّم هذا القسم إرشادات عامة حول عمليات توسيع نطاق Cassandra من خلال تعريف Cassandra on Apigee Edge على برنامج Private Cloud rack.

لمزيد من المعلومات حول سبب أهمية جعل حامل حلقة Cassandra الخاص بك مهمًا، اطلع على الموارد التالية:

ما هو الرف؟

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

تستخدم الأمثلة في هذا القسم ثلاثة رفوف Cassandra، وهو عدد الرفوف التي تدعمها Apigee في طوبولوجيات الإنتاج.

يفترض التثبيت الافتراضي لـ Cassandra في Apigee Edge for Private Cloud رفًا منطقيًا واحدًا ويضع جميع العُقد في مركز بيانات داخله. على الرغم من سهولة تثبيت هذه التهيئة وإدارتها، إلا أنها تكون عرضة للفشل إذا فشلت أي عملية على إحدى هذه النقاط.

تُظهر الصورة التالية التكوين الافتراضي لحلقة Cassandra:

رف واحد يحتوي على 3 عُقد
(الشكل 1) الضبط التلقائي: جميع العُقد على رف واحد

في تكوينات أكثر قوة، سيتم تعيين كل عقدة إلى رف منفصل وسيتم تنفيذ العمليات أيضًا على النسخ المتماثلة في كل من هذه الأرفف.

تُظهر الصورة التالية حلقة من 3 عُقد. توضح هذه الصورة ترتيب تكرار العمليات عبر الحلقة (في اتجاه عقارب الساعة) وتبرز حقيقة عدم وجود عُقدتين في نفس الرف:

3 رفوف مع عقدة واحدة في كل رف
(الشكل 2) الضبط الواعي بالرف: ثلاث عُقد، واحدة على كل رف

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

إضافة الوعي بالرف (مع 3 عُقد)

تحتوي جميع مخططات التثبيت في Apigee Edge for Private Cloud على ثلاث عُقد على الأقل من نوع Cassandra، ويشير هذا القسم إلى "IP1" و"IP2" و "IP3". بشكل افتراضي، توجد كل عقدة من هذه العقد في نفس الرف، "ra-1".

يصف هذا القسم كيفية تعيين عقد Cassandra لرفوف منفصلة بحيث يتم إرسال جميع العمليات إلى العقد المماثلة في مجموعات منطقية منفصلة داخل الحلقة.

لإسناد عُقد "كاساندرا" إلى رفوف مختلفة أثناء التركيب:

  1. قبل تشغيل أداة التثبيت، سجِّل الدخول إلى عقدة Cassandra وافتح ملف الإعداد الصامت التالي لإجراء التعديل:
    /opt/silent.conf

    أنشئ الملف إذا لم يكن موجودًا وتأكد من جعل مستخدم "الملف الشخصي" مالكًا.

  2. عدِّل السمة CASS_HOSTS، وهي قائمة بعناوين IP مفصولة بمسافات (ليست إدخالات نظام أسماء النطاقات أو اسم المضيف) تستخدم البنية التالية:
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    القيمة التلقائية هي حلقة Cassandra المكونة من ثلاث عُقد مع تخصيص كل عقدة للرف 1 ومركز البيانات 1، كما هو موضّح في المثال التالي:

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. غيِّر ترتيبات الرفوف بحيث يتم تعيين العقدة 2 إلى الرف 2 والعقدة 3 على الرف 3، كما هو موضّح في المثال التالي:
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    عند تغيير ترتيبات الأرفف، يمكنك أن تطلب من "كاساندرا" إنشاء مجموعتَين منطقيتَين إضافيتَين (الرفوف)، حيث ستوفّران بعد ذلك نُسخًا طبق الأصل تتلقّى جميع العمليات التي تلقّتها العقدة الأولى.

    لمزيد من المعلومات حول استخدام خاصية الإعداد CASS_HOSTS، يمكنك الاطّلاع على مرجع ملف ضبط الحافة.

  4. احفظ التغييرات التي أجريتها على ملف الإعداد ونفِّذ الأمر التالي لتثبيت Cassandra باستخدام الإعدادات المعدَّلة:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    مثال:

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. كرِّر هذا الإجراء لكل عقدة Cassandra في الحلقة، بالترتيب الذي يتم تخصيص العُقد به في السمة CASS_HOSTS. في هذه الحالة، يجب تثبيت Cassandra بالترتيب التالي:
    1. العقدة 1 (IP1)
    2. العقدة 2 (IP2)
    3. العقدة 3 (IP3)

بعد التثبيت، يجب عليك التحقُّق من إعداد Cassandra.

التحقّق من إعدادات Cassandra

بعد تثبيت إعداد Cassandra المخصَّص للحوامل، يمكنك التأكّد من أنّ العُقد قد تم تخصيصها لرفوف مختلفة باستخدام الأمر nodetool status على النحو الموضّح في المثال التالي:

/opt/apigee/apigee-cassandra/bin/nodetool status

(يمكنك تنفيذ هذا الأمر على إحدى عُقد Cassandra.)

من المفترض أن تبدو النتائج مشابهة لما يلي، حيث يعرض عمود Rack معرّفات الرفوف المختلفة لكل عقدة:

Datacenter: dc-1
========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address         Load       Tokens  Owns    Host ID                             Rack
UN  IP1   737 MB  256     ?     554d4498-e683-4a53-b0a5-e37a9731bc5c     ra-1
UN  IP2   744 MB  256     ?     cf8b7abf-5c5c-4361-9c2f-59e988d52da3     ra-2
UN  IP3   723 MB  256     ?     48e0384d-738f-4589-aa3a-08dc5bd5a736     ra-3

إذا فعّلت مصادقة JMX لـ Cassandra، يجب أيضًا إدخال اسم المستخدم وكلمة المرور إلى nodetool. لمزيد من المعلومات، راجِع استخدامNodetool لإدارة عُقد المجموعة.

تثبيت حلقة مكوَّنة من ست عُقد

لمزيد من التكرار، يمكنك توسيع حلقة Cassandra إلى ست عُقد. في هذه الحالة، تقوم بتعيين عُقدتين لكل رف من الرفوف الثلاثة. تتطلب هذه التهيئة ثلاث عُقد إضافية: العقدة 4 (IP4) والعقدة 5 (IP5) والعقدة 6 (IP6).

توضح الصورة التالية ترتيب تكرار العمليات عبر الحلقة (في اتجاه عقارب الساعة) وتبرز حقيقة أنه أثناء النسخ المماثل، لا توجد عقدتان متجاورتان في نفس الرف:

3 رفوف مع عُقدتَين في كل رف
(الشكل 3) حلقة كاساندرا المكوَّنة من 6 عُقد: عُقدتان على كل رف من الأرفف الثلاثة

في هذه التهيئة، يكون لكل عقدة نسختين مكررتين: واحدة في كل من الرفين الآخرين. على سبيل المثال، العقدة 1 في الرف 1 لها نسخة مطابقة في الرف 2 والرف 3. يتم أيضًا إرسال العمليات المرسلة إلى العقدة 1 إلى النسخ المتماثلة في الرفوف الأخرى، بترتيب في اتجاه عقارب الساعة.

لتوسيع حلقة Cassandra الثلاثية إلى حلقة Cassandra ذات الست عُقد، اضبط العُقد بالطريقة التالية في ملف الإعداد الصامت:

CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"

كما هو الحال مع الحلقة المكوَّنة من ثلاث عُقد، يجب تثبيت Cassandra بالترتيب نفسه الذي تظهر به العُقد في السمة CASS_HOSTS:

  1. العقدة 1 (IP1)
  2. العقدة 4 (IP4)*
  3. العقدة 2 (IP2)
  4. العقدة 5 (IP5)
  5. العقدة 3 (IP3)
  6. العقدة 6 (IP6)

* أجرِ التغييرات في ملف الإعداد الصامت قبل تشغيل أداة الإعداد على العقدة الرابعة (الجهاز الثاني في طلب تثبيت Cassandra).

التوسيع إلى 12 عُقدة

لزيادة قبول الأخطاء والتوافر بشكل أكبر، يمكنك زيادة عدد عُقد كاساندرا في الحلقة من ست إلى 12. يتطلب هذا الإعداد ست عُقد إضافية (من IP7 إلى IP12).

توضح الصورة التالية ترتيب تكرار العمليات عبر الحلقة (في اتجاه عقارب الساعة) وتبرز حقيقة أنه أثناء النسخ المماثل، لا توجد عقدتان متجاورتان في نفس الرف:

3 رف يحتوي كل رف على 4 عُقد
(الشكل 4) حلقة كاساندرا المكونة من 12 عقدة: أربع عُقد على كل رف من الحوامل الثلاثة

يشبه إجراء تثبيت حلقة مكوَّنة من 12 عقدة تثبيت حلقة مكوّنة من ثلاث عُقد أو ست عُقد: اضبط CASS_HOSTS على القيم المحدّدة وشغِّل أداة التثبيت بالترتيب المحدَّد.

للتوسيع إلى حلقة Cassandra المكونة من 12 عقدة، اضبط العُقد بالطريقة التالية في ملف الإعداد الصامت:

CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"

كما هو الحال مع حلقات ثلاثية وست عُقد، يجب تنفيذ أداة التثبيت على العُقد بالترتيب الذي تظهر به في ملف الإعداد:

  1. العقدة 1 (IP1)
  2. العقدة 7 (IP7)*
  3. العقدة 4 (IP4)
  4. العقدة 8 (IP8)
  5. العقدة 2 (IP2)
  6. العقدة 9 (IP9)
  7. العقدة 5 (IP5)
  8. العقدة 10 (IP10)
  9. العقدة 3 (IP3)
  10. العقدة 11 (IP11)
  11. العقدة 6 (IP6)
  12. العقدة 12 (IP12)

* يجب إجراء هذه التغييرات قبل تثبيت Apigee Edge for Private Cloud على العقدة السابعة (الجهاز الثاني في طلب تثبيت Cassandra).