لمحة عن عامل التشغيل المضاعَف وكاساندرا

Edge for Private Cloud‏ 4.17.01

لمحة عن عامل تكرار Cassandra

تخزِّن Cassandra نُسخًا من البيانات على عدة عقد لضمان الموثوقية وإمكانية الاحتمال في حال حدوث خطأ. تحدِّد استراتيجية النسخ لكل مساحة مفاتيح Edge العقد التي يتم فيها وضع النُسخ المطابقة.

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

في نظام الإنتاج الذي يتضمّن ثلاث عقد أو أكثر من عقد Cassandra في كل مركز بيانات، يكون عامل النسخ التلقائي لمساحة مفاتيح Edge هو ثلاثة. كقاعدة عامة، يجب ألا يتجاوز عامل النسخ عدد عقد Cassandra في المجموعة.

اتّبِع الإجراء التالي لعرض مخطّط Cassandra الذي يعرض عامل النسخ لكل مساحة مفاتيح Edge:

  1. سجِّل الدخول إلى عقدة Cassandra.
  2. نفِّذ الأمر التالي:
    > /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"

    حيث يحلّ $(hostname -i) عنوان IP الخاص بعقدة Cassandra. أو يمكنك استبدال $(hostname -i) بعنوان IP للعقدة.

لكل مساحة مفاتيح، ستظهر لك النتائج على النحو التالي:

create keyspace kms
  with placement_strategy = 'NetworkTopologyStrategy'
  and strategy_options = {dc-1 : 3}
  and durable_writes = true;

يمكنك ملاحظة أنّ عامل التكرار التلقائي لمساحة مفاتيح kms هو ثلاثة لعمليات التثبيت التي تتضمّن ثلاث عقد من Cassandra في مركز البيانات 1، dc-1.

إذا أضفت عُقدًا إضافية من Cassandra إلى المجموعة، لن يتأثر عامل النسخ التلقائي.

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

حول مستوى اتساق كاساندرا

يتم تعريف مستوى اتّساق Cassandra على أنّه الحد الأدنى لعدد عُقد Cassandra التي يجب أن تقبل عملية قراءة أو كتابة لكي يتم اعتبار العملية ناجحة. يمكن تخصيص مستويات اتساق مختلفة لمساحات مفاتيح Edge مختلفة.

عند الاتصال بخدمة Cassandra لإجراء عمليات القراءة والكتابة، تستخدم عادةً وحدات إدارة "معالج الرسائل" وخادمات Cassandra قيمة Cassandra‏ LOCAL_QUORUM لتحديد مستوى الاتساق لمساحة المفاتيح. ومع ذلك، تمّ تحديد بعض مساحات المفاتيح لاستخدام مستوى اتساق واحد.

يتم احتساب قيمة LOCAL_QUORUM لمركز بيانات على النحو التالي:

LOCAL_QUORUM = (replication_factor/2) + 1 

كما هو موضّح أعلاه، يكون عامل النسخ التلقائي لبيئة الإنتاج في Edge التي تتضمّن ثلاث عقد Cassandra هو ثلاثة. وبالتالي، تكون القيمة التلقائية لمَعلمة LOCAL_QUORUM هي (3/2) +1 = 2 (يتم تقريب القيمة إلى عدد صحيح).

عند ضبط LOCAL_QUORUM على 2، يجب أن تستجيب اثنتان على الأقل من عقد Cassandra الثلاث في مركز البيانات لعملية قراءة/كتابة لكي تنجح العملية. بالنسبة إلى مجموعة Cassandra التي تتألف من ثلاث عقد، يمكن للمجموعة تحمل تعطُّل عقدة واحدة لكل مركز بيانات.

من خلال تحديد مستوى الاتساق على أنّه LOCAL_QUORUM، يتجنب Edge وقت الاستجابة المطلوب من خلال التحقّق من العمليات في مراكز بيانات متعددة. إذا كانت مساحة المفاتيح تستخدم قيمة QUORUM في Cassandra كمستوى الاتساق، يجب التحقّق من عمليات القراءة/الكتابة في جميع مراكز البيانات.

للاطّلاع على مستوى الاتساق المستخدَم في عقد "معالج رسائل Edge" أو "خادم الإدارة":

  1. سجِّل الدخول إلى عقدة Message Processor.
  2. انتقِل إلى الدليل ‎ /opt/apigee/edge-message-processor/conf:
    > cd /opt/apigee/edge-message-processor/conf
  3. لضمان اتساق عمليات الكتابة:
    > grep -ri "write.consistencylevel" *
  4. للحفاظ على اتساق القراءة:
    > grep -ri "read.consistencylevel" *
  5. سجِّل الدخول إلى عقدة "خادم الإدارة".
  6. انتقِل إلى الدليل ‎ /opt/apigee/edge-management-server/conf:
    > cd /opt/apigee/edge-management-server/conf
  7. كرِّر الخطوتين 3 و4.

إذا أضفت عُقد Cassandra إضافية إلى المجموعة، فلن يتأثر مستوى الاتساق.