RAID5和RAID10在磁碟讀寫選擇對比
磁碟讀寫速度的關鍵之一:Cache
cache技術最近幾年,在磁碟儲存技術上,發展的非常迅速,作為高階儲存,cache已經是整個儲存的核心所在,就是中低端儲存,也有很大的cache存在,包括最簡單的RAID卡,一般都包含有幾十,甚至幾百兆的RAID cache。
cache的主要作用是什麼呢?作為快取,cache的作用具體體現在讀與寫兩個不同的方面:作為寫,一般儲存陣列只要求資料寫到cache就算完成了寫操作,當寫cache的資料積累到一定程度,陣列才把資料刷到磁碟,可以實現批量的寫入。所以,陣列的寫是非常快速的。至於cache資料的保護,一般都依賴於鏡相與電池(或者是UPS)。
cache在讀資料方面的作用一樣不可忽視,因為如果所需要讀取的資料能在cache中命中的話,將大大減少磁碟尋道所需要的時間。因為磁碟從開始尋道到找到資料,一般都在6ms以上,而這個時間,對於那些密集型I/O的應用可能不是太理想。但是,如果能在cache儲存的資料中命中,一般響應時間則可以縮短在1ms以內。
不要迷信儲存廠商的IOPS(每秒的io數)資料,他們可能全部在cache命中的基礎上做到的,但是實際上,你的cache命中率可能只有10%。
讀操作方面的效能差異
如上面介紹,磁碟陣列讀操作的關鍵更多的體現在cache的命中率上。所以,RAID5和RAID10在讀資料上面,他們基本是沒有差別的,除非是讀的資料能影響cache命中率,導致命中率不一樣。
連續寫方面的效能差異
連續寫的過程,一般表示寫入連續的大批量的資料,如媒體資料流,很大的檔案等等。連續寫操作大多數產生於醫療PACS系統、高教圖書館系統、視訊編輯系統等等應用環境下。
根據我本人的經驗,在連續寫操作過程,如果有寫cache存在,並且演算法沒有問題的話,RAID5比RAID10甚至會更好一些,雖然也許並沒有太大的差別。(這裡要假定儲存有一定大小足夠的寫cache,而且計算校驗的cpu不會出現瓶頸)。
因為這個時候的RAID校驗是在cache中完成,如4塊盤的RAID5,可以先在記憶體中計算好校驗,同時寫入3個資料+1個校驗。而RAID10只能同時寫入2個資料+2個鏡相。
如上圖所示,4塊盤的RAID5可以在同時間寫入1、2、3到cache,並且在cache計算好校驗之後,我這裡假定是6(實際的校驗計算並不是這樣的,我這裡僅僅是假設),同時把三個資料寫到磁碟。而4塊盤的RAID10不管cache是否存在,寫的時候,都是同時寫2個資料與2個鏡相。
根據我前面對快取原理的介紹,寫cache是可以快取寫操作的,等到快取寫資料積累到一定時期再寫到磁碟。但是,寫到磁碟陣列的過程是遲早也要發生的,所以RAID5與RAID10在連續寫的情況下,從快取到磁碟的寫操作速度會有較小的區別。不過,如果不是連續性的強連續寫,只要不達到磁碟的寫極限,差別並不是太大。
離散寫方面的效能差異
這裡可能會較難理解,但是,這一部分也是最重要的部分。企業中的絕大部分資料庫應用,如ERP系統等等在資料寫入的時候其實都是離散寫。
例如oracle 資料庫每次寫一個資料塊的資料,如8K;由於每次寫入的量不是很大,而且寫入的次數非常頻繁,因此聯機日誌看起來會像是連續寫。但是因為不保證能夠添滿RAID5的一個條帶(保證每張盤都能寫入),所以很多時候更加偏向於離散寫入。
我們從上圖看一下離散寫的時候,RAID5與RAID10工作方式有什麼不同。如上圖:我們假定要把一個數字2變成數字4,那麼對於RAID5,實際發生了4次io:
先讀出2與校驗6,可能發生讀命中
然後在cache中計算新的校驗
寫入新的數字4與新的校驗8
如上圖我們可以看到:對於RAID10,同樣的單個操作,最終RAID10只需要2個io,而RAID5需要4個io。
這裡我忽略了RAID5在那兩個讀操作的時候,可能會發生讀命中操作的情況。也就是說,如果需要讀取的資料已經在cache中,可能是不需要4個io的。這也證明了cache對RAID5 的重要性,不僅僅是計算校驗需要,而且對效能的提升尤為重要。我本人曾經測試過,在RAID5的陣列中,如果關閉寫cache,RAID5的效能將差很多倍。
當然,我並不是說cache對RAID10就不重要了,因為寫緩衝,讀命中等,都是提高速度的關鍵所在,不過的是,RAID10對cache的依賴性沒有RAID5那麼明顯而已。
到這裡,大家應當也大致明白了RAID5與RAID10的原理與差別了,一般來說,象小io的資料庫型別操作,建議採用RAID10,而大型檔案儲存,資料倉儲,則從空間利用的角度,可以採用RAID5。
相關文章
- [zt]磁碟 RAID10 / RAID5 配置下的IOPS對比AI
- Win10神秘加成? 磁碟讀寫效能對比測試Win10
- 文字壓縮演算法的對比和選擇演算法
- Raid1 Raid2 Raid5 Raid6 Raid10如何選擇使用AI
- 關於RAID10和RAID5的認識AI
- oracle orion 壓測磁碟效能raid10 raid5 raid50 資料OracleAI
- Python與Golang對比,如何選擇?PythonGolang
- hadoop商業版本選擇對比Hadoop
- 磁碟陣列關於Raid0,Raid1,Raid5,Raid10陣列AI
- Python影像讀寫方法對比Python
- RAID5讀寫過程AI
- 選擇HHDESK的理由三【檔案對比功能】
- RAID10與RAID5的異同比較AI
- [MFC]選擇目錄對話方塊和選擇檔案對話方塊
- [軟體人生]公司選擇和企業文化——對話人生選擇
- 選擇HHDESK的理由四[【資料夾對比功能】
- 轉載:RAID5和RAID10,哪種RAID更適合你AI
- redis和ssdb讀取效能對比Redis
- Spring Boot中如何使用JDBC讀取和寫入資料,JDBC和JPA的對比,JdbcTemplate和SimpleJdbcInsert的用法對比Spring BootJDBC
- NTFS磁碟格式讀寫工具:Tuxera NTFS 2021 for Mac NTFS磁碟格式讀寫工具UXMac
- openGauss 對比-磁碟與MOT
- ERP系統型別大對比,切勿盲目選擇型別
- list集合、txt檔案對比的工具類和檔案讀寫工具類
- Java多執行緒13:讀寫鎖和兩種同步方式的對比Java執行緒
- 對MVP、Flux和RxAndroid框架的理解和選擇MVPUXAndroid框架
- Delphi寫的讀狗程式的簡單逆向對比.
- RAID10磁碟陣列損壞修復操作AI陣列
- 國產NTFS 磁碟讀寫工具 - Omi NTFS磁碟專家 for MacMac
- Mac上NTFS磁碟格式讀寫工具Mac
- NTFS 助手 for Mac(讀寫NTFS磁碟工具)Mac
- iOS12和Android 9 Pie對比哪個好呢?: 你會選擇哪一個?iOSAndroid
- MySQL5.1 MyISAM與InnoDB 引擎讀寫效能對比薦MySql
- Python和Web前端選擇哪個比較合適?PythonWeb前端
- 寫作平臺選擇記
- 寫給臨近畢業選擇PHP培訓的孩子們別在比較PHP培訓哪家好了PHP
- 指標對陣列排序選擇法和冒泡法指標陣列排序
- JQuery選擇器——可見性篩選選擇器和屬性篩選選擇器jQuery
- 【原創】InnoDB 和TokuDB的讀寫分析與比較