الرجوع إلى قائمة المقالات

التوفّر العالي في بروكسموكس: متى يحميك ومتى يصير سبب التوقّف

شرح High Availability في Proxmox — الإعداد والقواعد والعزل | مرام هوست - التوفّر العالي في بروكسموكس: متى يحميك ومتى يصير سبب التوقّف

التوفّر العالي (HA) هو أكثر ميزة تُطلَب في بروكسموكس وأقلّها فهماً. الجميع يريد «أن تعود الخدمة تلقائياً إن مات السيرفر»، وقليلون يعرفون أن تفعيله على بنية غير جاهزة يزيد احتمال التوقّف بدل أن ينقصه.

هذه المقالة الأخيرة في السلسلة تشرحه من الواجهة على كلاستر يعمل فعلاً: كيف يبدو وهو مسلَّح، وما الذي غيّره بروكسموكس 9 جذرياً، ومتى الجواب الصحيح هو «لا تفعّله».

كل لقطة في هذه السلسلة من بروكسموكس حقيقي يعمل. نسخة Proxmox VE 9.2 كاملة بأجهزة وحاويات ومخزّنات ومهامّ نسخ فعلية، شغّلناها معزولة لهذا الغرض حتى لا يظهر اسم زبون واحد، ودخلنا لوحتها عبر نفق مشفّر لا عبر الإنترنت. وما تراه في كل صورة هو ما ستراه أنت حرفياً على شاشتك.

ما الذي يفعله HA بالضبط؟

يحمي منلا يحمي من
موت عقدة كاملةخطأ داخل نظام الضيف
انقطاع كهرباء عن سيرفر واحدحذف بيانات خاطئ
عطل عتاد مفاجئتلف قاعدة بيانات
انفصال عقدة عن الشبكةهجوم فدية
تجمّد نواة العقدةخطأ في إعداد التطبيق

⚠️ HA ليس بديلاً عن النسخ الاحتياطي، ولا عن المراقبة، ولا عن تصميم تطبيق سليم. هو يعالج حالة واحدة بالضبط: سقوط عقدة. وكل ما عدا ذلك يحتاج أدوات أخرى — وقد شرحناها في مسارات هذه السلسلة السابقة.

قبل التفعيل

صفحة التوفّر العالي في بروكسموكس قبل إضافة أي مورد
مركز البيانات ← HA قبل التفعيل: نصاب سليم، وفصل fencing في وضع الانتظار، وجدول موارد فارغ
حوار إضافة مورد إلى التوفّر العالي في بروكسموكس مع تحذير الأصوات الثلاثة
حوار إضافة مورد — واقرأ السطر أسفله: At least three quorum votes are recommended for reliable HA

بروكسموكس نفسه يكتب لك الشرط في الحوار. ثلاثة أصوات، لا عقدتان. والسبب من مقالة الكلاستر: بعقدتين، سقوط واحدة يُفقد النصاب — فلا تستطيع الباقية أن تقرّر شيئاً، ولا أن تشغّل ما سقط. وبذلك يصير HA بعقدتين ديكوراً لا حماية.

خانات الحوار وماذا تعني

الخانةالافتراضيماذا تفعل
VM / CT—المورد الذي سيُدار
Max. Restart1كم مرّة يُحاوَل تشغيله على نفس العقدة قبل نقله
Max. Relocate1كم مرّة يُنقَل إلى عقدة أخرى قبل الاستسلام
Failbackمفعّلهل يعود إلى عقدته المفضّلة حين تتعافى
Auto-Rebalanceمفعّلهل يُنقَل تلقائياً لتوزيع الحمل
Request Statestartedالحالة المطلوبة دائماً — أو stopped أو ignored

⚠️ Request State = started يعني «شغّله دائماً». إن أطفأت الجهاز يدوياً فسيعيده HA تشغيله. وهذا يفاجئ الجميع أوّل مرّة. لإطفاء مورد مُدار فعلياً غيّر حالته المطلوبة إلى stopped — لا تضغط Shutdown وتتعجّب.

⭐ بعد التفعيل — هكذا يبدو HA وهو يعمل

صفحة التوفّر العالي في بروكسموكس مع مدير نشط وموردين مُدارين
نفس الصفحة وهي مسلَّحة: fencing armed، ومدير (master) منتخب، ووكيل (lrm) نشط على كل عقدة، وموردان بحالة started

هذا الجدول هو كل ما يجب أن تعرفه لقراءة الشاشة:

السطرماذا يعنيماذا لو كان خطأ
quorum: OKالكلاستر يملك أغلبيةأي شيء آخر ⇒ HA مجمّد
fencing: armed (CRM watchdog active)مؤقّت الحراسة يعمل — النظام قادر على عزل عقدة فاشلةstandby ⇒ لا حماية فعلية بعد
masterالعقدة التي تتّخذ القرارات حالياًغيابه ⇒ لا قرارات تُتَّخذ
lrm لكل عقدةالوكيل المحلّي الذي ينفّذ على تلك العقدةعقدة بلا lrm نشط لا تستقبل موارد

التقسيم بسيط: CRM واحد في الكلاستر يقرّر، وLRM على كل عقدة ينفّذ. ولو مات العقل انتُخب غيره؛ ولو مات الوكيل على عقدة اعتُبرت تلك العقدة خارج الخدمة.

⭐ تغيير جوهري في بروكسموكس ٩: المجموعات صارت قواعد

صفحة قواعد التقارب في التوفّر العالي في بروكسموكس
قائمة HA صارت ثلاثة عناصر: HA وAffinity Rules وFencing — ولا وجود لـ«المجموعات»

من يعرف بروكسموكس 7 و8 يبحث عن HA Groups ولن يجدها. وحين جرّبنا إنشاء مجموعة من سطر الأوامر كان الجواب صريحاً:

ما جرّبناهما ردّه النظام
إنشاء مجموعة HAcannot create group: ha groups have been migrated to rules
إضافة مورد مع تحديد مجموعتهinvalid parameter 'group': ha groups have been migrated to rules

⚠️ هذا يكسر كل سكربت أو دليل مكتوب لبروكسموكس ٨. إن كانت لديك أتمتة تنشئ مجموعات HA فستفشل صامتةً أو بخطأ غامض بعد الترقية. راجعها قبل أن ترقّي، لا بعد أن تكتشف أن مواردك بلا تفضيل عقدة.

البديل: قواعد التقارب

حوار قاعدة تقارب العقد في بروكسموكس مع جدول العقد والأولويات
حوار HA Node Affinity: اختر الموارد، ثم أعطِ كل عقدة أولوية — والحوار يعرض استهلاك كل عقدة لتقرّر بعلم

لاحظ ثلاثة تفاصيل في هذه اللقطة تجعلها أفضل من المجموعات القديمة:

التفصيللماذا يهمّ
جدول العقد يعرض الذاكرة والمعالج لحظياًتختار العقدة المفضّلة وأنت ترى حملها لا تخمّنه
عمود Priority لكل عقدةالأعلى رقماً يُفضَّل؛ والمتساوون يتقاسمون
خانة Strictمُطفأة ⇒ العقد الأخرى بديل عند الضرورة. مفعّلة ⇒ لا يعمل المورد إلا على المحدّد

⚠️ Strict سلاح ذو حدّين. فعّلها فقط حين يكون تشغيل المورد على عقدة أخرى مستحيلاً — كترخيص مربوط بعتاد، أو جهاز ممرَّر. وفي غير ذلك تجعل HA يُبقي الخدمة متوقّفة بدل أن يشغّلها على عقدة سليمة.

تعديل قاعدة تقارب عقد قائمة في بروكسموكس
القاعدة بعد إنشائها: مواردها والعقد بأولوياتها — قابلة للتعديل في أي وقت

النوع الثاني: تقارب الموارد ببعضها

حوار قاعدة تقارب الموارد في بروكسموكس
HA Resource Affinity: اجعل موردين معاً دائماً — أو متفرّقين دائماً
النمطمثال عملي
معاًخادم تطبيق وقاعدة بياناته — قربهما يقلّل زمن الاستجابة
متفرّقانخادما DNS أو نسختا موازن حمل — وجودهما على عقدة واحدة يُلغي الغرض منهما

قاعدة «متفرّقان» هي أكثر ما يُنسى. كثيرون يبنون نسختين احتياطيتين من خدمة ثم يترك HA الاثنتين على نفس العقدة — فتسقط العقدة وتسقط النسختان معاً. سطر واحد في هذا الحوار يمنع ذلك نهائياً.

Fencing — الجزء المخيف والضروري

صفحة العزل في التوفّر العالي في بروكسموكس
صفحة Fencing: حالة مؤقّت الحراسة على كل عقدة

المشكلة التي يحلّها fencing اسمها «الدماغ المنقسم»: عقدة فقدت اتصالها بالشبكة لكنها ما تزال تعمل وتكتب على التخزين. لو شغّل الكلاستر نسخة ثانية من نفس الجهاز على عقدة أخرى، لكتبت نسختان على نفس الأقراص — وهذا تلف مؤكّد للبيانات.

الخطوةماذا يحدث
١العقدة تفقد النصاب
٢وكيلها المحلّي يتوقّف عن تجديد مؤقّت الحراسة
٣المؤقّت ينتهي فيُعيد تشغيل العقدة قسرياً
٤الكلاستر يتيقّن أنها لم تعد تكتب
٥عندها فقط تُشغَّل الموارد في مكان آخر

⚠️ HA يعيد تشغيل عقدتك قسرياً — بالتصميم. ومن ثمّ: عقدة تفقد اتصالها بسبب سويتش متذبذب ستُعاد تشغيلها. شبكة كلاستر غير مستقرّة + HA مفعّل = إعادات تشغيل عشوائية، وهذا هو المقصود بأن التفعيل على بنية غير جاهزة أسوأ من تركه.

موازن الحمل التلقائي (CRS)

إعدادات موازن الموارد في كلاستر بروكسموكس
CRS Settings: على أي أساس يختار الكلاستر العقدة، ومتى يعيد التوازن
الخيارماذا يفعلالتوصية
أساس الاختيارالذاكرة وحدها، أو الذاكرة والمعالجالذاكرة عادةً — هي المورد النادر فعلاً
إعادة التوازن عند البدءيختار أفضل عقدة عند كل تشغيل موردمفيد ومنخفض المخاطرة
إعادة التوازن الدوريةيرحّل الموارد تلقائياً لتوزيع الحمل⚠️ فعّله فقط مع تخزين مشترك

⚠️ إعادة التوازن الدورية بلا تخزين مشترك كارثة صامتة. كل ترحيل سينسخ القرص كاملاً عبر الشبكة — تلقائياً وبلا إذنك. فيصير الكلاستر مشغولاً بنقل أقراص بدل تشغيل الخدمات.

شاهدناه يعمل فعلاً

سجلّ ترحيل بدأه التوفّر العالي في بروكسموكس
ترحيل لم نطلبه: أضفنا قاعدة تفضّل العقدة الأولى، فنقل HA المورد إليها من تلقاء نفسه
سجلّ مهامّ مركز البيانات في بروكسموكس مع مهامّ التوفّر العالي
سجلّ المهامّ يوثّق كل قرار: من بدأه وعلى أي عقدة ومتى — وهذا أوّل ما تقرأه عند أي سلوك غير متوقّع

متطلّبات HA الحقيقية

المتطلّبلماذاإلزامي؟
ثلاث عقد (أو عقدتان + شاهد)النصابنعم
تخزين مشتركوإلّا فالبيانات لا تنتقل مع الموردعملياً نعم
شبكة كلاستر مستقرّةوإلّا إعادات تشغيل عشوائيةنعم
وقت متزامنقرارات HA مبنية على الزمننعم
عتاد متقاربليستقبل أي مورد على أي عقدةمستحسن بقوّة
سعة احتياطيةعقدة ساقطة يجب أن يستوعب حملَها الباقوننعم

حساب السعة الذي يُنسى: ثلاث عقد كلٌّ منها ممتلئة ٩٠٪ تعني أن سقوط واحدة لا يجد مكاناً لمواردها. القاعدة العملية: لا تتجاوز (N−1)/N من السعة — أي ٦٦٪ لثلاث عقد و٧٥٪ لأربع. وإلّا فإن HA سيحاول ويفشل.

متى لا تفعّل HA؟

الحالةالبديل الأفضل
عقدتان بلا شاهدأضف شاهداً أولاً
تخزين محلّي فقطنسخ متزامن + استرجاع مُجرَّب
شبكة كلاستر مشتركة ومزدحمةافصل شبكة النبضات أولاً
خدمة تحتمل توقّف ١٥ دقيقةاسترجاع يدوي أبسط وأأمن
تطبيق يملك تجميعه الخاصّدَعه يديره — HA قد يتعارض معه

أخطاء شائعة وحلولها

العرَضالسببالحلّ
المورد عالق في queuedوكيل LRM غير نشطشغّل خدمتَي HA على العقد
جهاز أطفأته يعود وحدهRequest State = startedغيّرها إلى stopped
عقد تُعاد تشغيلها عشوائياًشبكة كلاستر متذبذبةأوقف HA وأصلح الشبكة أولاً
المورد لا ينتقل رغم سقوط عقدتهقاعدة Strict على عقدة واحدةراجع قواعد التقارب
fencing: standby دائماًخدمات HA لم تبدأ بعدتبدأ تلقائياً عند أوّل مورد مُدار
سكربت مجموعات لا يعملالمجموعات أُلغيت في الإصدار ٩حوّله إلى قواعد تقارب

أسئلة شائعة

كم يستغرق التعافي؟

دقيقة إلى دقيقتين عادةً: كشف السقوط، ثم انتهاء مؤقّت الحراسة والتيقّن من العزل، ثم تشغيل المورد. ليس فورياً — ولا يُفترض أن يكون.

هل يعمل HA مع الحاويات؟

نعم، تماماً كالأجهزة. لكن تذكّر من مقالة الترحيل أن الحاويات لا تُرحَّل حيّاً — أي أن النقل المخطَّط لها يعني انقطاعاً.

هل أستطيع تفعيله لجهاز واحد فقط؟

نعم، وهذه أفضل طريقة للبدء: مورد واحد غير حرج، جرّب عليه سقوط عقدة عمداً، ثم وسّع.

ماذا لو سقطت كل العقد؟

لا شيء يعمل. HA يعالج سقوطاً جزئياً لا كلّياً — وللكارثة الكاملة تحتاج نسخاً خارج الموقع.

هل يكلّف أداءً؟

لا يُذكر. خدمتان خفيفتان ومؤقّت حراسة. الكلفة في المتطلّبات لا في الاستهلاك.

ما أوّل خطوة عملية؟

ثلاث عقد وتخزين مشترك وشبكة نبضات منفصلة. بدون هذه الثلاثة، تفعيل HA يمنحك شعوراً بالأمان لا أماناً.

خلاصة السلسلة — خمسة وعشرون مقالة

بدأنا من شاشة تسجيل الدخول وانتهينا بعقدتين تتبادلان الأجهزة وهي تعمل. وفي الطريق: الأساسيات والأجهزة والحاويات والصلاحيات؛ والتخزين بأنواعه وZFS ونقل الأقراص وامتلاء المخزّن؛ والشبكة والجدار الناري وSDN وتأمين اللوحة والسجلّات؛ والتشغيل اليومي من ضبط الموارد إلى النسخ والاسترجاع واللقطات وقراءة الرسوم؛ وأخيراً التوسّع بالكلاستر والترحيل والتمرير والترقية والتوفّر العالي.

وكل لقطة في المقالات الخمس والعشرين من بروكسموكس حقيقي يعمل — بما فيها اللقطات التي أظهرت رسائل خطأ وقوائم فارغة، لأن ما ستراه أنت على شاشتك هو هذا لا صورة مثالية.

وإن أردت أن تجرّب كل هذا بلا شراء عتاد: أجهزة مرام هوست الافتراضية تدعم الافتراضية المتداخلة، أي أنك تستطيع تنصيب بروكسموكس داخل جهاز افتراضي وتكرار كل ما في هذه السلسلة — بما فيه بناء كلاستر من عقدتين وتجربة الترحيل الحيّ بنفسك.

Powered by WHMCompleteSolution