- 0x00 前言
- 0x01 軟Raid實踐流程
- 1.基于CentOS7實作
0x00 前言
RAID是英文Redundant Array of Independent Disks的縮寫,中文簡稱為獨立備援磁盤陣列。RAID是把多塊獨立的實體硬碟按不同的方式組合起來形成一個硬碟組(邏輯硬碟),進而提供比單個硬碟更高的存儲性能和提供資料備份技術組成磁盤陣列的不同方式稱為RAID級别(RAID Levels),常用的RAID級别有以下幾種: RAIDO,RAID1,RAID5,RAID6,RAID10等
我們知道實作RAID技術有兩種,一是采用硬體裝置支援,二是采用采用軟體系統支援;
軟raid比較依賴作業系統,是以他的劣勢也顯而易見,需要占用系統資源(主要是CPU資源)。
目前在Linux和windows下軟raid都比較常見了:
- Linux 是通過mdadm實作
- windows則在win2003之後通過磁盤管理來實作
P.S: 需要強調的是生産環境下兩塊組raid的硬碟必須是同品牌同型号同容量的,否則極容易出現軟raid失效的情況。
0x01 軟Raid實踐流程
1.基于CentOS7實作
環境準備:
OS:CentOS7 (可以采用虛拟機實作)
Disk:三個以上并且大小相同的硬碟(xvdb xvdc xvdd)
#0.磁盤做好raid分區
$ lsblk #檢視磁盤資訊 (分别對三塊盤進行)
$ fdisk /dev/xvdb
n #建立分區
p #建構主分區
1 #分區号
... #設定扇區起始位置
l #列出分區類型代碼 找到 Raid hex為fd
t #修改分區類型
fd #修改分區類型為Linux Raid autodetect;
p #列印分區表資訊
w #同步寫入對磁盤的操作
#1.并且檢查是否安裝了mdadm安裝包
$rpm -q mdadm
mdadm-3.3.2-7.el7.x86_64
#2.建立磁盤陣列
mdadm -C -v /dev/md0 -l5 -n3 /dev/xvd[b,c,d]1 -x1 /dev/sde1
# -C,--create 建立陣列;
# -a,--auto 同意建立裝置,如不加此參數時必須先使用mknod 指令來建立一個RAID裝置,不過推薦使用-a yes參數一次性建立;
# -l,--level 陣列模式,支援的陣列模式有 linear, raid0, raid1, raid4, raid5, raid6, raid10, multipath, faulty, container;
# -n, --raid-devices 陣列中活動磁盤的數目,該數目加上備用磁盤的數目應該等于陣列中總的磁盤數目;
# /dev/md0 陣列的裝置名稱,如果還有其他陣列組可以以此類推;
#3.檢視同步程序(完成後不顯示resync同步進度)
ct /proc/mdstat
#4.檢視陣列組的狀态.
mdadm -D /dev/md0
#5.建立md0的配置檔案(mdadm運作時會自動檢查/etc/mdadm.conf 檔案并嘗試自動裝配,是以第一次配置raid後可以将資訊導入到/etc/mdadm.conf中。)
echo DEVICE /dev/sd{a,b,c}1 >> /etc/mdadm.conf
mdadm -Evs >> /etc/mdadm.conf
#5.卸掉磁盤來模拟一塊磁盤損壞 -f(--fail)
mdadm -f /dev/md0 /dev/xvdb1
#6.從陣列中移除/dev/sdb1 故障磁盤 -r(--remove)
mdadm /dev/md0 / -r /dev/xvdb1
#7.添加一塊熱備盤 /dev/sde1 -a(--add)
mdadm /dev/md0 --add /dev/xvde1
#8.格式化,挂載即可
mkfs.ext4 /dev/md0
mkfs.ext4 -E stride=16 -b 4096 /dev/md0
#9.停止陣列
mdadm -S /dev/md1
- 如果硬碟容量大于2TB以上請使用parted工具進行分區設定,但是需要将磁盤格式由MBR改成GPT類型然後再使用mkpart指令進行分區,分區完成之後使用set設定分區flag為raid即可;
- 軟raid不能當啟動裝置這就是軟raid比較雞肋的地方了。
- 在格式化時可以
,有在一定程度上提高軟RAID性能,如塊預設大小為4k,而條帶大小預設為64k,則stride為16,這樣就避免了RAID每次存取資料時都去計算條帶大小指定-E選項下的stride參數指定條帶是塊大小的多少倍