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

لقطات بروكسموكس: اكسر ما شئت وارجع في 49 ثانية

Snapshot في Proxmox: اللقطات والتراجع والاستنساخ منها | مرام هوست - لقطات بروكسموكس: اكسر ما شئت وارجع في 49 ثانية

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

واللقطة (snapshot) هي ما ينهي ذلك الخوف: تأخذها في ثوانٍ، وتجرّب ما شئت، وتعود إلى ما قبلها بأمر واحد.

كل رقم في هذه السلسلة مقيس لا مقدَّر. نفّذنا كل أمر على سيرفر Proxmox VE 9.2 حقيقي بمعالج EPYC وتخزين LVM-thin على NVMe، وأخذنا الأزمنة من مخرجات time نفسها. وقد استبدلنا العناوين العامة الحقيقية بعناوين التوثيق المخصّصة لهذا الغرض (RFC 5737) حفاظاً على أمان السيرفر.

ماذا فعلنا بالضبط

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

مخرجات تُظهر أخذ لقطة ثم كسر الخدمة قصداً ثم التراجع وعودة الخدمة إلى العمل
لقطة في 21 ثانية · كسر كامل · عودة في 49 ثانية بلا إصلاح ولا بحث في السجلّات

الأوامر

# لقطة تشمل الذاكرة — يعود الجهاز إلى اللحظة نفسها
qm snapshot 8801 before-upgrade --vmstate 1 --description "working nginx v1"

# عرض اللقطات
qm listsnapshot 8801

# التراجع (والتشغيل بعده مباشرةً)
qm rollback 8801 before-upgrade --start 1

# حذف لقطة لم تعد تحتاجها
qm delsnapshot 8801 before-upgrade

بالذاكرة أم بدونها؟

--vmstate 1بدونها
ما يُحفَظالقرص + الذاكرةالقرص فقط
العودة تشبهاستئناف اللحظة نفسهاإطفاءً مفاجئاً ثم إقلاعاً
الزمن المقيس21 ثانيةثوانٍ قليلة
المساحة+ حجم الذاكرةتغييرات القرص فقط
أثناء أخذهايتجمّد الجهاز ثوانيَلا يتوقّف

لاحظنا في المختبر أن وكيل الضيف يتوقّف عن الاستجابة بضع ثوانٍ أثناء أخذ لقطة بالذاكرة — لأن الجهاز يُجمَّد فعلاً ريثما تُكتب ذاكرته. وهذا طبيعي، لكنه يعني شيئاً عملياً: لا تجدول لقطات بالذاكرة على أجهزة إنتاج في ساعة الذروة.

القاعدة التي لا يعرفها كثيرون

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

مخطط يقارن ثلاث طبقات حماية: اللقطة والنسخة المحلية والنسخة البعيدة، وما يحمي منه كل منها
ثلاث طبقات تحمي من ثلاثة أشياء مختلفة — والخلط بينها يُكتشف في أسوأ يوم

أين تُستعمل اللقطة فعلاً؟

الموقفالإجراء
ترقية نظام أو حزمة رئيسيةلقطة قبلها — واحذفها بعد يومين من الاستقرار
تعديل إعداد قاعدة بياناتلقطة بالذاكرة لتعود إلى نفس اللحظة
تجربة برنامج لا تثق بهلقطة ثم تجربة ثم تراجع دائماً
تدريب فنّي جديدلقطة قبل أن يبدأ — فيتعلّم بلا خوف منك ولا منه
قبل تسليم جهاز للزبونلقطة «الحالة النظيفة» تعود إليها عند أي التباس

الفخّ الذي يوقع الجميع: اللقطات المنسيّة

كل لقطة تحتفظ بالكتل القديمة حيّة. وثلاث لقطات منسيّة على جهاز نشط تعني قرصاً يمتلئ من حيث لا تدري — وحين يمتلئ تخزين LVM-thin فالنتيجة ليست بطئاً بل توقّف الأجهزة.

# استعرض كل اللقطات على السيرفر
for v in $(qm list | awk 'NR>1{print $1}'); do
  s=$(qm listsnapshot $v 2>/dev/null | grep -v 'You are here' | grep -c '\->')
  [ "$s" -gt 0 ] && echo "VM $v : $s لقطة"
done

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

الاستنساخ من لقطة

ميزة يغفل عنها كثيرون: تستطيع أن تستنسخ جهازاً من لقطة قديمة إلى جهاز جديد مستقلّ — فتفحص الحالة القديمة والجهاز الأصلي يعمل:

qm clone 8801 8899 --name debug-copy --snapshot before-upgrade --full 1

وهذه أفضل طريقة للإجابة عن السؤال «ماذا تغيّر؟» بلا إيقاف الخدمة، وبلا المخاطرة بتراجع لا تحتاجه.

ولقطات الحاويات؟

المنطق نفسه بأوامر pct بدل qm:

pct snapshot 201 before-change
pct rollback 201 before-change
pct listsnapshot 201

مع فرق واحد: الحاويات لا تدعم حفظ الذاكرة، فالتراجع فيها دائماً يشبه إعادة تشغيل.

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

العَرَضالسببالحل
التخزين امتلأ فجأةلقطات منسيّةافحص أسبوعياً واحذف ما لا سبب له
‏rollback يرفض العملالجهاز يعمل ولا يوجد vmstateأطفئه أولاً، أو خذ اللقطة بالذاكرة
عاد الجهاز بعنوان قديماللقطة تشمل إعداد الشبكةطبيعي — أعد ضبط ipconfig0
لا يمكن أخذ لقطةالتخزين لا يدعمهاLVM-thin أو ZFS أو qcow2 — لا LVM العادي
الجهاز بطؤ بعد لقطات كثيرةسلاسل طويلة من الكتلاحذف القديمة
حذف لقطة استغرق طويلاًدمج الكتل في الأصلطبيعي — لا تقاطعه

أسئلة شائعة

كم لقطة أحتفظ بها؟

واحدة أو اثنتان لكل جهاز نشط، ولمدة قصيرة. اللقطات ليست أرشيفاً — الأرشيف مكانه النسخ الاحتياطية.

هل تبطّئ اللقطة الجهاز؟

قليلاً، ويزداد الأثر مع عدد اللقطات وكثافة الكتابة. على جهاز بلقطة واحدة لا يُلاحَظ.

هل أستطيع أخذ لقطة والجهاز يعمل؟

نعم، وهو الوضع الطبيعي. فقط انتبه إلى التجميد الوجيز مع خيار الذاكرة.

هل تُنقَل اللقطة مع النسخة الاحتياطية؟

لا. vzdump ينسخ الحالة الراهنة لا سلسلة اللقطات. وهذا سبب إضافي لعدم استعمالها كأرشيف.

وإن كان تخزيني LVM عادياً؟

لا لقطات. انتقل إلى LVM-thin أو ZFS — والفرق يستحقّ الانتقال.

الخطوة التالية

اللقطة حمتك من نفسك. بقي ما يحميك من العتاد والحريق والحذف: في الجزء الخامس والأخير نأخذ نسخة احتياطية ثم نسترجعها فعلاً — لأن نسخة لم تُختبر ليست نسخة.

هذه المقالة من سلسلة «بروكسموكس كمصنع سيرفرات» — من سيرفر واحد إلى تسليم آليّ لأجهزة زبائنك: ١. الشبكة والجسور والـVLAN · ٢. القوالب · ٣. Cloud-Init · ٤. اللقطات والاستنساخ · ٥. النسخ الاحتياطي واختبار الاسترجاع

Powered by WHMCompleteSolution