天天看點

RAID的詳細介紹及配置過程

RAID

目的:提高備援  提高性能

A:array  陣列

R :redundent 備援

常見級别:0 1 5 6 10 

根據硬體或者連接配接方式的不同,分為軟體RAID和硬體RAID(專門的RAID卡)

以硬體方式實作的磁盤陣列,所對應的裝置檔案在/dev/下都已sd開頭。

以軟體的方式實作的RAID,是依靠linux自身将裝置連接配接起來,是在核心中實作的,實作的子產品為md。所對應的裝置檔案在/dev/下以md開頭。

mdadm 多磁盤管理工具,可以是分區,也可以是獨立的一塊磁盤。

linear (線性模式),将兩個以上的磁盤整合成為一個實體的存數裝置。所有的資料是:“一個一個填滿之後,才将資料繼續寫到下一個磁盤上”。由于資料是一個一個寫入到不同的磁盤當中,是以整個磁盤的讀取性能并不會增加。此外,資料具有連續性,若一個磁盤損毀,導緻整個資料丢失。優勢是:磁盤的空間會完整的被利用完畢!

RAID0:條帶(strip) 将資料分成多塊,按等分放在不同的磁盤上交叉進行存儲,可以提高磁盤性能,無容錯功能。任何一塊盤壞掉,會導緻整個 資料全部丢失。

RAID1:鏡像卷  将資料同時寫入兩塊磁盤中,提供備援功能。總容量以最小的那塊磁盤為主。但是寫速度明顯降低,讀性能明顯提高。磁盤使用率百分之五十。

RAID4:至少三塊磁盤,有一塊盤專門用來做校驗盤,缺陷:校驗盤會成為系統的瓶頸。

RAID5:至少三塊磁盤,輪流做校驗盤,前兩塊磁盤放資料,第三塊磁盤放奇偶校驗碼,二三放資料,第一塊磁盤放校驗資料,依次輪流。空間使用率(N-1)/ N。隻允許壞一塊盤。讀取性能相當于RAID0,因為要計算寫入到磁盤當中的平衡資訊(parity information),是以寫入的性能增加不會很明顯。

PS:可以增加一塊空閑盤(spare disk),一旦有一塊盤發生故障可以立即頂上去。

RAID6 至少需要四塊盤,兩塊盤做奇偶校驗,輪流放奇偶校驗資料。

mdadm   manage MD devices aka(also known as 衆所周知)linux  software  Raid

         建立軟raid  模式化工具

格式  mdadm  [mode]   <raiddevice>  [options] <component-devices> 組成模式

常用模式(mode):assemble(裝配) create(建立)   follow or monitor(監控)   grow(增長)manage(管理)

Assemble:把一個從别處移植過來的或者已經停用的raid重新啟用起來。不用指定raid中有哪些磁盤組成,可以手動或者自動掃描。

Create :建立一個Raid ,有兩個或兩個以上的磁盤或者分區。

Follow or monitor:監控模式,監控raid當中磁盤的工作狀态,隻對1,4,5,6,10(有備援功能)有效。

Grow:增長或者收縮raid,或者重建raid。所支援功能包括改變活動處于活動狀态磁盤的大小及個數,适用于1,4,5,6具有備援功能的級别下。

Manage:管理模式,實作特殊的管理工作,添加一個新的備援盤或者移掉一個壞盤。在MISC模式(雜項模式)下同樣可以實作。

選項 Options

-A,--assemble   assemble a pre-existing array

-C,--create    create a new array

-F,--follow,--monitor  select monitor mode

-G, --grow    change the size  or shape of an active array

如果在一個裝置之前已經指定了一個選項,例如  -add,--fail ,--remove 将自動被識别為manage模式。

跟模式無關的選項:

-V,--verbose 顯示更詳細的資訊,選項較特殊,隻能跟--detail (顯示raid裝置的詳細資訊), --scan(掃描) 和 --examine  , --scan一起用。

-s,--scan  掃描配置檔案或者/proc/mdstat(保留目前系統上處于活動或者停止狀态的raid裝置)來擷取額外的資訊。

Create  和grow 的選項

-n  --raid-devices=    指定目前建立的raid一共有多少塊活動的裝置個數

-x  --spare-devices=   指定空閑裝置的個數

-c  --chunk=         定義塊大小,預設是64k     

-l   --level=         指定級别 

在VMware上模拟raid0的建立過程:

先建立兩個分區

[root@server27 ~]# fdisk /dev/sda

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_1298961123fxOz.png"></a>

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_1298961126G3YU.png"></a>

兩個5G分區已經建立完畢,注意此時一定不要格式化分區。

[root@server27 ~]# mdadm -C /dev/md0  -a yes -l 0 -n 2 /dev/sda7 /dev/sda8

mdadm: array /dev/md0 started.

-a  yes 當裝置啟動的時候自動建立裝置檔案

-l 0 建立級别

-n 2 指定磁盤個數

建立完畢後檢視一下:

[root@server27 ~]# cat /proc/mdstat

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_12989611334dpR.png"></a>

格式化裝置:

[root@server27 ~]# mkfs -t ext3 -L RAID0 /dev/md0

建立一個挂載點,然後挂載:

[root@server27 ~]# mkdir /raid

[root@server27 ~]# mount /dev/md0 /raid

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_1298961133Ufpy.png"></a>

/dev/mdo 已經工作正常。

設定開機自動挂載,編輯/etc/fstab 檔案,添加:

/dev/md0           /raid              ext3              defaults      0   0

在VMware上模拟raid1的建立過程:

三塊分區已經建立好了 /dev/sda9,  /dev/sda10, /dev/sda11

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_1298961157L4Qg.png"></a>

[root@server27 raid]# partprobe

分區資訊與核心同步一下,一定不要忘了

[root@server27 raid]# cat /proc/partitions

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_1298961163zPKD.png"></a>

準備工作已經完成,下面開始Raid1的建立,過程跟raid0 差不多

[root@server27 raid]# mdadm -C /dev/md1 -a yes -l 1 -n 2 -x 1  -c 32 /dev/sda9 /dev/sda10 /dev/sda11

[root@server27 raid]# cat /proc/mdstat

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_1298961164kJPB.png"></a>

[root@server27 raid]# mdadm --detail /dev/md1

檢視某個Raid裝置的詳細資訊

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_12989611664Aq8.png"></a>

模拟raid的建立過程:

PS:建立raid5 至少需要三塊盤,如果再加一塊備援盤的話,至少需要四塊。

四個分區已經準備完畢: /dev/sda12, /devsda13, /dev/sda14 ,/dav/sda15

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_1298961170EzVf.png"></a>

[root@server27 raid]# mdadm -C /dev/md2 -a yes -l 5 -n 3 /dev/sda{12,13,14}

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_12989611736rcE.png"></a>

添加一塊備援盤

[root@server27 raid]# mdadm -a /dev/md2 /dev/sda15

[root@server27 raid]# mdadm --detail /dev/md2

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_1298961174kD0u.png"></a>

移除一塊備援盤:

[root@server27 raid]# mdadm -r /dev/md2 /dev/sda15

檢視一下:

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_1298961176ZMH8.png"></a>

格式化裝置

[root@server27 raid]# mkfs -t ext3 /dev/md2

建立一個挂載點,并挂載

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_12989611779Zbg.png"></a>

模拟磁盤壞掉的情況 --fail  --set-faulty

[root@server27 md2]# mdadm --set-faulty /dev/md2  /dev/sda14

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_12989611778kEp.png"></a>

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_1298961178Tj6e.png"></a>

依然可以正常通路。

增加一塊新盤:

[root@server27 md2]# mdadm -a /dev/md2 /dev/sda15

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_1298961181Y2c8.png"></a>

正在重建,等會兒會顯示正常

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_129896118237hH.png"></a>

将壞盤移除

[root@server27 md2]# mdadm -r /dev/md2 /dev/sda14

将Raid停止

先解除安裝

[root@server27 ~]# mdadm -S /dev/md2

如果想重新使用需要重新裝配

[root@server27 ~]# mdadm -A /dev/md2 /dev/sda{12,13,15}

如果想保留raid 的詳細資訊需要手動去編輯。在/etc/下mdadm.conf(預設不存在)

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_1298961182bkDh.png"></a>

[root@server27 ~]# mdadm --detail --scan

顯示磁盤上所有處于活動裝狀态的陣列

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_1298961183lHng.png"></a>

[root@server27 ~]# mdadm --detail --scan &amp;gt;&amp;gt; /etc/mdadm.conf

再來檢視一下mdadm.conf 已經有資訊了

<a href="http://lyp0909.blog.51cto.com/attachment/201103/1/508999_1298961187Hgbi.png"></a>

來驗證一下,看能不能使用

停掉md2 在重新裝配一下

[root@server27 ~]# umount /md2

mdadm: stopped /dev/md2

[root@server27 ~]# mdadm -A --scan

mdadm: /dev/md2 has been started with 3 drives .

PS:格式化的時候有一個選項要注意

mkfs.ext3 -j -b 4096  -E stride=16 /dev/md0

-E指定擴充選項,stride= chuck/block  寫上之後可以提高raid的性能

本文轉自 490999122 51CTO部落格,原文連結:http://blog.51cto.com/lyp0909/503575,如需轉載請自行聯系原作者