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 &gt;&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,如需轉載請自行聯系原作者