## ⚙️ ایجاد RAID 5 در لینوکس با استفاده از `mdadm` (Striping with Distributed Parity)
**RAID 5** ترکیبی از **Striping** (تقسیم دادهها بین دیسکها) و **Parity توزیعشده** است. این سطح از RAID تعادلی بین **کارایی، ظرفیت ذخیرهسازی، و افزونگی (ایمنی)** ایجاد میکند و یکی از محبوبترین گزینهها برای سرورهاست.
---
## ✅ مزایا و ویژگیهای RAID 5
* تحمل خرابی **یک دیسک**
* عملکرد بالا در خواندن دادهها
* مصرف مؤثر فضای ذخیرهسازی
* مناسب برای استفاده در محیطهای **production**
---
## 🛠️ پیشنیازها
* حداقل **۳ دیسک** خالی (مثلاً: `/dev/sdb /dev/sdc /dev/sdd`)
* نصب بودن ابزار `mdadm`
* دسترسی root
### نصب `mdadm`:
```bash
sudo apt install mdadm # در Debian/Ubuntu
sudo yum install mdadm # در CentOS/RHEL
```
---
## 🧹 مرحله ۱: پاک کردن امضای قدیمی از دیسکها (اختیاری ولی توصیهشده)
```bash
sudo mdadm --zero-superblock /dev/sdb
sudo mdadm --zero-superblock /dev/sdc
sudo mdadm --zero-superblock /dev/sdd
```
---
## 🔧 مرحله ۲: ایجاد آرایه RAID 5
```bash
sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
```
* `--level=5` مشخصکننده سطح RAID 5
* `--raid-devices=3` تعداد دیسکها
---
## 📈 مرحله ۳: بررسی وضعیت آرایه
```bash
cat /proc/mdstat
```
یا:
```bash
sudo mdadm --detail /dev/md0
```
در هنگام sync اولیه، ممکن است پردازش چند دقیقه تا چند ساعت طول بکشد.
---
## 🗃️ مرحله ۴: ساخت فایلسیستم
```bash
sudo mkfs.ext4 /dev/md0
```
---
## 📂 مرحله ۵: مانت کردن دستگاه RAID
```bash
sudo mkdir /mnt/raid5
sudo mount /dev/md0 /mnt/raid5
```
---
## 🔁 مرحله ۶: مانت خودکار در بوت با fstab
گرفتن UUID:
```bash
sudo blkid /dev/md0
```
اضافه کردن به `/etc/fstab`:
```text
UUID=xxx-xxx-xxx /mnt/raid5 ext4 defaults 0 0
```
---
## 📝 مرحله ۷: ذخیره پیکربندی RAID
```bash
sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf
```
---
## 🧪 مرحله ۸ (اختیاری): شبیهسازی خرابی دیسک
خراب کردن دیسک:
```bash
sudo mdadm --fail /dev/md0 /dev/sdb
sudo mdadm --remove /dev/md0 /dev/sdb
```
بازگردانی دیسک:
```bash
sudo mdadm --add /dev/md0 /dev/sdb
```
---
## ✅ نتیجهگیری
RAID 5 راهحل حرفهای و مطمئنی برای سیستمهایی است که هم **کارایی** و هم **حفاظت از دادهها** اهمیت دارد. در صورت خرابی یک دیسک، دادهها قابل بازیابی هستند و سیستم بدون توقف ادامه میدهد.