Windows Server 存儲空間之存儲冗餘

存儲空間冗餘度

在存儲控制器服務器高可用結構中,使用不一樣數量的JBOD或者不一樣方式的存儲空間佈局,達到的冗餘程度也有差異。若是使用兩個存儲箱則沒法開啓存儲箱感知能力,從而沒法實現JBOD存儲箱級別的冗餘,因此要實現JBOD存儲箱級別的冗餘必需要使用三個JBOD。若是存儲空間使用雙重鏡像佈局,存儲空間最多容許一塊硬盤故障,若是同時發生兩塊硬盤故障,那麼存儲將失效;而使用三重鏡像佈局,那麼同時最多容許兩塊硬盤故障。Windows Server 第一代SDS結構中,存儲空間冗餘矩陣總結以下。服務器

冗餘類型ide

3 JBOD 存儲箱佈局

4 JBOD 存儲箱測試

簡單spa

不支持設計

不支持3d

雙重鏡像orm

一個存儲箱或者一塊磁盤blog

一個存儲箱或者一塊磁盤事件

三重鏡像

一個存儲箱和一塊磁盤;

兩塊磁盤

一個存儲箱和一塊磁盤;

兩塊磁盤

單奇偶校驗

不支持

不支持

雙奇偶校驗

不支持

一個存儲箱和一塊磁盤;

兩塊磁盤

 

存儲空間可用性詳述

在JBOD級別,三個JBOD能提供JBOD存儲箱級別的冗餘,由於存儲控制器在數據條帶化後,在底層爲列選擇寫入的硬盤時,存儲箱感知的目的是爲數據寫入列時爲列選擇不在同一個JBOD裏的硬盤。存儲空間數據條帶後,每一份條帶的數據經過I/O鏡像一式兩份或三份,每一份先寫入列,由列把數據最終寫入到硬盤。在鏡像佈局的存儲空間裏,不一樣的列裏包含兩塊或三塊硬盤,這些硬盤來自於一個JBOD或者不一樣JBOD將直接決定存儲空間的JBOD級別的冗餘性。

在硬盤級別,虛擬磁盤的鏡像和RAID1在爲數據存儲時選擇磁盤的原理類似,可是和RAID1/RAID10對稱式的結構容許的最大硬盤故障數不一樣,RAID1/RAID10能夠在發生一半的硬盤故障時存儲依然可用。存儲空間列並不會將硬盤對稱地分爲固定的兩組或者三組而後寫入數據的各個副本,列選擇硬盤時遵循隨機性和平均原則,隨機性說明列每次爲條帶的數據的副本選擇的寫入的硬盤是變化的,平均原則說明列在選擇硬盤時全部硬盤被選中的機率是同樣的,並且數據條帶越多越接近平均。以雙重鏡像的虛擬磁盤爲例,複製一個100GB大小的文件到存儲空間,換算成KB的單位爲104857600KB,默認的Interleave爲256K,前後要寫409600個列,意味着要寫409600對硬盤,就要產生409600對隨機硬盤組合,那麼每一個參與數據寫入的硬盤次數達到平均就成了一個必然事件。所以雙重鏡像的虛擬磁盤即便包含多個硬盤,每一個硬盤必然都保存有這100GB文件的數據塊副本,一塊硬盤故障數據仍然完整,可是再有第二塊硬盤同時故障,必然有數據塊丟失而致使文件不完整,因此只能承受一塊硬盤損壞的故障。同理,虛擬磁盤的三重鏡像將會把一份數據被複製成三份寫在三個不一樣的硬盤裏,虛擬磁盤能夠承受兩塊硬盤損壞的故障。

接下來咱們列舉不一樣的JBOD數量和存儲空間佈局矩陣關係的例子來闡述存儲空間如何達到預期的可用性目標。

  • 兩個JBOD存儲箱

系統默認設計爲兩個JBOD不支持存儲箱感知,因此兩個JBOD不是推薦的配置,除非用於測試環境,或者對數據有額外的保護,不然難以知足數據的可靠性要求。由於兩個JBOD不支持存儲箱感知,那麼爲列選擇關聯硬盤時,隨着寫入的數據增多,列選擇兩塊(雙重鏡像)或者三塊硬盤(三重鏡像)來自同一個JBOD必定是個必然事件,這樣一個JBOD故障,數據會丟失全部副本致使數據不完整,如圖1所示。

wKiom1jQnMKDpbCKAADJjJoJRT8984.jpg-wh_50

 1兩個JBOD數據存儲示意

  • 個JBOD存儲箱

三個JBOD支持存儲箱感知,因此三個JBOD是要實現存儲箱冗餘時推薦的配置,並且要在存儲池啓用IsEnclosureAware參數。三個JBOD啓用存儲箱感知,存儲空間列選擇關聯硬盤時,必定會選擇不一樣JBOD存儲箱裏面的硬盤寫入數據。對於雙重或者三重鏡像,無論JBOD裏面有多少硬盤,也無論寫入了多少數據,因爲任何條帶後數據的一式兩份和三份不在同一個JBOD硬盤裏存儲,因此一個JBOD故障,其餘兩個JBOD必定存放着全部數據的另外的副原本保持數據的完整性,如圖2所示。

wKioL1jQnMWijX4FAADEuL1o0pI251.jpg-wh_50 

2 三個JBOD數據存儲示意

除了存儲箱感知這個參數之外,列在其中的做用很是重要,列就像一個組織者,有序地組織數據往硬盤寫入,存儲箱感知控制列在選擇硬盤時起到同一個JBOD裏面的硬盤「互斥」的做用,這樣一個列所關聯的硬盤必定不會來自於同一個JBOD。討論了JBOD級別的可用性實現,接下來討論JBOD結合存儲空間佈局的可用性實現。

  • 三個JBOD加雙重鏡像

若是存儲空間是雙重鏡像佈局,如圖3所示,JBOD1裏的DISK1能夠和JBOD2,JBOD3裏面的6塊硬盤的其中任意一塊隨機組合成列,而不會去找JBOD1裏面的其餘硬盤組合成列。同理,JBOD3裏的DISK5能夠和JBOD1,JBOD2裏面的6塊硬盤的其中任意一塊隨機組合成列。虛擬磁盤的雙重鏡像使用三個JBOD並啓用IsEnclosureAware參數後,能夠保證數據的兩個副本不會寫在同一個JBOD裏,一個JBOD故障,數據剩下一個副本,這個副本存儲在其餘兩個正常的JBOD裏,所以數據是完整的。但這時候剩下的兩個JBOD裏任何一塊硬盤均可能保留着全部數據的剩下的惟一副本,不能再容許出現JBOD故障和任意一塊硬盤故障,由於任何一個硬盤故障都有可能致使數據丟失。所以,三個 JBOD(存儲箱感知)加雙重鏡像這種存儲空間虛擬磁盤能夠承受的極限是一個JBOD或一塊硬盤損壞的故障。

wKiom1jQnMrQM3eqAAEMmMrkdZI794.jpg-wh_50 

3 三個JBOD和雙重鏡像數據存儲示意

  • 三個JBOD加三重鏡像

儲空間的三重鏡像將會把一份數據被複製成三份寫在三個JBOD的不一樣的硬盤裏。三重鏡像的每一個列關聯三塊硬盤,在爲列關聯硬盤時,能保證三塊硬盤不在同一個JBOD裏,但三重鏡像的一個列關聯的硬盤不必定分別平均來自三個不一樣的JBOD裏面的硬盤,可能有兩塊硬盤在同一個JBOD裏,一塊在另一個JBOD裏。條帶化的數據複製成三份之後,數據的一個副本存儲在一個JBOD的硬盤裏,另外兩個副本寫入就和兩個JBOD效果同樣了,數據副本可能存在同一個JBOD的兩塊硬盤,也可能分開平均存放在兩個JBOD的兩塊硬盤裏,如圖4所示。按照列選擇硬盤的隨機性和平均原則,另外兩個副本寫入同一個JBOD的兩塊硬盤是必然事件,所以剩下的兩個副本的冗餘性和兩個JBOD加雙重鏡像佈局同樣,只能容許一塊硬盤故障。因此,三個JBOD(存儲箱感知)加三重鏡像這種存儲空間虛擬磁盤能夠承受的極限是一個JBOD和一塊硬盤損壞的同時故障,或者兩塊硬盤同時損壞。

wKiom1jQnM6Ddb1kAAEJs5PvlG0482.jpg-wh_50 

4 三個JBOD和三重鏡像數據存儲示意

相關文章
相關標籤/搜索