يقدّم هذا القسم إرشادات عامة حول عمليات توسيع نطاق Cassandra من خلال جعل Cassandra على Apigee Edge for Private Cloud مدركًا للرفوف.
لمزيد من المعلومات حول أهمية جعل حلقة Cassandra مدركة للرفوف، يُرجى الاطّلاع على المراجع التالية:
- النسخ المتماثل (مستندات Cassandra)
- Cassandra Architecture & Replication Factor Strategy
ما هو الرف؟
رف Cassandra هو تجميع منطقي لعُقد Cassandra داخل الحلقة. تستخدم Cassandra الرفوف لضمان توزيع النُسخ المتماثلة بين مجموعات منطقية مختلفة. ونتيجةً لذلك، يتم إرسال العمليات إلى عُقد متعددة، وليس إلى عقدة واحدة فقط، وكل عقدة على رف منفصل، ما يوفر قدرة أكبر على تحمّل الأخطاء وتوفير البيانات.
تستخدم الأمثلة في هذا القسم ثلاثة رفوف Cassandra، وهو عدد الرفوف التي تتيحها Apigee في مخططات الإنتاج.
يفترض التثبيت التلقائي لـ Cassandra في Apigee Edge for Private Cloud وجود رف منطقي واحد ويضع جميع العُقد في مركز بيانات داخله. على الرغم من أنّ هذه الإعدادات سهلة التثبيت والإدارة، إلا أنّها عرضة للفشل في حال تعذّر تنفيذ عملية على إحدى هذه العُقد.
تعرض الصورة التالية الإعدادات التلقائية لحلقة Cassandra:
في الإعدادات الأكثر قوة، يتم تعيين كل عقدة إلى رف منفصل، ويتم تنفيذ العمليات أيضًا على النُسخ المتماثلة في كل من هذه الرفوف.
تعرض الصورة التالية حلقة من 3 عُقد. توضّح هذه الصورة الترتيب الذي يتم به نسخ العمليات عبر الحلقة (في اتجاه عقارب الساعة) وتسلّط الضوء على حقيقة أنه لا توجد عقدتان على نفس الرف:
في هذه الإعدادات، يتم إرسال العمليات إلى عقدة ولكن يتم إرسالها أيضًا إلى نُسخ طبق الأصل من تلك العقدة على رفوف أخرى (بترتيب اتجاه عقارب الساعة).
إضافة ميزة "الوعي بالرفوف" (مع 3 عُقد)
تحتوي جميع مخططات التثبيت في بيئة الإنتاج في Apigee Edge for Private Cloud على ثلاث عُقد Cassandra على الأقل، والتي يشير إليها هذا القسم باسم "IP1" و"IP2" و "IP3". بشكل تلقائي، تكون كل عقدة من هذه العقد في الرف نفسه، "ra-1".
يوضّح هذا القسم كيفية تعيين عُقد Cassandra إلى رفوف منفصلة بحيث يتم إرسال جميع العمليات إلى عُقد النسخ المتماثل في مجموعات منطقية منفصلة داخل الحلقة.
لتعيين عُقد Cassandra إلى رفوف مختلفة أثناء التثبيت:
- قبل تشغيل أداة التثبيت، سجِّل الدخول إلى عقدة Cassandra وافتح
ملف الإعداد الصامت التالي لتعديله:
/opt/silent.conf
أنشئ الملف إذا لم يكن متوفّرًا وتأكَّد من جعل مستخدم "apigee" مالكًا.
- عدِّل السمة
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"
- غيِّر تعيينات الرفوف بحيث يتم تعيين العقدة 2 إلى الرف 2 ويتم تعيين العقدة 3 إلى الرف 3، كما يوضّح المثال التالي:
CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"
من خلال تغيير عمليات تخصيص الرفوف، يمكنك توجيه Cassandra لإنشاء مجموعتين منطقيتين إضافيتين (رفوف)، والتي توفر بعد ذلك نُسخًا متماثلة تتلقى جميع العمليات التي تتلقاها العقدة الأولى.
لمزيد من المعلومات حول استخدام سمة الإعداد
CASS_HOSTS، يُرجى الاطّلاع على مرجع ملف إعداد Edge. - احفظ التغييرات في ملف الإعداد ونفِّذ الأمر التالي لتثبيت
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
- كرِّر هذا الإجراء لكل عقدة Cassandra في الحلقة، بالترتيب الذي يتم به تعيين العُقد في السمة
CASS_HOSTS. في هذه الحالة، يجب تثبيت Cassandra بالترتيب التالي:- العقدة 1 (IP1)
- العقدة 2 (IP2)
- العقدة 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).
توضّح الصورة التالية الترتيب الذي يتم من خلاله نسخ العمليات عبر الحلقة (في اتجاه عقارب الساعة) وتسلّط الضوء على حقيقة أنّه أثناء النسخ المتماثل، لا توجد عقدتان متجاورتان على الرف نفسه:
في هذه الإعدادات، تحتوي كل عقدة على نسختين متماثلتين إضافيتين: واحدة في كل من الرفين الآخرين. على سبيل المثال، يحتوي العقدة 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 (IP1)
- العقدة 4 (IP4)*
- العقدة 2 (IP2)
- Node 5 (IP5)
- العقدة 3 (IP3)
- Node 6 (IP6)
* عليك إجراء التغييرات في ملف الإعداد الصامت قبل تشغيل أداة الإعداد على العقدة الرابعة (الجهاز الثاني في ترتيب تثبيت Cassandra).
التوسيع إلى 12 عقدة
To further increase fault tolerance and availability, you can increase the number of Cassandra nodes in the ring from six to 12. تتطلب هذه الإعدادات ست عُقد إضافية (من IP7 إلى IP12).
توضّح الصورة التالية الترتيب الذي يتم من خلاله نسخ العمليات عبر الحلقة (في اتجاه عقارب الساعة) وتسلّط الضوء على حقيقة أنّه أثناء النسخ المتماثل، لا توجد عقدتان متجاورتان على الرف نفسه:
إنّ إجراء تثبيت حلقة من 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 (IP1)
- Node 7 (IP7)*
- Node 4 (IP4)
- العقدة 8 (IP8)
- العقدة 2 (IP2)
- Node 9 (IP9)
- العقدة 5 (IP5)
- Node 10 (IP10)
- العقدة 3 (IP3)
- Node 11 (IP11)
- Node 6 (IP6)
- Node 12 (IP12)
* يجب إجراء هذه التغييرات قبل تثبيت Apigee Edge for Private Cloud على العقدة السابعة (الجهاز الثاني في ترتيب تثبيت Cassandra).