1. 程式人生 > 其它 >儲存多路徑問題以及RAID介紹

儲存多路徑問題以及RAID介紹

儲存多路徑問題

在我們的生產環境中,為了保證業務的高可用性,我們一般都會使用全冗餘組網的連線方式。而我們的儲存伺服器為了保證自身冗餘,一般也有兩個控制器,比如A控和B控,兩個控制器做冗餘。如下圖所示,當我們要把一個5G的LUN儲存資源給一個主機使用,如果採用全冗餘組網的方式,那麼就一共有4條鏈路,就是下圖中的藍色線條。這個時候因為有4條鏈路,所以我們的主機會看到4個5G的儲存資源,即可以看到4個磁碟(如下圖所示,圖中是拿2G做的例子))但是其實只有一個是可以使用的,這就是儲存多路徑問題。

 

 

 

 

 

 

那麼怎麼解決儲存多路徑問題呢?這就要用到多路徑軟體。不同的廠商有不同的多路徑軟體,一般都會直接提供給我們,比如華為的多路徑軟體就是UltraPath,通過多路徑軟體,可以將4條鏈路做一個邏輯上的聚合,最終只顯示一個磁碟,如下圖所示,這就很好的解決了多路徑問題。

 

 

 

RAID 技術

RAID:Redundant Arrays of Independent Disks。有"數塊獨立磁碟構成具有冗餘能力的陣列”之意。獨立磁碟冗餘陣列(RAID,redundant array of independent disks)是把相同的資料儲存在多個硬碟的不同的地方的方法。通過把資料放在多個硬碟上,輸入輸出操作能以平衡的方式交疊,改良效能。因為多個硬碟增加了平均故障間隔時間(MTBF),儲存冗餘資料也增加了容錯。

  RAID技術主要有以下三個基本功能:   (1)通過對磁碟上的資料進行條帶化,實現對資料成塊存取,減少磁碟的機械尋道時間,提高了資料存取速度

(2)通過對一個陣列中的幾塊磁碟同時讀取,減少了磁碟的機械尋道時間,提高資料存取速度。
(3)通過映象或者儲存奇偶校驗資訊的方式,實現了對資料的冗餘保護。

RAID技術主要為了解決兩大問題:1、磁碟效能 2、資料冗餘,安全性。

 

根據不同的功能和組合方式,可以將RAID分為不同的級別。主要有RAID0,1,3,5,6,10,50等,下面詳細的介紹一下他們的區別。

RAID0:為了提升磁碟效能。如下圖所示,假設有兩塊500G的盤做了RAID0,磁碟寫入資料的時候是在兩塊磁碟上依次寫入的,比如在盤1上寫了1,就會在盤2上寫2,這樣的話磁碟利用率是最高的,1T的容量都可以被完全使用。但是假如兩塊盤配置不一樣,可以做Raid0嗎?比如一塊盤的容量是320G,轉速是5400/分,另一塊盤的容量是500G,轉速是7200/分,這兩個磁碟可以做Raid 0嗎?答案是可以的。但是會預設使用低配置的盤來進行配置,高配置的500G 的盤只有320G可用,轉速也只有5400/分,這就會造成資源浪費。所以我們一般會使用同配置的磁碟做RAID0。另外一個問題是一塊盤可以做RAID 0 嗎? 答案也是可以的,但是磁碟的效能不會得到提升。

我們可以看到RADI 0的優點是磁碟利用率最高,效能最好,但是缺點是完全沒有資料冗餘。

 

RAID 1:至少需要兩塊盤。資料寫入方式如下圖所示,兩塊盤完全做了冗餘,互為映象,寫入的資料是一模一樣的。所以RAID 1的磁碟利用率只有50%,兩塊500G 的盤只能寫500G的資料。RAID1只能是偶數的磁碟才能做,比如2,4,6等,3個盤,5個盤是不能做RAID1 的。RAID1的缺點是利用率低,效能差,優點是有資料冗餘,保證了安全性。這裡有一個問題,如果第一快盤上的資料2被刪掉了,那麼第二塊盤上的資料2還在嗎?答案是第二塊盤上的資料2也不在了。因為這兩塊盤是完全互為映象的,上邊的資料始終保持一致。

 

 我們可以看到RAID0,1各有優缺點,那麼能不能把他們的優點結合起來呢?於是RAID3就出現了。

RAID3:RAID3至少需要3塊盤。資料寫入方式如下圖所示。我們可以看到對於每一個條帶的資料,它都會算出來一個校驗位,這個校驗位是根據前兩快盤的資料算出來的,這個盤也叫做校驗盤。RAID3允許任一塊盤損壞,比如如果盤1壞了,根據盤2的資料和校驗位,我們可以把盤1的資料算出來進行恢復;如果是盤2壞了,同樣也是可以算出來的;如果是校驗盤壞了,因為校驗盤上本來就沒有資料,所以也不會丟資料。但是RAID3最多也只能損壞一塊盤。所以RAID3即保證了效能,也有資料冗餘。 但是RAID3的瓶頸在於校驗盤,這塊校驗盤心想,只有你們兩個盤來寫資料,而我只用來做校驗,覺得不公平,而且當需要寫的資料很多時,校驗盤的效能有限,可能算校驗位的時間就比較慢,這就是RAID3的缺點。 於是為了解決這個問題,RAID 5就出現了

 

 

RAID 5

RAID5至少需要3快盤。RAID5資料寫入方式如下圖所示,每個盤上都有校驗位,相當於分散式校驗。所以RAID5相比於RAID3效能又有了提升。不管用多少快盤來做RAID5,RAID5也是最多隻能損壞一快盤,損壞的再多的話就沒法根據其他盤來計算資料,就會發生資料丟失。那麼RAID的磁碟利用率是多少呢?有一個公式可以來計算:(n-1)/ n

 

 

 

RAID 6

RAID6要求至少有4塊盤。資料寫入方式如下圖所示。每兩個盤拿來做一個校驗位。RAID6最多允許損壞兩塊盤。RAID6在平常使用的很少,很少見。

 

 

RAID 10

相當於把RAID1和0結合起來,先做RAID1,在做RAID 0。資料寫入方式如下圖,既保證了效能,又做了冗餘。RAID10可以損壞兩塊盤,但是隻能損壞兩側之中的各一個,不能同時損壞一個RAID1中的。

 

RAID50

類似於RAID10,先做RAID5,在做RAID0。

 

最後的題外話-----------------------------------------------------------------------------------------------------------------------

對於一個伺服器來說,CPU不是最重要的,記憶體不是最重要的,磁碟才是最重要的。因為我們的資料都是存放在磁碟中的,而資料是最為重要的。那麼CPU,記憶體,磁碟都是幹什麼的呢?CPU是我們電腦的運算核心,處理各種運算,所以CPU的速度是最快的,比磁碟快特別多。記憶體是非持久化儲存,他就是用來給CPU提供資料的,如果CPU要使用磁碟中的資料,因為磁碟太慢,記憶體會先將這些資料呼叫過來,CPU再從記憶體呼叫。所以像一些大的電腦遊戲或者PS等大的軟體執行的時候,因為記憶體要跑他們的檔案,所以如果電腦記憶體不夠的話電腦就會特別卡。磁碟是持久化儲存,是真正用來存資料的,他的速度也是最慢的。