RAID 學(xué)習(xí)及Linux軟RAID實(shí)現(xiàn)

我寫的不一定是正確的,但我是這么理解的(知識(shí)體量有限,錯(cuò)了望提醒)

RAID 是什么

基本思想就是把多個(gè)硬盤組合起來,成為一個(gè)硬盤陣列組钾腺,使性能達(dá)到甚至超過一個(gè)價(jià)格昂貴、容量巨大的硬盤

簡單說就是把多個(gè)硬盤組成一個(gè)邏輯扇區(qū)來使用讥裤,在操作系統(tǒng)層面這就是一個(gè)硬盤放棒,能夠動(dòng)態(tài)的完成硬盤的增大跟縮減通常有硬件RAID跟軟件之分

RAID 的優(yōu)勢

  • 增大I/O能力
  • 更高的數(shù)據(jù)安全
  • 更大的容量
  • 高效恢復(fù)磁盤數(shù)據(jù)
  • ……

硬件RAID

  • 主板上會(huì)集成一個(gè)RAID控制器,這個(gè)控制器連接到外部的一個(gè)硬盤組盒來實(shí)現(xiàn)硬件RAID
  • 類似上面己英,就好像多個(gè)插在STAT口上多塊硬盤间螟,主板上有一個(gè)RAID控制器,管理這幾塊連在STAT口上的硬盤組成RAID

軟件RAID

  • 這就沒什么好說的了剧辐,就是通過軟件來模擬RAID寒亥,軟件RAID的風(fēng)險(xiǎn)也比較大,生產(chǎn)絕對(duì)不建議

為什么要組建RAID

類型接口傳輸速率

  • IDE:3.3MB/s到16.6MB/s不等
  • SCSI:160MB/s 最大
    商用居多(以前)荧关,cpu占用低溉奕,它內(nèi)部有個(gè)小控制器,有些也會(huì)帶緩存忍啤,保證數(shù)據(jù)的持久化
  • USB 3:640MB/s
  • STAT 3:600MB/s

以上都是理論速度加勤,cpu跟內(nèi)存的數(shù)據(jù)交互兩都是按GB計(jì)算,硬盤的速度有時(shí)確實(shí)是服務(wù)器的瓶頸同波,不考慮現(xiàn)在的 USB3.1和雷電3接口鳄梅,這個(gè)時(shí)候就需要組建RAID了

RAID 的級(jí)別

RAID 0 (條帶)

基本原理
raid0.png

如上圖,有disk0,1兩塊磁盤未檩,在組建RAID 0 之后戴尸,RAID 控制器將一個(gè)文件一分為多分,比如1G 大小的文件冤狡,分成30MB大小的N個(gè)文件孙蒙,分別放入兩個(gè)磁盤中项棠,以STAT口最大傳輸速率為例,單個(gè)傳輸在600M/s挎峦,兩個(gè)一起就是1GB/s 左右每秒的數(shù)據(jù)傳輸香追。同樣也可以三塊硬盤組建RAID 0,那時(shí)這個(gè)RAID 0 的速率就是接近單塊硬盤的3倍坦胶,但至少是2塊硬盤組建RAID 0

RAID 0特性

  • 性能讀寫提升N倍(N為磁盤數(shù)量)
  • 冗余能力(容錯(cuò)能力)沒有
  • 空間利用率:Ns(N磁盤數(shù)量透典,s磁盤大小)
  • 至少兩塊磁盤

RAID 1 (鏡像)

基本原理
raid1.png

如上圖:在存儲(chǔ)文件的時(shí)候在DISK 0 中存儲(chǔ)一份顿苇,然后還在DISK 1 中存儲(chǔ)一份峭咒,寫速度不變,不過在讀取數(shù)據(jù)的時(shí)候可以交叉讀取岖圈,提高讀速度讹语。這種RAID組合通常是為了數(shù)據(jù)安全性钙皮,兩塊硬盤同時(shí)壞的幾率肯定比一塊硬盤壞的幾率小太多了

RAID 1特性

  • 寫性能下降蜂科,讀性能提高(相比單塊硬盤)
  • 有冗余能力
  • 空間利用率是1/2
  • 至少兩塊硬盤

RAID 4 (校驗(yàn)碼)

基本原理
raid4.png

如上圖:在存儲(chǔ)數(shù)據(jù)的時(shí)候會(huì)被依次分片存入DISK 0,1短条,2 中导匣,DISK 3 不存放數(shù)據(jù),存放DISK 0茸时,1贡定,2的校驗(yàn)碼。如一個(gè)90M的文件被被分別存入A1可都,A2缓待,A3位置,Ap就是存放著A1渠牲,A2旋炒,A3的校驗(yàn)碼;在讀取數(shù)據(jù)的時(shí)候如果A1签杈,A2瘫镇,A3的數(shù)據(jù)取出后校驗(yàn)碼不能跟Ap相同,那就數(shù)據(jù)出現(xiàn)問題答姥。這種情況铣除,校驗(yàn)碼盤DISK 3是RAID的瓶頸,所以用的比較少鹦付,如果RAID 3 出現(xiàn)問題尚粘,就要重新?lián)Q盤或重新計(jì)算校驗(yàn)碼,影響線上業(yè)務(wù)

特性

  • 讀寫性能都有提高
  • 有冗余能力
  • 空間利用率(N-1)N
  • 至少三塊硬盤

RAID 5 (循環(huán)冗余校驗(yàn)碼)

基本原理
raid5.png

如上圖:跟RAID 4 差不多敲长,只是每個(gè)盤都參與當(dāng)校驗(yàn)碼盤郎嫁,這種情況如果兩塊硬盤掛了互捌,那數(shù)據(jù)就沒了

特性

  • 讀寫性能提高
  • 有冗余能力
  • 空間利用率(N-1)N
  • 至少三塊硬盤

RAID 01 (條帶+鏡像)

基本原理
RAID01.png

如圖:先將4塊硬盤分成兩個(gè)為組共兩組,每組各做成RAID 0 然后將每組連接起來在組成RAID 1行剂,也就是先條帶(RAID 0)秕噪,然后鏡像(RAID 1),RAID 在存儲(chǔ)數(shù)據(jù)的時(shí)候先左右各存一份也就是DISK 0厚宰,1跟DISK 2腌巾,3存的東西是一模一樣的,然后數(shù)據(jù)到每組的時(shí)候在以條帶的方式分批存入兩個(gè)硬盤铲觉,如果其中一組RAID 0 掛了澈蝙,那不會(huì)影響業(yè)務(wù),因?yàn)榱硪唤M的跟掛掉的那組數(shù)據(jù)一樣撵幽。如果不同組同一個(gè)數(shù)據(jù)位的硬盤掛了那就真掛了

特性

  • 讀寫性能提高
  • 有冗余能力
  • 空間利用率1/2
  • 至少四塊硬盤

RAID 10 (鏡像+條帶)

基本原理
RAID10.png

如圖:跟上面RAID 01 差不多灯荧,不解析了,大概理解下也就是先分組做RAID 1 然后將每組做成RAID 0

JBOD(磁盤簇)

基本原理
JBOD.svg.png

如上圖:將多個(gè)硬盤組成一個(gè)邏輯盤盐杂,可以自由擴(kuò)大或縮小逗载,擴(kuò)大或縮小不損壞數(shù)據(jù),RAID就不一定链烈,一般硬盤需要分區(qū)厉斟、格式化、掛載才能用强衡。JBOD能夠動(dòng)態(tài)增減硬盤容量

特性

  • 無性能表現(xiàn)
  • 無冗余能力
  • 利用率100%
  • 至少兩塊硬盤

至于RAID 3擦秽、RAID 4、RAID 50啥特性的自行搜索下

RAID 的級(jí)別差異

RAID級(jí)別 讀性能 寫性能 冗余能力 利用率% 硬盤數(shù)量
RAID 0 單盤N倍 單盤N倍 100 2
RAID 1 接近單盤N倍 低于單盤寫能力 50 2
RAID 4 (N-1)/N * s倍 (N-1)/N * s倍 (N-1)/N 3
RAID 5 (N-1)/N * s倍 (N-1)/N * s倍 (N-1)/N 3
RAID 01 Ns/2倍 Ns/2倍 50 4
RAID 10 Ns/2倍 Ns/2倍 50 4
JBOD 100 2

Linux RAID實(shí)現(xiàn)

內(nèi)核(kernel)中有個(gè)模塊叫md(multi disk)漩勤,這個(gè)是用來模擬軟件RAID的感挥,這個(gè)跟dm是兩碼事

linux是通過設(shè)備文件訪問每個(gè)硬件的(/dev/目錄下),軟件RAID在/dev/ 目錄下生成/dev/md# 開頭的設(shè)備(邏輯RAID)讓linux來實(shí)現(xiàn)軟件RAID越败,實(shí)際底層還是存儲(chǔ)到各個(gè)設(shè)備中(/dev/sd#)

  • mdadm是上層用戶用來管理軟件RAID的一個(gè)命令工具
  • mdadm可以將任何塊設(shè)備做成RAID

RAID 基本操作

# mdadm
創(chuàng)建模式
  -c 設(shè)備名
    專用選項(xiàng)
      -l:RAID級(jí)別
      -n:#:指定設(shè)備個(gè)數(shù)
      -a {yes|no}:自動(dòng)為其創(chuàng)建設(shè)備文件
      -c:CHUNK大小,默認(rèn)是64k触幼,每個(gè)條帶大小
      -x #: 指定空閑盤個(gè)數(shù) 
    # mdadm -C /dev/md0 -l 0 -a yes -n 2 /dev/sda{0,1}
管理模式
  --add(-a):新增;--remove(-r):移除眉尸; --fail(-f):模擬損壞
  # mdadm /dev/md# --fail /dev/sda1 : 模擬硬盤損壞
監(jiān)控模式
  -F 設(shè)備名
增長模式 
  -G 設(shè)備名  指定塊設(shè)備
裝飾模式
  注意:將現(xiàn)有做成RAID 的設(shè)備放置到別的主機(jī)域蜗,通過裝配模式進(jìn)行重新識(shí)別
  -A

查看RAID陣列的詳細(xì)信息
  # mdadm -D /dev/md#: 顯示設(shè)備詳細(xì)信息
  # /proc/mdstat: 查看RAID信息

停止陣列
  # mdadm -S /dev/md#

將當(dāng)前RAID信息保存至配置文件,以便以后進(jìn)行裝配
  # mdadm -D --scan > /etc/mdadm.conf

由于演示我就一塊磁盤來模擬RAID各個(gè)級(jí)別噪猾,只要是塊設(shè)備都能用來做RAID

Linux RAID實(shí)例

分區(qū)信息

這里使用一塊20G磁盤進(jìn)行模擬

RAID 0 實(shí)例

RAID 0 要保證至少需要兩個(gè)設(shè)備這里用sdb{1,2}進(jìn)行模擬
mdadm -C /dev/md0 -l 0 -a yes -n 2 /dev/sdb{1,2}

創(chuàng)建RAID 0
  1. 使用mdadm -C 指定創(chuàng)建邏輯RAID名稱霉祸,-l指定RAID級(jí)別,-a同意自動(dòng)為其創(chuàng)建設(shè)備文件袱蜡,-n指定設(shè)備數(shù)量(不能小于塊設(shè)備數(shù)量)

  2. 使用mdadm -D /dev/md0 查看詳細(xì)信息(應(yīng)該看得懂吧)

  3. mke2fs -j /dev/md0:格式化邏輯RAID

  4. 掛載(看到lost+found文件就標(biāo)識(shí)成功了)


    掛載目錄

RAID 1 實(shí)例

這里RAID 1 使用sdb{3,5}進(jìn)行模擬

mdadm -C /dev/md1 -l 1 -a yes -n 2 /dev/sdb{3,5}

raid1

第二個(gè)紅框在查看RAID設(shè)備的時(shí)候看到紅框3的進(jìn)度條丝蹭,這是RAID 1的特性,盤1數(shù)據(jù)跟盤2保持一致也就是sdb3跟sdb5保持一致坪蚁,之后會(huì)顯示同步完成

同步完成

  • 之后就是格式化奔穿,掛載镜沽,看到lost+found表示可以使用了
模擬磁盤損壞
  1. 先拷貝文件(我拷貝文件/etc/fstab)到掛載目錄,我掛載的是/media目錄贱田,模擬mdadm /dev/md1 -f /dev/sdb5損壞(/dev/sdb5)

    模擬損壞

  2. 查看掛載目錄fstab文件內(nèi)容


    fstab內(nèi)容

這就是RAID 0的特性缅茉,允許一塊磁盤損壞,依然不影響數(shù)據(jù)

  1. 現(xiàn)在添加sdb6至md1(RAID 1)中男摧,在模擬sdb3損壞蔬墩,查看數(shù)據(jù)是否可以訪問
# mdadm /dev/md1 -r /dev/sdb5:移除損壞盤
# mdadm /dev/md1 -a /dev/sdb6:新增盤
# mdadm /dev/md1 -f /dev/sdb3:模擬sdb3損壞
# cat /media/fstab
模擬損壞

cat /media/fstab

查看fstab內(nèi)容

文件依然可用

mdadm命令的其他模式的用法自行搜索理解吧

總結(jié)

首先只要理解RAID是什么?然后用在什么地方耗拓?特性是什么拇颅?怎么用,就能大概了解跟理解他了

  • 是什么
    也就是一個(gè)大容量乔询,冗余可伸縮樟插,增大I/O能力的一個(gè)邏輯設(shè)備(理解成硬盤吧)
  • 用在什么地方
    如果這幾個(gè)特性是工作或者生產(chǎn)想要實(shí)現(xiàn)或體現(xiàn)的那自己就知道要用在什么地方了
    • 就比如DIY不愿意升級(jí)SSD,可以買個(gè)RAID盒子里面放兩個(gè)機(jī)械組成一個(gè)RAID 0竿刁,不過這里注意如果最后I/O接口速度都不能大于你單塊機(jī)械硬盤的傳輸那用了也白用黄锤,就比如RAID 盒子是通過USB鏈接到你電腦的,那如果是3.0就白搭了们妥,最好是3.1或者雷電的
  • 特性(RAID 級(jí)別)
    • RAID 0(條帶):增大帶寬
    • RAID 1(鏡像):提高安全性
    • RAID 5 (循環(huán)校驗(yàn)碼):提高安全性跟帶寬
    • ......
  • 怎么用猜扮?分硬件RAID跟軟件RAID
    • 硬件RAID 主板自帶,自己上BIOS設(shè)置或其他地方設(shè)置(現(xiàn)在DIY主板應(yīng)該都有)
    • 軟件RAID 上文說的使用Linux內(nèi)核自帶的md模塊實(shí)現(xiàn)軟RAID就是一種监婶,方法還有其他,感興趣自己搜索就好
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末齿桃,一起剝皮案震驚了整個(gè)濱河市惑惶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌短纵,老刑警劉巖带污,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異香到,居然都是意外死亡鱼冀,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門悠就,熙熙樓的掌柜王于貴愁眉苦臉地迎上來千绪,“玉大人,你說我怎么就攤上這事梗脾≥┬停” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵炸茧,是天一觀的道長瑞妇。 經(jīng)常有香客問我稿静,道長,這世上最難降的妖魔是什么辕狰? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任改备,我火速辦了婚禮,結(jié)果婚禮上蔓倍,老公的妹妹穿的比我還像新娘绍妨。我一直安慰自己,他們只是感情好柬脸,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布他去。 她就那樣靜靜地躺著,像睡著了一般倒堕。 火紅的嫁衣襯著肌膚如雪灾测。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天垦巴,我揣著相機(jī)與錄音媳搪,去河邊找鬼。 笑死骤宣,一個(gè)胖子當(dāng)著我的面吹牛秦爆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播憔披,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼等限,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了芬膝?” 一聲冷哼從身側(cè)響起望门,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锰霜,沒想到半個(gè)月后筹误,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡癣缅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年厨剪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片友存。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡祷膳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出爬立,到底是詐尸還是另有隱情钾唬,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站抡秆,受9級(jí)特大地震影響奕巍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜儒士,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一的止、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧着撩,春花似錦诅福、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至薯鳍,卻和暖如春咖气,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挖滤。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國打工崩溪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人斩松。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓伶唯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親惧盹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子乳幸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344