في بيئات الاستضافة الاحترافية التي تعتمد على Proxmox VE، يعتبر الـ Cluster جزءاً أساسياً من البنية التحتية الحديثة لإدارة السيرفرات الافتراضية وتوفير التوسع والإدارة المركزية والاعتمادية العالية. لكن أحياناً تظهر مشاكل تعطي انطباعاً أن الكلاستر بالكامل انهار، بينما يكون السبب الحقيقي ملفاً واحداً فقط مفقوداً داخل النظام.
محتويات المقال
تشخيص وإصلاح مشاكل: ما تحتاج معرفته
المشكلة الأخطر ليست عندما يتوقف الكلاستر بالكامل، بل عندما تبدو جميع المؤشرات حمراء بينما تكون البنية الأساسية نفسها تعمل بصورة طبيعية.
في هذه المقالة سنشرح حالة تشخيص حقيقية لمشكلة ظهرت داخل بيئة Proxmox متعددة النودات، وكيف تسبب ملف شهادة مفقود في ظهور أعراض جعلت ثلاثة نودات تبدو وكأنها معطلة بالكامل.
الأعراض
أبلغ مسؤول البنية التحتية أن:
“ثلاثة سيرفرات غير مربوطة بالكلاستر بشكل صحيح”
الرسالة الوحيدة الواضحة التي ظهرت في واجهة Proxmox كانت:
'/etc/pve/nodes/<node-name>/pve-ssl.pem' does not exist! (500)
كما ظهرت أعراض أخرى بشكل متقطع:
- اختفاء قائمة النودات من واجهة Proxmox
- ظهور Error 500
- بطء أو توقف بعض صفحات Web UI
- فشل endpoint:
/api2/json/nodes
- فشل التنقل بين النودات
- HTTPS timeout أحياناً على بعض النودات
الانطباع الأول كان:
الكلاستر بالكامل مكسور
لكن الحقيقة كانت مختلفة تماماً.
التشخيص: ليس كل ما يبدو معطلاً معطل فعلاً
أول خطوة في أي مشكلة داخل Proxmox Cluster هي التأكد من حالة الـ Quorum والكلاستر نفسه.
تم تنفيذ:
pvecm status
corosync-quorumtool -s
النتيجة كانت مفاجئة:
Quorate: Yes
Nodes: 3
وكذلك:
- ثلاث نودات Online
- جميع الأصوات محسوبة
- corosync يعمل
- pve-cluster يعمل
- pveproxy يعمل
- pvedaemon يعمل
إذاً من ناحية Corosync كان الكلاستر سليماً بالكامل.
لكن السؤال هنا:
إذا كان الكلاستر سليماً فلماذا تنهار واجهة الإدارة؟
فهم الطبقات داخل Proxmox
هذه من أكثر النقاط التي تسبب التباساً لمسؤولي الأنظمة.
الكثير يعتقد أن:
Corosync يعمل = الكلاستر كله سليم
لكن الواقع مختلف.
كل طبقة داخل Proxmox لها وظيفة مستقلة:
Corosync
- إدارة Membership
- إدارة Quorum
- الاتصال بين النودات
PMXCFS
- نظام الملفات الموزع بين النودات
PVEProxy
- واجهة Web UI
- API
- TLS Handshake
Pvedaemon
- العمليات والخدمات الداخلية
لهذا يمكن أن ترى:
- Corosync يعمل
- Quorum يعمل
- Membership طبيعي
لكن واجهة Proxmox لا تعمل بصورة سليمة.
الفحص الذي كشف كل شيء
داخل Proxmox تستخدم خدمة:
pveproxy
شهادات محلية لكل نود لإتمام:
- TLS Handshake
- Proxy Requests
- Web API Communication
توجد هذه الملفات داخل:
/etc/pve/nodes/<node-name>/pve-ssl.pem
/etc/pve/nodes/<node-name>/pve-ssl.key
ولأن:
pmxcfs
نظام ملفات موزع، فمن المفترض أن تكون هذه الشهادات مرئية لجميع النودات.
تم تنفيذ الفحص التالي:
for n in $(ls /etc/pve/nodes/); do
echo "--- $n ---"
ls -la /etc/pve/nodes/$n/pve-ssl.pem 2>&1
done
النتيجة:
--- Node-A ---
ls: cannot access '/etc/pve/nodes/Node-A/pve-ssl.pem':
No such file or directory
--- Node-B ---
-rw-r----- root www-data 1785
--- Node-C ---
-rw-r----- root www-data 1785
المفاجأة:
نود واحد فقط فقد شهادته.
ليس اثنين.
وليس ثلاثة.
لماذا جعل ملف واحد الكلاستر يبدو معطلاً بالكامل؟
هذه هي النقطة الجوهرية.
فقدان شهادة Node واحدة يسبب سلسلة من الأعراض المضللة:
فشل API بالكامل
الـ endpoint:
/api2/json/nodes
يحاول جمع البيانات من جميع النودات.
إذا فشل نود واحد:
قد يفشل الـ response بالكامل.
فشل PVEProxy
النودات الأخرى لا تستطيع عمل Proxy للنود المصاب لأن شهادة TLS المتوقعة غير موجودة.
HTTPS يعمل جزئياً
بورت:
8006
قد يقبل TCP Connection لكنه يفشل أثناء:
TLS Handshake
فيظهر للمستخدم:
HTTPS timeout
ظهور Error 500
أي عملية تحاول الوصول للنود المصاب قد ترجع:
500 Internal Server Error
إذا كنت تواجه نفس الخطأ وتريد الانتقال مباشرة إلى الإيعازات العملية دون قراءة التحليل الكامل، يمكنك مراجعة دليلنا التفصيلي:
أهم إيعازات حل مشكلة pve-ssl.pem المفقود في Proxmox Cluster
في هذا الدليل ستجد جميع أوامر التشخيص والإصلاح والتحقق خطوة بخطوة داخل Proxmox.
ما سبب اختفاء الشهادة؟
عادة يتم إنشاء الشهادة مرة واحدة أثناء:
pvecm add
ثم تبقى ضمن PMXCFS.
لكن توجد عدة سيناريوهات قد تسبب فقدانها:
تغيير hostname بعد الانضمام للكلاستر
هذا أكثر سبب شائع.
الشهادة تبقى مرتبطة بالاسم القديم.
أما الاسم الجديد فلا يمتلك شهادة.
حذف يدوي غير مقصود
مثلاً:
rm -rf /etc/pve/nodes/
فشل جزئي أثناء Join
قد ينضم النود لـ Corosync بينما لا تكتمل عملية:
pvecm updatecerts
استعادة Backup قديم
قد تحتوي النسخة المسترجعة على ملفات أقدم من حالة الكلاستر الحالية.
مشكلة PMXCFS أثناء إنشاء الشهادة
وهي حالة أقل شيوعاً.
في هذه الحالة كان السبب المرجح:
تغيير اسم النود بعد الانضمام للكلاستر.
كيف تم إصلاح المشكلة؟
على النود المصاب فقط تم تنفيذ:
pvecm updatecerts -f
ثم:
systemctl reload pveproxy
systemctl reload pvedaemon
ولم يتم استخدام:
systemctl restart pve-cluster
لأن إعادة تشغيل الكلاستر أثناء عمله قد تسبب مشاكل إضافية غير ضرورية.
بعد ثوانٍ قليلة:
- اختفت رسائل Error 500
- عادت جميع النودات للظهور
- عاد
/api2/json/nodes - استجابت Web UI بصورة طبيعية
- عاد HTTPS للعمل
الدروس المستفادة
أولاً: لا تخلط بين السبب والعَرَض
“ثلاثة سيرفرات معطلة” كان وصفاً للعَرَض وليس للمشكلة الحقيقية.
ثانياً: Corosync لا يساوي Proxmox بالكامل
وجود:
Quorate: Yes
لا يعني أن كل الطبقات الأخرى سليمة.
ثالثاً: ابدأ دائماً بأقل تدخل ممكن
في كثير من الحالات:
pvecm updatecerts -f
قد يحل المشكلة دون الحاجة لإزالة النود أو إعادة ربطه.
رابعاً: لا تثق بمؤشرات الخطأ المتعددة
عندما تنهار مؤشرات كثيرة في وقت واحد، ابحث أولاً عن نقطة فشل مشتركة.
خامساً: اقرأ رسالة الخطأ حرفياً
في هذه الحالة كانت الرسالة:
'/etc/pve/nodes/X/pve-ssl.pem' does not exist! (500)
تكشف السبب الحقيقي منذ البداية.
الخلاصة
في Proxmox Cluster تعتبر الشهادات المحلية داخل PMXCFS جزءاً أساسياً من البنية الداخلية للكلاستر والتواصل بين النودات.
غياب ملف واحد فقط مثل:
pve-ssl.pem
قد يولد سلسلة من الأعراض التي تجعل المشكلة تبدو وكأنها انهيار كامل للبنية التحتية.
لكن في النهاية كان الحل بسيطاً:
pvecm updatecerts -f
ثم:
systemctl reload pveproxy pvedaemon
وبدون إعادة بناء الكلاستر أو إعادة تشغيل الآلات الافتراضية.
هل تبحث عن استضافة موثوقة لموقعك؟
شركة مرام هوست تقدم أفضل حلول الاستضافة والسيرفرات بدعم فني عربي 24/7
اكتشف خدماتنا ←