天天看點

linux mdadm 腳本,Linux下用mdadm實作軟體RAID

實作過程

-:配置RAID1

第一步:以root使用者登入系統,對磁盤進行分區。

#fdisk /dev/sdb

将裝置/dev/sdb上的全部磁盤空間劃分給一個主分區,建立/dev/sdb1分區,并修改分區的類型辨別為fd(linux raid auto),然後對剩餘的磁盤做同樣的操作。創/dev/sdb1,/dev/sdc1,/dev/sdd1三個分區。

第二步:建立RAID陣列

#mdadm -Cv /dev/md0 -l1 -n2 -x1 /dev/sd{b,c,d}1

# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 \

/dev/hda1 /dev/hdc1

小提示:-C參數為建立陣列模式。/dev/md0為陣列的裝置名稱。-l1為陣列模式,可以選擇0,1,4,5等多種不同的陣列模式,分别對應 RAID0,RAID1,RAID4,RAID5。-n2為陣列中活動磁盤的數目,該數目加上備用磁盤的數目應該等于陣列中總的磁盤數目。-x1為陣列中備用磁盤的數目,因為我們是RAID1是以設定目前陣列中含有一塊備用磁盤。/dev/sd{b,c,d}1為參與建立陣列的磁盤名稱,陣列由三塊磁盤組成,其中兩塊為鏡象的活動磁盤,一塊備用磁盤提供故障後的替換。

第三步:檢視RAID陣列情況

建立RAID過程需要很長時間,因為磁盤要進行同步化操作,檢視/proc/mdstat檔案,該檔案顯示RAID的目前狀态和同步完成所需要的時間。

#cat /proc/mdstat

系統會顯示——

personalities:[raid1]

read_ahead 1024 sectors

event:1

md0:active raid1 sdb1[0] sdc1[1] sdd1[2]

18432000 blocks [2/2] [UU]

unused devices:

出現上面的提示後就表示建立的RAID1已經可以使用了。

第四步:編輯陣列的配置檔案

mdadm的配置檔案主要提供人們日常管理,編輯這個檔案可以讓RAID更好的為我們工作,當然這個步驟不是必須的。不經過編輯配置檔案也可以讓RAID工作。

首先掃描系統中的全部陣列

#mdadm --detail -scan

掃描結果将顯示陣列的名稱,模式和磁盤名稱,并且列出陣列的UUID号,UUID也同時存在于陣列的每個磁盤中,缺少該号碼的磁盤是不能夠參與陣列的組成的。

接下來編輯陣列的配置檔案/etc/mdadm.conf檔案,将掃描的顯示結果按照檔案規定的格式修改後添加到檔案的末尾。

#vi /etc/mdadm.conf

添加以下内容到mdadm.conf檔案中

device /dev/sdb1 /dev/sdc1 /dev/sdd1

array /dev/md0 level=raid1 num-devices=2 uuid=2ed2ba37:d952280c:a5a9c282:a51b48da spare-group=group1

在配置檔案中定義了陣列的名稱和模式,還有陣列中活動磁盤的數目與名稱,另外也定義了一個備用的磁盤組group1。

第五步:啟動停止RAID1陣列

啟動和停止RAID1陣列的指令非常簡單。啟動直接執行“mdadm -as /dev/md0”即可。執行mdadm -s /dev/md0将停止RAID1陣列。另外在rc.sysinit啟動腳本檔案中加入指令mdadm -as /dev/md0後将設定為陣列随系統啟動而啟動。

總結:配置RAID1的步驟相對RAID5來說不是很煩瑣,不過在使用mdadm時應該注意就是不要在一塊硬碟上劃分多個分區,再将多個分區組成陣列,這種方式不但不能提高硬碟的通路速度,反而會降低整體系統的性能。正确的方法是将一塊硬碟分成一個或多個分區,然後将多塊不同硬碟的分區組成陣列。另外系統目錄如/usr最好不要放在陣列中,因為一旦陣列出現問題系統将無法正常運作。

二:配置RAID 5

1.建立分區

五塊SCSI磁盤分别對應/dev/sda、/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde。其中第一塊磁盤/dev/sda分兩個區,用于安裝RedHat AS 4和做交換分區,其他四塊磁盤每塊隻分一個主分區,分别為/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1,并且将分區類型指定為“fd”,這将使Linux核心能将它們識别為RAID分區,且在每次引導時自動被檢測并啟動。建立分區使用fdisk指令。

# fdisk /dev/sdb

進入fdisk指令行後,使用指令n建立分區,指令t改變分區類型,指令w儲存分區表并退出,指令m為幫助。

2.建立RAID 5

這裡使用了/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1四個裝置建立RAID 5,其中/dev/sde1作為備份裝置,其他為活動裝置。備份裝置主要起備用作用,一旦某一裝置損壞可以立即用備份裝置替換,當然也可以不使用備份裝置。指令格式如下:

# mdadm -Cv /dev/md0 -l5 -n3 -x1 -c128 /dev/sd[b,c,d,e]1

#mdadm --create --verbose /dev/md5 --level=raid5 --raid-devices=3 --chunk=32 /dev/hda3 /dev/hdb3 /dev/hdc3

parity-algorithm left-symmetric

parity-algorithm表示raid5的奇偶效驗的運算法則,可用選擇有:

left-symmetric left-asymmetric right-symmetric right-asymmetric

最佳性能的是:left-symmetric

指令中各參數分别表示如下作用:“-C”指建立一個新的陣列;“/dev/md0”表示陣列裝置名稱;“-l5”表示設定陣列模式,可以選擇0、1、4、 5、6,它們分别對應于RAID0、RAID1、RAID4、RAID5、RAID6,這裡設為RAID5模式;“-n3”指設定陣列中活動裝置的數目,該數目加上備用裝置的數目應等于陣列中的總裝置數; “-x1”設定陣列中備份裝置的數目,目前陣列中含有1個備份裝置;“-c128”指設定塊的尺寸為128KB,預設為64KB;“/dev/sd[b, c,d,e]1”指目前陣列中包含的所有裝置辨別符,也可以分開來寫,中間用空格分開,其中最後一個為備份裝置。

3.檢視陣列狀态

當建立一個新陣列或者陣列重構時,裝置需要進行同步操作,這一過程需要一定時間,可以通過檢視/proc/mdstat檔案,來顯示陣列的目前狀态以及同步進度、所需時間等。

# more /proc/mdstat

Personalities : [raid5]

md0 : active raid5 sdd1[3] sde1[4] sdc1[1] sdb1[0]

75469842 blocks level 5, 128k chunk, algorithm 2 [3/2] [UU_]

[>....................] recovery = 4.3% (1622601/37734912) finish=1.0min speed=15146K/sec

unused devices:

當建立或重構完成後,再次檢視/proc/mdstat檔案:

# more /proc/mdstat

Personalities : [raid5]

md0 : active raid5 sdd1[2] sde1[3] sdc1[1] sdb1[0]

75469842 blocks level 5, 128k chunk, algorithm 2 [3/3] [UUU]

unused devices:

linux mdadm 腳本,Linux下用mdadm實作軟體RAID