في بيئات Proxmox VE متعددة النودات، تعتبر الشهادات المحلية جزءاً أساسياً من عمل واجهة الإدارة والتواصل بين النودات داخل الكلاستر. عند فقدان ملف شهادة واحد فقط قد تبدأ أخطاء متعددة بالظهور في وقت واحد:
محتويات المقال
أهم إيعازات حل: ما تحتاج معرفته
- Error 500
- HTTPS timeout
- اختفاء النودات من Web UI
- فشل
/api2/json/nodes - بطء أو توقف بعض صفحات Proxmox
- مشاكل أثناء التنقل بين النودات
قد يبدو الأمر وكأن الكلاستر بالكامل تعرض لانهيار.
لكن في الحقيقة قد يكون السبب ملفاً واحداً فقط:
'/etc/pve/nodes/<node-name>/pve-ssl.pem'
قبل البدء بتنفيذ الإيعازات، إذا كنت تريد فهم السبب الحقيقي للمشكلة ولماذا يمكن لملف شهادة مفقود في نود واحد أن يجعل ثلاثة نودات تبدو معطلة بالكامل، يمكنك مراجعة تحليل الحالة الكامل:
تشخيص وإصلاح مشاكل Proxmox Cluster عندما يكون السبب ملفاً واحداً مفقوداً: قصة تشخيص خطأ خفي في كلاستر Proxmox
هناك ستجد:
- تحليل كامل للأعراض
- كيف بدا الكلاستر معطلاً بالكامل
- الفرق بين Corosync و PMXCFS و PVEProxy
- كيف تم اكتشاف السبب الحقيقي
- الدروس المستفادة
لماذا يعتبر ملف pve-ssl.pem مهماً؟
داخل Proxmox تستخدم خدمة:
pveproxy
شهادات محلية لكل نود لإتمام:
- TLS Handshake
- Web UI Authentication
- API Requests
- Proxy Requests
- التواصل بين النودات
توجد هذه الملفات داخل:
/etc/pve/nodes/<node-name>/pve-ssl.pem
/etc/pve/nodes/<node-name>/pve-ssl.key
بما أن:
pmxcfs
هو نظام ملفات موزع بين جميع النودات، فمن المفترض أن تكون هذه الملفات مرئية من كل Node داخل الكلاستر.
إذا اختفى ملف واحد تبدأ الأعراض بالظهور.
الخطوة الأولى: التشخيص السريع
ابدأ بفحص جميع الشهادات الموجودة داخل الكلاستر:
for n in $(ls /etc/pve/nodes/); do
echo "--- $n ---"
ls -la /etc/pve/nodes/$n/pve-ssl.pem 2>&1
done
النتيجة السليمة:
--- Node-A ---
-rw-r----- root www-data 1785
--- Node-B ---
-rw-r----- root www-data 1785
--- Node-C ---
-rw-r----- root www-data 1785
أما النود المصاب:
--- Node-A ---
ls: cannot access '/etc/pve/nodes/Node-A/pve-ssl.pem':
No such file or directory
إذا ظهرت:
No such file or directory
فقد تم تحديد السبب غالباً.
تأكيد حالة الكلاستر
الخطوة التالية:
pvecm status
النتيجة الطبيعية:
Quorate: Yes
ثم:
systemctl is-active corosync
systemctl is-active pve-cluster
systemctl is-active pveproxy
systemctl is-active pvedaemon
أو:
systemctl is-active corosync pve-cluster pveproxy pvedaemon
النتيجة:
active
active
active
active
إذا كان:
Quorate: Yes
فهذا يعني أن Corosync يعمل وأن المشكلة ليست في طبقة الكلاستر نفسها.
الخطوة الثانية: إصلاح المشكلة
على النود المصاب فقط:
افتح:
Datacenter → Node → >_ Shell
ثم نفذ:
pvecm updatecerts -f
غالباً ستظهر:
(re)generate node files
generate new node certificate
هذا الأمر يقوم بـ:
- إعادة إنشاء ملفات النود
- إنشاء شهادة جديدة
- توقيعها باستخدام Cluster CA
- نشرها داخل PMXCFS
بعدها نفذ:
systemctl reload pveproxy
systemctl reload pvedaemon
لماذا استخدمنا Reload بدلاً من Restart؟
كثير من مسؤولي الأنظمة ينفذون:
systemctl restart pve-cluster
لكن هذا ليس الخيار الأفضل أثناء عمل الكلاستر.
قد يسبب:
- إعادة مزامنة غير ضرورية
- فقدان PMXCFS state
- انقطاع مؤقت لبعض الخدمات
- مشاكل إضافية داخل الكلاستر
الأفضل:
systemctl reload pveproxy
systemctl reload pvedaemon
لأنها تعيد تحميل الشهادة فقط.
الخطوة الثالثة: التحقق من نجاح الإصلاح
هل ظهرت الشهادة؟
نفذ:
ls -la /etc/pve/nodes/<node-name>/pve-ssl.pem
النتيجة:
-rw-r----- root www-data 1785
هل واجهة الإدارة تعمل؟
نفذ:
curl -k -s -o /dev/null -w "HTTP %{http_code}n" https://<node-ip>:8006/
النتيجة الطبيعية:
HTTP 200
هل الكلاستر يعمل؟
نفذ:
pvecm status | grep -E "Quorate|Nodes"
النتيجة:
Quorate: Yes
Nodes: 3
النسخة المختصرة — ثلاثة أوامر فقط
إذا كنت متأكداً أن المشكلة هي شهادة مفقودة:
pvecm updatecerts -f
systemctl reload pveproxy pvedaemon
ls -la /etc/pve/nodes/$(hostname)/pve-ssl.pem
بدون:
restart
وبدون:
rejoin cluster
وبدون:
إيقاف VMs
أخطاء يجب تجنبها
لا تنفذ:
systemctl restart pve-cluster
أثناء عمل الكلاستر جزئياً.
لا تحذف:
rm -rf /etc/pve/*
لا تحذف ملفات النودات يدوياً.
لا تعدّل:
/etc/pve/corosync.conf
دون التأكد من سبب المشكلة الحقيقي.
ملاحظة مهمة: إذا كانت لديك مشاكل أخرى مرتبطة بـ:
- Quorum
- Corosync
- PMXCFS
- Membership
- إعادة ربط Node
فمن الأفضل مراجعة المقالة التحليلية:
لأنها تشرح الطبقات الداخلية لـ Proxmox والأسباب الجذرية للمشكلة.
الخلاصة
في Proxmox Cluster تعتبر الشهادات المحلية داخل PMXCFS جزءاً أساسياً من التواصل بين النودات وواجهة الإدارة.
اختفاء ملف واحد مثل:
pve-ssl.pem
قد يولد أعراضاً تجعل المشكلة تبدو وكأنها انهيار كامل للبنية التحتية.
لكن في النهاية كان الحل:
pvecm updatecerts -f
systemctl reload pveproxy pvedaemon
ثلاثة أوامر فقط كانت كافية لإعادة الأمور إلى طبيعتها دون إعادة تشغيل النودات أو التأثير على الآلات الافتراضية.
هل تبحث عن استضافة موثوقة لموقعك؟
شركة مرام هوست تقدم أفضل حلول الاستضافة والسيرفرات بدعم فني عربي 24/7
اكتشف خدماتنا ←