پرش به محتوا

RAID 1 نرم‌افزاری با mdadm

دو دیسک را آینه کنید تا خرابی یکی باعث از دست رفتن داده نشود؛ ساخت آرایه، mount دائمی، هشدار ایمیلی و تعویض دیسک خراب.

Ubuntu 24.04 LTSسطح: متوسطبرای: Ubuntu 24.04 LTS، Ubuntu 26.04 LTS، Ubuntu 22.04 LTSبه‌روزرسانی: ۱۶ آبان ۱۴۰۵

RAID پشتیبان نیست. اگر فایلی پاک یا رمزگذاری شود، روی هر دو دیسک پاک یا رمزگذاری می‌شود. RAID فقط در برابر خرابی سخت‌افزار دیسک محافظت می‌کند.

در این مثال دو دیسک خالی /dev/sdb و /dev/sdc داریم. قبل از هر کاری با lsblk مطمئن شوید نام‌ها درست است.

۱. ساخت آرایه

bash
sudo apt install -y mdadm
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
cat /proc/mdstat

همگام‌سازی اولیه در پس‌زمینه انجام می‌شود و می‌توانید هم‌زمان از آرایه استفاده کنید.

۲. فایل‌سیستم و mount

bash
sudo mkfs.ext4 -L data /dev/md0
sudo mkdir -p /data
echo 'LABEL=data /data ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab
sudo mount -a
df -h /data

۳. ثبت آرایه برای بوت

bash
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u

۴. هشدار در صورت خرابی

در /etc/mdadm/mdadm.conf آدرس ایمیل را تنظیم کنید (سرور باید بتواند ایمیل بفرستد، مثلاً با Postfix به‌عنوان relay):

ini
MAILADDR admin@example.ir

آزمایش ارسال هشدار:

bash
sudo mdadm --monitor --scan --test --oneshot

۵. وقتی یک دیسک خراب شد

bash
sudo mdadm --detail /dev/md0

دیسک خراب (مثلاً sdc) را از آرایه خارج کنید، تعویض کنید و دیسک جدید را اضافه کنید:

bash
sudo mdadm /dev/md0 --fail /dev/sdc --remove /dev/sdc
# ... دیسک را فیزیکی عوض کنید ...
sudo mdadm /dev/md0 --add /dev/sdc
watch cat /proc/mdstat