التعامل مع الأقراص والتخزين (Storage, Partitions, LVM)

دقائق القراءة: 5

يُعد فهم التخزين في لينكس من أهم المهارات العملية لأي مستخدم أو مسؤول نظام، لأن كثيراً من مهام الإدارة اليومية تعتمد على معرفة كيفية قراءة الأقراص، إنشاء الأقسام، تهيئتها، ثم ربطها بالنظام بشكل آمن ومنظم. وعند العمل على خوادم الإنتاج أو البيئات الافتراضية، فإن الخطأ في التعامل مع القرص قد يؤدي إلى فقدان بيانات أو توقف خدمات كاملة.

قبل البدء في تنفيذ الأوامر، من المفيد أن يكون لديك تصور واضح عن بنية النظام، خاصة إذا كنت قد قرأت سابقاً هيكلية ملفات لينكس (Filesystem Hierarchy Standard – FHS)، لأن نقاط الربط مثل / و/home و/var ليست مجرد مجلدات، بل قد تكون مرتبطة بأقسام منفصلة أو وحدات منطقية ضمن LVM. كما أن معظم هذه العمليات تُنفّذ من الطرفية، لذلك يفيد الرجوع إلى الدخول الأول إلى الطرفية (Terminal): الأوامر الأساسية والمساعدة (man, help) لفهم أوامر الاستكشاف والمساعدة.

ما الفرق بين القرص، القسم، ونظام الملفات؟

القرص هو وحدة التخزين الفعلية أو الافتراضية مثل /dev/sda أو /dev/vda. أما القسم Partition فهو جزء منطقي من هذا القرص مثل /dev/sda1 أو /dev/sda2. بعد ذلك يأتي نظام الملفات Filesystem مثل ext4 أو xfs ليحدد كيفية تخزين البيانات وقراءتها.

بمعنى أبسط: القرص هو الوعاء، والقسم هو المساحة المجزأة داخله، ونظام الملفات هو الطريقة التي تُرتَّب بها البيانات داخل هذه المساحة. هذه المفاهيم الثلاثة أساسية لفهم LVM لاحقاً.

استعراض الأقراص والأقسام الحالية

أول خطوة قبل أي تعديل هي فحص الوضع الحالي بدقة. لا تبدأ بإنشاء أقسام أو حذفها قبل معرفة أسماء الأجهزة، وأحجامها، ونقاط الربط المستخدمة حالياً. من أكثر الأدوات شيوعاً في ذلك: lsblk وfdisk -l وblkid.

lsblk
sudo fdisk -l
sudo blkid
df -h
  • lsblk يعرض البنية الشجرية للأقراص والأقسام ونقاط الربط.
  • fdisk -l يوضح تفاصيل الجداول والأحجام وأنواع الأقسام.
  • blkid يفيد في معرفة UUID ونوع نظام الملفات.
  • df -h يعرض المساحات المستخدمة على الأنظمة المركبة حالياً.

تحذير مهم: التحقق من اسم القرص خطوة حاسمة. الخلط بين /dev/sda و/dev/sdb قد يؤدي إلى مسح قرص الإنتاج بدلاً من القرص الجديد.

إنشاء الأقسام باستخدام fdisk أو parted

بعد التأكد من هوية القرص، يمكن إنشاء قسم جديد. أداة fdisk مناسبة غالباً لأقراص MBR وGPT في الاستخدامات الأساسية، بينما parted شائعة في البيئات الحديثة والأقراص الكبيرة.

sudo fdisk /dev/sdb

داخل الأداة ستستخدم أوامر تفاعلية شائعة مثل:

  • n لإنشاء قسم جديد.
  • p لعرض الجدول الحالي.
  • t لتغيير نوع القسم عند الحاجة.
  • w لحفظ التغييرات والخروج.

إذا كنت تحتاج إلى إعادة قراءة جدول الأقسام دون إعادة تشغيل، يمكن استخدام partprobe. كما يمكنك الاستعانة بأدوات البحث والتحقق التي تناولناها في البحث المتقدم في النظام باستخدام (find, locate, grep) عند مراجعة ملفات الإعدادات أو مخرجات الأوامر المرتبطة بالأقراص.

تهيئة القسم بنظام ملفات وربطه بالنظام

إنشاء القسم وحده لا يكفي، بل يجب تهيئته بنظام ملفات ثم تركيبه Mount على مجلد مناسب. اختيار نظام الملفات يعتمد على طبيعة العمل؛ فـ ext4 مناسب وواسع الاستخدام، بينما xfs شائع في الخوادم ذات الأحجام الكبيرة.

sudo mkfs.ext4 /dev/sdb1
sudo mkdir -p /data
sudo mount /dev/sdb1 /data
df -h

ولجعل الربط دائماً بعد إعادة التشغيل، أضف الإدخال المناسب إلى ملف /etc/fstab. يفضَّل استخدام UUID بدلاً من اسم الجهاز المباشر لأن ترتيب الأجهزة قد يتغير.

sudo blkid /dev/sdb1
sudo nano /etc/fstab
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data ext4 defaults 0 2

بعد الحفظ اختبر الملف دون إعادة تشغيل عبر الأمر:

sudo mount -a

إذا احتوى /etc/fstab على سطر خاطئ، فقد يفشل النظام في الإقلاع بشكل طبيعي. اختبر دائماً باستخدام mount -a قبل إعادة التشغيل.

ما هو LVM ولماذا يُستخدم؟

LVM اختصار لـ Logical Volume Manager، وهو طبقة مرنة لإدارة التخزين تتجاوز التقسيمات التقليدية الجامدة. بدلاً من ربط كل قسم بشكل ثابت ونهائي، يتيح لك LVM تجميع عدة أقراص أو أقسام في مجموعة تخزين، ثم إنشاء وحدات منطقية قابلة للتوسعة أو التقليص بسهولة أكبر.

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

المفاهيم الأساسية في LVM

  • PV: القرص الفيزيائي أو القسم الذي سيُضم إلى LVM.
  • VG: مجموعة الأحجام التي تجمع مساحة عدة PVs.
  • LV: وحدة منطقية تُستخدم فعلياً مثل أي قسم عادي.

خطوات إنشاء LVM عملياً

لنفترض أن القسم /dev/sdb1 مخصص لـ LVM. سنحوّله إلى PV، ثم ننشئ VG، ثم LV، ثم نهيئه ونربطه.

sudo pvcreate /dev/sdb1
sudo vgcreate vg_data /dev/sdb1
sudo lvcreate -L 10G -n lv_backup vg_data
sudo mkfs.ext4 /dev/vg_data/lv_backup
sudo mkdir -p /backup
sudo mount /dev/vg_data/lv_backup /backup

بعد ذلك يمكنك فحص الحالة بهذه الأوامر:

sudo pvs
sudo vgs
sudo lvs
lsblk

هذا التنظيم يعطيك مرونة ممتازة عند زيادة السعة مستقبلاً، بدلاً من إعادة تقسيم القرص بشكل مرهق.

توسعة المساحة في LVM

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

sudo lvextend -L +5G /dev/vg_data/lv_backup
sudo resize2fs /dev/vg_data/lv_backup

إذا كان نظام الملفات من نوع xfs فستستخدم غالباً xfs_growfs بعد التوسعة. كما يُنصح بمراقبة تأثير التغييرات على استهلاك المساحة والسجلات عبر مراقبة السجلات (Logs) وتحليل الأخطاء (journalctl, /var/log).

أفضل الممارسات لتفادي الأخطاء

  • خذ نسخة احتياطية قبل أي عملية حذف أو إعادة تقسيم.
  • استخدم lsblk وblkid قبل وبعد كل خطوة.
  • اعتمد UUID في /etc/fstab بدلاً من أسماء الأجهزة.
  • لا تعدّل أقسام النظام الحرجة وأنت تعمل من نفس القسم النشط إلا إذا كنت تدرك تماماً ما تفعل.
  • تحقق من الصلاحيات عند إنشاء نقاط الربط، ويمكنك مراجعة إدارة الصلاحيات والملكية (Chmod, Chown, Sudo) لضبط الوصول بشكل صحيح.

خاتمة

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

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

10 comments

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *