新聞資訊
租用幫助
服務(wù)器RAID有哪些差異?
2020-03-03 17:08:38
摘要: ? ? 在這里,我將就這兩種RAID的內(nèi)部運行原理來分析一下,看看我們在什么情況下應(yīng)當(dāng)適合選哪一種RAID方式。根據(jù)我的經(jīng)驗與分析:象小io的數(shù)據(jù)庫類型操作,如ERP等等應(yīng)用,建議采用RAID10,而大型文件存儲,數(shù)據(jù)倉庫,如醫(yī)療PACS系統(tǒng)、視頻編輯系統(tǒng)則從空間利用的角度,建議采用RAID5。下面請看詳細(xì)的性能對比:

在這里,我將就這兩種RAID的內(nèi)部運行原理來分析一下,看看我們在什么情況下應(yīng)當(dāng)適合選哪一種RAID方式。根據(jù)我的經(jīng)驗與分析:象小io的數(shù)據(jù)庫類型操作,如ERP等等應(yīng)用,建議采用RAID10,而大型文件存儲,數(shù)據(jù)倉庫,如醫(yī)療PACS系統(tǒng)、視頻編輯系統(tǒng)則從空間利用的角度,建議采用RAID5。下面請看詳細(xì)的性能對比:


RAID方案對磁盤系統(tǒng)的影響,參考“RAID5和RAID10,哪種RAID更適合你(下) ”為了方便對比,我這里拿同樣多驅(qū)動器的磁盤來做對比,RAID5選擇3D+1P的RAID方案,RAID10選擇2D+2D的Raid方案:

那么,我們分析如下三個過程:讀,連續(xù)寫,隨機寫,但是,在介紹這三個過程之前,我需要介紹另外一個磁盤陣列中的重要概念:cache。


1、磁盤讀寫速度的關(guān)鍵之一:Cache


cache技術(shù)最近幾年,在磁盤存儲技術(shù)上,發(fā)展的非常迅速,作為高端存儲,cache已經(jīng)是整個存儲的核心所在,就是中低端存儲,也有很大的cache存在,包括最簡單的RAID卡,一般都包含有幾十,甚至幾百兆的RAID cache。


cache的主要作用是什么呢?作為緩存,cache的作用具體體現(xiàn)在讀與寫兩個不同的方面:作為寫,一般存儲陣列只要求數(shù)據(jù)寫到cache就算完成了寫操作,當(dāng)寫cache的數(shù)據(jù)積累到一定程度,陣列才把數(shù)據(jù)刷到磁盤,可以實現(xiàn)批量的寫入。所以,陣列的寫是非??焖俚摹V劣赾ache數(shù)據(jù)的保護(hù),一般都依賴于鏡相與電池(或者是UPS)。


cache在讀數(shù)據(jù)方面的作用一樣不可忽視,因為如果所需要讀取的數(shù)據(jù)能在cache中命中的話,將大大減少磁盤尋道所需要的時間。因為磁盤從開始尋道到找到數(shù)據(jù),一般都在6ms以上,而這個時間,對于那些密集型I/O的應(yīng)用可能不是太理想。但是,如果能在cache保存的數(shù)據(jù)中命中,一般響應(yīng)時間則可以縮短在1ms以內(nèi)。


不要迷信存儲廠商的IOPS(每秒的io數(shù))數(shù)據(jù),他們可能全部在cache命中的基礎(chǔ)上做到的,但是實際上,你的cache命中率可能只有10%。介紹完cache,我們就可以解釋RAID5與RAID10在不同的模式下,工作效率問題了,那么我們來分別分析讀操作、連續(xù)寫和離散寫三方面的問題。



2、讀操作方面的性能差異


如我上文的介紹,磁盤陣列讀操作的關(guān)鍵更多的體現(xiàn)在cache的命中率上。所以,RAID5和RAID10在讀數(shù)據(jù)上面,他們基本是沒有差別的,除非是讀的數(shù)據(jù)能影響cache命中率,導(dǎo)致命中率不一樣。


連續(xù)寫方面的性能差異


連續(xù)寫的過程,一般表示寫入連續(xù)的大批量的數(shù)據(jù),如媒體數(shù)據(jù)流,很大的文件等等。連續(xù)寫操作大多數(shù)產(chǎn)生于醫(yī)療PACS系統(tǒng)、高教圖書館系統(tǒng)、視頻編輯系統(tǒng)等等應(yīng)用環(huán)境下。


根據(jù)我本人的經(jīng)驗,在連續(xù)寫操作過程,如果有寫cache存在,并且算法沒有問題的話,RAID5比RAID10甚至?xí)靡恍?,雖然也許并沒有太大的差別。(這里要假定存儲有一定大小足夠的寫cache,而且計算校驗的cpu不會出現(xiàn)瓶頸)。


因為這個時候的RAID校驗是在cache中完成,如4塊盤的RAID5,可以先在內(nèi)存中計算好校驗,同時寫入3個數(shù)據(jù)+1個校驗。而RAID10只能同時寫入2個數(shù)據(jù)+2個鏡相。


如上圖所示,4塊盤的RAID5可以在同時間寫入1、2、3到cache,并且在cache計算好校驗之后,我這里假定是6(實際的校驗計算并不是這樣的,我這里僅僅是假設(shè)),同時把三個數(shù)據(jù)寫到磁盤。而4塊盤的RAID10不管cache是否存在,寫的時候,都是同時寫2個數(shù)據(jù)與2個鏡相。


根據(jù)我前面對緩存原理的介紹,寫cache是可以緩存寫操作的,等到緩存寫數(shù)據(jù)積累到一定時期再寫到磁盤。但是,寫到磁盤陣列的過程是遲早也要發(fā)生的,所以RAID5與RAID10在連續(xù)寫的情況下,從緩存到磁盤的寫操作速度會有較小的區(qū)別。不過,如果不是連續(xù)性的強連續(xù)寫,只要不達(dá)到磁盤的寫極限,差別并不是太大。


3、離散寫方面的性能差異


這里可能會較難理解,但是,這一部分也是最重要的部分。企業(yè)中的絕大部分?jǐn)?shù)據(jù)庫應(yīng)用,如ERP系統(tǒng)等等在數(shù)據(jù)寫入的時候其實都是離散寫。


例如oracle 數(shù)據(jù)庫每次寫一個數(shù)據(jù)塊的數(shù)據(jù),如8K;由于每次寫入的量不是很大,而且寫入的次數(shù)非常頻繁,因此聯(lián)機日志看起來會像是連續(xù)寫。但是因為不保證能夠添滿RAID5的一個條帶(保證每張盤都能寫入),所以很多時候更加偏向于離散寫入。


我們從上圖看一下離散寫的時候,RAID5與RAID10工作方式有什么不同。如上圖:我們假定要把一個數(shù)字2變成數(shù)字4,那么對于RAID5,實際發(fā)生了4次io:先讀出2與校驗6,可能發(fā)生讀命中,然后在cache中計算新的校驗,寫入新的數(shù)字4與新的校驗8。我們可以看到:對于RAID10,同樣的單個操作,最終RAID10只需要2個io,而RAID5需要4個io。


這里我忽略了RAID5在那兩個讀操作的時候,可能會發(fā)生讀命中操作的情況。也就是說,如果需要讀取的數(shù)據(jù)已經(jīng)在cache中,可能是不需要4個io的。這也證明了cache對RAID5 的重要性,不僅僅是計算校驗需要,而且對性能的提升尤為重要。我本人曾經(jīng)測試過,在RAID5的陣列中,如果關(guān)閉寫cache,RAID5的性能將差很多倍。


當(dāng)然,我并不是說cache對RAID10就不重要了,因為寫緩沖,讀命中等,都是提高速度的關(guān)鍵所在,不過的是,RAID10對cache的依賴性沒有RAID5那么明顯而已。


到這里,大家應(yīng)當(dāng)也大致明白了RAID5與RAID10的原理與差別了,一般來說,象小io的數(shù)據(jù)庫類型操作,建議采用RAID10,而大型文件存儲,數(shù)據(jù)倉庫,則從空間利用的角度,可以采用RAID5。上面主要從磁盤系統(tǒng)的內(nèi)部運行細(xì)節(jié)分析了RAID5與RAID10的異同,以及各自適用的范圍。

海外服務(wù)器免費測試http://hbjsdrq.com/


USA-IDC為您提供免備案服務(wù)器 0元試用
立即聯(lián)系在線客服,即可申請免費產(chǎn)品試用服務(wù)
立即申請