RAID:Redundant Arrays of Independent(Inexpensive) Disks
獨(dú)立(廉價(jià))磁盤冗余陣列
Berkeley提出: A case for Redundent Arrays of Inexpensive Disks RAID
提高IO能力:磁盤并行讀寫碍论;
提高耐用性谅猾;磁盤冗余來實(shí)現(xiàn)
級別:多塊磁盤組織在一起的工作方式有所不同;
常用級別:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
RAID實(shí)現(xiàn)的方式:
- 硬件實(shí)現(xiàn)方式
外接式磁盤陣列:通過擴(kuò)展卡提供適配能力
內(nèi)接式RAID:主板集成RAID控制器 - Software RAID:軟件方式實(shí)現(xiàn)
級別:level
RAID-0:0, 條帶卷鳍悠,strip;
RAID-1: 1, 鏡像卷税娜,mirror;
RAID-2
..
RAID-5:
RAID-6
RAID10
RAID01
RAID-0:
RAID 0最簡單的實(shí)現(xiàn)方式就是將N塊硬盤(最好容量相同)串聯(lián)在一起形成一個(gè)大的硬盤組,在寫入數(shù)據(jù)時(shí)藏研,數(shù)據(jù)會被分為一定大小的多個(gè)區(qū)塊敬矩,依次寫入到磁盤中(如圖所示)。RAID-0的最大優(yōu)點(diǎn)是可以成倍提高磁盤的存儲容量蠢挡,如三塊1TB的硬盤組成的RAID 0其容量為3TB弧岳。其缺點(diǎn)是一旦其中任何一個(gè)硬盤出現(xiàn)故障凳忙,整個(gè)磁盤陣列都將無法使用,可靠性僅為單個(gè)硬盤的1/N禽炬。
讀涧卵、寫性能提升;
可用空間:N*min(S1,S2,...)
無容錯能力
最少磁盤數(shù):2, 2+
RAID-1:
RAID 1被稱為磁盤鏡像模式腹尖,原理在一個(gè)硬盤上寫入數(shù)據(jù)時(shí)會在閑置硬盤上也同時(shí)寫入柳恐,生成鏡像文件,在不影響性能的情況下盡可能保證可靠性热幔,只要磁盤陣列中任何一塊硬盤出現(xiàn)問題乐设,都可以有另一塊鏡像硬盤可以使用,具備很好的冗余能力绎巨。雖然這樣對數(shù)據(jù)保存會比較安全近尚,但成本也會增加,硬盤利用率僅為50%场勤。另外戈锻,一旦這個(gè)磁盤陣列出現(xiàn)故障,那么整個(gè)陣列的可靠性也相對不再可靠却嗡,必須及時(shí)更換硬盤舶沛。因此RAID 1主要用在保存關(guān)鍵性數(shù)據(jù)的場合。
讀性能提升窗价、寫性能略有下降如庭;
可用空間:1*min(S1,S2,...)
有冗余能力
最少磁盤數(shù):2, 2+
RAID-4:
RAID 4以數(shù)據(jù)塊為單位,也就是按磁盤為單位撼港。這樣的特點(diǎn)使得RAID 4在寫入小文件時(shí)比RAID 3要快坪它,但在恢復(fù)數(shù)據(jù)時(shí)RAID 4的難度要大得多,控制器的設(shè)計(jì)也要復(fù)雜得多帝牡。
1101, 0110, 異或運(yùn)算得 1011(校驗(yàn)碼)
如果數(shù)據(jù)丟失 可從校驗(yàn)碼推斷出丟失數(shù)據(jù)信息
缺陷:其中一塊盤作為集中校驗(yàn)盤往毡,訪問壓力較大,導(dǎo)致它作為性能瓶頸存在
RAID-5:
RAID 5是一種分布式的獨(dú)立磁盤陣列靶溜,被設(shè)計(jì)為一種存儲性能开瞭、數(shù)據(jù)安全和存儲成本兼顧的存儲解決方案,也可以理解為是RAID 0和RAID 1的折中方案罩息。
RAID 5與RAID 4一樣將數(shù)據(jù)以塊為單位分步在各個(gè)硬盤上嗤详。RAID 5不對數(shù)據(jù)進(jìn)行備份,而是把數(shù)據(jù)和對應(yīng)的奇偶校驗(yàn)信息存儲在組成磁盤陣列的各個(gè)磁盤上瓷炮,并且奇偶校驗(yàn)信息和與其相對應(yīng)的信息存放在不同的硬盤上葱色。當(dāng)一個(gè)硬盤損壞時(shí),系統(tǒng)可以根據(jù)在另一塊硬盤上存放的該損壞數(shù)據(jù)相對應(yīng)的奇偶校驗(yàn)信息來恢復(fù)數(shù)據(jù)娘香。RAID 5只允許同時(shí)損壞一個(gè)硬盤苍狰,所以如果一個(gè)硬盤出現(xiàn)故障后RAID 5還能夠正常讀取數(shù)據(jù)办龄,但應(yīng)及時(shí)更換損壞的硬盤,否則再出現(xiàn)另外的硬盤損壞則整個(gè)磁盤陣列將會崩潰淋昭。
輪流做校驗(yàn)盤
讀俐填、寫性能提升
可用空間:(N-1)*min(S1,S2,...)
有容錯能力:1塊磁盤
最少磁盤數(shù):3, 3+
RAID-6:
讀、寫性能提升
可用空間:(N-2)*min(S1,S2,...)
有容錯能力:2塊磁盤
最少磁盤數(shù):4, 4+
混合類型
RAID-10:
RAID 10是先鏡射再分割數(shù)據(jù)响牛,再將所有硬盤分為兩組玷禽,視為是RAID 0的最低組合,然后將這兩組各自視為RAID 1運(yùn)作呀打。當(dāng)RAID 10有一個(gè)硬盤受損,其余硬盤會繼續(xù)運(yùn)作糯笙。
讀贬丛、寫性能提升
可用空間:N*min(S1,S2,...)/2
有容錯能力:每組鏡像最多只能壞一塊;
最少磁盤數(shù):4, 4+
RAID-01:
RAID 01則是跟RAID 10的程序相反给涕,是先分割再將數(shù)據(jù)鏡射到兩組硬盤豺憔。它將所有的硬盤分為兩組,變成RAID 1的最低組合够庙,而將兩組硬盤各自視為RAID 0運(yùn)作恭应。
RAID 01只要有一個(gè)硬盤受損,同組RAID 0的所有硬盤都會停止運(yùn)作耘眨,只剩下其他組的硬盤運(yùn)作昼榛,可靠性較低。
JBOD:Just a Bunch Of Disks
JBOD并不是RAID的等級剔难。由于并沒有規(guī)范胆屿,市場上有兩類主流的做法
- 使用單獨(dú)的鏈接端口如SATA、USB或1394同時(shí)控制多個(gè)各別獨(dú)立的硬盤偶宫,使用這種模式通常是較高端的設(shè)備非迹,還具備有RAID的功能,不需要依靠JBOD達(dá)到合并邏輯扇區(qū)的目的纯趋。
- 只是將多個(gè)硬盤空間合并成一個(gè)大的邏輯硬盤憎兽,沒有錯誤備援機(jī)制。
數(shù)據(jù)的存放機(jī)制是由第一顆硬盤開始依序往后存放吵冒,即操作系統(tǒng)看到的是一個(gè)大硬盤(由許多小硬盤組成的)纯命。但如果硬盤損毀,則該顆硬盤上的所有數(shù)據(jù)將無法救回桦锄。若第一顆硬盤損壞扎附,通常無法作救援(因?yàn)榇蟛糠治募到y(tǒng)將磁盤分割表(partition table)存在磁盤前端,即第一顆)结耀,失去磁盤分割表即失去一切數(shù)據(jù)留夜,若遭遇磁盤陣列數(shù)據(jù)或硬盤出錯的狀況匙铡,危險(xiǎn)程度較RAID 0更劇。它的好處是不會像RAID 0碍粥,每次訪問都要讀寫全部硬盤鳖眼。但在部分的JBOD數(shù)據(jù)恢復(fù)實(shí)踐中,可以恢復(fù)未損毀之硬盤上的數(shù)據(jù)嚼摩。同時(shí)钦讳,因?yàn)槊看巫x寫操作只作用于單一硬盤,JBOD的傳輸速率與I/O表現(xiàn)均與單顆硬盤無異枕面。
功能:將多塊磁盤的空間合并一個(gè)大的連續(xù)空間使用愿卒;
可用空間:sum(S1,S2,...)
主流 RAID 等級技術(shù)對比
CentOS 6上的軟件RAID的實(shí)現(xiàn):
結(jié)合內(nèi)核中的md(multi devices)
mdadm:模式化的工具
命令的語法格式:mdadm [mode] <raiddevice> [options] <component-devices>
支持的RAID級別:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10;
模式:
創(chuàng)建:-C
裝配: -A
監(jiān)控: -F
管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意塊設(shè)備
-C: 創(chuàng)建模式
-n #: 使用#個(gè)塊設(shè)備來創(chuàng)建此RAID;
-l #:指明要創(chuàng)建的RAID的級別潮秘;
-a {yes|no}:自動創(chuàng)建目標(biāo)RAID設(shè)備的設(shè)備文件琼开;
-c CHUNK_SIZE: 指明塊大小枕荞;
-x #: 指明空閑盤的個(gè)數(shù)柜候;
例如:創(chuàng)建一個(gè)10G可用空間的RAID5;
-D:顯示raid的詳細(xì)信息躏精;
mdadm -D /dev/md#
管理模式:
-f: 標(biāo)記指定磁盤為損壞渣刷;
-a: 添加磁盤
-r: 移除磁盤
觀察md的狀態(tài):
cat /proc/mdstat
停止md設(shè)備:
mdadm -S /dev/md#
watch命令:
-n #: 刷新間隔,單位是秒
watch -n# 'COMMAND'
[root@centos7 ~]# watch -n1 'ifconfig ens33 '