Linux基礎教程之raid的工作原理與管理

本章內容:

? ? ? ?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;

? ? ? ? ? ?開啟也是與關閉過程一樣;防止了沖突。

相關新聞

聯系我們

400-080-6560

在線咨詢:點擊這里給我發消息

郵件:[email protected]

工作時間:周一至周日,09:00-18:30

QR code
云南快乐10分开奖直播