高源
摘 要:RAID技術(shù)的合理運(yùn)用,可以有效利用磁盤的空間,提高服務(wù)器的數(shù)據(jù)容錯(cuò)能力,企業(yè)通過Linux系統(tǒng)就可以靈活的實(shí)現(xiàn)RAID陣列。本文從初學(xué)者的角度出發(fā),在Linux環(huán)境中,研究了如何使用RAID技術(shù)實(shí)現(xiàn)數(shù)據(jù)的冗余和容錯(cuò)。
關(guān)鍵詞:RAID;冗余;容錯(cuò);Linux
1 RAID的簡(jiǎn)介
當(dāng)今數(shù)字信息時(shí)代,企業(yè)的數(shù)據(jù)永遠(yuǎn)是最寶貴的。因此很多大中型企業(yè)不惜重金投入,購(gòu)置昂貴的設(shè)備以期獲得較高的訪問速度和較好的安全性。磁盤陣列RAID(價(jià)格便宜具有冗余能力的磁盤陣列)技術(shù)的出現(xiàn)就是為了防止因?yàn)榇疟P故障而導(dǎo)致數(shù)據(jù)丟失或者導(dǎo)致系統(tǒng)不正常工作。通過RAID技術(shù)可以將重復(fù)的數(shù)據(jù)保存到多個(gè)磁盤上,采用這種方法降低了丟失數(shù)據(jù)的風(fēng)險(xiǎn)。常見的RAID分為硬件RAID和軟件RAID兩種,前者由硬件供應(yīng)商提供各種磁盤陣列產(chǎn)品,后者主要是整合在操作系統(tǒng)中的軟件RAID,例如:Linux系統(tǒng)中的RAID功能。
Linux提供了靈活的磁盤管理方式,很多企業(yè)系統(tǒng)管理員由于經(jīng)費(fèi)不足,無(wú)法購(gòu)買相關(guān)的硬件設(shè)備,通過使用Linux系統(tǒng),就可以用內(nèi)建的磁盤管理功能做到RAID0、RAID1 和RAID5等陣列,使空間分配更加靈活。Linux下的磁盤陣列具有以下特點(diǎn):
①增加系統(tǒng)的存取速度;②具有冗余容錯(cuò)能力;③有效的利用磁盤利用率,提高了主機(jī)的整體工作性能。
RAID 0也叫帶區(qū)卷,它的最大特點(diǎn)是提供了最佳的讀寫能力。帶區(qū)卷可以在2到32個(gè)磁盤上創(chuàng)建,但不同的是在每個(gè)磁盤上占用空間必須相同。在向卷中寫入數(shù)據(jù)時(shí),數(shù)據(jù)被分割成64KB的數(shù)據(jù)塊,但同時(shí)寫入每一個(gè)磁盤,由于是同時(shí)以相同速度對(duì)所有磁盤進(jìn)行寫操作,而且可以通過多個(gè)驅(qū)動(dòng)器共同進(jìn)行數(shù)據(jù)訪問。帶區(qū)卷的缺點(diǎn)是沒有容錯(cuò)能力,一個(gè)成員損壞,整個(gè)卷被破壞。
RAID 1也叫鏡像卷,它的最大特點(diǎn)是提供了冗余容錯(cuò)能力。該卷是在兩個(gè)磁盤上創(chuàng)建的動(dòng)態(tài)卷,當(dāng)一個(gè)磁盤出現(xiàn)故障,磁盤的工作不會(huì)被中斷。在向鏡像卷中寫入數(shù)據(jù)時(shí),數(shù)據(jù)被同時(shí)向兩個(gè)磁盤分別進(jìn)行寫入,即一份數(shù)據(jù)以兩份拷貝分別在兩個(gè)磁盤上寫入,從而提供數(shù)據(jù)冗余性,這樣當(dāng)一個(gè)磁盤的數(shù)據(jù)被破壞時(shí),另一個(gè)磁盤的數(shù)據(jù)依然能有效,這種容錯(cuò)能力使應(yīng)用和服務(wù)的可靠性和穩(wěn)定性大大增強(qiáng)。
RAID 5卷的創(chuàng)建至少需要3塊磁盤,該卷具有容錯(cuò)能力。在向卷中寫入數(shù)據(jù)時(shí),數(shù)據(jù)被分割成64KB的數(shù)據(jù)塊單元同時(shí)寫入到磁盤,在每次寫入時(shí),總會(huì)在一個(gè)磁盤上寫入奇偶校驗(yàn)值,這樣數(shù)據(jù)和奇偶校驗(yàn)值在3個(gè)或更多的動(dòng)態(tài)磁盤上成交替的帶區(qū)分布。如果卷的某一成員磁盤失效,可以利用其他成員磁盤上的數(shù)據(jù)和奇偶校驗(yàn)值重新創(chuàng)建實(shí)效磁盤上的那一部分?jǐn)?shù)據(jù),從而具有一定的故障恢復(fù)功能。
2 RAID軟件工具的安裝
Linux系統(tǒng)中配置動(dòng)態(tài)磁盤管理首先需要查看是否安裝了raid軟件工具包,如果沒有,可以從紅帽網(wǎng)站中下載并安裝,解壓和安裝步驟如下:
⑴解壓軟件工具包 #tar –zxvf raidtools-1.00.3.tar.gz
進(jìn)入解壓后的文件夾 #cd raidtools-1.00.3
⑵raidtools的安裝
配置 #./configure
編譯 # make
安裝 # make install
3 軟件RAID的配置過程
3.1 創(chuàng)建軟件RAID的配置文件/etc/raidtab
# vi /etc/raidtab
Sample raid-5 configuration
配置RAID5 硬件設(shè)備的名稱 raiddev /dev/md0
配置所創(chuàng)建RAID的級(jí)別 raid-level 5
配置RAID5的磁盤數(shù)量 nr-raid-disks 3
配置塊大小 chunk-size 4
配置RAID 5冗余磁盤數(shù)量 #nr-spare-disks 0
以下為創(chuàng)建Raid5的磁盤以及磁盤的編號(hào)
第一塊磁盤 device /dev/sdb1
RAID5磁盤一編號(hào) raid-disk 0
第二塊磁盤 device /dev/sdc1
RAID5磁盤二編號(hào) raid-disk 1
第三塊磁盤 device /dev/sdd1
RAID5磁盤三編號(hào) raid-disk 2
3.2 軟件RAID的配置過程
創(chuàng)建設(shè)備文件 # mkraid /dev/md0
顯示RAID設(shè)備狀況及組成 # lsraid -A -a /dev/md0
格式化該設(shè)備文件 # mkfs.ext3 /dev/md0
創(chuàng)建設(shè)備掛載文件 # mkdir /mnt/md0
掛載RAID設(shè)備 # mount /dev/md0 /mnt/md0
顯示該設(shè)備運(yùn)行狀況 # df –lh
Filesystem Size Used Avail Use% Mounted on
設(shè)備 容量 已用 可用 已用% 掛載點(diǎn)
/dev/sda1 6.0G 2.1G 3.6G 35% /
none 147M 0 147M 0% /dev/shm
/dev/md0 8.9G 33M 8.5G 1% /opt
4 RAID故障演示及重建恢復(fù)
4.1 模擬磁盤sdb出現(xiàn)故障
# mdadm /dev/md0 -f /dev/sdb
4.2 顯示RAID5磁盤系統(tǒng)的重建過程
# mdadm -D /dev/md0
…
正常運(yùn)行的硬盤設(shè)備數(shù) Active Devices:2
工作的硬盤設(shè)備數(shù) Working Devices:3
出故障的硬盤設(shè)備數(shù) Failed Devices:1
剩下的硬盤設(shè)備數(shù) Spare Devices:1
…
Number Major Minor RaidDevice State
0 0 0 - removed
1 8 32 1active sync /dev/sdc //活動(dòng)數(shù)據(jù)盤sdc
2 8 48 2 active sync /dev/sdd //活動(dòng)數(shù)據(jù)盤sdd
3 8 64 0 spare rebuilding /dev/sde //重建數(shù)據(jù)盤sde
4 8 16 - faulty /dev/sdb //出錯(cuò)的數(shù)據(jù)盤sdb
4.3 刪除壞損的設(shè)備和添加新設(shè)備
# mdadm /dev/md0 -r /dev/sdb
# mdadm /dev/md0 -a /dev/sdb
4.4 恢復(fù)正常運(yùn)行的狀態(tài)
# mdadm -D /dev/md0
…
正常運(yùn)行的硬盤設(shè)備數(shù) Active Devices : 3
工作的硬盤設(shè)備數(shù) Working Devices : 4
出故障的硬盤設(shè)備數(shù) Failed Devices : 0
剩下的硬盤設(shè)備數(shù) Spare Devices : 1
…
Number Major Minor RaidDevice State
0 8 64 0 active sync /dev/sde // 數(shù)據(jù)盤sde取代sdb
1 8 32 1 active sync /dev/sdc //活動(dòng)數(shù)據(jù)盤sdc
2 8 48 2 active sync /dev/sdd //活動(dòng)數(shù)據(jù)盤sdd
3 8 16 - spare /dev/sdb //原來的sdb成為備用設(shè)備狀態(tài)
[參考文獻(xiàn)]
[1]張棟.Red Hat Enterprise Linux服務(wù)器配置與管理.北京:人民郵電出版社,2009.
[2]涂巧霞.Red Hat Linux系統(tǒng)及網(wǎng)絡(luò)管理基礎(chǔ)與實(shí)踐教程.北京:電子工業(yè)出版社,2008.
[3]王曉超.Linux服務(wù)器搭建完全技術(shù)寶典.北京:中國(guó)鐵道出版社, 2010.