1、什么是RAID?
多個磁盤合成一個“陣列”來提供更好的性能、冗余,或者兩者都提供。
2、RAID的優點?
提高IO 能力:
磁盤并行讀寫
提高耐用性:
磁盤冗余來實現
3、RAID 實現的方式:
外接式磁盤陣列:通過擴展卡提供適配能力
內接式RAID :主板集成RAID 控制器
安裝OS 前在BIOS 里配置
Software RAID:軟件實現的RAID
4、RAID級別:多塊磁盤組織在一起的工作方式有所不同
0:條帶
性能提升:讀和寫
冗余能力(容錯能力):無
空間利用率:nS
至少需要2塊硬盤
1:鏡像
性能提升:寫性能下降,讀性能提升
冗余能力:有
空間利用率:1/2
至少需要2塊硬盤
2-4:現在不做使用
5:
性能提升:讀 寫
冗余能力:有
空間利用率:(n-1)/n
至少需要3塊硬盤
6:
性能提升:讀 寫
冗余能力:有,最多支持兩塊硬盤同時損壞
空間利用率:(n-2)/n
至少需要4塊磁盤
7:
可以理解為一個獨立存儲計算機,自身帶有操作系統和管理工具,可以獨立運行,理論上性能最高的RAID
組合RAID
10:
性能提升:讀 寫
冗余能力:有
空間利用率:1/2
至少需要4塊硬盤
01:
性能提升:讀 寫
冗余能力:有
空間利用率:1/2
至少需要4塊硬盤
50:
性能提升:讀 寫
冗余能力:有
空間利用率:(n-2)/n
至少需要6塊硬盤
jbod:
性能提升:無提升
冗余能力:無
空間利用率:100%
至少需要2塊硬盤
常用級別:RAID-0, RAID-1, RAID-5, RAID-10,RAID-50, JBOD
5、利用軟件實現RAID
mdadm:模式化的工具
支持的RAID 級別:LINEAR, RAID0, RAID1, RAID4,RAID5, RAID6, RAID10
語法:mdadm [mode] <raiddevice> [options] <component-devices>
模式化的命令:
創建模式
-C 設備
專用選項
-n #: 使用#個塊設備來創建此RAID;
-l #:指明要創建的RAID的級別;
-a {yes|no}:自動創建目標RAID設備的設備文件;
-c CHUNK_SIZE: 指明塊大小;
-x #: 指明空閑盤的個數;
管理模式
–add(-a) eg:mdadm /dev/md# -a /dev/sda9 將磁盤sda9添加的md#陣列中,新添加硬盤要與原先的硬盤的儲存空間相同
–remove(-r) eg:madam /dev/md# -r /dev/sda8 移除md#下的sda8磁盤
–fail(-f) eg:mdadm /dev/md# –fail /dev/sda7 模擬損壞的md#下的sda7磁盤
監控模式
-F
-D /dev/md1 顯示/dev/md1 的所有的磁盤信息
增長模式
-G
裝配模式
-A mdadm -A /dev/md# /dev/sda7 /dev/sda9 將sda7和sda9裝配到md#下
停止陣列:
mdadm -S /dev/md# 停止/dev/md#的磁盤陣列
觀察md的狀態:
cat /proc/mdstat
6.軟RAID配置實例
使用mdadm創建并定義RAID設備
#mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
用文件系統對每個RAID 設備進行格式化
#mke2fs -j /dev/md0
測試RAID 設備
mdadm 允許檢查RAID 設備的狀況
#mdadm –detail|D /dev/md0
增加新的成員
#mdadm –G /dev/md0 –n4 -a /dev/sdf1
7.軟RAID測試和修復
模擬磁盤故障
#mdadm /dev/md0 -f /dev/sda1
移除磁盤
#mdadm /dev/md0 –r /dev/sda1
從軟件RAID磁盤修復磁盤故障,替換出故障的磁盤然后開機
在備用驅動器上重建分區
#mdadm /dev/md0 -a /dev/sda1
mdadm /proc/mdstat 及系統日志信息
8、軟RAID管理
生成配置文件:mdadm –D –s >> /etc/mdadm.conf
停服務:mdadm –S /dev/md0
激活:mdadm –A –s /dev/md0 激活
刪除raid信息:mdadm –zero-superblock /dev/sdb1
9、RAID實戰演練
(1)創建2G RAID0
2G 2個1G的 分區
mdadm -C /dev/md0 創建一個設備
fdisk /dev/sda 查看一下/dev/sda
n +1G n +1G 創建兩個為sda5 sda6的分區
t 5 fd t 6 fd 將這兩個分區的格式更改為Linux Raid auto
w 保存退出
partprobe /dev/sda 重新讀取一下硬盤分區
cat /proc/partitions 查看所有的Raid
mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda5 /dev/sda6 創建/dev/md0 自動為其創建文件,創建的級別為0 設備個數為2
cat /proc/mdstat 查看所有的Raid
mke2fs -j /dev/md0 格式化md0,不能格式化sda5 sda6
mount /dev/md0 /mnt 將md0掛載到/mnt
(2)創建2G RAID1
因為磁盤的利用率為1/2,要想創建一個2G的RAID1需要創建兩個2G的分區
mdadm -C /dev/md1 創建一個設備
fdisk /dev/sda 查看一下/dev/sda
n +2G n +2G 創建兩個為sda7 sda8的分區
t 7 fd t 8 fd 將這兩個分區的格式更改為Linux Raid auto
w 保存退出
partprobe /dev/sda 重新讀取一下硬盤分區
cat /proc/partitions 查看所有的Raid
mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/sda7 /dev/sda8 創建/dev/md1 自動為其創建文件,創建的級別為0 設備個數為2
cat /proc/mdstat 查看所有的Raid
mke2fs -j /dev/md1 格式化md1,不能格式化sda7 sda8
mount /dev/md1 /mnt 將md1掛載到/mnt
(3)實現軟件raid
①將已經存在的或者新建的多塊磁盤分區同意調整為 fd Linux raid auto 模式
fdisk /dev/sd# n p +10G t fd w
磁盤的建議塊數,RAID5為例 需要5塊磁盤左右
②創建RAID設備
mdadm -C /dev/md0 -a yes -l 5 -n 4 -x 1 /dev/sd{b,c,d,e,f}
創建的RAID的設備的文件名為md0,自動創建設備文件(-a yes),創建的級別為RAID5(-l 5),設備的個數為4個(-n 4),創建空閑盤的合數為1個(-x 1),創建的真實的磁盤為/dev/sd{b,c,d,e,f}
③查看已經創建的RAID設備是否存在
mdadm -D /dev/md0
cat /proc/mdstat
④為創建好的RAID設備設定文件類型,以ext4文件系統為例
mkfs.ext4 /dev/md0
⑤將已經創建好的RAID設備,設置開機自動掛載,設置掛載點和掛載類型等
vim /etc/fstab
UUID="b92ddd51-c555-4948-b1d5-8563b697a2f1" /mnt/raid ext4 defaults 0 0
⑥將設備的配置信息,寫入到文件中,生成配置文件
mdadm -Ds /dev/md0 > /etc/mdadm.conf
⑦啟動與停止RAID
mdadm -A /dev/md0 啟動RAID
mdadm -S /dev/md0 停止RAID(注意:停止RAID之前,應該先卸載RAID,mount /dev/md0,之后使用-S卸載,否則會報錯)
⑧模擬RAID在日常生活中出現的錯誤
mdadm /dev/md0 -f /dev/sdf1 模擬損壞
mdadm /dev/md0 -r /dev/sdf1 刪除成員
mdadm /dev/md0 -a /dev/sdf1 增加
mdadm -G /dev/md0 -n 6 -a /dev/sdd4 增加成員
⑨刪除RAID
umount /mnt/md# 卸載RAID的掛載
mdadm -S /dev/md0 停止RAID的使用
rm -f /etc/mdadm.conf 刪除RAID配置文件
vi /etc/fstab 將RAID的默認掛載取消掉
fdisk /dev/sda 刪除新建的RAID分區
mdadm –zero-superblock /dev/sdd1 將磁盤中的超級塊信息取消掉
原創文章,作者:sjsir,如若轉載,請注明出處:http://www.www58058.com/42327
內容總結的很好,可以通過圖片來展示各raid級別的工作模式會更直觀哦