يصف هذا القسم مهام الصيانة الدورية لـ Cassandra.
صيانة مكافحة التشويه
تتطلّب عُقد حلقة Apache Cassandra صيانة دورية لضمان الاتساق بين جميع العُقد. لإجراء هذه الصيانة، استخدِم الأمر التالي:
apigee-service apigee-cassandra apigee_repair -pr
تنصح Apigee بما يلي عند تشغيل هذا الأمر:
- تشغيل الأمر على كل عُقدة Cassandra (في جميع المناطق أو مراكز البيانات)
تشغيل الأمر على عُقدة واحدة في كل مرة، لضمان الاتساق بين جميع العُقد في الحلقة يمكن أن يؤدي تشغيل مهام الإصلاح على عُقد متعددة في الوقت نفسه إلى الإضرار بسلامة Cassandra.
لمعرفة ما إذا اكتملت مهمة الإصلاح على عُقدة بنجاح، ابحث في ملف العُقدة
system.logعن إدخال يتضمّن رقم تعريف الجلسة الفريد (UUID) لأحدث جلسة إصلاح والعبارة "session completed successfully". في ما يلي نموذج لإدخال في السجلّ:INFO [AntiEntropySessions:1] 2015-03-01 10:02:56,245 RepairSession.java (line 282) [repair #2e7009b0-c03d-11e4-9012-99a64119c9d8] session completed successfully" Ref: https://support.datastax.com/hc/en-us/articles/204226329-How-to-check-if-a-scheduled-nodetool-repair-ran-successfully
- تشغيل الأداة خلال فترات انخفاض أعباء العمل نسبيًا (تفرض الأداة حملاً كبيرًا على الـ نظام)
- تشغيل الأداة مرة واحدة على الأقل كل سبعة أيام للتخلّص من المشاكل المتعلّقة بعمليات الحذف التي "تم نسيانها" في Cassandra
- تشغيل الأداة على عُقد مختلفة في أيام مختلفة، أو جدولة تشغيلها بحيث تفصل بين تشغيلها على كل عُقدة عدة ساعات
- استخدام الخيار
-pr(نطاق أداة تقسيم البيانات) لتحديد نطاق أداة تقسيم البيانات الأساسية للعُقدة فقط
إذا فعّلت مصادقة JMX لـ Cassandra،
عليك تضمين اسم المستخدم وكلمة المرور عند استدعاء nodetool. على سبيل المثال:
apigee-service apigee-cassandra apigee_repair -u username -pw password -pr
يمكنك أيضًا تشغيل الأمر التالي للتحقّق من الخيارات المتاحة لـ apigee_repair:
apigee-service apigee-cassandra apigee_repair -h
ملاحظة: apigee_repair هي أداة تغليف لـ nodetool repair في Cassandra،
وتُجري عمليات تحقّق إضافية قبل إجراء عملية الإصلاح في Cassandra.
لمزيد من المعلومات، يُرجى الاطّلاع على المَراجع التالية:
صيانة ملفات السجلّ
يتم تخزين سجلّات Cassandra في الدليل /opt/apigee/var/log/apigee-cassandra على
كل عُقدة. تلقائيًا، يمكن إنشاء 50 ملف سجلّ كحد أقصى، ويبلغ الحد الأقصى لحجم كل ملف 20 ميغابايت. وعند بلوغ هذا الحد، يتم حذف السجلّات القديمة عند إنشاء سجلّات أحدث.
إذا تبيّن لك أنّ ملفات سجلّ Cassandra تشغل مساحة كبيرة، يمكنك تعديل الـ مقدار المساحة المخصّصة لملفات السجلّ من خلال تعديل إعدادات log4j.
- عدِّل الملف
/opt/apigee/customer/application/cassandra.propertiesلضبط الخصائص التالية. إذا لم يكن هذا الملف موجودًا، أنشِئه:conf_logback_maxfilesize=20MB # max file size conf_logback_maxbackupindex=50 # max open files
- أعِد تشغيل Cassandra باستخدام الأمر التالي:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
صيانة مساحة القرص
عليك مراقبة استخدام قرص Cassandra بانتظام لضمان توفّر 50% على الأقل من مساحة كل قرص. إذا ارتفع استخدام القرص فوق 50%، ننصحك بإضافة مساحة قرص إضافية لتقليل النسبة المئوية للمساحة المستخدَمة.
تُجري Cassandra تلقائيًا العمليات التالية لتقليل استخدامها لمساحة القرص:
- حذف رموز المصادقة المميّزة عند انتهاء صلاحيتها ومع ذلك، قد يستغرق الأمر بضعة أسابيع لإخلاء مساحة القرص التي كانت تستخدمها الرموز المميّزة، وذلك حسب الإعدادات. إذا لم يكن الحذف التلقائي كافيًا للحفاظ على مساحة قرص كافية، تواصَل مع فريق الدعم للتعرّف على كيفية حذف الرموز المميّزة يدويًا لاسترداد المساحة.
ضغط البيانات: بدءًا من الإصدار 4.51.00 من Edge للسحابة الإلكترونية الخاصة، تُنشئ عمليات التثبيت الجديدة لـ Apigee Cassandra مساحات مفاتيح باستخدام استراتيجية الضغط على مستوى البيانات.
تحتفظ عمليات تثبيت الإصدارات السابقة من Edge للسحابة الإلكترونية الخاصة التي تمّت ترقيتها إلى الإصدار 4.54.00 من Edge للسحابة الإلكترونية الخاصة باستراتيجية الضغط السابقة. إذا كانت استراتيجية الضغط الحالية هي
SizeTieredCompactionStrategy, تنصح Apigee بتغييرها إلىLeveledCompactionStrategy, ما يؤدي إلى تحسين استخدام مساحة القرص. للحصول على التعليمات، يُرجى الاطّلاع على تغيير استراتيجية الضغط في Cassandra.
ملاحظة: عندما تُجري Cassandra عمليات ضغط البيانات، يمكن أن تستغرق قدرًا كبيرًا من دورات وحدة المعالجة المركزية
والذاكرة. ولكن يجب أن يعود استخدام الموارد إلى الوضع الطبيعي بعد اكتمال عمليات الضغط.
يمكنك تشغيل الأمر 'Nodetool compactionstats' على كل عُقدة
لمعرفة ما إذا كانت عملية الضغط قيد التشغيل. تُعلمك نتيجة compactionstats ما إذا كانت هناك عمليات ضغط معلّقة يجب تنفيذها والوقت المقدَّر لإكمالها.