中軟件RAID的使用_第1頁
中軟件RAID的使用_第2頁
中軟件RAID的使用_第3頁
中軟件RAID的使用_第4頁
中軟件RAID的使用_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Linux 中軟件 RAID 的使用級(jí)別: 中級(jí)張 志斌 (), 軟件工程師, 軟件工程師2007 年 11 月 08 日在以數(shù)據(jù)為中心的信息時(shí)代,如何妥善有效地保護(hù)數(shù)據(jù)是存儲(chǔ)系統(tǒng)的核心問題之一。人們可以忍受計(jì)算機(jī)宕機(jī),所有應(yīng)用程序重新啟動(dòng)或者硬件損壞,但是他們要求信息永遠(yuǎn)不會(huì)丟失。冗余磁盤陣列(Redundant Array of Independent Disks )技術(shù)是各種企業(yè)信息系統(tǒng)和個(gè)人廣泛使用的解決方案,一般的中高檔服務(wù)器多使用硬件RAID控制器,但是由于硬件RAID控制器的價(jià)格昂貴,導(dǎo)致系統(tǒng)成本大大增加。而隨著處理器的性能快速發(fā)展,使得軟件RAID

2、的解決方法得到人們的重視。這里我們主要介紹在Linux系統(tǒng)中軟件RAID的配置和使用方法,它既降低了系統(tǒng)的總投資,也能滿足系統(tǒng)應(yīng)用的需要。 一.簡介在Linux系統(tǒng)中目前以MD (Multiple Devices)虛擬塊設(shè)備的方式實(shí)現(xiàn)軟件RAID,利用多個(gè)底層的塊設(shè)備虛擬出一個(gè)新的虛擬塊設(shè)備,并且利用條帶化(stripping)技術(shù)將數(shù)據(jù)塊均勻分布到多個(gè)磁盤上來提高虛擬設(shè)備的讀寫性能,利用不同的數(shù)據(jù)冗余算法來保護(hù)用戶數(shù)據(jù)不會(huì)因?yàn)槟硞€(gè)塊設(shè)備的故障而完全丟失,而且還能在設(shè)備被替換后將丟失的數(shù)據(jù)恢復(fù)到新的設(shè)備上。關(guān)于不同冗余級(jí)別的定義和數(shù)據(jù)塊以及校驗(yàn)塊的分布示意圖可以參考存儲(chǔ)專業(yè)委員會(huì)給出的參考資料

3、“Common RAID Disk Data Format Specification ”。目前MD支持linear, multipath, raid0 (stripping), raid1 (mirror), raid4, raid5, raid6, raid10等不同的冗余級(jí)別和組成方式,當(dāng)然也能支持多個(gè)RAID陣列的層疊組成raid1+0, raid5+1等類型的陣列。在參考資料“Software RAID HOWTO”中介紹了早期軟件RAID陣列功能特點(diǎn)和使用方式,但是因?yàn)檐浖AID程序的功能不斷增加,因此很有必要寫份新的使用介紹。本文主要先講解用戶層mdadm如何管理軟件RAID以

4、及使用中經(jīng)常遇到的問題和解決方法。在流行的Linux的發(fā)布版中,如FedoraCore,Gentoo, Ubuntu,Debian,SuseLinux系統(tǒng)中一般已經(jīng)將MD驅(qū)動(dòng)模塊直接編譯到內(nèi)核中或編譯為可動(dòng)態(tài)加載的驅(qū)動(dòng)模塊。我們可以在機(jī)器啟動(dòng)后通過cat /proc/mdstat看內(nèi)核是否已經(jīng)加載MD驅(qū)動(dòng)或者cat /proc/devices是否有md塊設(shè)備,并且可以使用lsmod看MD是否是以模塊形式加載到系統(tǒng)中。rootfc5 mdadm-2.6.3# cat /proc/mdstatPersonalities :unused devices: rootfc5 mdadm-2.6.3# c

5、at /proc/devices | grep md1 ramdisk9 md253 mdprootfc5 mdadm-2.6.3# lsmod | grep mdmd_mod 73364 0如果Linux系統(tǒng)既沒有將MD編譯到內(nèi)核也沒有自動(dòng)加載MD模塊,則沒有/proc/mdstat文件,那么需要執(zhí)行命令modprobe md加載驅(qū)動(dòng)模塊。 rootfc5 mdadm-2.6.3#cat /proc/mdstatcat: /proc/mdstat: No such file or directoryrootfc5 mdadm-2.6.3# modprobe mdrootfc5 mdadm-2

6、.6.3# lsmod | grep mdmd_mod 73364 0如果系統(tǒng)中沒有MD驅(qū)動(dòng)模塊則需要自己從Linux內(nèi)核源代碼網(wǎng)站下載源代碼包,并且重新編譯內(nèi)核,并且需要在內(nèi)核的配置文件選擇。*Multiple devices driver support (RAID and LVM) RAID support Linear (append) mode RAID-0 (striping) mode RAID-1 (mirroring) mode RAID-10 (mirrored striping) mode (EXPERIMENTAL) RAID-4/RAID-5/RAID-6 mode

7、* Support adding drives to a raid-5 array Multipath I/O support Faulty test module for MD在Linux系統(tǒng)中用戶層以前使用raidtool工具集 來管理MD設(shè)備,目前廣泛使用mdadm軟件來管理MD設(shè)備,而且該軟件都會(huì)集成在Linux的發(fā)布版中。如果系統(tǒng)中沒有安裝可以到RAID驅(qū)動(dòng)程序和mdadm軟件的維護(hù)者Neil Brown的個(gè)人網(wǎng)站 來下載源碼包進(jìn)行編譯安裝,或者下載RPM包直接安裝。mdadm的最新版本是2.6.3??梢允褂胢dadm -version查看當(dāng)前系統(tǒng)使用的版本。本文使用的是mdadm-

8、2.6.3, Linux內(nèi)核版本是Linux-。下面的測試命令是在虛擬機(jī)環(huán)境中測試運(yùn)行的。rootfc5 mdadm-2.6.3# uname -rrootfc5 mdadm-2.6.3# ./mdadm -versionmdadm - v2.6.3 - 20th August 2007二. mdadm管理軟RAID陣列mdadm程序是一個(gè)獨(dú)立的程序,能完成所有的軟RAID管理功能,主要有7種使用模式:模式名字主要功能Create使用空閑的設(shè)備創(chuàng)建一個(gè)新的陣列,每個(gè)設(shè)備具有元數(shù)據(jù)塊Assemble將原來屬于一個(gè)陣列的每個(gè)塊設(shè)備組裝為陣列Build創(chuàng)建或組裝不需要

9、元數(shù)據(jù)的陣列,每個(gè)設(shè)備沒有元數(shù)據(jù)塊Manage管理已經(jīng)存儲(chǔ)陣列中的設(shè)備,比如增加熱備磁盤或者設(shè)置某個(gè)磁盤失效,然后從陣列中刪除這個(gè)磁盤Misc報(bào)告或者修改陣列中相關(guān)設(shè)備的信息,比如查詢陣列或者設(shè)備的狀態(tài)信息Grow改變陣列中每個(gè)設(shè)備被使用的容量或陣列中的設(shè)備的數(shù)目Monitor監(jiān)控一個(gè)或多個(gè)陣列,上報(bào)指定的事件2.1 為磁盤劃分分區(qū)如果MD驅(qū)動(dòng)被編譯到內(nèi)核中,當(dāng)內(nèi)核調(diào)用執(zhí)行MD驅(qū)動(dòng)時(shí)會(huì)自動(dòng)查找分區(qū)為FD(Linux raid autodetect)格式的磁盤。所以一般會(huì)使用fdisk工具將HD磁盤或者SD磁盤分區(qū),再設(shè)置為FD的磁盤。rootfc5 mdadm-2.6.3# fdisk /de

10、v/sdkDevice contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel. Changes will remain in memory only,until you decide to write them. After that, of course, the previouscontent wont be recoverable.Warning: invalid flag 0x0000 of partition table 4 wil

11、l be corrected by w(rite)Command (m for help): nCommand action e extended p primary partition (1-4)pPartition number (1-4): 1First cylinder (1-512, default 1):1Using default value 1Last cylinder or +size or +sizeM or +sizeK (1-512, default 512):512Using default value 512Command (m for help): tSelect

12、ed partition 1Hex code (type L to list codes): FDChanged system type of partition 1 to fd (Linux raid autodetect)Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.rootfc5 mdadm-2.6.3# fdisk -l /dev/sdkDisk /dev/sdk: 1073 MB, bytes128

13、 heads, 32 sectors/track, 512 cylindersUnits = cylinders of 4096 * 512 = bytes Device Boot Start End Blocks Id System/dev/sdk1 1 512 fd Linux raid autodetect軟RAID陣列實(shí)際上也可以使用任何標(biāo)準(zhǔn)的塊設(shè)備作為底層設(shè)備,如SCSI設(shè)備、IDE設(shè)備、RAM disk磁盤和NBD(Network Block Device)等,甚至是其他的MD設(shè)備。如果MD驅(qū)動(dòng)是模塊形式加載,需要在系統(tǒng)運(yùn)行時(shí)由用戶層腳本控制RAID陣列啟動(dòng)運(yùn)行。如在FedoraC

14、ore系統(tǒng)中在/etc/rc.d/rc.sysinit文件中有啟動(dòng)軟RAID陣列的指令,若RAID的配置文件mdadm.conf存在,則調(diào)用mdadm檢查配置文件里的選項(xiàng),然后啟動(dòng)RAID陣列。echo raidautorun /dev/md0 | nash -quietif -f /etc/mdadm.conf ; then /sbin/mdadm -A -sfi 2.2 創(chuàng)建新的陣列mdadm使用-create(或其縮寫-C)參數(shù)來創(chuàng)建新的陣列,并且將一些重要陣列的標(biāo)識(shí)信息作為元數(shù)據(jù)可以寫在每一個(gè)底層設(shè)備的指定區(qū)間。-level(或者其縮寫-l)表示陣列的RAID級(jí)別,-chunk(或者其

15、縮寫-c)表示每個(gè)條帶單元的大小,以KB為單位,默認(rèn)為64KB,條帶單元的大小配置對(duì)不同負(fù)載下的陣列讀寫性能有很大影響。-raid-devices(或者其縮寫-n)表示陣列中活躍的設(shè)備個(gè)數(shù),而-spare-devices(或者其縮寫-x)表示陣列中熱備盤的個(gè)數(shù),一旦陣列中的某個(gè)磁盤失效,MD內(nèi)核驅(qū)動(dòng)程序自動(dòng)用將熱備磁盤加入到陣列,然后重構(gòu)丟失磁盤上的數(shù)據(jù)到熱備磁盤上。創(chuàng)建一個(gè)RAID 0設(shè)備:mdadm -create /dev/md0 -level=0 -chunk=32 -raid-devices=3 /dev/sdi-k1創(chuàng)建一個(gè)RAID 1設(shè)備:mdadm -C /dev/md0 -l

16、1 -c128 -n2 -x1 /dev/sdi-k1創(chuàng)建一個(gè)RAID 5設(shè)備:mdadm -C /dev/md0 -l5 -n5 /dev/sdc-g -x1 /dev/sdb 創(chuàng)建一個(gè)RAID 6設(shè)備:mdadm -C /dev/md0 -l6 -n5 /dev/sdc-g -x2 /dev/sdb /dev/sdh創(chuàng)建一個(gè)RAID 10設(shè)備:mdadm -C /dev/md0 -l10 -n6 /dev/sdb-g -x1 /dev/sdh創(chuàng)建一個(gè)RAID1+0設(shè)備:mdadm -C /dev/md0 -l1 -n2 /dev/sdb /dev/sdcmdadm -C /dev/md1

17、-l1 -n2 /dev/sdd /dev/sdemdadm -C /dev/md2 -l1 -n2 /dev/sdf /dev/sdgmdadm -C /dev/md3 -l0 -n3 /dev/md0 /dev/md1 /dev/md2當(dāng)RAID1/4/5/6/10等創(chuàng)建成功后,需要計(jì)算每個(gè)條帶的校驗(yàn)和信息并寫入到相應(yīng)磁盤上,所以RAID陣列有一個(gè)冗余組數(shù)據(jù)同步的初始化過程(resync)。但是MD設(shè)備只要?jiǎng)?chuàng)建成功后即可對(duì)外被上層應(yīng)用讀寫使用,當(dāng)然由于上層數(shù)據(jù)讀寫降低數(shù)據(jù)同步的性能。初始化的時(shí)間長短和磁盤陣列自身性能以及讀寫的應(yīng)用負(fù)載相關(guān),使用cat /proc/mdstat信息查詢RAI

18、D陣列當(dāng)前重構(gòu)的速度和預(yù)期的完成時(shí)間。rootfc5 mdadm-2.6.3# cat /proc/mdstatPersonalities : raid10md0 : active raid10 sdh6(S) sdg5 sdf4 sde3 sdd2 sdc1 sdb0 blocks 64K chunks 2 near-copies 6/6 UUUUUU =. resync = 15.3% (/) finish=0.3min speed=K/secunused devices: rootfc5 mdadm-2.6.3# cat /proc/mdstatPersonalities : raid1

19、0md0 : active raid10 sdh6(S) sdg5 sdf4 sde3 sdd2 sdc1 sdb0 blocks 64K chunks 2 near-copies 6/6 UUUUUUunused devices: 如果一個(gè)塊設(shè)備已經(jīng)正在被其他的MD設(shè)備或者文件系統(tǒng)使用,則不能用來創(chuàng)建新的MD設(shè)備。rootfc5 mdadm-2.6.3# ./mdadm -C /dev/md1 -l0 -n2 /dev/sdh /dev/sdimdadm: Cannot open /dev/sdh: Device or resource busymdadm: create abortedBu

20、ild模式可以用來創(chuàng)建沒有元數(shù)據(jù)的RAID0/1設(shè)備,不能創(chuàng)建RAID4/5/6/10等帶有冗余級(jí)別的MD設(shè)備。rootfc5 mdadm-2.6.3# ./mdadm -BR /dev/md0 -l0 -n6 /dev/sdb-gmdadm: array /dev/md0 built and started. rootfc5 mdadm-2.6.3# ./mdadm -BR /dev/md0 -l1 -n2 /dev/sdb-cmdadm: array /dev/md0 built and started.rootfc5 mdadm-2.6.3# ./mdadm -BR /dev/md0 -

21、l5 -n6 /dev/sdb-gmdadm: Raid level 5 not permitted with -build.rootfc5 mdadm-2.6.3# ./mdadm -BR /dev/md0 l6 -n6 /dev/sdb-gmdadm: Raid level 5 not permitted with -build.rootfc5 mdadm-2.6.3# ./mdadm -BR /dev/md0 l10 -n6 /dev/sdb-gmdadm: Raid level 10 not permitted with -build. 使用陣列: MD設(shè)備可以像普通塊設(shè)備那樣直接讀寫

22、,也可以做文件系統(tǒng)格式化。 #mkfs.ext3 /dev/md0#mkdir -p /mnt/md-test#mount /dev/md0 /mnt/md-test停止正在運(yùn)行的陣列: 當(dāng)陣列沒有文件系統(tǒng)或者其他存儲(chǔ)應(yīng)用以及高級(jí)設(shè)備使用的話,可以使用-stop(或者其縮寫-S)停止陣列;如果命令返回設(shè)備或者資源忙類型的錯(cuò)誤,說明/dev/md0正在被上層應(yīng)用使用,暫時(shí)不能停止,必須要首先停止上層的應(yīng)用,這樣也能保證陣列上數(shù)據(jù)的一致性。rootfc5 mdadm-2.6.3# ./mdadm -stop /dev/md0mdadm: fail to stop array /dev/md0: D

23、evice or resource busyrootfc5 mdadm-2.6.3# umount /dev/md0rootfc5 mdadm-2.6.3#./mdadm -stop /dev/md0 mdadm: stopped /dev/md02.3 組裝曾創(chuàng)建過的陣列模式-assemble或者其縮寫(-A)主要是檢查底層設(shè)備的元數(shù)據(jù)信息,然后再組裝為活躍的陣列。如果我們已經(jīng)知道陣列由那些設(shè)備組成,可以指定使用那些設(shè)備來啟動(dòng)陣列。rootfc5 mdadm-2.6.3# ./mdadm -A /dev/md0 /dev/sdb-hmdadm: /dev/md0 has been start

24、ed with 6 drives and 1 spare.如果有配置文件(/etc/mdadm.conf)可使用命令mdadm -As /dev/md0。mdadm先檢查mdadm.conf中的DEVICE信息,然后從每個(gè)設(shè)備上讀取元數(shù)據(jù)信息,并檢查是否和ARRAY信息一致,如果信息一致則啟動(dòng)陣列。如果沒有配置/etc/mdadm.conf文件,而且又不知道陣列由那些磁盤組成,則可以使用命令-examine(或者其縮寫-E)來檢測當(dāng)前的塊設(shè)備上是否有陣列的元數(shù)據(jù)信息。rootfc5 mdadm-2.6.3# ./mdadm -E /dev/sdimdadm: No md superblock

25、detected on /dev/sdi.rootfc5 mdadm-2.6.3# ./mdadm -E /dev/sdb/dev/sdb: Magic : a92b4efc Version : 00.90.00 UUID : 0cabc5e5:842d4baa:e3f6261b:a17a477a Creation Time : Sun Aug 22 17:49:53 1999 Raid Level : raid10 Used Dev Size : (1024.11 MiB 1073.68 MB) Array Size : (3.00 GiB 3.22 GB) Raid Devices : 6

26、 Total Devices : 7Preferred Minor : 0 Update Time : Sun Aug 22 18:05:56 1999 State : clean Active Devices : 6Working Devices : 7 Failed Devices : 0 Spare Devices : 1 Checksum : 2f - correct Events : 0.4 Layout : near=2, far=1 Chunk Size : 64K Number Major Minor RaidDevice Statethis 0 8 16 0 active s

27、ync /dev/sdb 0 0 8 16 0 active sync /dev/sdb 1 1 8 32 1 active sync /dev/sdc 2 2 8 48 2 active sync /dev/sdd 3 3 8 64 3 active sync /dev/sde 4 4 8 80 4 active sync /dev/sdf 5 5 8 96 5 active sync /dev/sdg 6 6 8 112 6 spare /dev/sdh從上面命令結(jié)果可以找到陣列的唯一標(biāo)識(shí)UUID和陣列包含的設(shè)備名字,然后再使用上面的命令來組裝陣列,也可以使用UUID標(biāo)識(shí)來組裝陣列。沒有一

28、致的元數(shù)據(jù)的信息設(shè)備(例如/dev/sda和/dev/sda1等)mdadm程序會(huì)自動(dòng)跳過。rootfc5 mdadm-2.6.3# ./mdadm -Av -uuid=0cabc5e5:842d4baa:e3f6261b:a17a477a /dev/md0 /dev/sd*mdadm: looking for devices for /dev/md0mdadm: no recogniseable superblock on /dev/sdamdadm: /dev/sda has wrong uuid.mdadm: no recogniseable superblock on /dev/sda

29、1mdadm: /dev/sda1 has wrong uuid.mdadm: no RAID superblock on /dev/sdimdadm: /dev/sdi has wrong uuid.mdadm: /dev/sdi1 has wrong uuid.mdadm: no RAID superblock on /dev/sdjmdadm: /dev/sdj has wrong uuid.mdadm: /dev/sdj1 has wrong uuid.mdadm: no RAID superblock on /dev/sdkmdadm: /dev/sdk has wrong uuid

30、.mdadm: /dev/sdk1 has wrong uuid.mdadm: /dev/sdb is identified as a member of /dev/md0, slot 0.mdadm: /dev/sdc is identified as a member of /dev/md0, slot 1.mdadm: /dev/sdd is identified as a member of /dev/md0, slot 2.mdadm: /dev/sde is identified as a member of /dev/md0, slot 3.mdadm: /dev/sdf is

31、identified as a member of /dev/md0, slot 4.mdadm: /dev/sdg is identified as a member of /dev/md0, slot 5.mdadm: /dev/sdh is identified as a member of /dev/md0, slot 6.mdadm: added /dev/sdc to /dev/md0 as 1mdadm: added /dev/sdd to /dev/md0 as 2mdadm: added /dev/sde to /dev/md0 as 3mdadm: added /dev/s

32、df to /dev/md0 as 4mdadm: added /dev/sdg to /dev/md0 as 5mdadm: added /dev/sdh to /dev/md0 as 6mdadm: added /dev/sdb to /dev/md0 as 0mdadm: /dev/md0 has been started with 6 drives and 1 spare.配置文件: /etc/mdadm.conf作為默認(rèn)的配置文件,主要作用是方便跟蹤軟RAID的配置,尤其是可以配置監(jiān)視和事件上報(bào)選項(xiàng)。Assemble命令也可以使用-config(或者其縮寫-c)來指定配置文件。我們通

33、??梢匀缦旅顏斫⑴渲梦募ootfc5 mdadm-2.6.3#echo DEVICE /dev/sdb-h /dev/sdi-k1 /etc/mdadm.confrootfc5 mdadm-2.6.3# ./mdadm -Ds /etc/mdadm.confrootfc5 mdadm-2.6.3# cat /etc/mdadm.confDEVICE /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi1 /dev/sdj1 /dev/sdk1ARRAY /dev/md1 level=raid0 n

34、um-devices=3 UUID=dcff6ec9:53c4c668:58b81af9:ef71989dARRAY /dev/md0 level=raid10 num-devices=6 spares=1 UUID=0cabc5e5:842d4baa:e3f6261b:a17a477a使用配置文件啟動(dòng)陣列時(shí),mdadm會(huì)查詢配置文件中的設(shè)備和陣列內(nèi)容,然后啟動(dòng)運(yùn)行所有能運(yùn)行RAID陣列。如果指定陣列的設(shè)備名字,則只啟動(dòng)對(duì)應(yīng)的陣列。rootfc5 mdadm-2.6.3# ./mdadm -Asmdadm: /dev/md1 has been started with 3 drives.mda

35、dm: /dev/md0 has been started with 6 drives and 1 spare.rootfc5 mdadm-2.6.3# cat /proc/mdstatPersonalities : raid0 raid10md0 : active raid10 sdb0 sdh6(S) sdg5 sdf4 sde3 sdd2 sdc1 blocks 64K chunks 2 near-copies 6/6 UUUUUUmd1 : active raid0 sdi10 sdk12 sdj11 blocks 32k chunksunused devices: rootfc5 m

36、dadm-2.6.3# ./mdadm -S /dev/md0 /dev/md1mdadm: stopped /dev/md0mdadm: stopped /dev/md1rootfc5 mdadm-2.6.3# ./mdadm -As /dev/md0mdadm: /dev/md0 has been started with 6 drives and 1 spare.rootfc5 mdadm-2.6.3# cat /proc/mdstatPersonalities : raid0 raid10md0 : active raid10 sdb0 sdh6(S) sdg5 sdf4 sde3 s

37、dd2 sdc1 blocks 64K chunks 2 near-copies 6/6 UUUUUUunused devices: 2.4 查詢陣列的狀態(tài)我們可以通過cat /proc/mdstat信息查看所有運(yùn)行的RAID陣列的狀態(tài),在第一行中首先是MD的設(shè)備名,active和inactive選項(xiàng)表示陣列是否能讀寫,接著是陣列的RAID級(jí)別,后面是屬于陣列的塊設(shè)備,方括號(hào)里的數(shù)字表示設(shè)備在陣列中的序號(hào),(S)表示其是熱備盤,(F)表示這個(gè)磁盤是faulty狀態(tài)。在第二行中首先是陣列的大小,單位是KB,接著是chunk-size的大小,然后是layout類型,不同RAID級(jí)別的layout類

38、型不同,6/6和UUUUUU表示陣列有6個(gè)磁盤并且6個(gè)磁盤都是正常運(yùn)行的,而5/6和_UUUUU 表示陣列有6個(gè)磁盤中5個(gè)都是正常運(yùn)行的,下劃線對(duì)應(yīng)的那個(gè)位置的磁盤是faulty狀態(tài)的。rootfc5 mdadm-2.6.3# cat /proc/mdstatPersonalities : raid6 raid5 raid4 raid1md0 : active raid5 sdh6(S) sdg5 sdf4 sde3 sdd2 sdc1 sdb0 blocks level 5, 64k chunk, algorithm 2 6/6 UUUUUUunused devices: rootfc5 m

39、dadm-2.6.3# ./mdadm /dev/md0 -f /dev/sdh /dev/sdbmdadm: set /dev/sdh faulty in /dev/md0mdadm: set /dev/sdb faulty in /dev/md0rootfc5 mdadm-2.6.3# cat /proc/mdstatPersonalities : raid6 raid5 raid4 raid1md0 : active raid5 sdh6(F) sdg5 sdf4 sde3 sdd2 sdc1 sdb7(F) blocks level 5, 64k chunk, algorithm 2

40、6/5 _UUUUUunused devices: 如果Linux系統(tǒng)目前支持sysfs也可以訪問/sys/block/md0目錄查詢陣列信息。rootfc5 mdadm-2.6.3# ls -l /sys/block/md0/capability holders range size stat ueventdev md removable slaves subsystemrootfc5 mdadm-2.6.3# ls /sys/block/md0/md/array_state dev-sdg rd1 suspend_lobitmap_set_bits dev-sdh rd2 sync_act

41、ionchunk_size layout rd3 sync_completedcomponent_size level rd4 sync_speeddev-sdb metadata_version rd5 sync_speed_maxdev-sdc mismatch_cnt reshape_position sync_speed_mindev-sdd new_dev resync_startdev-sde raid_disks safe_mode_delaydev-sdf rd0 suspend_hirootfc5 mdadm-2.6.3# ls /sys/block/md0/slaves/s

42、db sdc sdd sde sdf sdg sdh我們也可以通過mdadm命令查看指定陣列的簡要信息(使用-query或者其縮寫-Q)和詳細(xì)信息(使用-detail或者其縮寫-D) 詳細(xì)信息包括RAID的版本、創(chuàng)建的時(shí)間、RAID級(jí)別、陣列容量、可用空間、設(shè)備數(shù)量、超級(jí)塊狀態(tài)、更新時(shí)間、UUID信息、各個(gè)設(shè)備的狀態(tài)、RAID算法級(jí)別類型和布局方式以及塊大小等信息。設(shè)備狀態(tài)信息分為active, sync, spare, faulty, rebuilding, removing等等。rootfc5 mdadm-2.6.3# ./mdadm -query /dev/md0/dev/md0: 2.

43、100GiB raid10 6 devices, 1 spare. Use mdadm -detail for more detail.rootfc5 mdadm-2.6.3# ./mdadm -detail /dev/md0/dev/md0: Version : 00.90.03 Creation Time : Sun Aug 22 17:49:53 1999 Raid Level : raid10 Array Size : (3.00 GiB 3.22 GB) Used Dev Size : (1024.11 MiB 1073.68 MB) Raid Devices : 6 Total D

44、evices : 7Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Sun Aug 22 21:55:02 1999 State : clean Active Devices : 6Working Devices : 7 Failed Devices : 0 Spare Devices : 1 Layout : near=2, far=1 Chunk Size : 64K UUID : 0cabc5e5:842d4baa:e3f6261b:a17a477a Events : 0.122 Numbe

45、r Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc 2 8 48 2 active sync /dev/sdd 3 8 64 3 active sync /dev/sde 4 8 80 4 active sync /dev/sdf 5 8 96 5 active sync /dev/sdg 6 8 112 - spare /dev/sdh2.5 管理陣列mdadm可以在Manage模式下,對(duì)運(yùn)行中的陣列進(jìn)行添加及刪除磁盤。常用于標(biāo)識(shí)failed磁盤,增加spare(

46、熱備)磁盤,以及從陣列中移走已經(jīng)失效的磁盤等等。使用-fail(或者其縮寫-f)指定磁盤損壞。 rootfc5 mdadm-2.6.3# ./mdadm /dev/md0 -fail /dev/sdbmdadm: set /dev/sdb faulty in /dev/md0當(dāng)磁盤已經(jīng)損壞時(shí),使用-remove(或者其縮寫-f)參數(shù)將這個(gè)磁盤從磁盤陣列中移走;但如果設(shè)備還正在被陣列使用,則不能從陣列中移走。rootfc5 mdadm-2.6.3# ./mdadm /dev/md0 -remove /dev/sdbmdadm: hot removed /dev/sdbrootfc5 mdadm-

47、2.6.3# ./mdadm /dev/md0 -remove /dev/sdemdadm: hot remove failed for /dev/sde: Device or resource busy如果陣列帶有spare磁盤,那么自動(dòng)將損壞磁盤上的數(shù)據(jù)重構(gòu)到新的spare磁盤上;rootfc5 mdadm-2.6.3# ./mdadm -f /dev/md0 /dev/sdb ; cat /proc/mdstatmdadm: set /dev/sdb faulty in /dev/md0Personalities : raid0 raid10md0 : active raid10 sdh

48、6 sdb7(F) sdc0 sdg5 sdf4 sde3 sdd2 blocks 64K chunks 2 near-copies 6/5 U_UUUU =. recovery = 35.6% (/) finish=0.1min speed=93472K/secunused devices: 如果陣列沒有熱備磁盤,可以使用-add(或者其縮寫-a)參數(shù)增加熱備磁盤rootfc5 mdadm-2.6.3# ./mdadm /dev/md0 -add /dev/sdhmdadm: added /dev/sdh26 監(jiān)控陣列可以使用mdadm對(duì)RAID陣列進(jìn)行監(jiān)控,監(jiān)控程序定時(shí)查詢指定的事件是否發(fā)

49、生,然后根據(jù)配置來妥善處理。例如當(dāng)陣列中的磁盤設(shè)備出現(xiàn)問題的時(shí)候,可以發(fā)送郵件給管理員;或者當(dāng)磁盤出現(xiàn)問題的時(shí)候由回調(diào)程序來進(jìn)行自動(dòng)的磁盤替換,所有監(jiān)控事件都可以記錄到系統(tǒng)日志中。目前mdadm支持的事件有RebuildStarted, RebuildNN(NN is 20, 40, 60, or 80), RebuildFinished, Fail,FailSpare,SpareActive,NewArray, DegradedArray, MoveSpare, SparesMissing, TestMessage。如果配置每300秒mdadm監(jiān)控進(jìn)程查詢MD設(shè)備一次,當(dāng)陣列出現(xiàn)錯(cuò)誤,會(huì)發(fā)送

50、郵件給指定的用戶,執(zhí)行事件處理的程序并且記錄上報(bào)的事件到系統(tǒng)的日志文件。使用-daemonise參數(shù)(或者其縮寫-f)使程序持續(xù)在后臺(tái)運(yùn)行。如果要發(fā)送郵件需要sendmail程序運(yùn)行,當(dāng)郵件地址被配置為外網(wǎng)地址應(yīng)先測試是否能發(fā)送出去。rootfc5 mdadm-2.6.3#./mdadm -monitor -mail=rootlocalhost -program=/root/md.sh -syslog -delay=300 /dev/md0 -daemonise查看系統(tǒng)日志信息,可以看到哪個(gè)陣列或者陣列中的哪個(gè)設(shè)備發(fā)生過的哪些事件。rootfc5 mdadm-2.6.3# mdadm -f /

51、dev/md0 /dev/sdbmdadm: set /dev/sdb faulty in /dev/md0rootfc5 mdadm-2.6.3#tail f /var/log/messagesAug 22 22:04:12 fc5 mdadm: RebuildStarted event detected on md device /dev/md0Aug 22 22:04:12 fc5 kernel: md: using maximum available idle IO bandwidth (but not more than KB/sec) for recovery.Aug 22 22:04:12 fc5 kernel: md: using 128k window, over a total of blocks.Aug 22 22:04:14 fc5 mdadm: Fail event detected on md device /dev/md0, component device /dev/sdbAug 22 22:04:14 fc5 mdadm: Rebuild80 event dete

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論