軟RAID的實現,以RAID5 爲例,在Centos 6 系統上實現,首先在虛擬機上添加3塊硬盤 在系統上分別顯示爲/dev/sdb /dev/sdc /dev/sdd 大小隨意選擇。
1、要使用RAID需要將磁盤分區格式設置爲Linux raid auto
分別創建 /dev/sdb1 3G
/dev/sdb2 2G (這塊盤冗餘,當其他3塊盤中有任何一塊出現故障時自動替換上)
/dev/sdc1 2G
/dev/sdd1 2G
分區格式設置爲 Linux raid auto
(注意如果分區大小不同,以最小分區爲準,這裏故意設置一個3G的測試下是不是這個道理)
上圖完成了分區的創建工作
2、進行RAID5的製作
可通過cat /proc/mdstat命令來查看當前系統RAID的狀態
如上所示表示當前系統上沒有做軟RAID
下面簡單介紹下製作RAID的工具:
mdadm:模塊化的工具,用來管理RAID
命令的語法格式:mdadm [mode] <raiddevice> [options] <component-devices>
<raiddevice>: /dev/md#
<component-devices>: 任意塊設備
其中mode:
-C: 創建模式
-n #: 使用#個塊設備來創建此RAID;
-l #:指明要創建的RAID的級別;
-a {yes|no}:自動創建目標RAID設備的設備文件;
-c CHUNK_SIZE: 指明塊大小;
-x #: 指明空閒盤的個數;
-D:顯示raid的詳細信息;
mdadm -D /dev/md#
管理模式:
-f: 標記指定磁盤爲損壞;
-a: 添加磁盤
-r: 移除磁盤
example:mdadm raiddevice [-f,-r,-a] /dev/devices
停止md設備:
mdadm -S /dev/md#
3、下面真正開始製作RAID了,要求是製作一個大小爲4G的RAID5,使用4塊磁盤,一塊用來做冗餘
mdadm -C /dev/md0 -l 5 -n 3 /dev/sdb1 /dev/sdc1 /dev/sdd1 -x 1 /dev/sdb2
上圖表示創建完成
4、可用cat /proc/mdstat 查看其創建過程
5、用mdadm /dev/md0 命令查看RAID5的詳細信息
6、然後將其格式化爲ext4類型
mke2fs -t ext4 -b 4096 -m 6 /dev/md0
-t:指定文件類型
-b:4096 是用來設置塊大小,默認就是4096字節可以不設置
-m:是用來設置爲管理磁盤預留空間,默認是%5可以不設置
7、然後將其掛載到/mnt目錄下,並用df -h查看 /mnt目錄大小
/dev/md0 大小爲4G證明確實是有其最小分區決定RAID大小的
RAID5 製作完成!
命令blkid可用於查看當前系統上的磁盤分區簡要信息:
8、如果需要開機自動掛載,需要將將其寫入/etc/fstab 文件中去。
/dev/md0,在開機重啓後可能會變名稱,所以寫入/etc/fstab文件是可用其UUID確定某個分區
9、下面將/etc/fstab文件複製到/mnt目錄中去
我們模擬將其中一塊盤損壞:
命令爲:mdadm -f /dev/sdb1
我們再用 cat /proc/mdstat 命令查看RAID的狀態
上圖顯示sdb1 已經損壞,sdb2迅速頂替了sd1的位置 ,RAID5處於正常狀態
還可用命令 mdadm -D /dev/md0 顯示其詳細信息
10、我們在再將其中一塊盤設置爲故障看看會怎麼樣?
命令 mdadm /dev/md0 -f /dev/dev/sdb2 將/dev/sdb2也設置爲故障
用命令 cat /proc/mdstat 查看RAID的狀態,顯示/dev/sdb1 /dev/sdb2 都爲故障
此時RAID5仍然能繼續工作,處於降級狀態工作
用命令: mdadm -D /dev/md0 查看詳細信息
其狀態爲: State : clean, degraded (降級)
如果再損壞一塊磁盤那麼這個RAID5就會出現故障,導致數據丟失,所以當發現磁盤中有故障後需要及時更換
11、下面演示,添加磁盤,假如我們損壞的磁盤修復了,將其添加上新的磁盤使其能正常安全運行
首先要移除損壞的磁盤,命令爲:
mdadm /dev/md0 -r /dev/sdb1 /dev/sdb2
移除後顯示先RAID的狀態:
顯示只有兩塊盤處於工作狀態,現在我們要添加新的磁盤上去
命令爲:
mdadm /dev/md0 -a /dev/sdb1
mdadm /dev/md0 -a /dev/sdb2
12、再查看下其詳細信息
發現其RAID又恢復到了以前的狀態
完畢!!!