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