RAID10與RAID5的異同比較
2020-02-09 23:51:24
供稿:網友
從一個普通應用來講,要求存儲系統具有良好的IO性能同時也要求對數據安全做好保護工作,所以raid10和raid5應該成為我們重點關注的對象。
單純的談論不同raid級別的優缺是不切實際的,raid只有和磁盤結合才是完整的陣列。
下面從IO性能,數據重構及對系統性能的影響,數據安全保護等方面,結合磁盤現狀來分析兩種技術的差異。
IO的性能:
讀操作上raid10和raid5是相當的,
對于RAID-5 在一些很小數據的寫操作(如比每個條帶還小的小數據)需要2 個讀、2 個寫,還有2 個XOR 操作,對于單個用戶的寫操作,在新數據應用之前必須將老的數據從校驗盤中移除,整個的執行過程是這樣:讀出舊數據,舊數據與新數據做XOR,并創建一個即時的值,讀出舊數據的校驗信息,將即時值與校驗數據進行XOR,最后寫下新的校驗信息。為了減少對系統的影響,大多數的RAID5 都讀出并將整個條帶(包括校驗條帶)寫入緩存,執行2 個XOR 操作,然后發出并行寫操作(通常對整個條帶),即便了進行了上述優化,系統仍然需要為這種寫操作進行額外的讀和XOR操作。小量寫操作困難使得RAID-5 技術很少應用于密集寫操作的場合,如回滾字段及重做同志。當然,也可以將存儲系統的條帶大小定義為經常讀寫動作的數據大小,使之匹配,但這樣會限制系統的靈活性,也不適用于企業中其它的應用。
對于raid10,由于不存在數據校驗,每次寫操作只是單純的執行寫操作。應此在寫性能上raid10要好于raid5。
數據重構:
對于raid10,當一塊磁盤失效時,進行數據重構的操作只是復制一個新磁盤,如果假定磁盤的容量為250G,那么復制的數據量為250G。
對于raid5的存儲陣列,則需要從每塊磁盤中讀取數據,經過重新計算得到一塊硬盤的數據量,如果raid5是以4+1的方式組建,每塊磁盤的容量也為250G,那么,需要在剩余的4個磁盤中讀出總共是1000G的數據量計算得出250G的數據。從這點來看,raid5在數據重構上的工作負荷和花費的時間應該遠大于raid10,負荷變大將影響重構期間的性能,時間長意味再次出現數據損壞的可能性變大。
數據安全保護:
raid10系統在已有一塊磁盤失效的情況下,只有出現該失效盤的對應鏡像盤也失效,才會導致數據丟失。其他的磁盤失效不會出現數據丟失情況。
Raid5系統在已有一塊磁盤失效的情況下,只要再出現任意的一塊磁盤失效,都將導致數據丟失。
從綜合來看,raid10和raid5系統在出現一塊磁盤失效后,進行數據重構時,raid5需耗費的時間要比raid10長,同時重構期間系統負荷上raid5要比raid10高,同時raid5出現數據丟失的可能性要比raid10高,因此,數據重構期間,raid5系統的可靠性遠比raid10來的低。
Raid5在磁盤空間率用率上比raid10高,raid5的空間利用率是(N-1)/ N (N為陣列的磁盤數目),而raid10的磁盤空間利用率僅為50%。
但是結合磁盤來考慮,今天的硬盤廠商所生產的ATA硬盤的質量已經可以承擔企業級的應用,并且,容量的增加幅度相當大,目前已經可以實現單個磁盤400G的存儲容量。SCSI硬盤由于要求高轉速而使用小直徑盤片,容量的增加相對緩慢。ATA磁盤相對SCSI磁盤擁有成本也要小很對,
應此,在一些IO要求非常高的應用中,raid5結合SCSI磁盤是比較好的選擇,其他應用中采用大容量的ATA硬盤結合raid10,既降低了raid10的為獲得一定的存儲空間必須采用雙倍磁盤空間的擁有成本,又避免了raid5相對raid10的各種缺點。
在企業應用中,raid10結合ATA磁盤意味著一個更好的選擇。