انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

إعداد RAID ومراقبة صحة الأقراص: دليل smartctl

نظرة عامة على مستويات RAID (0/1/5/10) وRAID البرمجي بـ mdadm وفحص صحة الأقراص بـ smartctl والمراقبة بـ smartd وتفسير بيانات SMART.

وقت القراءة: 14 دقيقة إدارة الخادم
raidmdadmsmartctlصحة القرصsmartraid برمجيlinux

جدول المحتويات

إعداد RAID ومراقبة صحة الأقراص: دليل smartctl

أعطال الأقراص أمر لا مفر منه في بيئات الخوادم. تجمع تقنية RAID (Redundant Array of Independent Disks) عدة أقراص لتحسين أمان البيانات و/أو الأداء. يغطي هذا الدليل مستويات RAID وإعداد RAID البرمجي في Linux ومراقبة صحة الأقراص بـ smartctl.

مستويات RAID

RAID 0 — التشريط (Striping)

تُوزَّع البيانات بالتساوي على الأقراص.

  • الحد الأدنى من الأقراص: 2
  • السعة: مجموع جميع الأقراص
  • الأداء: سرعة قراءة/كتابة عالية
  • الموثوقية: صفر — إذا فشل قرص واحد، تُفقد جميع البيانات
  • الاستخدام: البيانات المؤقتة والتطبيقات عالية الأداء

RAID 1 — المرايا (Mirroring)

تُكتب البيانات على جميع الأقراص في آنٍ واحد.

  • الحد الأدنى من الأقراص: 2
  • السعة: سعة أصغر قرص
  • الأداء: تزداد سرعة القراءة، وتبقى سرعة الكتابة دون تغيير
  • الموثوقية: عالية — إذا فشل قرص، يستمر الآخر
  • الاستخدام: أقراص نظام التشغيل والبيانات الحرجة

RAID 5 — التكافؤ الموزع

تُوزَّع البيانات ومعلومات التكافؤ على جميع الأقراص.

  • الحد الأدنى من الأقراص: 3
  • السعة: (N-1) × سعة القرص
  • الأداء: قراءة جيدة وكتابة معتدلة
  • الموثوقية: يتحمل فشل قرص واحد
  • الاستخدام: خوادم الملفات والتخزين للأغراض العامة

RAID 10 — مرايا + تشريط

مزيج من RAID 1 وRAID 0.

  • الحد الأدنى من الأقراص: 4
  • السعة: نصف السعة الإجمالية
  • الأداء: عالٍ جداً
  • الموثوقية: يتحمل فشل قرص واحد لكل زوج
  • الاستخدام: قواعد البيانات وأداء عالٍ + موثوقية

جدول مقارنة RAID

الميزةRAID 0RAID 1RAID 5RAID 10
الحد الأدنى من الأقراص2234
السعة100%50%(N-1)/N%50%
سرعة القراءةعالية جداًعاليةعاليةعالية جداً
سرعة الكتابةعالية جداًعاديةمعتدلةعالية
تحمل الأعطال0 أقراص1 قرص1 قرص1/زوج
أمان البياناتلا يوجدعالٍعالٍعالٍ جداً

قد تحتوي الخوادم الفيزيائية لـ REXE على وحدة تحكم RAID للأجهزة. يُدار RAID البرمجي بواسطة نواة Linux كبديل لـ RAID الأجهزة.

إعداد RAID البرمجي بـ mdadm

تثبيت mdadm

hljs bash
# Ubuntu/Debian
sudo apt update
sudo apt install mdadm -y

# CentOS/AlmaLinux
sudo dnf install mdadm -y

تحضير الأقراص

hljs bash
# سرد الأقراص الموجودة
lsblk
fdisk -l

# عرض معلومات القرص
sudo fdisk -l /dev/sdb
sudo fdisk -l /dev/sdc

# مسح توقيعات RAID الموجودة
sudo mdadm --zero-superblock /dev/sdb
sudo mdadm --zero-superblock /dev/sdc

إنشاء RAID 1

hljs bash
# إنشاء مصفوفة RAID 1
sudo mdadm --create /dev/md0 \
  --level=1 \
  --raid-devices=2 \
  /dev/sdb /dev/sdc

# تأكيد الإنشاء (اكتب yes)
# مراقبة حالة RAID
watch cat /proc/mdstat

# التحقق من حالة الاكتمال
cat /proc/mdstat

إنشاء RAID 5

hljs bash
# إنشاء مصفوفة RAID 5 (3 أقراص)
sudo mdadm --create /dev/md0 \
  --level=5 \
  --raid-devices=3 \
  /dev/sdb /dev/sdc /dev/sdd

# إضافة قرص احتياطي ساخن
sudo mdadm --create /dev/md0 \
  --level=5 \
  --raid-devices=3 \
  --spare-devices=1 \
  /dev/sdb /dev/sdc /dev/sdd /dev/sde

حفظ إعداد RAID

hljs bash
# تحديث mdadm.conf
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

# تحديث initramfs
sudo update-initramfs -u

# عرض حالة RAID
sudo mdadm --detail /dev/md0

إنشاء نظام ملفات على RAID

hljs bash
# إنشاء نظام ملفات ext4
sudo mkfs.ext4 /dev/md0

# إنشاء نقطة تحميل
sudo mkdir /mnt/raid

# التحميل
sudo mount /dev/md0 /mnt/raid

# إضافة إلى /etc/fstab للتحميل الدائم
echo '/dev/md0 /mnt/raid ext4 defaults 0 0' | sudo tee -a /etc/fstab

إدارة RAID

hljs bash
# عرض حالة RAID
sudo mdadm --detail /dev/md0

# سرد جميع مصفوفات RAID
cat /proc/mdstat

# تمييز قرص كمعطوب
sudo mdadm /dev/md0 --fail /dev/sdb

# إزالة القرص المعطوب
sudo mdadm /dev/md0 --remove /dev/sdb

# إضافة قرص جديد
sudo mdadm /dev/md0 --add /dev/sdb

فحص صحة الأقراص بـ smartctl

يقرأ smartctl بيانات S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) من الأقراص.

تثبيت smartmontools

hljs bash
# Ubuntu/Debian
sudo apt install smartmontools -y

# CentOS/AlmaLinux
sudo dnf install smartmontools -y

أوامر smartctl الأساسية

hljs bash
# عرض معلومات القرص
sudo smartctl -i /dev/sda

# التحقق من حالة SMART
sudo smartctl -H /dev/sda
# الناتج: SMART overall-health self-assessment test result: PASSED

# عرض جميع بيانات SMART
sudo smartctl -a /dev/sda

تشغيل اختبارات SMART

hljs bash
# اختبار قصير (1-2 دقيقة)
sudo smartctl -t short /dev/sda

# اختبار طويل (عدة ساعات)
sudo smartctl -t long /dev/sda

# عرض نتائج الاختبار
sudo smartctl -l selftest /dev/sda

تفسير بيانات SMART

سمات SMART المهمة:

المعرفالسمةالوصفالقيمة الحرجة
1Raw_Read_Error_Rateمعدل أخطاء القراءة الخاميجب أن يكون 0
5Reallocated_Sector_Ctعدد القطاعات المُعاد تخصيصهايجب أن يكون 0
9Power_On_Hoursإجمالي ساعات التشغيلمعلوماتي
187Reported_Uncorrectأخطاء غير قابلة للتصحيحيجب أن يكون 0
197Current_Pending_Sectorالقطاعات المعلقةيجب أن يكون 0
198Offline_Uncorrectableغير قابل للتصحيح دون اتصاليجب أن يكون 0

إذا كانت قيم المعرف 5 (Reallocated_Sector_Ct) أو 197 (Current_Pending_Sector) أو 198 (Offline_Uncorrectable) أكبر من 0، فقد يكون القرص على وشك الفشل. احتفظ بنسخة احتياطية من بياناتك فوراً!

فحص أقراص NVMe

hljs bash
# معلومات قرص NVMe
sudo smartctl -i /dev/nvme0

# بيانات SMART لـ NVMe
sudo smartctl -a /dev/nvme0

# حالة صحة NVMe
sudo smartctl -H /dev/nvme0

المراقبة التلقائية بـ smartd

يعمل smartd في الخلفية، يراقب صحة الأقراص باستمرار ويرسل إشعارات عند اكتشاف مشاكل.

إعداد smartd

hljs bash
# تحرير ملف الإعداد
sudo nano /etc/smartd.conf
# مراقبة جميع الأقراص، إرسال بريد إلكتروني عند المشاكل
DEFAULTS -a -o on -S on -n standby,q -s (S/../.././02|L/../../6/03) -m admin@rexe.tr

# مراقبة أقراص محددة
/dev/sda -a -o on -S on -m admin@rexe.tr
/dev/sdb -a -o on -S on -m admin@rexe.tr

# الاكتشاف التلقائي لجميع الأقراص
DEVICESCAN -a -o on -S on -m admin@rexe.tr
hljs bash
# تفعيل خدمة smartd
sudo systemctl enable --now smartd

# التحقق من الحالة
sudo systemctl status smartd

أوامر مراقبة صحة الأقراص

hljs bash
# فحص صحة سريع لجميع الأقراص
for disk in /dev/sd[a-z]; do
  echo "=== $disk ==="
  sudo smartctl -H $disk 2>/dev/null | grep -E "PASSED|FAILED|result"
done

# التحقق من درجة حرارة القرص
sudo smartctl -A /dev/sda | grep -i temperature

# التحقق من ساعات تشغيل القرص
sudo smartctl -A /dev/sda | grep Power_On_Hours

# عرض سجلات الأخطاء
sudo smartctl -l error /dev/sda

تكامل RAID + SMART

hljs bash
# التحقق من حالة SMART للأقراص في مصفوفة RAID
sudo mdadm --detail /dev/md0 | grep -E "State|Active|Failed"

# التحقق من صحة كل قرص في RAID
for disk in /dev/sdb /dev/sdc /dev/sdd; do
  echo "=== $disk ==="
  sudo smartctl -H $disk
done

# إعداد إشعارات البريد الإلكتروني لـ RAID
sudo nano /etc/mdadm/mdadm.conf
# أضف السطر: MAILADDR admin@rexe.tr

استخدم RAID ومراقبة SMART معاً. يتنبأ SMART بفشل القرص مسبقاً بينما يمنع RAID فقدان البيانات عند الفشل. معاً يشكّلان استراتيجية شاملة لأمان الأقراص.

الخلاصة

RAID ومراقبة صحة الأقراص مكونات أساسية لأمان البيانات على خوادم REXE. يوفر RAID 1 أو RAID 10 موثوقية عالية للبيانات الحرجة، بينما يتيح لك smartctl وsmartd اكتشاف أعطال الأقراص قبل حدوثها. الاختبارات المنتظمة لـ SMART وفحوصات حالة RAID هي الطريقة الأكثر فعالية لمنع فقدان البيانات غير المتوقع.