一.應用場景
Raid大家都知道是冗余磁盤的意思(Redundant Arrays of Independent Disks,RAID),可以按業務系統的需要提供高可用性和冗余性,目前市面上比較常見的是通過服務器的raid陣列卡來實現此功能。
通過硬件陣列卡實現raid具有可靠性高,性能好等特點,但是對于一般的企業而言硬件陣列卡固然好,如果大規模應用的話動輒幾千上萬的費用也不是他們所能承受的,難道就沒有既能保證數據安全,又能減少費用支持的IT方案嗎?
當然有,軟raid就可以實現這一需求。
二.實現步驟
軟raid比較依賴操作系統,所以他的劣勢也顯而易見,需要占用系統資源(主要是CPU資源)。目前在Linux和windows下軟raid都比較常見了,Linux是通過mdadm實現的,windows下則在win2003之后通過磁盤管理來實現。
實驗環境:
一臺centos 7.2 VM,主機名分別為host1,host1上掛載兩塊50G的數據盤,我們的實驗就在這兩塊數據盤上完成。
P.S:需要強調的是生產環境下兩塊組raid的硬盤必須是同品牌同型號同容量的,否則極容易出現軟raid失效的情況。
1.確認操作系統是否安裝了mdadm軟件
[root@host1 ~]# rpm -qa |grep mdadm
mdadm-3.3.2-7.el7.x86_64
2.對兩塊數據盤進行分區,并設置分區類型為raid
fdisk命令只能對容量在2T以下的硬盤進行分區,如果超過2T則需要使用parted工具了。Parted命令以后會介紹使用方法,本節不贅述了。
在fdisk下raid的分區類型代碼是fd,在parted工具下首先需要使用mklabel將磁盤格式由MBR改成GPT,然后才能使用mkpart命令進行分區,分完區之后使用set設置分區flag為raid即可。
3.使用mdadm命令創建raid1
可以看到創建時有個Note的提示,是說軟raid不能當啟動設備,這就是軟raid比較雞肋的地方了。
mdadm-C/dev/md0-ayes-l1-n2/dev/xvd[b,c]1
命令說明:
-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陣列的設備名稱,如果還有其他陣列組可以以此類推;
創建完成后可以使用cat /proc/mdstat查看陣列狀態:
下圖中第一次查看的時候提示resync完成了95.7%,第二次查詢的時候兩塊盤才真正同步完。
也可以使用mdadm -D /dev/md0查看陣列組的狀態
4.創建md0的配置文件
echo DEVICE /dev/sd{a,b}1 >> /etc/mdadm.confmdadm -Evs >> /etc/mdadm.conf
mdadm運行時會自動檢查/etc/mdadm.conf 文件并嘗試自動裝配,因此第一次配置raid后可以將信息導入到/etc/mdadm.conf 中。
5.使用/dev/md0
在/dev/md0上創建文件,然后掛載進行使用。
mkfs.ext4 /dev/md0
注意:在格式化時,可以指定-E選項下的stride參數指定條帶是塊大小的多少倍,有在一定程度上提高軟RAID性能,如塊默認大小為4k,而條帶大小默認為64k,則stride為16,這樣就避免了RAID每次存取數據時都去計算條帶大小,如:
mkfs.ext4 -E stride=16 -b 4096 /dev/md0
6.其他命令
比如組raid的陣列中有磁盤損壞,可以使用如下命令:
選項:-a(--add),-d(--del),-r(--remove),-f(--fail)
模擬損壞盤:
mdadm /dev/md1 -f /dev/sdb5
移除故障盤:
mdadm /dev/md1 -r /dev/sdb5
添加新硬盤:
mdadm /dev/md1 -a /dev/sdb7
停止陣列
mdadm -S /dev/md1
-
Linux
+關注
關注
87文章
11322瀏覽量
209864 -
RAID
+關注
關注
0文章
278瀏覽量
35120
原文標題:Linux 下軟 RAID 實現方案
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論