RAID-6已經(jīng)走來了
SATA硬盤的密度非常高,但是錯誤率也比較高,性能比較低,RAID-6設(shè)計很快就能夠解決這些問題,使其能夠適用于高端和高性能要求的環(huán)境之中。
RAID-6變得越來越流行,所以在評估RAID控制器的時候,除了考慮其他一些因素,最好還要考慮一下它和RAID-5的異同。
找到問題所在
如下圖所示,讀取單一驅(qū)動器的時間隨著時間的推移出現(xiàn)了明顯的增長:
造成這種情況的主要原因是磁盤驅(qū)動器的密度的增長遠比性能的提升要快。從1991年以來,企業(yè)磁盤(SCSI和FC)已經(jīng)從500MB發(fā)展到了300GB,增長了600倍。而在同一時期內(nèi),最高性能僅僅從4MB/s提高到了125MB/s,只增長了31.25倍。如果磁盤驅(qū)動器的性能可以和密度同步提高的話,我們就可以擁有2.4GB/s性能的磁盤驅(qū)動器了。這聽起來很不錯,不是么?但是不太可能在短期內(nèi)實現(xiàn)。
顯而易見,重建RAID LUN(Logical Unit Number,邏輯單元號)的時間顯著地增加了。另一個值得關(guān)注的問題是:讓我們回到1996年,當(dāng)時即將推出1Gb半雙工的FC。磁盤驅(qū)動器的傳輸速度是16MB/s,密度為9GB。從1996年到今天,驅(qū)動器的最大性能增長了7.8倍,而密度卻增長了33.33倍,單個驅(qū)動器只增長了4倍。是的,我們實現(xiàn)了全雙工傳輸,但是在1996年,單一FC通道最多可以支持6.25個驅(qū)動器全速讀寫。今天的能支持的數(shù)量是3.2。我認(rèn)為企業(yè)級驅(qū)動器還沒有任何顯著的改變,能夠扭轉(zhuǎn)這種趨勢。使用SATA驅(qū)動器只是更加惡化了這一問題,因為驅(qū)動器密度更大了,但是傳輸速度卻在下降。我相信這將是RAID-6的推動因素之一,因為隨著密度的增加,RAID-5丟失數(shù)據(jù)的風(fēng)險也明顯地增加了。
RAID控制器性能
既然如此,我們可以預(yù)言,至少在可以預(yù)見的未來,對Fibre Channel(光纖通道,F(xiàn)C)來說,RAID-6將變得更普及,因為使用較慢接口的、密集的驅(qū)動器重建需要的時間越來越長。而且SATA驅(qū)動器的廣泛使用,也會推動RAID-6的普及,直到有更好的技術(shù)出現(xiàn),取代RAID-6為止。
問題是RAID-6需要控制器能夠提供更多的資源,來計算附加奇偶,并且需要更大的帶寬來進行寫操作,對于一些廠商來說,還需要更大的帶寬來讀取更多的奇偶(parity)。所需要的帶寬大小取決于RAID-6的配置。例如,如果是8+1 RAID-5,需要9個硬盤的帶寬;而如果是RAID-6 8+2的話,需要的帶寬就增加了11%,也就是10個硬盤的帶寬。如果是4+1 RAID-5,需要5個硬盤的帶寬,但是如果是RAID-6 4+2的話,所需要的帶寬就增加了20%,也就是6個硬盤的帶寬。如果只是有一個LUN的帶寬需求增加了20%的話,那么我相信幾乎所有的RAID控制器都能夠應(yīng)付,但是如果系統(tǒng)中所有的LUN都是RAID-6的話,情況會怎樣?
你的控制器是否能夠有11%或者20%冗余的計算資源來計算多出來的奇偶?而且控制器是否能夠提供足夠的帶寬支持所有這些硬盤?為RAID增加改造的潛力,你也許會讓RAID控制器運行的速度超過設(shè)計速度。我認(rèn)為對于每個考慮使用RAID-6的用戶來說,理解RAID控制器的設(shè)計問題都非常重要,這能夠幫助他們更好地理解購買什么樣的設(shè)備才能夠更好地滿足自己的性能要求。我不想再詳細講述FC和SATA硬盤的差別,因為我已經(jīng)在以前的文章里介紹過這些內(nèi)容了
檢查RAID性能
因為絕大部分中端RAID廠商都是按照RAID-5,而不是RAID-6的性能要求設(shè)計RAID控制器的,所以為了確保采購的RAID控制器能夠達到RAID-6的性能要求,用戶需要考慮RAID控制器的兩方面的問題:一是計算奇偶的處理器的性能,另一個是后端通道的性能。
處理器的性能比較容易評估。假設(shè)廠商取1個或者最多4個磁盤托架。開始之前,必須知道后端連接的數(shù)量和這些連接的性能。例如,如果有4個4Gb的FC后端連接,就需要為這四條連接配備4個FC HBA,以及一個或多個能夠充分利用這些HBA的系統(tǒng)。必須確保后端的性能(RAID控制器到磁盤托架的性能)能夠和前端的性能(從服務(wù)器到RAID的性能)相匹配。創(chuàng)建一個4+1 LUN和一個4+2 LUN,并使用可以寫入原設(shè)備的、多線程的程序,例如從 #p#page_title#e#ioperformance.com下載的xdd。對4+1的寫入應(yīng)該和對4+2的寫入是一樣的。
現(xiàn)在對你所有的LUN進行同樣的操作,并且充分利用其全部的性能。假設(shè)有以下兩種方法。采用LUN中磁盤驅(qū)動器最外圈的柱面以獲得最大性能,并且向廠商咨詢磁盤托架的最大性能。在這兩個值中,取較低的一個值。對你所擁有的所有的LUN重復(fù)進行8+1和8+2操作,使用其全部的性能。對于非常重視奇偶性能的寫操作來說,性能也應(yīng)該是一樣的。如果不是這樣,那么奇偶處理器速度就不夠快,或者是RAID的后端性能設(shè)計不好,也可能是兩者兼而有之。
既然高性能處理器性價比非常高,要確定是否是處理器的問題非常困難,在現(xiàn)在這個年代,幾乎是不可能的。另一方面,RAID控制器后端的設(shè)計非常復(fù)雜,所以它通常是問題所在。今天,絕大部分的RAID控制器都支持使用一個FC fabric連接把每個磁盤托架連接起來,在托架內(nèi)部可能使用FC-AL(光纖通道仲裁環(huán)路)、SATA或者SAS連接。需要理解的第一個問題是從RAID控制器到主機的性能和從RAID控制器到緩存之間的性能比。對于中端控制器,這個比例通常在1:1到1:4之間,有時候會更高(從控制器到磁盤托架之間的帶寬更高)。請注意,如果你使用的是RAID-6的話,就需要更多的帶寬,這是因為要對第二個奇偶驅(qū)動器進行寫操作,對于一些廠商的產(chǎn)品來說,可能還有讀操作。
看看下面這個例子。比如說,你在前端擁有4個4Gb的FC,以及6個從緩存到磁盤托架的通道(1到1.5)。
上面描述的RAID控制器將為這4個4+2 LUN提供最大的帶寬。這一點無所謂好壞,但是卻說明了一個事實:RAID-6比RAID-5所耗占的帶寬更多。一些廠商為了解決讀取的帶寬問題,采用了不讀取所有奇偶驅(qū)動器的做法,所以就只剩下寫的問題了;其他一些廠商卻采取了其他的方法。當(dāng)然,最糟糕的做法是流式(streaming)I/O,但是同樣的問題也存在于IOPS之中,只不過IOPS的問題是尋址和響應(yīng)時間,而不是帶寬。
事先做好計劃
RAID-6比RAID-5需要更多的帶寬,并且能夠影響RAID控制器的性能。在前文所舉的例子中,寫入的問題不僅僅出現(xiàn)在用戶從主機上進行寫入的時候,控制器需要重建一個LUN的時候也可能遇到這種問題。了解這一點,對于理解RAID控制器的后端性能,以及相關(guān)的、計劃中的LUN配置非常重要。尤其對于RAID-6來說更是如此。對中端產(chǎn)品來說,從緩存到主機的控制器性能通常會低于從緩存到磁盤的控制器性能。目前,對于企業(yè)產(chǎn)品來說,情況亦是如此。
該文章的主要目的在于讓客戶在購買任何一款RAID控制器之前,對設(shè)置好的配置有所了解,同時對主機需要的I/O有大概的估計,增加重建的潛力。既然RAID-6需要在緩存與磁盤 tray 與RAID-5之間占用更多的帶寬,在考慮使用RAID-6技術(shù)的時候,也需要認(rèn)真考慮所需要的配置。