在馮諾依曼體系機構中,輸入輸出要存儲的外部磁盤I/O能力實在太低,尤其是企業面對高并發的訪問量,在系統內部需要大量調度磁盤的上的網頁文件資源,這些都會產生大量的I/O,一個磁盤的I/O能力不管如何提升畢竟是有線的,尤其是機械硬盤;同時為了保障業務的連續性,磁盤故障時必須提供冗余能力,面對這樣的實際需求環境,RAID技術產生了,通過組織磁盤陣列方式提供I/O,在內部通過RAID控制器,把多個磁盤的I/O平行組織在一起,當系統需要載入或寫入磁盤上的數據時,也就在RAID控制器的控制下,多個磁盤同時讀同時寫,同時一個數據在控制器下,還可以同時單獨寫入多份,這樣就有了冗余能力,保證了系統業務的連續性,不同的RAID磁盤組織方式,對應不同的實際生產應用需求,根據實際生產應用需求選擇RAID比較合理,實現資源高利用率;
1.RAID:Redundant Arrays of Inexpensive Disks
2.作用:
(1)提供I/O能力
(2)提供冗余(數據容錯能力)
3.RAID控制器功能:
(1)RAID控制器——分割大小(chunk):
控制器在接受到由CPU控制指令發出寫入磁盤的數據的數據是,在RAID控制器內部把數據劃分多個相同大小的Chunk,每個磁盤寫入一個chunk的數據進行保存,這樣既能提供寫入能力,同時當讀取數據時,RAID控制器也能夠理解還原數據;這就是劃分chunk的原因;
(2)RAID控制器做異或運算–提供校驗碼機制:
為了提供冗余能力,數據在寫入的同時對chunk做異或運算寫入校驗碼,當有一個磁盤壞損時,讀取數據時可以通過在其他磁盤上的校驗碼做異或運算,推導出原數據,只不過這時的讀取能力差,處于降級模式;
4.RAID級別圖例:
5.RAID總結
級別代表多塊磁盤的組織工作方式不同;
RAID級別 讀寫性能提升 冗余 空間利用率 組織最小磁盤數
0 有 沒有 100% 2
1 有(讀) 有 1/2 2
4 有 有 n-1 3
5 有 有 n-1 3
6 有 有 n-2 4
10 有 有 1/2 4
01 有 有 1/2 4
6.RAID分析:
RAID0
條帶卷,有一個磁盤壞損,業務立即終止,可以做臨時文件存儲
RAID1
鏡像卷,只提供讀性能,有冗余,但是空間利用率太低,提供的I/O性能不是很高;
RAID4:
校驗存儲,利用異或算法,校驗碼在一塊磁盤,校驗盤成為瓶頸,壞損I/O性能降級;
RAID5:
循環存儲校驗,允許壞損,但是I/O性能降級;
RAID6:
循環存儲兩份校驗 ,允許壞損2塊,但是整體性能不是很好;
RAID10:
先做1再做0,數據切割一次,IO性能整體很高,每組鏡像只允許壞一塊;
RAID01:
先做0再做1,數據切割兩次,每組允許壞損2,但是整體同時只允許一個組有壞損,這種多個組同時壞損一塊的幾率還是比較大的;
JBOD:Just a Bunch of Disks
作用:將多塊磁盤空間合并為一個大的連續空間使用,為了應對企業單個大文件的訪問存儲;
6.RAID應用實現方式:
(1)軟件RAID:這種利用軟件功能實現,一般僅供學習使用;
(2)硬件RAID:需要RAID控制卡,利用的連接設備有可能是光纖交換機;
7.Linux提供軟RAID功能:
mdadm [mode] [options] devices
-C:創建
-n # :使用多少個快創建;
-l # :創建RAID級別;
-a [yes|no] :自動創建;
-c Chunk_size :指明chunk大?。?/span>
-x # :指明空閑磁盤數;
-A:啟動
-F:監控
-f:標記壞損;
-r:移除;
-a:添加;
-D:顯示詳細信息;
-G:添加成員
顯示詳細信息
mdadm -D /dev/md0
標記損壞
mdadm /dev/md0 -f /dev/
移除
mdadm /dev/md0 -r /dev/
添加
mdadm /dev/md0 -a /dev/
停止
mdadm -S /dev/md0
啟動
mdadm -A /dev/md0
觀察狀態:
cat /proc/mdstat
使用watch命令持續觀察
watch -n 1 'cat /proc/mdstat'
8.實例:在CentOS6.8上創建RAID5陣列
(1)添加5塊硬盤作為RAID使用
(2)默認分區格式化整個磁盤為主分區20G,同時修改分區類型為支持RAID分區類型;
(3)查看分區完的磁盤是否讀入到內核中,如何沒有使用partx -a device同步;
(4)使用mdadm命令創建RAID5,三個做RAID5成員,一塊做空閑盤,另一塊后面使用
(5)查看創建過程狀態;
(6)等待創建完成,也可以使用cat /proc/mdstat命令查看
(7)把創建的配置信息導入到/etc/mdadm.conf文件中,方便下次啟動能夠讀取配置信息;
(8)要想使用RAID必須格式化文件系統,這里使用ext4
(9)創建掛載目錄并且掛載到/tmp/raid
(10)復制文件到RAID5分區中
(11)測試實驗:標記一塊成員硬盤為壞損,
(12)查看RAID5分區中的文件是否可以查看,測試壞損一塊成員時,在空閑磁盤構建中,數據是否可以繼續訪問
(13)查看構建空閑磁盤為成員完成
(14)刪除標記的壞損成員
(15)添加一個成員進入,這里變成空間盤
(16)添加一塊成員進入RAID5陣列中,擴大陣列范圍
(17)再次測試數據是否可用
(18)實驗完成刪除RAID步驟
注意:有了RAID企業還有必要備份數據嗎?
這是必須的,不能取代,RAID提供的僅僅是磁盤壞損不影響業務的終止,并不能保證誤操作引發的數據丟失,備份能防止誤操作和意外故障時提供數據恢復。
原創文章,作者:xiashixiang,如若轉載,請注明出處:http://www.www58058.com/43545