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

搜狗截圖20151220180904.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:鏡像卷。

搜狗截圖20151220181322.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,先組合下層,才能組合上層

搜狗截圖20151220181853.png

假如6個盤分成三組,AB為一組,CD二組,EF三組。簡稱把數據分成三個chunk,每一組一個chunk,

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

可用空間:1/2

有容錯能力:每組只能壞一塊

最少磁盤數:4

RAID-01

搜狗截圖20151220182311.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,其他不好用

 

centos6上軟RAID的實現;

結合內核中的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 -n 3 -x 1 -c 128K -a yes /dev/sda{7,8,9,10}

mdadm: /dev/sda7 appears to contain an ext2fs file system   —————-創建/dev/md0

       size=2099724K  mtime=Thu Jan  1 08:00:00 1970

mdadm: largest drive (/dev/sda9) exceeds size (2097664K) by more than 1%

Continue creating array? y

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md0 started.

 

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

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sda9[4] sda10[3](S) sda8[1] sda7[0]

      4195328 blocks super 1.2 level 5, 128k chunk, 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@localhost mydata]# ll

總用量 16

drwx——. 2 root root 16384 12月 20 17:11 lost+found ————-原來數據還能查看

[root@localhost mydata]# mdadm /dev/md0 -r /dev/sda7  ———移除/dev/sda7

mdadm: hot removed /dev/sda7 from /dev/md0

[root@localhost mydata]# mdadm /dev/md0 -r /dev/sda8

mdadm: hot removed /dev/sda8 from /dev/md0

[root@localhost mydata]# 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@localhost mydata]# mdadm /dev/md0 -a /dev/sda7 ——-/dev/sda7加上去

mdadm: added /dev/sda7

[root@localhost mydata]# 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的狀態

 

 

 

原創文章,作者:flivfox,如若轉載,請注明出處:http://www.www58058.com/10285

(0)
flivfoxflivfox
上一篇 2016-02-14
下一篇 2016-02-14

相關推薦

  • linux防火墻規矩管理工具-iptables

    工具:iptables  系統:centos6.8 目錄 一、iptables簡介 二、主機報文流向 三、Netfilite功能 四、Iptables規矩     一、iptables簡介 iptables,一個運行在用戶空間的應用軟件,通過控制Linux內核netfilter模塊,來管理網絡數據包的流動與轉送。通常iptabl…

    2017-02-07
  • 學習宣言

    好好學習,天天向上。

    Linux干貨 2016-10-24
  • 馬哥教育21期網絡班—第二周課程+練習

    目錄管理類命令: mkdir, rmdir, tree mkdir mkdir [options] /path/to/somewhere -p: 存在于不報錯,且可自動創建所需的各目錄; -v: 顯示詳細信息 -m MODE: 創建目錄時直接指定權限; tree tree:  需要安裝  yum -y install …

    Linux干貨 2016-06-29
  • 正則表達式及grep用法總結

    描述: grep: Global search REgular expression and Print outthe line. 作用:文本搜索工具,根據用戶指定的“模式”對目標文本逐行進行匹配檢查;打印匹配到的行; 模式:由正則表達式字符及文本字符所編寫的過濾條件 語法格式:grep [OPTIONS] PATTERN [FILE…] OPT…

    Linux干貨 2016-08-08
  • 虛擬化介紹、以及kvm

    什么是虛擬化? 在計算機領域中虛擬化,和我們平時說的虛擬化并沒有什么兩樣,說白了就是一個虛擬出來的東西罷了,并不是真實存在的。 虛擬化的歷史 虛擬化早在20實際60年代末,由IBM開發被命名為vmm(Virtual Machine Monitor)虛擬機監視器的軟件,我們知道那時候工藝技術并不發達,電腦也不像現在這樣屬于每家每戶的標配,IBM為了解決電腦使用…

    2017-03-08
  • 磁盤管理(二)之swap、dd工具使用

    磁盤管理(二)之swap、dd工具使用   一、掛載點和/etc/fstab   (1)配置文件/etc/fstab,當系統啟動時,自動加載該文件,會把寫在配置文件里面的所有掛載點全部自動掛載上去,只要按照格式寫,就不會丟失。   (2)文件掛載配置文件,如下圖:    &nbs…

    Linux干貨 2016-08-29
欧美性久久久久