天天看點

linux mdadm 源碼,Linux下軟RAID管理工具mdadm的基本操作實踐

linux mdadm 源碼,Linux下軟RAID管理工具mdadm的基本操作實踐

RAID (Redundant Array of Independent Disks獨立磁盤備援陣列)是将多顆獨立的硬碟整合成一個存儲單元的資料存儲技術。

1)RAID 類型有多種,分别提供不同級别的性能、存儲容量和可靠性。

2)RAID技術按實作方式不同分為硬RAID和軟RAID。硬RAID具備專門的硬體控制/處理晶片和I/O處理晶片,所提供的功能和性能都要比軟RAID要好很多,目前基本所有的伺服器都配置了RAID卡或是在主機闆上內建了RAID控制晶片,因而都可以實作硬RAID,而軟RAID的所有功能都是由作業系統層面來完成,效率會低一些

在Linux系統中目前以MD(Multiple Devices)虛拟塊裝置的方式實作軟體RAID,利用多個底層的塊裝置虛拟出一個新的虛拟裝置,并且利用條帶化(stripping)技術将資料塊均勻分布到多個磁盤上來提高虛拟裝置的讀寫性能,利用不同的資料備援算法來保護使用者資料不會因為某個塊裝置的故障而完全丢失,而且還能在裝置被替換後将丢失的資料恢複到新的裝置上

mdadm是multiple devices admin的簡稱,它是Linux下的一款标準的軟體 RAID 管理工具,主要用法模式如下

1)建立模式

-C

專用選項:

-l :級别

-n : 裝置個數

-a {yes|no}: 是否自動為其建立裝置檔案

-c:CHUNK大小, 2^n,預設為64K

-x :  指定空閑盤(熱備磁盤)個數,空閑盤(熱備磁盤)能在工作盤損壞後自動頂替

關于-c mkfs在格式化時,可以指定-E選項下的stride參數指定條帶是塊大小的多少倍,有在一定程度上提高軟RAID性能,如塊預設大小為4k,而條帶大小預設為64k,則stride為16,這樣就避免了RAID每次存取資料時都去計算條帶大小

mkfs.ext4  -E stride=16 -b 4096 /dev/md0

其中stride=chunk/block,為2的n次方

2)管理模式

-a(--add) -d(--del,) -r(--remove) -f(--fail)

-S(--stop)停止陣列

3)監控模式

-F

4)增長模式用于增加磁盤,為陣列擴容

-G

5)裝配模式

-A

linux mdadm 源碼,Linux下軟RAID管理工具mdadm的基本操作實踐

以RAID1為例,在CentOS虛拟機中添加三塊20G虛拟硬碟來進行軟RAID的操作實驗

linux mdadm 源碼,Linux下軟RAID管理工具mdadm的基本操作實踐

1)建立磁盤整列

mdadm -Cv /dev/md0 -l 1 -n 2 /dev/sdb /dev/sdc

磁盤陣列的名稱/dev/md0

-l 指定級别 1為RAID1

-n 指定磁盤的個數2 後面接具體的磁盤編号

linux mdadm 源碼,Linux下軟RAID管理工具mdadm的基本操作實踐

以上建立過程中的提示是說軟raid不建議用作/boot啟動分區

mdadm -D /dev/md0檢視/dev/md0磁盤陣列的詳細資訊

可以看見建立後RAID1的兩塊盤正在同步狀态

2)格式化,建立目錄,挂載并測試是否可以正常使用

mkfs.ext4 /dev/md0

mkdir /data_RAID1

mount -t ext4 /dev/md0 /data_RAID1

cd /data_RAID1/

dd if=/dev/zero of=RAID1_Test.iso count=1 bs=200M

linux mdadm 源碼,Linux下軟RAID管理工具mdadm的基本操作實踐

3)vi編輯/etc/fstab

最後一行加入/dev/md0  /data_RAID1   ext4     defaults  0 0

linux mdadm 源碼,Linux下軟RAID管理工具mdadm的基本操作實踐

4)将目前RAID資訊儲存至配置檔案,以便以後進行裝配

mdadm -D --scan > /etc/mdadm.conf

linux mdadm 源碼,Linux下軟RAID管理工具mdadm的基本操作實踐

重新開機後驗證是否能正常挂載

5)模拟損壞磁盤陣列及修複

例如模拟損壞/dev/md0磁盤陣列中的/dev/sdc

[[email protected]_Lab ~]#mdadm /dev/md0 -f /dev/sdc

mdadm: set /dev/sdc faulty in /dev/md0

linux mdadm 源碼,Linux下軟RAID管理工具mdadm的基本操作實踐

這時再mdadm -D /dev/md0 檢視/dev/md0磁盤陣列的狀态資訊

可以看到/dev/sdc為faulty狀态

linux mdadm 源碼,Linux下軟RAID管理工具mdadm的基本操作實踐

這時我們加入一塊修複盤/dev/sdd

mdadm /dev/md0 -a /dev/sdd

然後mdadm -D /dev/md0 檢視/dev/md0磁盤陣列的狀态資訊

可以看到磁盤陣列正在重建rebuild,可以看到重建的完成進度

linux mdadm 源碼,Linux下軟RAID管理工具mdadm的基本操作實踐

完成重建後移除故障盤mdadm /dev/md0 -r /dev/sdc

linux mdadm 源碼,Linux下軟RAID管理工具mdadm的基本操作實踐

以上就是mdadm進行軟RAID的基本操作實驗

本文參考部分概念轉載至

http://www.toxingwang.com/linux-unix/linux-basic/1048.html