هناك سبب واحد يجمّد شبكات كثيرة في مكانها: الخوف من التجربة. فالمدير الذي لا يملك طريق عودة لا يجرّب ترقية، ولا يبدّل إعداداً، ولا يفحص نسخة جديدة — فتبقى أنظمته على إصدار عمره سنتان لأن «يمشي الحال».
واللقطة (snapshot) هي ما ينهي ذلك الخوف: تأخذها في ثوانٍ، وتجرّب ما شئت، وتعود إلى ما قبلها بأمر واحد.
كل رقم في هذه السلسلة مقيس لا مقدَّر. نفّذنا كل أمر على سيرفر Proxmox VE 9.2 حقيقي
بمعالج EPYC وتخزين LVM-thin على NVMe، وأخذنا الأزمنة من مخرجات time نفسها.
وقد استبدلنا العناوين العامة الحقيقية بعناوين التوثيق المخصّصة لهذا الغرض (RFC 5737) حفاظاً على أمان السيرفر.
ماذا فعلنا بالضبط
أخذنا جهازاً عليه خدمة ويب تعمل، ثم لقطة، ثم حذفنا مجلّد إعدادات الخدمة كاملاً — وهو تماماً ما يحدث حين تسوء ترقية. ثم تراجعنا:
الأوامر
# لقطة تشمل الذاكرة — يعود الجهاز إلى اللحظة نفسها
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 · ٤. اللقطات والاستنساخ · ٥. النسخ الاحتياطي واختبار الاسترجاع