一文全懂:獨(dú)立冗余磁盤(pán)陣列(RAID)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
獨(dú)立冗余磁盤(pán)陣列,也就是大家常說(shuō)的RAID,英文全稱(chēng)是:Redundant Array of Independent Disks,使用該技術(shù),可以大幅提高硬盤(pán)設(shè)備的 IO 讀寫(xiě)速度,還存在數(shù)種數(shù)據(jù)冗余備份機(jī)制提供用戶(hù)選擇,能夠降低用戶(hù)數(shù)據(jù)盤(pán)損壞帶來(lái)的數(shù)據(jù)丟失的風(fēng)險(xiǎn)。 RAID技術(shù)通過(guò)把多個(gè)硬盤(pán)設(shè)備組合成一個(gè)容量更大、安全性更好的磁盤(pán)陣列,并把數(shù)據(jù)切割成多個(gè)區(qū)段后分別存放在各個(gè)不同的物理硬盤(pán)設(shè)備上,然后利用分散讀寫(xiě)技術(shù)來(lái)提升磁盤(pán)陣列整體的性能,同時(shí)把多個(gè)重要數(shù)據(jù)的副本同步到不同的物理硬盤(pán)設(shè)備上,從而起到了非常好的數(shù)據(jù)冗余備份效果。 常用的幾種RAID模式有RAID0、RAID1、RAID5和RAID10(RAID 一零)。 一、RAID的幾種模式1、RAID0RAID 0 技術(shù)把多塊物理硬盤(pán)設(shè)備(至少兩塊)通過(guò)硬件或軟件的方式串聯(lián)在一起,組成一個(gè)大的卷組,并將數(shù)據(jù)依次寫(xiě)入各個(gè)物理硬盤(pán)中。這樣一來(lái),在最理想的狀態(tài)下,硬盤(pán)設(shè)備的讀寫(xiě)性能會(huì)提升數(shù)倍,但是若任意一塊硬盤(pán)發(fā)生故障,將導(dǎo)致整個(gè)系統(tǒng)的數(shù)據(jù)都受到破 如圖 所示,數(shù)據(jù)被分別寫(xiě)入到不同的硬盤(pán)設(shè)備中,兩塊硬盤(pán)會(huì)分別保存數(shù)據(jù)資料,最終實(shí)現(xiàn)提升讀取、寫(xiě)入速度的效果。
2、RAID1RAID1模式的磁盤(pán)陣列的模式就是“N+1”,無(wú)論有多少個(gè)磁盤(pán),它只用一個(gè)存儲(chǔ)數(shù)據(jù),其它每個(gè)磁盤(pán)都是它的鏡像,舉個(gè)例子:有兩個(gè)磁盤(pán),那磁盤(pán)利用率就是50%,有N個(gè)磁盤(pán),那磁盤(pán)利用率就是1/N。 這個(gè)模式是最沒(méi)用的模式了,因?yàn)樘速M(fèi)空間了,基本也沒(méi)人用,除非是小型文件存儲(chǔ),而且對(duì)空間大小沒(méi)有什么要求,但是對(duì)安全性有比較高的要求,那這時(shí)候就可以用到這個(gè)。相對(duì)于RAID0模式來(lái)說(shuō),它寫(xiě)入速度要稍微慢一些,但是讀取速度要更快。
3、RAID5RAID5 技術(shù)是把硬盤(pán)設(shè)備的數(shù)據(jù)奇偶校驗(yàn)信息保存到其他硬盤(pán)設(shè)備中。RAID 5 磁盤(pán)陣列中數(shù)據(jù)的奇偶校驗(yàn)信息并不是單獨(dú)保存到某一塊硬盤(pán)設(shè)備中,而是存儲(chǔ)到除自身以外的其他每一塊硬盤(pán)設(shè)備上。這樣的好處是,其中任何一設(shè)備損壞后都可以依賴(lài)其它幾塊設(shè)備重建丟失的這塊硬盤(pán)數(shù)據(jù)。 好吧,以上說(shuō)法太迷糊,那到底R(shí)AID5是如何實(shí)現(xiàn)一塊硬盤(pán)的數(shù)據(jù)冗余,并在一塊硬盤(pán)損壞以后實(shí)現(xiàn)數(shù)據(jù)重建的呢? 首先,復(fù)習(xí)一下異或運(yùn)算:
0是偶數(shù),1是基數(shù),它們的異或結(jié)果就是奇偶校驗(yàn)和。我們把上表中的A和B分別看做一個(gè)硬盤(pán),0和1表示硬盤(pán)中存儲(chǔ)的數(shù)據(jù),結(jié)果也看做一個(gè)硬盤(pán),也就是說(shuō),把A和B中的存儲(chǔ)數(shù)據(jù)做了異或運(yùn)算以后,放到第三個(gè)硬盤(pán)中;假如還有硬盤(pán)C、D、E、F呢?那結(jié)果就是 A異或B異或C異或D異或E異或F 。 這就是RAID5的原理了,但是并不完整,因?yàn)楦鶕?jù)校驗(yàn)和存放的位置不一樣,它會(huì)是不同的RAID模式:如果將所有的校驗(yàn)和都放到一個(gè)硬盤(pán)中,那這個(gè)RAID模式就是RAID3;如果將校驗(yàn)和分塊存儲(chǔ)到每個(gè)硬盤(pán)中,那就是RAID5了,可以說(shuō)RAID5是RAID3的升級(jí)版。因?yàn)槿绻r?yàn)和都放到一個(gè)硬盤(pán)中,那只要存一條數(shù)據(jù),就都要寫(xiě)一次校驗(yàn)和到校驗(yàn)和盤(pán),那這個(gè)專(zhuān)門(mén)存放校驗(yàn)和的硬盤(pán)肯定容易壞。 在上圖中,Parity就是校驗(yàn)和塊,每個(gè)磁盤(pán)都有其余所有磁盤(pán)對(duì)應(yīng)塊計(jì)算之后的校驗(yàn)和,這樣就不怕任何一塊磁盤(pán)壞掉了,如果有一塊硬盤(pán)壞掉,只需要把所有其它盤(pán)對(duì)應(yīng)塊的數(shù)據(jù)做一次校驗(yàn)和,就知道缺失的這塊的數(shù)據(jù)是什么了。這也就解釋了為什么RAID5最少需要3塊硬盤(pán),而且3塊硬盤(pán)的容量要一樣。
4、RAID10首先,得說(shuō)明,RAID10的叫法是“RAID一零",而非”RAID十“,RAID 10 技術(shù)是 RAID 1+RAID 0 技術(shù)的一個(gè)“組合體”。如下圖所示 RAID10 技術(shù)需要至少 4 塊硬盤(pán)來(lái)組建,其中先分別兩兩制作成 RAID 1 磁盤(pán)陣列,以保證數(shù)據(jù)的安全性;然后再對(duì)兩個(gè) RAID 1 磁盤(pán)陣列實(shí)施 RAID 0 技術(shù),進(jìn)一步提高硬盤(pán)設(shè)備的讀寫(xiě)速度。 這樣從理論上來(lái)講,只要壞的不是同一陣列中的所有硬盤(pán),那么最多可以損壞 50%的硬盤(pán)設(shè)備而不丟失數(shù)據(jù)。由于 RAID 10 技術(shù)繼承了 RAID 0 的高讀寫(xiě)速度和 RAID 1 的數(shù)據(jù)安全性,在不考慮成本的情況下 RAID 10 的性能也超過(guò)了 RAID 5,因此當(dāng)前成為廣泛使用的一種存儲(chǔ)技術(shù)。 RAID 10 是先對(duì)信息進(jìn)行分割,然后再兩兩一組制作鏡像。也就是先將 RAID 1 作為最低級(jí)別的組合,然后再使用 RAID 0 技術(shù)將 RAID 1 磁盤(pán)陣列組合到一起,將它們視為“一整塊”硬盤(pán)。肯定會(huì)有人有疑問(wèn),是否可以先按照RAID0進(jìn)行制作磁盤(pán)陣列,再利用RAID1技術(shù)將兩個(gè)磁盤(pán)陣列組合起來(lái)呢?這其實(shí)就是RAID01技術(shù)了。RAID01技術(shù)有很大缺陷,所以很少有人使用,原因如下:
所以無(wú)論是從可擴(kuò)展性上,還是數(shù)據(jù)安全性上,RAID10遠(yuǎn)比RAID01磁盤(pán)陣列要好的多,以至于RAID01幾乎沒(méi)有人用。 二、使用mdadm命令管理RAIDlinux中使用mdamd命令創(chuàng)建raid,mdadm英文全名為”multiple devices admin”,語(yǔ)法格式為“mdadm 參數(shù) 硬盤(pán)名稱(chēng)”。 mdadm參數(shù)大全
1、創(chuàng)建RAID10以下操作均在在Vmware Workstation中進(jìn)行 1.1 創(chuàng)建RAID10一上來(lái)就創(chuàng)建RAID10,是不是難度有點(diǎn)高?其實(shí)不是,假設(shè)我們已經(jīng)有了
-Cv:創(chuàng)建磁盤(pán)陣列并顯示過(guò)程 -n 4:該磁盤(pán)陣列有4個(gè)磁盤(pán) -l 10:創(chuàng)建的磁盤(pán)陣列類(lèi)型是RAID10 一條命令就創(chuàng)建好了RAID10,說(shuō)真的,我還以為要手動(dòng)創(chuàng)建若干個(gè)RAID1,然后將這些RAID1再用RAID0組合起來(lái)呢。 執(zhí)行完該命令后,會(huì)有個(gè)初始化的過(guò)程,大概得一分鐘左右能初始化完成,可以通過(guò) 1.2 格式化磁盤(pán)陣列創(chuàng)建完磁盤(pán)陣列完成后,需要將磁盤(pán)陣列格式化之后才能使用,格式化命令還是mkfs命令
1.3 掛載磁盤(pán)陣列可以先創(chuàng)建一個(gè)文件夾/raid,然后掛載/dev/md0
這時(shí)候再用 磁盤(pán)陣列中的四個(gè)磁盤(pán)下都有md0分區(qū),而且都是都是raid10類(lèi)型。 為了永久掛載,還要寫(xiě)配置文件
1.4 其它RAID模式其它RAID模式是一樣的,只需要改變使用的硬盤(pán)數(shù)量和raild類(lèi)型即可,故不再贅述其它類(lèi)型的磁盤(pán)陣列創(chuàng)建。 2、磁盤(pán)損壞和更換在使用磁盤(pán)陣列的過(guò)程中,不可避免的,總有一天會(huì)有硬盤(pán)損壞,在RAID10磁盤(pán)陣列中,最多同時(shí)允許壞掉50%的硬盤(pán),這個(gè)容錯(cuò)率是相當(dāng)大了,那如果有一塊硬盤(pán)損壞了,如何更換這塊壞掉的硬盤(pán)呢? 先查詢(xún)下我們這個(gè)磁盤(pán)陣列的詳情
可以看到md0磁盤(pán)陣列中有四塊硬盤(pán)。 首先,我們假設(shè)/dev/sdb這塊硬盤(pán)壞了,需要先將這塊硬盤(pán)標(biāo)志為不可用
然后移除該硬盤(pán)
然后看下這個(gè)磁盤(pán)陣列當(dāng)前的狀態(tài) 可以看到磁盤(pán)陣列狀態(tài)多了個(gè)"degraded",表示磁盤(pán)陣列降級(jí)了,這意味著 RAID 陣列中至少有一個(gè)磁盤(pán)故障或處于離線(xiàn)狀態(tài),導(dǎo)致陣列無(wú)法以完全冗余的方式運(yùn)行。因?yàn)槲覀円瞥?dev/sdb硬盤(pán),所以提示degraded狀態(tài)是正常的。 接下來(lái)我們添加一塊新硬盤(pán)/dev/sdf,替換掉壞掉的/dev/sdb,使用命令-a將其添加到磁盤(pán)陣列中
然后看看當(dāng)前磁盤(pán)陣列的狀態(tài) 可以看到狀態(tài)多了一個(gè)“recoverting”,表示磁盤(pán)陣列狀態(tài)正在恢復(fù)中,然后還有一個(gè)恢復(fù)進(jìn)度,我們新增加的這塊硬盤(pán)被識(shí)別為“備用盤(pán)”,備用盤(pán)正在重建中。 耐心等一會(huì)兒,再看看磁盤(pán)陣列的狀態(tài),它就正常了。 3、使用備份盤(pán)實(shí)現(xiàn)熱恢復(fù)上一節(jié)我們實(shí)現(xiàn)了硬盤(pán)損壞的時(shí)候手動(dòng)移除壞掉的硬盤(pán),然后換上了新硬盤(pán),整個(gè)過(guò)程其實(shí)有兩個(gè)問(wèn)題
實(shí)際上有一種方式,能夠不用關(guān)機(jī),不用手動(dòng)移除,只要有一塊閑置的硬盤(pán),這塊硬盤(pán)平時(shí)處于閑置狀態(tài),一旦 RAID 磁盤(pán)陣列中有硬盤(pán)出現(xiàn)故障就會(huì)馬上自動(dòng)頂替上去,并自動(dòng)完成數(shù)據(jù)恢復(fù),這功能豈不是很棒? 其實(shí)只需要初始化磁盤(pán)陣列的時(shí)候加上 接下來(lái)用RAID5為例演示該功能。RAID5要求最少要3塊硬盤(pán),所以我準(zhǔn)備了3塊硬盤(pán)+1塊備份盤(pán)一共四塊硬盤(pán)。下圖中的sdb、sdc、sdd、sde一共四塊。 接下來(lái)使用這四塊硬盤(pán)組raid5
各項(xiàng)參數(shù)之前有過(guò)說(shuō)明,不再贅述,主要是加了-x 1這個(gè)參數(shù),表示有一塊備份盤(pán)。 然后通過(guò) 可以看到正在初始化,等一會(huì)兒,等它初始化結(jié)束了再操作下一步 可以看到該RAID5磁盤(pán)陣列中有4個(gè)硬盤(pán),但是只有3個(gè)是RAID的組成部分,還有一個(gè) 接下來(lái)進(jìn)行格式化和掛載 使用 可以看到3塊20G的硬盤(pán)組成的RAID5,掛載到/raid目錄后,可用存儲(chǔ)大小為40G,符合預(yù)期。 然后我們將一塊硬盤(pán)
接下來(lái),馬上運(yùn)行命令 可以看到備份硬盤(pán)/dev/sde已經(jīng)自動(dòng)頂上去并開(kāi)始初始化了,再過(guò)一會(huì)兒,在查詢(xún)下md0磁盤(pán)陣列 可以看到/dev/sde已經(jīng)完全取代了壞掉的/dev/sdb硬盤(pán),并已經(jīng)在正常工作。 4、刪除RAID4.1 取消掛載首先,刪除掉/etc/fstab文件中相關(guān)的掛載內(nèi)容 之后,手動(dòng)取消掛載
4.2 停止磁盤(pán)陣列
停止磁盤(pán)陣列之后,會(huì)發(fā)現(xiàn)/dev/md0設(shè)備已經(jīng)消失不見(jiàn)了。 接下來(lái),系統(tǒng)關(guān)機(jī),拔出硬盤(pán)即可。 轉(zhuǎn)自https://www.cnblogs.com/kuangdaoyizhimei/p/18314827 作者狂盜一枝梅 該文章在 2025/4/21 17:11:46 編輯過(guò) |
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)... |