Linux mdadm 軟RAID陣列創建與管理指南
更新時間 2025-09-02 09:48:45
最近更新時間: 2025-09-02 09:48:45
分享文章
1. mdadm 簡介
軟件RAID實現:通過Linux內核
md驅動實現,無需專用硬件控制器。mdadm功能:
創建/管理多種RAID級別(0/1/5/6/10)
磁盤添加/移除
實時監控與故障恢復
陣列重構與狀態維護
2. RAID級別選型指南
| 級別 | 最小磁盤 | 容錯能力 | 可用容量 | 適用場景 |
|---|---|---|---|---|
| RAID 0 | 2 | 無 | 100% | 臨時數據/高速緩存 |
| RAID 1 | 2 | 單磁盤故障 | 50% | 系統盤/關鍵服務 |
| RAID 5 | 3 | 單磁盤故障 | (N-1)/N | 文件服務器 |
| RAID 6 | 4 | 雙磁盤故障 | (N-2)/N | 大容量存儲 |
| RAID 10 | 4 | 鏡像組內故障 | 50% | 高負載數據庫 |
性能提示:
RAID 0: 讀寫性能最佳
RAID 5/6: 寫性能受奇偶校驗影響
RAID 10: 讀寫均衡,恢復速度快
3. 創建前準備
本文檔以 /dev/nvme0n1、/dev/nvme1n1 為例,操作時請根據實際情況進行替換。
必要操作
# 安裝工具
sudo apt install mdadm # Debian/Ubuntu
sudo yum install mdadm # RHEL/CentOS
# 檢查和清除磁盤元數據(對所有組建RAID的磁盤執行,執行前確保沒有重要數據)
sudo wipefs /dev/nvme0n1
sudo wipefs -a -f /dev/nvme0n1分區方案選擇
<2TB磁盤:可直接使用原始設備(
/dev/nvme0n1)≥2TB磁盤:必須使用GPT分區(
/dev/nvme0n1p1)GPT分區詳細流程(使用parted)
# 選擇要分區的磁盤(示例:/dev/nvme0n1) DISK=/dev/nvme0n1 # 1. 創建GPT分區表 sudo parted $DISK --script mklabel gpt # 2. 創建主分區(使用100%磁盤空間) sudo parted $DISK --script mkpart primary 0% 100% # 3. 設置分區類型為Linux RAID sudo parted $DISK --script set 1 raid on # 4. 驗證分區 sudo parted $DISK --script print # 5. 清除分區元數據(關鍵步驟!) PARTITION="${DISK}p1" # NVMe分區命名 sudo wipefs -a -f $PARTITION # 對于SATA磁盤(如/dev/sdb): # DISK=/dev/sdb # PARTITION="${DISK}1"關鍵注意事項:
對陣列中的每個磁盤重復此分區操作
使用
set 1 raid on設置Linux RAID標志分區后必須清除元數據
使用
lsblk確認分區創建成功:lsblk -o NAME,SIZE,FSTYPE,PARTTYPE $DISK # 應顯示分區類型為"linux_raid_member"
4. 創建RAID陣列(以RAID 1為例)
步驟1:創建陣列
sudo mdadm --create /dev/md0 --level=1 -a yes --raid-devices=2 /dev/nvme0n1p1 /dev/nvme1n1p1命令參數說明:
--create或-C:創建新 RAID 陣列的選項--level=1或-l 1:設置 RAID 級別為 1-a yes或--auto=yes:自動為陣列設備創建設備文件--raid-devices=2或-n 2:指定組成 RAID 陣列的設備數量為 2
步驟2:驗證狀態
# 檢查重建進度
cat /proc/mdstat
# 查看詳細信息
sudo mdadm --detail /dev/md0步驟3:文件系統格式化
# 創建xfs文件系統
sudo mkfs.xfs /dev/md0步驟4:持久化配置
# 保存RAID配置
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf # Debian/Ubuntu
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm.conf # RHEL/CentOS
# 配置開機掛載
sudo mkdir /data
echo "UUID=$(blkid -s UUID -o value /dev/md0) /data xfs defaults 0 0" | sudo tee -a /etc/fstab
sudo mount -a # 立即掛載5. 運維管理命令
狀態監控
cat /proc/mdstat # 實時狀態
sudo mdadm --detail /dev/md0 # 詳細報告磁盤更換流程
標記故障盤:
sudo mdadm --manage /dev/md0 --fail /dev/nvme0n1p1移除故障盤:
sudo mdadm --manage /dev/md0 --remove /dev/nvme0n1p1添加新盤:
sudo mdadm --manage /dev/md0 --add /dev/nvme2n1p1
注意
新磁盤需先分區并清除元數據。
徹底刪除陣列
sudo umount /dev/md0
sudo mdadm --stop /dev/md0
sudo mdadm --zero-superblock /dev/nvme{0,1}n1p1 # 清除元數據
# 刪除/etc/fstab和/etc/mdadm/mdadm.conf相關條目