في بيئات الاستضافة الاحترافية التي تعتمد على 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

اكتشف خدماتنا ←