امتلاء التخزين في بروكسموكس ليس بطئاً — هو توقّف. الأجهزة تتجمّد، والنسخ تفشل، وقد تتلف بيانات. وأسوأ ما فيه أنه يأتي بلا إنذار إن لم تكن تراقب.
هذه المقالة عن الحالتين: كيف تمنعه، وماذا تفعل حين يحدث فعلاً وأنت تحت الضغط.
كل لقطة في هذه السلسلة من بروكسموكس حقيقي يعمل. نسخة Proxmox VE 9.2 كاملة بأجهزة وحاويات ومخزّنات ومهامّ نسخ فعلية، شغّلناها معزولة لهذا الغرض حتى لا يظهر اسم زبون واحد، ودخلنا لوحتها عبر نفق مشفّر لا عبر الإنترنت. وما تراه في كل صورة هو ما ستراه أنت حرفياً على شاشتك.
أولاً: اقرأ الأرقام صحيحاً
الفخّ الأول: الرقم المعروض قد يخدعك.
- مجمّع رقيق: قد يقول 60٪ بينما مجموع ما وعدت به الأجهزة يتجاوز السعة بكثير — فامتلاء «مفاجئ» ينتظرك.
- ZFS: اللقطات تستهلك مساحة لا تُنسَب إلى أي جهاز.
- مجلّد: ملفات qcow2 تنمو ولا تتقلّص إلّا بـDiscard.
الأمر الذي يعطيك الحقيقة
# LVM-Thin: انظر عمود Data% لا المساحة الظاهرة
lvs -o lv_name,lv_size,data_percent,metadata_percent
# ZFS: المستعمل والمتاح والمحجوز للقطات
zfs list -o name,used,avail,refer,usedbysnapshots
# المجلّدات
df -h /var/lib/vz
وعمود metadata_percent في LVM-Thin قاتل صامت. امتلاء بيانات التعريف يُعطّل المجمّع حتى لو بقيت مساحة بيانات — وهو أكثر عطل يُفاجئ من يراقب المساحة وحدها. راقب العمودين معاً.
ثانياً: من يأكل المساحة؟
المشتبهون بالترتيب
| # | السبب | كيف تتحقّق |
|---|---|---|
| 1 | نسخ احتياطية بلا تقليم | المخزّن ← Backups |
| 2 | لقطات منسيّة | افحص كل ضيف — سكربت تحت |
| 3 | أقراص يتيمة لأجهزة محذوفة | pvesm list |
| 4 | صور ISO وقوالب قديمة | du -sh على مجلّد القوالب |
| 5 | سجلّات تضخّمت داخل الأجهزة | من داخل كل جهاز |
| 6 | Discard مطفأ | المساحة لا تعود بعد الحذف |
# اعثر على كل اللقطات على السيرفر
for v in $(qm list | awk 'NR>1{print $1}'); do
n=$(qm listsnapshot $v 2>/dev/null | grep -v 'You are here' | grep -c '\->')
[ "$n" -gt 0 ] && echo "VM $v : $n لقطة"
done
for c in $(pct list | awk 'NR>1{print $1}'); do
n=$(pct listsnapshot $c 2>/dev/null | grep -v 'You are here' | grep -c '\->')
[ "$n" -gt 0 ] && echo "CT $c : $n لقطة"
done
ثالثاً: طوارئ — امتلأ الآن
بالترتيب، من الأسرع أثراً إلى الأبطأ:
| # | الإجراء | الأثر | الخطورة |
|---|---|---|---|
| 1 | احذف أقدم النسخ الاحتياطية | فوري وكبير | منخفضة — أبقِ آخر نسختين |
| 2 | احذف اللقطات القديمة | كبير | منخفضة |
| 3 | احذف الأقراص اليتيمة | كبير | تحقّق قبلها |
| 4 | احذف صور ISO القديمة | متوسّط | لا شيء |
| 5 | fstrim داخل الأجهزة | قد يكون كبيراً | لا شيء |
| 6 | انقل جهازاً إلى مخزّن آخر | كبير | منخفضة |
| 7 | وسّع المخزّن | حلّ جذري | يحتاج قرصاً |
# 1) النسخ — احذف ما قبل تاريخ
ls -lt /var/lib/vz/dump/
# 5) استرجاع المساحة المحذوفة من داخل كل جهاز
fstrim -av
# 6) نقل جهاز — والجهاز يعمل
qm move-disk 200 scsi0 other-storage --delete 1
وfstrim يفاجئ كثيرين. على جهاز حُذف منه عشرات الغيغا وDiscard مفعّل، قد يعيد هذه المساحة إلى المخزّن فوراً. جرّبه قبل أن تحذف شيئاً — فقد يحلّ المشكلة وحده.
رابعاً: امنعه — خمسة إجراءات
1) تقليم النسخ تلقائياً
prune-backups keep-daily=7,keep-weekly=4,keep-monthly=6
2) تنبيه قبل الامتلاء
#!/bin/bash
# /usr/local/bin/storage-check — ضعه في cron كل ساعة
THRESHOLD=80
pvesm status | awk 'NR>1 {gsub("%","",$7); if ($7+0 > '"$THRESHOLD"') print $1, $7"%"}' |
while read s u; do
echo "تحذير: المخزّن $s وصل $u" | mail -s "PVE storage warning: $s" [email protected]
done
3) لا تفرط في الحجز على المجمّع الرقيق
القاعدة العملية: لا تتجاوز ضعف السعة الفعلية في مجموع ما تعد به، وراقب الاستعمال الحقيقي أسبوعياً. والحجز الزائد أداة مفيدة — لا وعد بلا حساب.
4) افصل النسخ عن الأقراص
إن كانا على مخزّن واحد، فامتلاء النسخ يوقف أجهزتك. والفصل يجعل أسوأ حالة «فشلت النسخة» لا «توقّف السيرفر».
5) فعّل Discard على كل قرص
خامساً: وسّع المخزّن
| النوع | كيف توسّع |
|---|---|
| ZFS مرآة | أضف زوج أقراص جديداً إلى المجمّع |
| ZFS RAIDZ | مجموعة كاملة جديدة — لا قرصاً واحداً |
| LVM-Thin | أضف القرص لمجموعة الأحجام ثم وسّع المجمّع |
| مجلّد | قرص جديد كمخزّن مستقلّ |
⚠️ إن كان الممتلئ هو قرص النظام
هذه حالة أخطر: بروكسموكس نفسه يتوقّف عن العمل، ولا تفتح اللوحة، وقد لا يُسجَّل دخولك.
# من الكونسول الفيزيائي أو SSH
journalctl --vacuum-size=100M # قلّص السجلّات
apt clean # امسح ذاكرة الحزم
du -sh /var/lib/vz/dump/* # ما الذي يشغل؟
rm /var/lib/vz/dump/vzdump-...-old.zst
وأشهر سبب لامتلاء قرص النظام: النسخ الاحتياطية على مخزّن local. لأنه في التنصيب الافتراضي على قرص النظام نفسه. انقل النسخ إلى مخزّن آخر اليوم — لا بعد أول حادثة.
مراجعة شهرية — عشر دقائق
- افتح صفحة التخزين: هل أي مخزّن فوق 70٪؟
- افحص اللقطات: هل بقيت لقطة عمرها أكثر من أسبوع بلا سبب؟
- راجع النسخ: هل التقليم يعمل؟
- افحص الأقراص اليتيمة.
- على LVM-Thin: افحص metadata_percent أيضاً.
- على ZFS: افحص صحّة المجمّع.
أخطاء شائعة وحلولها
| العَرَض | السبب | الحل |
|---|---|---|
| الأجهزة تجمّدت فجأة | امتلاء مجمّع رقيق | احذف نسخاً فوراً ثم وسّع |
| المجمّع معطّل والمساحة متاحة | امتلاء بيانات التعريف | وسّع metadata |
| حذفت ولم تعد المساحة | Discard مطفأ | فعّله ثم fstrim |
| اللوحة لا تفتح | قرص النظام ممتلئ | كونسول + تقليص السجلّات |
| النسخ تفشل بصمت | لا مساحة ولا تنبيه | mailnotification failure |
| ZFS بطيء جداً | فوق 80٪ | أفرغ أو وسّع |
| المساحة تختفي بلا سبب | لقطات أو أقراص يتيمة | السكربت أعلاه |
أسئلة شائعة
ما النسبة الآمنة؟
70٪ مريحة، و80٪ حدّ التصرّف، وفوق 85٪ خطر — خصوصاً على المجمّع الرقيق وZFS.
هل أستطيع تقليص قرص جهاز؟
عملياً لا. انقل البيانات إلى قرص جديد أصغر واحذف القديم.
لماذا النسخة أصغر بكثير من القرص؟
لأنها تنسخ ما فيه بيانات فقط وتضغطه. قرص بثلاثين غيغا معظمه فارغ قد يصير أرشيفاً بأقلّ من غيغا.
هل أحذف اللقطات القديمة بأمان؟
نعم إن لم تعد تحتاج التراجع إليها. وحذفها قد يستغرق وقتاً — لا تقاطعه.
ما أفضل استثمار لتجنّب هذا كلّه؟
مخزّن منفصل للنسخ — ويفضَّل خارج السيرفر. يحلّ أشيع سبب للامتلاء، ويعطيك الطبقة التي تنجو حين يسقط السيرفر كلّه.
خلاصة مسار التخزين
في خمسة أجزاء: اخترت نوع المخزّن بفهم، وأضفت قرصاً ووسّعته من الطرفين، وبنيت ZFS وراقبت صحّته، ونقلت أقراصاً بلا انقطاع، وتعلّمت كيف تمنع الامتلاء وكيف تتصرّف حين يقع.
والمسار الثالث يبدأ من الشبكة والأمان: تبويب الشبكة من الواجهة، والجدار الناري بمستوياته الثلاثة، والشبكات المعرّفة برمجياً، وتأمين اللوحة، وقراءة السجلّات.
سلسلة «بروكسموكس من الداخل» — خمس وعشرون مقالة بلقطات حقيقية من الواجهة.
الأساسيات:
١. جولة في الواجهة ·
٢. أول جهاز افتراضي ·
٣. الحاويات وLXC ·
٤. الـISO والقوالب ·
٥. المستخدمون والصلاحيات
التخزين:
٦. أنواع التخزين ·
٧. إضافة قرص وتوسيعه ·
٨. ZFS من الواجهة ·
٩. نقل قرص بلا إطفاء ·
١٠. حين يمتلئ التخزين