辛星淺析raid
我們來分析一下影響計算機性能的主要組件,主要就是CPU、主板的總線IO、內存IO、硬盤IO、網卡IO等等,並且如今CPU的性能已經非常好了,可是計算機的總體的IO性能卻較低,嚴重影響了計算機的性能,如今的計算機的總線IO、內存IO的速度都能夠達到5G/s以上。可是磁盤IO往往較低。
我們來分析一下常見的幾種吧,對於SATA硬盤來說,速度小於150MB/s。對於SCSI硬盤來說。速度小於200MB/s,對於SAS硬盤來說,速度大約在200MB/s左右,而固態硬盤,也就是SSD,速度大約在500MB/s左右。我們平時自己使用的硬盤大多數是SATA接口的機械硬盤,而SATA3接口還是比較快的。能夠達到6GB/s,而SCSI SAS一般用於server,通常轉速非常快,能夠達到每秒一兩萬轉,所謂SAS就是串行SCSI。而SSD就是固態硬盤啦。
硬盤式絕大多數計算機的性能瓶頸,而IOPS也起到了非常大的作用,所謂IOPS。它是Input/Output Operation Per Second的縮寫,也就是每秒進行讀寫(IO)操作的次數,多用於數據庫等場合,他是衡量隨機訪問的性能的一個重要參數。並且我們發現現代磁盤的缺陷:IO性能弱,穩定性差。
所謂RAID。也就是Redundant Array of Independent Disks,也就是便宜磁盤冗余陣列,它通過多磁盤並行執行。來提供計算機的存儲IO性能。RAID有非常多種類。稱之為RAID的級別,現代RAID有7類。經常使用的則有4類。也就是RAID0、RAID1、RAID5、RAID6.
對於RAID0。它最少須要兩塊硬盤,它將數據分別讀寫到多塊硬盤。來提升讀寫性能,有幾塊硬盤。就能夠吧數據分為幾份來寫,它的空間利用率是全部硬盤空間之和。它的性能也是全部硬盤速度之和,它沒有冗余能力。它的長處就是能夠並行的讀和諧。並且空間利用率高,性能也最好。它的缺點就是一旦RAID中的某塊硬盤出現問題,則數據將會全部丟失。
對於RAID1,它須要偶數塊硬盤,在讀數據時。同一時候從多塊硬盤讀取數據來提高讀取性能。它與RAID0的讀速度一樣,在寫數據時它須要將同一數據拷貝到多塊磁盤,從而提供冗余性。
它應用於數據安全性以及完整性要求比較高的情景,並且讀遠多於寫。
它的空間利用率就是組成RAID1中最小的那塊磁盤,它的讀性能為全部硬盤速度之和。可是寫性能比讀性能要差一些。
它的冗余能力就是。僅僅要有一塊硬盤沒有損壞。那麽數據就是完整的。對於RAID1來說,它的讀非常快,冗余性也非常高。可是缺點就是有幾塊硬盤就須要有幾份同樣的數據,寫數據非常慢。
對於RAID5來說,它最少使用3塊硬盤,在讀數據時。同RAID0,分布式的往磁盤上寫數據,在讀數據時,對數據進行奇偶校驗。將校驗信息同一時候保存在磁盤上。而校驗信息在數據恢復時使用。當中RAID0性能最高。而RAID1冗余性最高。可是使用場景都不多。而實際的生產環境中多使用RAID5和RAID6.它的空間利用率是1-1/硬盤數,它的讀性能非常接近RAID0。寫性能比RAID0弱,它的冗余能力就是假設有一塊磁盤損壞,不會丟失數據。
對於RAID6來說,它最少使用4塊硬盤,它和RAID5一樣。僅僅是多一塊硬盤保存校驗信息的副本,讀數據時,同RAID5,分布式的往磁盤上寫數據,在寫數據時。對數據進行奇偶校驗,將校驗信息同一時候保存在磁盤上,可是會再額外保存一份校驗信息。它的空間利用率是1-2/硬盤數。它的讀性能接近RAID5,可是寫性能比RAID5弱,它的冗余能力就是假設有一塊 硬盤損壞,不會丟失數據。
對於RAID的實現。能夠分為軟件實現 和硬件實現。
假設是軟件實現,能夠通過系統功能或者軟件來實現。它沒有獨立的硬件和接口,它會占用一定的系統資源。比方cpu、內存、硬盤接口速度,受操作系統的穩定性影響。假設是硬件實現。能夠通過購買獨立的RAID硬件卡來實現RAID。有些主板集成了RAID硬件,硬件RAID不須要占用其它的硬件資源,並且穩定性和速度都比軟件RAID要強。
辛星淺析raid