إضافة دعم رف Cassandra

يقدم هذا القسم إرشادات عامة لتوسيع نطاق عمليات كاساندرا من خلال إعداد كاساندرا على Apigee Edge for Private Cloud.

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

ما هو الرف؟

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

تستخدم الأمثلة في هذا القسم ثلاثة رفوف كاساندرا، وهي عدد الرفوف التي مدعومة من 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 في أرفف منفصلة بحيث تتم جميع العمليات يتم إرسالها إلى العُقد المماثلة في مجموعات منطقية منفصلة داخل الحلقة.

لتخصيص عُقد Cassandra في رفوف مختلفة أثناء عملية التثبيت:

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

    أنشئ الملف إذا لم يكن متوفرًا واحرص على إنشاء "apigee". المستخدم مالكًا.

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

    القيمة التلقائية هي حلقة كاساندرا ثلاثية العُقد مع تعيين كل عقدة للرف 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. احفظ التغييرات التي أجريتها على ملف الإعداد ونفِّذ الأمر التالي لتثبيتها. "كاساندرا" مع الإعدادات المعدّلة:
    /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. لمزيد من المعلومات، يُرجى مراجعة استخدام أداة العقدة لإدارة عُقد المجموعة.

تركيب حلقة من ست عُقد

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

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

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

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

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

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 على العقدة السابعة (الجهاز الثاني في طلب تثبيت كاساندرا).