本章內容:
1、RAID詳細描述
2、mdadm 工具
3、創建raid
4、磁盤陣列的管理
RAID描述:
RAID:(Redundant Array of indenpensive Disk) 獨立磁盤冗余陣列: 磁盤陣列是把多個磁盤組成一個陣列, 當作單一磁盤使用,它將數據以分段(striping)的方式儲存在不同的磁盤中,存取數據時,陣列中的相關磁 盤一起動作,大幅減低數據的存取時間,同時有更佳的空間利用率。
功能:
提高IO能力:磁盤并行讀寫。
提高耐用性:磁盤冗余來實現。
RAID級別:多塊磁盤組織在一起的工作方式有所不同,稱為RAID level。不同的level針對不同的系統及應用,以解 決數據安全的問題。簡單來說,RAID把多個硬盤組合成為一個邏輯扇區。因此,操作系統只會把它當作 一個硬盤。
RAID的實方式:
1. 硬件RAID:用RAId接口卡來實現;需要內核支持其驅動,并且該類設備設備顯示為SCSI設備,代號 為/dev/sd*。
2. 軟件RAID:用內核中的MD(multiple devices)模塊實現,該類設備在/etc/下表示為:md*;使用mdadm 工具管理軟RAID;
雖然來說可以用軟件模擬實現raid,但是相對對磁盤控制的功能及性能不如硬件實現的好,生產環境中最 好使用硬件raid 。
常見的RAID類型描述:
RAID0:條帶卷(striping),至少需要兩塊磁盤,做RAID分區的大小最好是相同的(也可以用相同大小的 兩塊磁盤直接做 RAID);把數據分割成若干個相同大小的chunk,依次均勻的存儲在不同的磁盤 上,在讀寫的時候可以實現并發,所以讀、寫性能好;但是沒有容錯功能,任何一塊磁盤損壞,將導 致全部數據的損壞。磁盤利用率100%。
如下圖:
RAID1:鏡像卷(mirroring),至少需要兩塊硬盤,raid大小等于兩個raid分區中最小的容量(最好將分區 大小分為一樣),磁盤利用率50%;數據有冗余,在存儲時同時寫入兩塊硬盤,實現了數據備份;但 相對降低了寫入性能,但是讀取數據時可以并發,幾乎類似于raid0的讀取效率。
如下圖:
RAID5:最少需要三塊硬盤,可以提供熱備盤實現故障的恢復;采用異或運算,可靠性強,允許損壞一塊磁盤,只有同時 損壞兩塊硬盤時數據才會完全損壞,只損壞一塊硬盤時,系統會根據存儲的異或校驗位重建數據,臨時提供服務;此 時如果磁盤陣列中有備用盤,系統會自動在備用盤上重建故障磁盤上的數據。
如下圖:
注:RAID中的容錯表示即使磁盤故障,數據仍能保持完整,可讓系統存取到正確的數據,而SCSI的磁盤陣列更可在工作中抽換 磁盤, 并可自動重建故障磁盤的數據。
mdadm:模式化的工具
命令語法格式:mdadm [mode] <raiddevice> [options] <component-devices>
支持的RAID級別:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
[mode]:
-C, –create: 創建一個新的陣列
-A, –assemble: 激活RAID設備
-F, –follow, –monitor:選擇監控(Monitor)模式
-G, –grow: 改變激活陣列的大小或形態
<raiddevice>: /dev/md#
<component-devices>: 任意塊設備
[options]:選擇一個模式的選項
-C: 創建模式
-n #: 使用#個塊設備來創建此RAID
-l #:指明要創建的RAID的級別
-a {yes|no}:自動創建目標RAID設備的設備文件
-c CHUNK_SIZE: 指明塊大小
-x #: 指明空閑盤的個數
-D:顯示raid的詳細信息;
mdadm -D /dev/md#
-s:–scan:掃描配置文件或 /proc/mdstat以搜尋丟失的信息。
默認配置文件:/etc/mdadm.conf
管理模式: -f: 標記指定磁盤為損壞
-a: 添加磁盤
-r: 移除磁盤
創建軟RAID的過程:
以四個分區模擬創建一個raid5為操作示例。
步驟:
1、創建RAID5 的組員
linux中陣列組成單元是分區,分區可以是整個設備也可以是設備多個分區中的一個;組成的陣列中,每個分區 的大小必須一樣;在fdisk分區后需要將分區標志改為Linux raid auto類型;分區后如下:
Device Boot Start EndBlocks Id System
/dev/sda6 19507 22118 20980890 fd Linux raid autodetect/dev/sdc1 1 2612 20980858+ fd Linux raid autodetect/dev/sdd1 1 2612 20980858+ fd Linux raid autodetect
2、建立RAID5磁盤陣列;如下圖:
3、查看陣列狀態;cat /proc/mdstat
上圖中,通過cat /proc/mdstat信息查看所有運行的RAID陣列的狀態,在第一行中首先是MD的設備名md0,active和 inactive選項表示陣列是否能讀/寫,接著是陣列的RAID級別raid5,后面是屬于陣列的塊設備,方括號[]里的數字表示設 備在陣列中的序號,(S)表示其是熱備盤,(F)表示這個磁盤是 faulty狀態。下一行中首先是陣列的大小,用塊數來表示; 后面有chunk-size的大小,然后是layout類型,不同RAID級別的 layout類型不同,[3/3] [UUU]表示陣列有3個磁盤并且3 個磁盤都是正常運行的,而[2/3]和[_UU] 表示陣列有3個磁盤中2個是正常運行的,下劃線對應的那個位置的磁盤是faulty 狀態。
4、生成RAID的配置文件;
mdadm.conf是該軟件的默認配置文件,主要作用是方便跟蹤軟RAID的配置,尤其是可以配置監視和事件上報選項。其中寫入每 一個陣列組成的詳細情況,用于在下次開啟陣列后依據此文件重新裝配開啟陣列,否則就需要在開啟時手動定義陣列中的成 員;當然是推薦創建該文件,防止出現意外情況。
5、創建文件系統;
6、掛載;
7、查看陣列的詳細信息;
磁盤陣列管理:
1、RAID5磁盤陣列中模擬一塊磁盤故障;下圖中模擬/dev/sdb盤損壞,發現熱備的盤/dev/sdd1/自動替換損壞的磁盤,并顯示數 據構建的進度條。
2、移除損壞的磁盤;損壞的磁盤狀態是faulty.
注意:對于有冗余的raid形式,在單一磁盤故障時一般能在一段時間內重建數據;但是數據量非常大時,重建會非常緩慢,且重 建系統過程壓力比較大,此時需要多關注系統負載,防止重建過程出現錯誤;在熱移除故障盤后,也需要盡快的換上新 硬盤,并且添加spare盤;在故障修復,重建重建之后,需要重新生成配置文件,防止在下次開啟時,按照最初的定義模 式開啟。
3、RAID陣列添加新的組員;
#mdadm -G /dev/md0 -n4 -a /dev/sdb
4、停止RAID設備;如下圖:
5、激活RAID設備;如下圖:
6、刪除RAID設備,如下圖:
- 先取消掛載:#umount /mnt/raid
- 停止RAID設備:mdadm -S /dev/md0
- 刪除配置文件:rf -f /etc/mdadm.conf
- 刪除/etc/fsatb 文件下的對應掛載信息
- 分別清除RAID成員上的raid元數據:
# mdadm –zero-superblock /dev/sda6
RAID-10的創建方法:
1、先創建兩個底層的RAID-1:
#mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/sd{a6,b}
#mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sd{c1,d1}
2、用兩個RAID-1,創建上層RAID-0
#mdadm -C /dev/md2 -a yes -l 0 -n 2 /dev/md{0,1}
3、查看狀態;如下圖:
4、創建配置文件
5、停止與開啟陣列;
上圖中:關閉與開啟過程,系統只能識別層級,關閉先關閉上層的RAID-0,再關閉底層的兩個RAID-1;
開啟也是與關閉過程一樣;防止了沖突。
原創文章,作者:shenjialong,如若轉載,請注明出處:http://www.www58058.com/78445