أسطورة لوحة معلومات PMM لـ Galera IST
إذا كنت تستخدم Percona المراقبة والإدارة (PMM) لمراقبة مجموعة Galera على MariaDB، فمن المحتمل أنك لاحظت لوحة تحمل اسم "تقدم IST" أو "استقبال IST". يعرض... لا شيء. الأسطر الفارغة، قيم N/A، الرسوم البيانية المسطحة.
هذا ليس خطأ في العرض. المتغيرات التي تستعلم عنها PMM ببساطة غير موجودة في MariaDB 10.6.
تذكير: IST مقابل SST
عندما تنضم عقدة Galera إلى المجموعة بعد انقطاع الاتصال، فمن الممكن وجود آليتين للمزامنة:
- SST (نقل لقطة الحالة): ترسل العقدة المانحة نسخة كاملة من مجموعة البيانات. بطيئة، ومكلفة، ومن المحتمل أن تغلق المتبرع. نحن نتحدث عن دقائق إلى ساعات حسب الحجم.
- IST (نقل الحالة التزايدي): يرسل المانح فقط مجموعات الكتابة المفقودة من GCache. سريع وخفيف من ثواني إلى دقائق.
الفرق حاسم في الإنتاج. يكون IST لمدة 20 ثانية غير مرئي للمستخدمين. يمكن أن تتسبب طائرة SST لمدة 45 دقيقة في وقوع حادث.
الاختبار: MariaDB 10.6.23 + sysbench
لتوثيق السلوك الفعلي، قمنا بتثبيت مجموعة Galera ثلاثية العقد على MariaDB 10.6.23 وقمنا بتشغيل تحميل sysbench المستمر:
sysbench oltp_read_write --tables=10 --table-size=100000 \
--threads=16 --time=600 --db-driver=mysql run
أثناء الشحن، قمنا بإغلاق العقدة 3 لمدة 30 ثانية ثم قمنا بإعادة التشغيل. النتيجة:
- 188,516 مجموعة كتابة متراكمة في GCache الخاص بالمتبرع
- انضمت العقدة 3 إلى المجموعة عبر IST خلال 20-25 ثانية
- عدم انقطاع الخدمة على العقدتين 1 و 2
يؤكد السجل MariaDB للعقدة 3:
[Note] WSREP: Receiving IST: 188516 writesets, seqnos 1045632-1234148
[Note] WSREP: IST received: 85a4c3e2-xxxx
[Note] WSREP: 3.0 (node3): State transfer from 0.0 (node1) complete.
عملت IST بشكل مثالي. الآن دعونا نرى ما يقوله PMM حول هذا الموضوع.
ما الذي تحاول PMM قراءته
تستعلم لوحة المعلومات PMM v2 Galera عن المتغيرات التالية لتتبع تقدم IST:
SHOW GLOBAL STATUS LIKE 'wsrep_ist_receive_seqno_start';
SHOW GLOBAL STATUS LIKE 'wsrep_ist_receive_seqno_current';
SHOW GLOBAL STATUS LIKE 'wsrep_ist_receive_seqno_end';
في MariaDB 10.6.23، تعرض هذه الاستعلامات الثلاثة نتائج فارغة. المتغيرات غير موجودة.
MariaDB [(none)]> SHOW GLOBAL STATUS LIKE 'wsrep_ist%';
Empty set (0.001 sec)
هذا ليس إغفال التكوين. هذه المتغيرات خاصة بـ Percona XtraDB Cluster (PXC) ولم يتم تنفيذها مطلقًا في موفر Galera لـ MariaDB.
فخ غلاف SST
هناك تفاصيل إضافية تثير الارتباك: حتى أثناء IST، يستدعي MariaDB البرنامج النصي المجمّع SST (wsrep_sst_mariabackup أو wsrep_sst_rsync). لذلك يحتوي السجل على أسطر مثل:
WSREP: Running: 'wsrep_sst_mariabackup --role donor ...'
يمكن للمشغل الذي يقرأ هذه السجلات أن يستنتج أن SST الكامل قيد التقدم. في الواقع، يبدأ برنامج التضمين في التهيئة ثم يكتشف أن IST ستتم عملية اللحاق. النقل الفعلي هو تزايدي.
كيفية اكتشاف الأمراض المنقولة بالاتصال الجنسي على MariaDB
وبما أن متغيرات PMM غير موجودة، فلا بد من اتباع نهج بديل. ثلاث طرق:
1. تحليل سجل MariaDB
توقيع IST في السجل لا لبس فيه:
[Note] WSREP: Receiving IST: <N> writesets, seqnos <start>-<end>
يعطي grep البسيط في سجل الأخطاء الإجابة على الفور. هذه هي الطريقة الأكثر موثوقية.
2. لاحظ wsrep_local_state_comment
أثناء IST، يمر المتغير wsrep_local_state_comment الخاص بعقدة الانضمام عبر:
Joining → Joined → Synced
إذا استغرق هذا الانتقال أقل من 30 ثانية لمجموعة نشطة، فمن المرجح أن يكون IST. قد يستغرق إجراء عملية SST على مجموعة بيانات تبلغ عدة عشرات من الجيجابايت وقتًا أطول بكثير.
3. تحقق من GCache
يشير المتغير wsrep_local_cached_downto الموجود على الجهة المانحة إلى أقدم seqno الذي لا يزال متاحًا في GCache. إذا كان تسلسل العقدة المنفصلة أكبر من هذه القيمة، فمن الممكن أن يكون IST:
-- Sur le donateur
SHOW GLOBAL STATUS LIKE 'wsrep_local_cached_downto';
-- Résultat : 1045000
-- Si le noeud déconnecté était au seqno 1045632 → IST possible
-- Si le noeud déconnecté était au seqno 800000 → SST obligatoire
ماذا يفعل PmaControl
يجمع PmaControl بين هذه الطرق الثلاثة لاكتشاف وتصنيف عمليات نقل Galera تلقائيًا:
- المراقبة المستمرة لـ
wsrep_local_state_comment— اكتشاف الانتقال إلى الحالةJoining - سجل التحليل MariaDB — استخراج السطر
Receiving ISTمع عدد مجموعات الكتابة - الارتباط الزمني — قياس الوقت بين
JoiningوSynced
يتم عرض النتيجة في لوحة المعلومات PmaControl مع تمييز واضح: IST (الشارة الخضراء، المدة بالثواني) مقابل SST (الشارة البرتقالية، المدة المقدرة بالدقائق).
على عكس PMM، لا يعتمد PmaControl على المتغيرات الموجودة فقط على PXC. يعمل أسلوب تحليل السجل على جميع إصدارات MariaDB Galera منذ 10.1.
أرقام يجب تذكرها
| متري | القيمة المرصودة |
|---|---|
| النسخة مجربة | MariaDB 10.6.23 Galera |
| تحميل سيسبنش | 16 موضوعًا، oltp_read_write |
| مجموعات الكتابة المتراكمة | 188,516 |
| مدة IST | 20-25 ثانية |
| متغيرات PMM wsrepist* | غير موجود |
| كشف PmaControl | تلقائي عبر تحليل السجل |
التوصيات
- لا تعتمد على لوحة معلومات PMM Galera لمراقبة IST إذا كنت على MariaDB — ستظل اللوحات فارغة
- قم بتغيير حجم GCache بشكل كبير (
gcache.size=2Gكحد أدنى) لزيادة فرصة IST بعد انقطاع قصير في الاتصال - مركزية السجلات MariaDB — هذا هو مصدر الحقيقة لعمليات النقل Galera
- استخدم PmaControl للإشراف Galera الذي يعمل فعليًا على MariaDB، وليس فقط PXC
الخلاصة
تم تصميم لوحة معلومات PMM لـ Galera IST لمجموعة Percona XtraDB. في MariaDB Galera، يظهر فارغًا - ليس لأن IST لا يعمل، ولكن لأن المتغيرات التي يستعلم عنها غير موجودة.
يعمل IST بشكل مثالي على MariaDB 10.6. عليك فقط أن تعرف أين تبحث: في السجلات، وليس في المتغيرات الشبحية.
تعليقات (0)
لا توجد تعليقات حتى الآن.
اترك تعليقا