令硬盤速度翻倍還更安全:Raid到底是啥?-it運維
2020-06-01 17:14 作者:艾銻無限 瀏覽量:
令硬盤速度翻倍還更安全:Raid到底是啥?-it運維
IT運維工作,以服務(wù)為中心,以穩(wěn)定、安全、高效為三個基本點,確保公司的互聯(lián)網(wǎng)業(yè)務(wù)能夠 7×24 小時為您提供高質(zhì)量的服務(wù)。
今天我們來聊一聊Raid,做一期輕科普,跟大家一起了解下各種Raid是怎么回事、有什么作用、有哪些優(yōu)缺點、如何實現(xiàn)等等。
何為Raid-it運維
我們首先來認識一下這個概念,Raid全稱為Redundant Arrays of Independent Drives,中文名稱為磁盤陣列,直譯為“冗余獨立驅(qū)動器陣列”。簡單來說就是多個硬盤組成的邏輯陣列。組Raid就是將多塊獨立的硬盤組合行成單一的邏輯陣列,當(dāng)做一個整體來使用,用以實現(xiàn)提高傳輸速度、安全性等功能,多用于文件服務(wù)器或NAS。
Raid的種類
下面我們依次介紹較常見的Raid0/1/10/5/6和更高級一些的Raidz/z2,并分別介紹它們的工作原理和優(yōu)缺點。不常見的Raid2/3/4和各種奇奇怪怪的組合如Raid100/30/50/60等就不多說了,理解了基礎(chǔ)的,組合自然就明白了。如果沒有標(biāo)注,默認不同硬盤的容量相同。
1、Raid0
Raid0需要最少兩塊。
-it運維
以兩塊硬盤為例,組Raid后容量為兩者之和,讀寫數(shù)據(jù)時,同時對兩塊硬盤進行讀寫。
優(yōu)點是帶寬翻倍,理論上讀寫速度也翻倍。但缺點也是致命的,由于是將整體數(shù)據(jù)同時分別寫在兩塊硬盤上,讀取時也要同時讀出才能得到完整的數(shù)據(jù),所以只要陣列中一塊硬盤損壞,整個陣列中的所以數(shù)據(jù)全部丟失,所以才有了著名的“Raid0一時爽,一直Raid0一直爽”,啊,不好意思拿錯稿子了,是“Raid0一時爽,數(shù)據(jù)火葬場”。
總結(jié)來講,速度×N,風(fēng)險×N,利用率100%。
2、Raid1
Raid1最少也需要兩塊硬盤。
同樣以兩塊硬盤為例,容量相當(dāng)于最小的一塊,多塊同理。寫入數(shù)據(jù)時,同時在所有硬盤上寫入相同的數(shù)據(jù),相當(dāng)于做了鏡像或備份,讀取時如果一塊硬盤損壞,還可以從陣列中其他的硬盤中讀出完整數(shù)據(jù)。
優(yōu)點是冗余性和安全性翻倍,缺點是利用率低。
總結(jié),速度×1,風(fēng)險×1/N,利用率1/N。
3、Raid10
顧名思義,就是Raid1+0,是Raid1和Raid0的結(jié)合,讓兩者取長補短。最少需要四塊硬盤,或者m×n塊的靈活組合都可,正是因為其是兩種Raid模式的結(jié)合。
以四塊硬盤為例,其中兩塊用作備份盤,兩塊用作增速盤。
先提一下Raid10的特殊實現(xiàn)方式,叫Raid10而不叫Raid01是有道理的,需要先把四塊硬盤分為兩組,組內(nèi)先進行類似Raid1的組合,互為鏡像,稱作“做鏡像”,再對兩個“Raid1陣列”進行類似Raid0的組合,稱為“做條帶”。所以在讀寫時,同時對四塊硬盤進行讀寫,其中每組寫入不同數(shù)據(jù)(原數(shù)據(jù)中不同位置的數(shù)據(jù),有可能相同,如1101中的前兩個1,下同),每組中兩塊硬盤寫入相同的數(shù)據(jù)。
優(yōu)點是兼顧傳輸速度與安全性,缺點是性能開銷大,而且……額……貴,權(quán)且當(dāng)作方案的缺點吧。
總結(jié),以四塊硬盤為例,速度×2,風(fēng)險×½,利用率50%。
同理,Raid01的原理大家可以反過來理解,先做條帶,再做鏡像。
4、Raid5
-it運維
Raid5最少需要三塊硬盤,其中需要拿出相當(dāng)于一塊硬盤的容量來存校驗碼,校驗碼采用奇偶校驗方式算出,校驗碼不可全部在一塊硬盤,其余用來存數(shù)據(jù)。用來存校驗碼的容量由從所有硬盤中不同位置取出相同的容量組成,加起來等于一塊硬盤的容量,以三塊硬盤為例,三塊硬盤中各取出?的容量,被取出的容量在三塊硬盤中不全在同一位置。
寫入數(shù)據(jù)時,同時在兩塊硬盤上分別寫入不同數(shù)據(jù),最后一塊硬盤寫入算出的校驗碼,下一次寫入的校驗碼不可與上一次的校驗碼存于同一塊硬盤。如果某一塊硬盤損壞,則只需要替換掉損壞的硬盤,通過均勻分布在各硬盤中的數(shù)據(jù)和校驗碼,就可以恢復(fù)重建損壞硬盤中的數(shù)據(jù)。
-it運維
優(yōu)點是一定程度上兼顧了傳輸速度和安全性。缺點是現(xiàn)實中
數(shù)據(jù)恢復(fù)速度和成功率并不十分理想。還有不得不提的局限性,不管陣列中有多少塊硬盤,同時損壞兩塊都是無法恢復(fù)的,整個陣列中的數(shù)據(jù)全部丟失。
總結(jié),速度×(N-1),風(fēng)險不會算,改天去請教一下理學(xué)院的學(xué)長……可以肯定的是風(fēng)險比Raid1大,利用率為(N-1)/N。
另外,如果硬盤容量不同,Raid5會在每塊硬盤中都取容量最小的硬盤的容量來使用,其余的都不用,但群輝的SHR技術(shù)可以將浪費的容量利用起來,感興趣的朋友可以去了解一下。
5、Raid6
Raid6可以說是Raid5的升級版,最少需要四塊硬盤,其中兩塊硬盤的容量用以存儲兩位奇偶校驗碼,校驗碼分配方式與Raid5類似。
同理,同時損壞三塊硬盤,整個陣列無法恢復(fù)。
總結(jié),速度×(N-2),風(fēng)險不會算但比Raid5小比Raid1大,利用率為(N-2)/N。
6、Raidz/Raidz2
這兩種“Raid模式”分別可以看做Raid5和Raid6的改進,雖然名叫“Raid”但并不是同一回事。
Raidz/z2基于更先進的ZFS文件系統(tǒng),擁有更加先進的冗余機制,解決了Raid5/6“全盤重寫”的問題。這個不是一時半會可以講完的,為了篇幅和不喧賓奪主的考慮,暫且留個坑吧。
實現(xiàn)方式
Raid陣列的實現(xiàn)分為硬實現(xiàn)和軟實現(xiàn),組成的陣列分別稱為硬Raid和軟Raid。
我們分別來看:
1、硬實現(xiàn)/硬Raid
硬實現(xiàn)是通過硬件(Raid卡)來實現(xiàn)Raid陣列的方式。對磁盤的數(shù)據(jù)讀寫由Raid卡主控完成,系統(tǒng)會將整個陣列識別為單一硬盤。
優(yōu)點是對CPU的依賴非常小,性能較好,有緩存的Raid卡還可以提高隨機讀寫性能。
缺點是不夠靈活,用Raid卡組Raid后,如果不解除/撤銷/取消,陣列中的硬盤直接掛載到別的電腦上是無法使用的。以及需要額外的硬件,成本較高。
2、軟實現(xiàn)/軟Raid
軟Raid就是通過軟件方式實現(xiàn)的Raid,包括從BIOS中設(shè)置。磁盤數(shù)據(jù)的讀寫由CPU完成,系統(tǒng)可以識別出陣列中所有的硬盤。
優(yōu)點是使用靈活,拆下后可直接在其他電腦上使用,成本較低,操作簡單。
缺點是對CPU依賴較大,性能較差。
了解了上述內(nèi)容,想要組Raid的小伙伴們心中應(yīng)該是有底了,可以按需選擇自己想要的方式。最后IT運維還要提醒一句,數(shù)據(jù)千萬條,安全第一條。Raid不規(guī)范,自己兩行淚。