在Linux下用軟件實(shí)現(xiàn)RAID功能的實(shí)現(xiàn)方法
一、安裝和編譯
源碼下載:
http://www.cse.unsw.edu.au/~neilb/source/mdadm/
編譯:
tar xzvf ./mdadm-1.6.0.tgz
cd mdadm-1.6.0
make install
rpm安裝:
rpm -ivh mdadm-1.6.0-3.rpm
※源碼最新版本是2.5,由于我使用的1.6.0的rpm包,所以還是以該版本為例。
二、模式
mdadm有6種模式,前兩種模式:Create、Assemble用于設(shè)置和激活陣列;Manage模式用于操作在活動(dòng)陣列中的設(shè)備;Follow或Monitor模式允許管理員對(duì)活動(dòng)陣列設(shè)置事件提醒和動(dòng)作;Build模式用于對(duì)舊陣列使用舊版本的md驅(qū)動(dòng);更有Grow模式能擴(kuò)展陣列;剩下的是Misc模式,他包括對(duì)多種內(nèi)部的任務(wù)和沒有指定特別模式的一些操作。
系統(tǒng)平臺(tái): 紅帽 AS4 for x86
三、部署
1、準(zhǔn)備磁盤
只能使用Sofware RAID格式的磁盤才能組成陣列,所以,首先我們要把做好磁盤格式。正如上面提到的,除了系統(tǒng)盤sda外,我們需要對(duì)sdb、sdc、sdd進(jìn)行操作
a)對(duì)sdb進(jìn)行分區(qū)
fdisk /dev/sdb
n,劃分區(qū):
p,劃分區(qū):
w,寫入退出:
2、創(chuàng)建陣列
mdadm能支持LINEAR、RAID0 (striping)、 RAID1(mirroring)、 RAID4、RAID5、RAID6和MULTIPATH的陣列模式。
創(chuàng)建命令格式如下:
mdadm [mode] [options]
例如:創(chuàng)建一個(gè)RAID 0設(shè)備:
mdadm --create --verbose /dev/md0 --level=0 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
--level表示創(chuàng)建的陣列模式,--raid-devices表示參和陣列的磁盤數(shù)量。
也能這樣表達(dá),意思是相同的:
mdadm -Cv /dev/md0 -l0 -n3 /dev/sd[bcd]1
還能增加-c128參數(shù),指定chunk size為128K(默認(rèn)64K)
3、設(shè)置文件
mdadm不采用/etc/mdadm.conf作為主要設(shè)置文件,他能完全不依賴該文件而不會(huì)影響陣列的正常工作。
該設(shè)置文件的主要作用是方便跟蹤軟RAID的設(shè)置。對(duì)該設(shè)置文件進(jìn)行設(shè)置是有好處的,但不是必須的。推薦對(duì)該文件進(jìn)行設(shè)置。
通常能這樣來建立:
echo DEVICE /dev/sd[bcd]1 > /etc/mdadm.conf
mdadm -Ds >> /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf
4、格式化陣列
后續(xù),只要你把/dev/md0作為一個(gè)獨(dú)立的設(shè)備來進(jìn)行操作即可:
mkfs.ext3 /dev/md0
mkdir /mnt/test
mount /dev/md0 /mnt/test
5、若要開機(jī)自動(dòng)掛載,請(qǐng)加入/etc/fstab中:
/dev/md0 /mnt/tes auto defaults 0 0
四、監(jiān)視和管理
mdadm能非常方便的對(duì)陣列進(jìn)行監(jiān)視和管理的操作,也包括了停止和啟動(dòng)陣列等常用維護(hù)。
1、查看
cat /proc/mdstat
能查看所有使用md驅(qū)動(dòng)的陣列的狀態(tài):
mdadm --detail /dev/md0
查看指定陣列的周詳信息(-D):
2、停止
mdadm -S /dev/md0
停止指定陣列,并釋放磁盤(--stop):
※注意:停止后,原組成陣列的磁盤將處于空閑狀態(tài),一旦吾操作這些磁盤,將不能再重啟激活原陣列。
3、啟動(dòng)
mdadm -A /dev/md0 /dev/sd[bcd]1
啟動(dòng)指定的陣列,也可理解為講一個(gè)新陣列裝配到系統(tǒng)中(--assemble):
若你已在上面設(shè)置了/etc/mdadm.conf文件,也可用-s查找:
mdadm -As /dev/md0
4、測試
如果你沒有設(shè)置/etc/mdadm.conf文件,而且又忘了某磁盤屬于那個(gè)陣列,則你能使用檢測:(--examine)
mdadm -E /dev/sdb1
獲得UUID后,也能這樣激活陣列:
mdadm -Av /dev/md0 --uuid=8ba81579:e20fb0e8:e040da0e:f0b3fec8 /dev/sd*
能看到,只要磁盤沒有損壞,這樣裝配是非常方便的:
5、添加及刪除磁盤
mdadm能在Manage模式下,對(duì)運(yùn)行中的陣列進(jìn)行添加及刪除磁盤。常用于標(biāo)識(shí)failed磁盤,增加spare(冗余)磁盤,及替換磁盤等。
例如:原來狀態(tài)是:
則能使用--fail指定壞磁盤,并--remove走:
mdadm /dev/md0 --fail /dev/sdc1 --remove /dev/sdc1
※需要注意的是,對(duì)于某些陣列模式,如RAID0等,是不能用--fail和--remove的。
增加一個(gè)新的陣列用磁盤
mdadm /dev/md0 --add /dev/sdc1
※需要注意的是,對(duì)于某些陣列模式,如RAID0等,是不能用--add的。
6、監(jiān)視
在Follow或Monitor狀態(tài)下,能使用mdadm對(duì)陣列進(jìn)行監(jiān)視,例如當(dāng)陣列出現(xiàn)問題的時(shí)候,發(fā)送郵件給管理員;或當(dāng)磁盤出現(xiàn)問題的時(shí)候進(jìn)行自動(dòng)的磁盤替換。
nohup mdadm --monitor --mail=sysadmin --delay=300 /dev/md0 &
上述定義:沒300秒監(jiān)視一次,當(dāng)陣列出現(xiàn)錯(cuò)誤,會(huì)發(fā)送郵件給sysadmin用戶。由于monitor啟動(dòng)后是不會(huì)自動(dòng)退出的,所以需要加上nohup和&,使之持續(xù)在后臺(tái)運(yùn)行。
在Follow模式下,是允許共享冗余磁盤的。
例如,我們有兩個(gè)陣列:/dev/md0、/dev/md1,而/dev/md0里面有一個(gè)spare磁盤。當(dāng)我們在/etc/mdadm.conf中定義類似:
DEVICE /dev/sd*
ARRAY /dev/md0 level=raid1 num-devices=3 spare-group=databa
UUID=410a299e:4cdd535e:169d3df4:48b7144a
ARRAY /dev/md1 level=raid1 num-device=2 spare-group=databa
UUID=59b6e564:739d4d28:ae0aa308:71147fe7
也就是定義一個(gè)spare-group組。并運(yùn)行上面的monitor模式命令。這樣,當(dāng)組成/dev/md1的其中一個(gè)磁盤出現(xiàn)問題的時(shí)候,mdadm會(huì)自動(dòng)從/dev/md0上移走spare磁盤,并加入/dev/md1中,而不必人工干預(yù)。(請(qǐng)注意,能實(shí)現(xiàn)這樣工作的,只有在該陣列支持冗余的情況下才能實(shí)現(xiàn),如raid1、raid5等。而對(duì)于raid0等陣列模式,是無效的)
五、其他
1、增加spare磁盤
能通過在創(chuàng)建的時(shí)候指定冗余磁盤:
mdadm -Cv /dev/md0 -l1 -n2 -x1 /dev/sd[bcd]1
-x(--spare-devices)參數(shù)用于指定冗余磁盤的數(shù)量,結(jié)果:
另外,對(duì)于full的陣列(例如已有2個(gè)磁盤的RAID1),則直接使用-add參數(shù),mdadm會(huì)自動(dòng)把冗余的磁盤作為spare disk。
2、刪除陣列
mdadm -S /dev/md0
或
rm /dev/md0
修改/etc/mdadm.conf、/etc/fstab等設(shè)置文件,把相關(guān)的地方去掉;
最后,用fdisk對(duì)磁盤進(jìn)行重新分區(qū)即可。
3、重建陣列
我們也能在沒有fdisk的情況下把使用過,但目前沒有屬于所有陣列的磁盤劃分到新陣列中:
相關(guān)文章
使用GIT進(jìn)行源碼管理——GUI客戶端小結(jié)
很多人對(duì)GIT GUI客戶端是非常不屑一顧的,但我非常喜歡GUI的方便快捷,也不用記憶冗雜的命令,本文簡單的介紹了幾種免費(fèi)的Windows下的GIT客戶端,方便大家使用2014-09-09ubuntu20.04部署ntp服務(wù)器ntpd(ntpdate?)的詳細(xì)過程
這篇文章主要介紹了ubuntu20.04部署ntp服務(wù)器ntpd(ntpdate?)的詳細(xì)過程,本文分步驟給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09微服務(wù)架構(gòu)之服務(wù)注冊與發(fā)現(xiàn)功能詳解
這篇文章主要為大家介紹了微服務(wù)架構(gòu)之服務(wù)注冊與發(fā)現(xiàn)的功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-01-01AIX系統(tǒng)中刪除指定目錄、指定后綴、指定天數(shù)以前的歷史文件
這篇文章主要介紹了AIX系統(tǒng)中刪除指定目錄、指定后綴、指定天數(shù)以前的歷史文件,需要的朋友可以參考下2016-10-10SVN使用教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了SVN使用教程和注意事項(xiàng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08windows服務(wù)器管理的安全注意事項(xiàng)
剛好看到這篇關(guān)于服務(wù)器安全設(shè)置的文章,對(duì)于windows來說安全設(shè)置需要注意很多地方2019-11-11網(wǎng)絡(luò)線路科普之CN2,GIA,CIA,BGP以及IPLC都是什么意思
購買海外vps或者物理服務(wù)器或者海外實(shí)體服務(wù)器托管的時(shí)候,在中國IDC服務(wù)器商中的有關(guān)網(wǎng)絡(luò)線路帶寬的術(shù)語有很多,今天專門做了一個(gè)專題,有關(guān)IPLC專線、CN2、BGP、CIA和普通線路知識(shí)普及2021-06-06詳解aws免費(fèi)服務(wù)器申請(qǐng)及網(wǎng)絡(luò)代理搭建教程
這篇文章主要介紹了aws免費(fèi)服務(wù)器申請(qǐng)及網(wǎng)絡(luò)代理搭建教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12