RAID的各級特性及軟RAID的創建

寫在前面--命令總覽建RAID:mdamd -C [-l別 -n數量 -cchunk  -a是否詢問]

看RAID: mdadm –D   停止RAID:mdadm –S  管理RAID:-f標記損壞  -r除  -a添加

watch  文件:/proc/mdstat   操作簡單流程在尾部

 

RAID特性及創建

RAID全稱獨立磁冗餘列(Redundant Array of Independent Disks),基本思想就是把多個相便宜的硬盤組合起來,成一個硬盤陣,使性能達到甚至超一個價格昂的硬

 

RAID點如下:

把多盤組合成更大的硬當做一使用

提高IO能力:磁並行

提高耐用性:通冗餘來實現

有獨立內存和自我供能力,在突然斷電時能靠池把內存中的數據寫入磁,一定程度上防止數據失。

 

RAID實現方式:

外接式磁盤陣列:通過擴展卡提供適配能力

內接式RAID:主板集成RAID控制器

上述兩種方式:RAID配置在BIOS中

software RAID:但在幾乎沒人用了

 

RAID別:level,多盤組織在一起的工作方式不同,而不是性能好壞之分

一類型:

RAID-0:條卷。chunk

wKioL1aCOazwDC1bAABQZ-kSl2Q890.png

假如,有兩A和B,把數據存上。就把數據切割成到四數據,把數據1到A上,數據2到B上,把數據3再存到A上,把數據4到B上。這樣A和B可以同,整個數據存時間就減半了。相同的,從兩一起數據,取的時間也減半了。

但是,假如一壞掉的可能性1/4,那麼兩塊盤壞掉一的概率就1/2,壞掉任何塊盤都會致整個數據的壞,所以使用磁越多,雖然IO能力越強,但風險也越大。上述數據1,數據2等稱chunk種方式一般存放不是很重要的數據。

特性:

寫能力提升

可用空:n*min 假如有三分別10G,12G,15G 大小,可用空間爲3x10G=30G

無容(冗餘)能力,反而增加風險

需要磁數量:2以上

 

RAID-1像卷。

wKiom1aCOZKxbrX-AABF5fb5eW4398.png

把數據分別寫入A和B兩塊盤內,相當於把數據存了兩份,兩個內的數據完全一這樣,即便有一塊盤壞掉,另一塊盤也能保存好完成數據。取是從兩塊盤一起,所以取能力上升。但是寫入數據需要把數據寫兩遍,所以寫入能力下降。

特性:

寫性能下降

性能提升

可用空:1*min,只有一塊盤有用,其他只是做

有容能力

最少磁數:2

 

RAID-4:校驗盤。假如有四塊盤,拿三塊盤A,B,C分別存小數據chunk,拿最後一塊盤D做校驗盤,存前面三塊盤數據的校驗碼(校驗碼可以理解前三塊盤數據的和但佔用空卻沒增加)。這樣就允壞一塊盤,無任何一塊盤壞掉,通另外三塊盤都可以找回失的數據。但是校驗盤D數據多,力大,而且前ABC三塊盤任何一壞掉,校驗盤D就不得不扛起那壞掉的的工作,力很大,所以壞掉的可能性最大。所以通常就驗盤D做一塊備E,E監視D的一,哪一天D壞掉了,胎E就會自自告勇,挑起大梁。

RAID-5:塊盤輪流做校驗盤

比如第一把chunk1存到A上,chunk2存到B上,chunk3存到C上,校驗碼到D上。第二驗碼存到C上,chunk存到ABD上,第三把校驗碼到B上,chunk存到ACD上,第四把校驗碼到A上,以此類推。這樣就不會有哪一塊盤力特別大了。

寫性能提升

可用空:n-1,相當於一拿來做校驗盤

能力:1塊盤

最少磁數:3

 

RAID-6

拿兩個做校驗盤這樣可以允壞兩,但效果不如RAID10

寫性能提升

可用空:n-2

能力:2塊盤

最少磁數:4

 

混合類型

RAID-10:先做1再做0,先合下,才能合上

wKiom1aCOZLi5ePiAABK6SL3jYw681.png

假如6個分成三,AB,CD二,EF三稱把數據分成三個chunk,每一一個chunk,

寫性能提升。一拿到chunk後把自己的chunk分別存到A,B上,這樣A和B就互爲鏡像了。這樣每個小內都允壞掉一塊盤,比如ACE同壞掉都沒事。

可用空:1/2

有容能力:每只能壞一

最少磁數:4

RAID-01

wKioL1aCOazjUbvKAABLDfr79nY905.png

例如把6個分成兩,ABC第一,DEF第二。把數據第一,再把相同的數據第二。第一拿到數據後把數據切成三個chunk,分別存到A、B、C、上。第二拿到數據後也行與第一相同的操作。表面看兩爲鏡像,但由於拿到數據後又行了切割,兩個的切割方式幾乎不可能完全相同,所以如果第一和第二都各自壞掉一塊盤,數據基本就找不回來了,所以只允有一,一內全部壞掉都沒事,但不允

 

RAID-50:至少6塊盤,最多壞一個

RAID-7

 

JBOD:just a bunch of disks

簡單的將多合併成一個大的可用空

可用空:sum,不是否一

無容能力

 

常用別:RAID-0,RAID-1,RAID-10,RAID-50,JBDO

一般用10,和50,或0,其他不好用

 

centos6RAID實現

合內核中的md(multi device)

 

mdadm:模式化工具

支持LINEAR, RAID0,RAID4,RAID5,RAID6,RAID10

建:-C     看–D     管理-f,-r,-a    停用,除-S    裝配-A   控-F

-C:建RAID

mdadm –C /dev/md0–l  5 –n  3 –x 1 –c  128K -a  yes /dev/sda{5,6,7}

 

-n #:使用#塊設備創建此RAID

-l #:指明RAID

-a {yes,no}:自動創建目RAID設備設備文件

-c chunk_size:指明大小

-x#:指明空閒盤的個數

-D示raid的詳細信息

mdadm-D /dev/md0

md

cat/proc/mdstat

watch命令:

watch –n1 'command'

watch -n1 'cat /proc/mdstat'

 

管理模式:

-f標記盤爲損

           mdadm /dev/md0 -f /dev/sda6

-a添加磁

           mdadm /dev/md0 -a /dev/sda5

-r移除磁

           mdadm /dev/md0 -r /dev/sda5

 

-S停止,除md設備

mdadm -S /dev/md0  ---------除md0

下面爲創建RAID5的詳細過

 [root@localhost ~]# mdadm -C /dev/md0 -l 5 -n3 -x 1 -c 128K -a yes /dev/sda{7,8,9,10}
mdadm: /dev/sda7appears to contain an ext2fs file system  ----------------創建/dev/md0 
size=2099724K  mtime=Thu Jan 1 08:00:00 1970
mdadm: largestdrive (/dev/sda9) exceeds size (2097664K) by more than 1%
Continue creatingarray? y
mdadm: Defaultingto version 1.2 metadata
mdadm: array/dev/md0 started.


 

 [root@localhost ~]# cat /proc/mdstat---------查看配置文件,看有沒有RAID設備
Personalities :[raid6] [raid5] [raid4] 
md0 : activeraid5 sda9[4] sda10[3](S) sda8[1] sda7[0]
      4195328 blocks super 1.2 level 5, 128kchunk, algorithm 2 [3/3] [UUU]
unused devices:<none>


[root@localhost~]# mke2fs -t ext4 /dev/md0  -----------格式化md0
[root@localhost~]# mkdir /mydata
[root@localhost~]# mount /dev/md0 /mydata
[root@localhost~]# mdadm -D /dev/md0  ----可以看到一共有4塊設備組成/dev/sda{7,8,9}和/dev/sda10


[root@localhost~]# mdadm /dev/md0 -f /dev/sda7  --------把/dev/sda7標記損壞
mdadm: set/dev/sda7 faulty in /dev/md0
[root@localhost~]# mdadm -D /dev/md0 
    Number  Major   Minor   RaidDevice State
       3      8       10        0     spare rebuilding   /dev/sda10
       1      8        8        1     active sync   /dev/sda8 --------可看到/dev/sda10自動替換到了/dev/sda7的位置,正在同步數據
       4       8       9        2      active sync   /dev/sda9 
        0      8        7        -     faulty   /dev/sda7


[root@localhost~]# mdadm /dev/md0 -f /dev/sda8   -----再標記壞一塊盤
mdadm: set/dev/sda8 faulty in /dev/md0


[root@localhost~]# cd /mydata   
[root@localhostmydata]# ll
總用量 16
drwx------. 2root root 16384 12月 20 17:11 lost+found -------------原來數據還能查看


[root@localhostmydata]# mdadm /dev/md0 -r /dev/sda7 ---------移除/dev/sda7
mdadm: hotremoved /dev/sda7 from /dev/md0
[root@localhostmydata]# mdadm /dev/md0 -r /dev/sda8
mdadm: hotremoved /dev/sda8 from /dev/md0


[root@localhostmydata]# mdadm -D /dev/md0  ------發現只剩兩塊盤
………………………………………………..
    Number  Major   Minor   RaidDevice State
       3      8       10        0     active sync   /dev/sda10
       2      0        0        2     removed
       4      8        9        2     active sync   /dev/sda9


[root@localhostmydata]# mdadm /dev/md0 -a /dev/sda7 -------/dev/sda7加上去
mdadm: added/dev/sda7
[root@localhostmydata]# mdadm -D /dev/md0 ----------/dev/sda7添加成功
    Number  Major   Minor   RaidDevice State
       3      8       10        0     active sync   /dev/sda10
       5      8        7        1     spare rebuilding   /dev/sda7
       4      8        9        2     active sync   /dev/sda9


 

 

 

下面爲創建RAID5的

fdisk /dev/sda--- 建4個5G分區---用t,設備號即數字----把磁類型改寫fd,RAID用的磁類型

cat /proc/mdstat  ---------此文件可看RAID設備的信息

mdadm -C /dev/md0-a yes -n 3 -l 5 /dev/sda{5,6,7,8,}----- 建一個名md0的RAID

mke2fs -t ext4/dev/md0        -------------把RAID格式化成ext4格式

mount /dev/md0/mydata      ----------把RAID掛至 /mydata目

mount               ----------看是否掛成功

df –lh                  ---------看磁信息

blkid /dev/md0      -----------看md0的信息

mdadm -D /dev/md0  ------------看md0的詳細信息

mdadm  /dev/md0 -f /dev/sda5---------壞一  壞RAID md0 上的一塊盤

watch -n1 'cat/proc/mdstat'      ----------個文件,隨掌握RAID的信息

mdadm -D /dev/md0           ----------看md0的詳細信息

 

mdadm  /dev/md0 -f /dev/sda6--壞一塊盤

mdadm -D /dev/md0    ---------------看md0的詳細信息,發現依然能訪問

 

mdadm /dev/md0 -r/dev/sda5 -------移除壞掉的

mdadm /dev/md0 -r/dev/sda6

mdadm -D /dev/md0

 

mdadm /dev/md0 -a/dev/sda5 ---------md0加上一塊盤

mdadm -D /dev/md0  -----------看md0的狀


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章