天天看點

linux raid和mdadm,linux下的raid及mdadm的指令詳解

RAID被稱為廉價的備援磁盤陣列,這是由于在早期的磁盤很小,性能差,易損壞。是以RAID主要的做法就是把多個便宜的小磁盤組合到一個磁盤組,使性能和磁盤容量都可以達到相當于昂貴的磁盤性能。

根據RAID的組合方式不同,RAID又有不同的RAID LEVEL(這個級别僅代表磁盤組合方式不同,沒有上下之分),

raid級别分類:

*  RAID 0:

也被稱為條帶模式,一個檔案的資料通過控制晶片發向底層晶片存儲到磁盤塊時,把資料的大小分成每個具有一定大小的機關存儲到并行的每個磁盤對應的位置,形成一個類似條帶的存儲結構。這種模式至少需要2塊盤,這種模式充分提高了空間使用率,也提高了資料的存儲讀寫性能,但由于這種模式沒有備援能力,是以如果某塊磁盤的資料一旦丢失或損壞,就會導緻資料無法複原。

* RAID 1:

被稱為鏡像模式,一個檔案的資料通過控制晶片發向底層晶片存儲到磁盤塊時,将資料寫入磁盤時同時也寫入鏡像的磁盤中。這種模式的空間使用率隻有1/2,并且寫性能下降,但是讀性能有一定的提高,備援能力也提高了一倍。至少需要的盤數為2N

*RAID 4:

被稱為RAID檢驗碼,當具有n個盤時,與條帶模式相似,但是它是把資料平均配置設定到n-1的磁盤塊中,把剩下的那個磁盤塊用來存儲前面各個磁盤的檢驗碼。這種模式的磁盤使用率為n-1/n,它提升資料的讀寫性能,并且允許一個磁盤出錯,有一定的備援能力

linux raid和mdadm,linux下的raid及mdadm的指令詳解

* RAID 5

在RAID4的基礎上,讓每一個的磁盤都當做檢驗磁盤。

* RAID 0+1

先條帶,後鏡像,如圖:這種模式提升了讀寫性能,有備援能力,空間使用率為1/2,但是,如果其中一個條帶上的磁盤損壞,就會影響整個的raid磁盤陣列。至少需要4塊磁盤。

linux raid和mdadm,linux下的raid及mdadm的指令詳解

* RAID 1+0

先鏡像,再條帶。如圖,這種模式也提升了讀寫資料的性能,有備援能力,空間使用率為1/2,且如果某個條帶中的磁盤損壞,直接調用這個條帶中的鏡像磁盤來修複,提高了磁盤的修複速度。它也至少需要4塊磁盤

linux raid和mdadm,linux下的raid及mdadm的指令詳解

* jbod:将多個小盤組合成大盤

無性能表現,無備援能力,空間使用率百分之百,至少需要2個盤。

RAID

目前RAID技術大緻分為兩種:基于硬體的RAID技術和基于軟體的RAID技術。其中在Linux下通過自帶的軟體就能實作RAID功能,這樣便可省去購買昂貴的硬體RAID控制器和附件就能極大地增強磁盤的IO性能和可靠性。由于是用軟體去實作的RAID功能,是以它配置靈活、管理友善。同時使用軟體RAID,還可以實作将幾個實體磁盤合并成一個更大的虛拟裝置,進而達到性能改進和資料備援的目的。當然基于硬體的RAID解決方案比基于軟體RAID技術在使用性能和服務性能上稍勝一籌,具體表現在檢測和修複多位錯誤的能力、錯誤磁盤自動檢測和陣列重建等方面。

md:核心子產品

mdadm:(md管理器)将任何裝置做成RAID

模式化指令

建立模式:

-C

專用選項:

-l #:級别

-n #:裝置個數

-a  {yes|no}:自動為其建立裝置檔案

-c #M:指定chunk(資料塊機關的大小)

-x #:指定空閑的磁盤個數

管理模式:

--add,--remove(增加移除某個磁盤塊),-f(--fail,--set-faulty)(用來模拟損壞磁盤的)

mdadm  /dev/md#  --add /dev/sda#

監控模式:

-F

增長模式:

-G

裝配模式:

-A

模拟軟體  RAID5:

2G, 加一個空閑盤

1,fdisk /dev/sda  建立4個為1G的邏輯分區來模拟磁盤

2,建立RAID5模式

mdadm  -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sda5 /dev/sad6 /dev/sda7 /dev/sda8

cat /proc/mdstat (檢視建立的完成情況)

3,格式化

mke2fs -j /dev/md0

4,挂載

mount /dev/md0 /mnt

損壞某個磁盤分區

mdadm /dev/md0 -f /dev/sda5

移除損壞或空餘的磁盤分區

mdadm /dev/md0 - r /dev/sda5

添加一個空餘的磁盤分區進入md0模式中

mdadm /dev/md0 -a /dev/sda8

停止RAID陣列

mdadm -S /dev/md#

重新驅動

mdadm -A /dev/md0 /dev/sda5 /dev/sda6 /dev/sda7 /dev/sda8