RAID2.0-顛覆傳統(tǒng)RAID方式
經(jīng)過多年的應(yīng)用實(shí)踐和技術(shù)發(fā)展,傳統(tǒng)RAID越來越體現(xiàn)出局限性的一面,如熱點(diǎn)效應(yīng)。為了方便管理,假設(shè)我們把整個(gè)RAID組格式化產(chǎn)生的邏輯盤都映射給某個(gè)系統(tǒng),不同系統(tǒng)使用不同RAID組,若某個(gè)應(yīng)用系統(tǒng)的業(yè)務(wù)特別繁忙,就會(huì)造成對應(yīng)RAID組的物理盤讀寫壓力大,形成熱點(diǎn)。
這時(shí),聰明的童鞋提出,我們可以把RAID組的邏輯盤打散了用?。?!于是,每個(gè)系統(tǒng)使用的邏輯盤來自不用的RAID組,這樣就把繁忙系統(tǒng)的讀寫壓力分散到更多的物理硬盤上了,棒棒噠?。〉?,管理起來好麻煩,有沒有?另一方面,每個(gè)系統(tǒng)的業(yè)務(wù)特征是動(dòng)態(tài)變化的,忙的不會(huì)一直忙,不忙的也不一定一直讓人省心,有可能某個(gè)時(shí)刻所有的應(yīng)用系統(tǒng)都在往同一個(gè)RAID組上做讀寫,其它RAID組的硬盤在喝茶磕瓜子,你說那個(gè)RAID組內(nèi)硬盤的心里有多苦?這時(shí),管理員童鞋就要做性能調(diào)優(yōu)了,分散熱點(diǎn)數(shù)據(jù),累不?
這時(shí),又有聰明的童鞋提出了池化的概念,即先把所有的邏輯盤放到一個(gè)大池子里,再從池子里往外分配存儲(chǔ)空間。假設(shè)RAID組格式化后的邏輯盤大小是100GB,池子里有100個(gè)邏輯盤,A系統(tǒng)要使用200GB空間,那么系統(tǒng)會(huì)從池子里的每個(gè)邏輯盤上摳出2GB空間,100*2GB,組成一個(gè)200GB的虛擬盤分配給A系統(tǒng),而不是把2個(gè)100GB的邏輯盤組成一個(gè)200GB的虛擬盤分配出去。這樣A系統(tǒng)的讀寫壓力會(huì)分散到100個(gè)邏輯盤上,而不是2個(gè),而這100個(gè)邏輯盤可能對應(yīng)著更多的物理盤,大大分散了壓力。
這個(gè)問題解決了,管理員童鞋開開心心地過了幾年,漸漸地心里有點(diǎn)慌亂。物理硬盤的容量越來越大,從原來的73GB增長到現(xiàn)在的4TB,壞盤之后數(shù)據(jù)重構(gòu)時(shí)間從原來的1個(gè)小時(shí)增長到10個(gè)小時(shí)??!這么長的時(shí)間里,如果再壞一塊盤,那我RAID5的磁盤組不就全掛了?即使用了RAID6可以容忍壞兩塊盤,但老話還說禍不單行呢?
又有聰明的童鞋站了起來,我們可以把盤切片再做RAID,看這個(gè)圖先!
上圖中LUN虛擬化技術(shù)就是前面說的池化技術(shù),仍然基于傳統(tǒng)的RAID實(shí)現(xiàn),只是多了一層虛擬盤的概念,原來是直接把邏輯盤分配出去,現(xiàn)在改成把虛擬盤分配出去,虛擬盤上的數(shù)據(jù)均勻分布在邏輯盤上。
塊虛擬化就是本文重點(diǎn)介紹的RAID2.0技術(shù),它先把物理硬盤切成若干片,然后片與片之間再做RAID,然后一層層封裝成虛擬卷映射出去,方法與池化技術(shù)類似。有童鞋要問了,不就是切個(gè)片嘛,沒看出來哪好??!
物理硬盤切片之后,所有的片可以自由組合做RAID,不再局限于物理硬盤,原則就是一個(gè)RAID組內(nèi)的片必須來自不同的物理硬盤。
讓我們仔細(xì)對比一下上圖左右兩部分:
- 左圖HDD1與HDD-0/2/3/4組成一個(gè)RAID組;右圖HDD1切出來的片分別與HDD-0/2/3/4和HDD-5/6/7/8切出來的片組成了兩個(gè)RAID組;
- 左圖HDD1發(fā)生故障后,HDD5作為后備軍勇敢頂上,但HDD-0/2/3/4校驗(yàn)恢復(fù)出來的數(shù)據(jù)要寫到HDD5一塊硬盤上;右圖HDD1發(fā)生故障后,2個(gè)RAID組受到影響,HDD-4和HDD-9切出來的片頂上,RAID組校驗(yàn)恢復(fù)出來的數(shù)據(jù)寫到HDD-4和HDD-9兩塊盤上,而且數(shù)據(jù)量超小喲,只是兩個(gè)片的數(shù)據(jù),HDD1上其它空白片不用管了?。?/li>
- 推而廣之,RAID2.0技術(shù)不再有熱備盤的概念,換成了熱備空間,這里我們姑且稱之為熱備片。一塊物理硬盤故障后,來自多塊物理硬盤的熱備片頂上,數(shù)據(jù)重構(gòu)不再是傳統(tǒng)RAID的N對1,而是N對N。據(jù)某靠譜國產(chǎn)大廠統(tǒng)計(jì),RAID2.0重構(gòu)速度是傳統(tǒng)RAID的20倍,可將10小時(shí)的重構(gòu)時(shí)間縮短至30分鐘!!
結(jié)語
通過上文的分析可以看出,RAID2.0能夠顯著減少重構(gòu)時(shí)間,避免數(shù)據(jù)重構(gòu)時(shí)對一塊硬盤的高強(qiáng)度讀寫,降低硬盤故障率。但它與池化技術(shù)存在同樣的隱患,即由于虛擬盤做了寬條帶的數(shù)據(jù)分布,多塊物理硬盤損壞導(dǎo)致RAID組失效之后,整個(gè)存儲(chǔ)池的數(shù)據(jù)會(huì)讀寫異常,影響范圍大于傳統(tǒng)RAID方式。因此,存儲(chǔ)陣列若使用池化技術(shù),***采用RAID6。