نفاد مساحة التخزين في نظام SLES Thin Pool: توسيع LVM بأمان واستعادة عمليات الكتابة

عندما يُبلغ نظام SUSE Linux Enterprise Server ذو التخزين المرن عن "عدم وجود مساحة كافية على الجهاز"، تحقق أولاً من حجم مجموعة التخزين المرنة Data%. Meta%إذا كانت مساحة البيانات ممتلئة ومجموعة التخزين تحتوي على مساحات فارغة، فقم بتوسيع مجموعة التخزين المرنة باستخدام lvextendحجم التخزين المرن - وليس فقط الحجم الظاهري لوحدة التخزين المنطقية المرنة. أما مساحة البيانات الوصفية الممتلئة تمامًا، فقد تتطلب إصلاحًا في وضع عدم الاتصال قبل استئناف عمليات الكتابة العادية.

يستخدم الإجراء الموضح أدناه أوامر LVM2 الموثقة لنظام Linux ونموذج التخزين الموصوف في دليل إدارة التخزين لخادم SUSE Linux Enterprise Server 15 SP7 . قد يختلف توفر الأوامر وتكوين الخدمة في حزمة خدمة SLES أخرى أو في بيئة مُجمّعة. يُنصح بأخذ نسخة احتياطية متسقة مع التطبيق وتقييد عمليات الكتابة المكثفة قبل تعديل وحدة التخزين الإنتاجية.

1. تحقق مما إذا كانت مساحة البيانات أو البيانات الوصفية قد استُنفدت

قم بتشغيل الأمر التالي على المضيف الذي يمتلك مجموعة التخزين الرقيقة النشطة، vgdataمع استبدال اسم مجموعة التخزين الخاصة بك:

sudo lvs -a -o lv_name,lv_size,segtype,data_percent,metadata_percent,pool_lv vgdata

ابحث عن الصف الذي thin-poolيحتوي على SegType. Data%يقيس كتل البيانات المخصصة؛ Meta%ويقيس بيانات تعريف تعيين المجموعة. هذه حدود سعة منفصلة. إذا Data%كانت قيمة قريبة من 100 ولكنها Meta%أقل منها بشكل مريح، فإن إضافة مساحات بيانات إضافية هي الحل الأمثل. أما إذا Meta%كانت قيمة تساوي 100، فاستخدم احتياطات الاسترداد المذكورة في القسم 4.

يعرض الطرفية مجموعة تخزين رقيقة باسم pool0، حيث تبلغ نسبة البيانات 98.12% ونسبة البيانات الوصفية 40.26%، بالإضافة إلى وحدة تخزين رقيقة باسم thin1
مثال على عرض طرفي: نسبة بيانات المجموعة قريبة من الامتلاء بينما استخدام بياناتها الوصفية أقل بكثير. توضح القيم الحقول التي يجب فحصها، وليست نتيجة تشخيصية مباشرة.

على سبيل المثال ، لنفترض vgdata/pool0أن حجم مجموعة التخزين 100 جيجابايت، وأن نسبة استخدام البيانات فيها 98.12%، ونسبة استخدام البيانات الوصفية 40.26%. في هذه الحالة، تكون مجموعة التخزين معرضة لخطر فوري حتى لو df -hأظهرت التقارير وجود مساحة كافية داخل وحدة التخزين الرقيقة المُثبّتة. يمكن أن يتجاوز الحجم الافتراضي لوحدة التخزين الرقيقة السعة الفعلية لمجموعة التخزين، كما هو موضح في وثائق برنامج Expert Partitioner من SUSE .

قم أيضاً بفحص الأخطاء الأخيرة:

sudo journalctl -k --since "-30 min" | grep -Ei 'thin|no space|I/O error'

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

2. تأكد من أن مجموعة الحجم تحتوي على مساحات فيزيائية حرة

قبل تغيير حجم المجموعة، تأكد مما إذا كانت المجموعة ذات الحجم الكبير قادرة على تمويل التوسعة:

sudo vgs -o vg_name,vg_size,vg_free vgdata
يعرض الطرفية مخرجات vgs لمجموعة وحدات التخزين vgdata بسعة إجمالية 200 جيجابايت ومساحة تخزين متاحة 40 جيجابايت
مثال على فحص مجموعة وحدات التخزين: يشير VG_FREE إلى ما إذا كانت الامتدادات المادية متاحة لتوسيع pool0 دون إضافة جهاز آخر.

في المثال الافتراضي، تحتوي مجموعة وحدات التخزين بحجم 200 جيجابايت على 40 جيجابايت من المساحة الحرة. لذا، من الممكن نظريًا توسيع مساحة التخزين بمقدار 20 جيجابايت، مع مراعاة قيود التخصيص وتوافر مساحة كافية لأي نمو في البيانات الوصفية. يُنصح بالاحتفاظ ببعض مساحة مجموعة وحدات التخزين كاحتياطي بدلًا من تخصيص كل المساحة الحرة للتخزين.

إذا VG_FREEكانت القيمة صفرًا، lvextendفلا يمكن إنشاء سعة فعلية. أضف وحدة تخزين فعلية مُعرَّفة ومُجهَّزة بشكل صحيح إلى مجموعة وحدات التخزين، وقم بتوسيع وحدة التخزين الأساسية ووحدة التخزين المنطقية (LVM PV) الخاصة بها حسب الحاجة، أو استعد الكتل قبل إعادة المحاولة. تُوثِّق SUSE إضافة وحدات تخزين فعلية عند تغيير حجم مجموعة وحدات التخزين . لا تُشغِّل الأمر أبدًا pvcreateعلى قرص غير مُوثَّق: فقد يؤدي ذلك إلى تلف بيانات تعريف التخزين الموجودة.

3. قم بتمديد البركة الرقيقة بدلاً من الحجم الرقيق

عندما Data%يكون العامل المحدد هو عدم استنفاد البيانات الوصفية، وتوفر مساحات كافية من وحدات التخزين، يتم توسيع المجموعة نفسها:

sudo lvextend -L +20G vgdata/pool0
يعرض الطرفية الأمر lvextend -L +20G vgdata/pool0 متبوعًا برسالة تغيير حجم وحدة التخزين المنطقية من 100 إلى 120 جيجابايت
مثال على امتداد thin-pool: يستهدف الأمر vgdata/pool0، وليس وحدة التخزين المنطقية thin الموجودة بداخله. الاستجابة المعروضة هي مثال توضيحي.

تضيف هذه +20Gالصيغة 20 جيجابايت إلى حجم مجموعة التخزين الحالية، لكنها لا تحدد الحجم النهائي بـ 20 جيجابايت. في هذا المثال، يزداد حجم مجموعة التخزين الأساسية من 100 جيجابايت إلى 120 جيجابايت. مع بقاء البيانات المخصصة دون تغيير، فإن 98.12 جيجابايت المستخدمة تمثل حوالي 81.8% من حجم مجموعة التخزين الموسعة. قد تختلف النسبة الفعلية إذا استمرت عمليات الكتابة أثناء العملية.

لا تستخدم الاستبدال lvextend -L +20G vgdata/thin1. إن توسيع مساحة العناوين الافتراضية لوحدة تخزين رقيقة لا يُضيف بالضرورة سعة بيانات فعلية إلى مجموعتها. ولأن هذا الأمر يُوسّع مجموعة التخزين الأساسية بدلاً من جهاز الكتلة الافتراضي لنظام الملفات، فإن تغيير حجم نظام الملفات ليس مطلوبًا عادةً لهذه العملية تحديدًا. يُوثّق دليل التزويد الرقيق المعتمد لـ LVM آلية توسيع مجموعة التخزين الرقيقة وقيودها.

عندما يتعذر عليك توسيع المسبح على الفور

إذا تم حذف الملفات بالفعل من نظام ملفات رقيق، وكان التخلص من الملفات مدعومًا من قبل النظام بأكمله، ففكر في استعادة الكتل المهملة:

sudo fstrim -v /srv/data

استخدم نقطة التحميل الفعلية لوحدة التخزين الرقيقة، وليس جهاز مجموعة التخزين الرقيقة. قد يؤدي حذف الملفات بنجاح إلى تقليل حجم وحدة التخزين Data%، ولكن حذف الملفات وحده لا يُعيد عادةً الكتل إلى مجموعة التخزين. يمكن للقطات الرقيقة الاحتفاظ بالكتل المشتركة، ولن تستفيد مجموعة التخزين المُعدّة لتجاهل عمليات الحذف من ذلك. لا تعتمد على حذف الملفات كبديل طارئ موثوق به للسعة الفعلية، خاصةً إذا بدأت عمليات الكتابة بالفشل. قم بإزالة اللقطات القديمة فقط بعد التحقق من ملكيتها، وتوابعها، ومتطلبات الاحتفاظ بها؛ فحذف اللقطات عملية لا رجعة فيها.

4. تعامل مع منطقة البيانات الوصفية الكاملة كشرط استرداد

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

تتضمن عملية الاستعادة الموثقة تعطيل مجموعة التخزين المتأثرة خارج الشبكة، وإصلاح بياناتها الوصفية الرقيقة باستخدام أداة معينة lvconvert --repair VG/ThinPool، وتوسيع سعة البيانات الوصفية باستخدام أداة أخرى lvextend --poolmetadatasize، ثم فحص كل نظام ملفات متأثر باستخدام الأداة المناسبة خارج الشبكة. على سبيل المثال، قد تتطلب مجموعة تخزين يكون حجم وحدة التخزين المنطقية (LV) لبياناتها الوصفية أقل من 2 جيجابايت مراجعة الهدف، مثل:

sudo lvextend --poolmetadatasize 2G vgdata/pool0

هذا ليس أمرًا يُنفذ عشوائيًا على مجموعة تخزين نشطة تالفة. حجمه مثال فقط، وليس شرطًا أساسيًا. تأكد أولًا من حجم البيانات الوصفية الحالية، والمساحات المتاحة، وإلغاء التنشيط الصحيح، ووسائط الاسترداد، والنسخ الاحتياطية. lvconvert --repairيجب التخطيط لذلك مع مراعاة وقت التوقف وخبرة الاسترداد؛ يشير دليل LVM إلى أنه قد يفشل وقد تظل البيانات غير قابلة للاسترداد. احتفظ بنسخة LV القديمة من البيانات الوصفية حتى يتم التحقق من مجموعة التخزين وأنظمة الملفات. vgcfgbackupلا يقوم النسخ الاحتياطي لتكوين LVM بنسخ البيانات الوصفية لمجموعة التخزين الرقيقة. بالنسبة للبيانات بالغة الأهمية، تواصل مع دعم SUSE أو فريق استرداد التخزين لديك قبل محاولة الإصلاح.

5. فعّل خاصية التمديد التلقائي، ثم تحقق من عمليات الكتابة

بعد استقرار النظام، قم بضبط سياسة نمو استباقية في activationقسم [اسم القسم] /etc/lvm/lvm.conf. يبدأ هذا المثال التوسيع عند استخدام 70% ويطلب نموًا بنسبة 20%؛ اضبط هذه القيم لمعدل الكتابة وسعة مجموعة وحدات التخزين المتاحة.

activation {
    thin_pool_autoextend_threshold = 70
    thin_pool_autoextend_percent = 20
}

تأكد من تطبيق الإعدادات على نطاق التكوين الصحيح ومراقبة المجموعة:

sudo lvchange --monitor y vgdata/pool0
يعرض الطرفية الأمر lvchange --monitor y vgdata/pool0 ورسالة تفيد بتفعيل المراقبة
مثال على أمر المراقبة: يسمح تمكين مراقبة أحداث LVM بتطبيق سياسات نمو المجموعة التلقائية عندما تبقى مساحات حرة كافية.

يعتمد النمو التلقائي لمجموعة التخزين الرقيقة على مراقبة أحداث LVM ( dmeventd) وتوافر مساحات تخزين كافية. تحقق من خدمة المراقبة التي يوفرها نظام SLES لديك - على سبيل المثال، systemctl status lvm2-monitorإذا كانت هذه الوحدة موجودة - وراجع سجلاتها. لا يضمن تحديد حد أقصى للمساحة التخزينية الحماية إذا تجاوزت عمليات الكتابة قدرة التوسيع أو إذا كانت مجموعة وحدات التخزين ممتلئة بالفعل. راجع دليل LVM للاطلاع على إرشادات التوسيع التلقائي وخيارات مراقبة lvchange .

تأكد من نجاح الإصلاح

اقرأ بيانات استخدام المجمع وسعة وحدة التخزين المتبقية:

sudo lvs -o lv_name,lv_size,data_percent,metadata_percent vgdata/pool0
sudo vgs -o vg_name,vg_free vgdata

Data%يجب أن ينخفض ​​حجم البيانات بعد توسيع مجمع البيانات، Meta%ويجب أن يبقى دون مستوى النفاذ، ويجب أن يكون المجمع نشطًا دون أخطاء إدخال/إخراج جديدة. تحقق من حالة نظام الملفات وسجلات التطبيق، ثم قم بإجراء اختبار كتابة وقراءة صغير مناسب للتطبيق قبل تحرير أحمال العمل المعلقة. إذا استمرت الأخطاء بعد توفر مساحة، فأبقِ حمل العمل المتأثر غير متصل حتى يتم تقييم سلامة نظام الملفات والتطبيق؛ إذ لا يمكن لسعة إضافية استعادة عمليات الكتابة الفاشلة أو المفقودة.

اترك تعليقاً

نفاد مساحة التخزين في نظام SLES Thin Pool: توسيع LVM بأمان واستعادة عمليات الكتابة

نفاد مساحة التخزين في نظام SLES Thin Pool: توسيع LVM بأمان واستعادة عمليات الكتابة

قم بحل أخطاء مساحة التخزين الرقيقة في SUSE LVM عن طريق التحقق من استخدام البيانات والبيانات الوصفية، وتوسيع المجموعة بأمان، ومنع الانقطاعات المتكررة.

عندما يصبح نظام ملفات Btrfs الخاص بنظام SLES للقراءة فقط: قم بالتشخيص قبل إعادة التثبيت

عندما يصبح نظام ملفات Btrfs الخاص بنظام SLES للقراءة فقط: قم بالتشخيص قبل إعادة التثبيت

حدد ما إذا كان نظام الملفات Btrfs مخصصًا للقراءة فقط عن قصد، أو يعاني من نقص في المساحة، أو يحمي البيانات بعد حدوث أخطاء، ثم اختر مسار استعادة يناسب السبب.

قم بتسجيل SLES 15 باستخدام SUSE Manager في شبكة غير متصلة بالإنترنت

قم بتسجيل SLES 15 باستخدام SUSE Manager في شبكة غير متصلة بالإنترنت

قم بإعداد القنوات المتطابقة، وإنشاء مفتاح التنشيط، وتشغيل عميل SLES 15 بدون اتصال مباشر بالإنترنت مع الحفاظ على الاتصال اللازم لتسجيل دخول المدير.

تفعيل خاصية إعادة توجيه X11 في YaST عبر SSH

تفعيل خاصية إعادة توجيه X11 في YaST عبر SSH

قم بإصلاح خطأ تشغيل XIO الخاص بـ YaST عبر SSH، وتحقق من إعادة توجيه X11 و xauth، وقم بالتبديل إلى واجهة ncurses عندما تكون النافذة البعيدة غير ضرورية.

التراجع الآمن عن تحديث SLES الفاشل باستخدام Snapper

التراجع الآمن عن تحديث SLES الفاشل باستخدام Snapper

ابحث عن لقطة Btrfs قبل التحديث، واختبرها للقراءة فقط، واجعل الاسترداد دائمًا باستخدام Snapper مع فهم البيانات التي تبقى خارج عملية التراجع الجذرية.

إعادة توجيه سجلات النظام الآمنة في SLES باستخدام rsyslog وبروتوكول TLS المتبادل

إعادة توجيه سجلات النظام الآمنة في SLES باستخدام rsyslog وبروتوكول TLS المتبادل

إرسال سجلات نظام SLES إلى جامع rsyslog عن بعد عبر TLS مصادق عليه، مع عمليات التحقق من الشهادات، وتخزين الانقطاعات مؤقتًا، واختبارات التسليم.

تتبع أخطاء الذاكرة في ترقية نظام SLES قبل إعادة المحاولة

تتبع أخطاء الذاكرة في ترقية نظام SLES قبل إعادة المحاولة

استخدم سجلات ذاكرة الوصول العشوائي (RAM) والمبادلة والنواة وZypper لتحديد ضغط الذاكرة الحقيقي وحماية حالة الحزمة واختيار محاولة إعادة ترقية SLES أكثر أمانًا.

حافظ على تشغيل تحديثات الأمان الخاصة بنظام Debian 12 على خادم بدون واجهة رسومية

حافظ على تشغيل تحديثات الأمان الخاصة بنظام Debian 12 على خادم بدون واجهة رسومية

قم بتمكين تحديثات الأمان التلقائية لنظام Debian عبر SSH، واحتفظ بمصادر الحزم الافتراضية، وتحقق من عمليات التشغيل المجدولة من خلال سجلات systemd و APT.

احصل على تحذيرات قرص أوبونتو الذكية عبر البريد الإلكتروني باستخدام smartd

احصل على تحذيرات قرص أوبونتو الذكية عبر البريد الإلكتروني باستخدام smartd

قارن خيارات تسليم البريد، وقم بتكوين smartd على Ubuntu، وتحقق من وصول تحذيرات حالة القرص إلى صندوق الوارد الخاص بك.

فشل البحث عن نظام أسماء النطاقات (DNS) في دبيان 12: إصلاح systemd-resolved

فشل البحث عن نظام أسماء النطاقات (DNS) في دبيان 12: إصلاح systemd-resolved

استعادة عمليات البحث عن نظام أسماء النطاقات (DNS) على Debian 12 عن طريق التحقق من systemd-resolved، وإصلاح resolv.conf عند الحاجة، والتحقق من نظام أسماء النطاقات (DNS) الخاص بالمصدر وحل التطبيقات.