RAID是“Redundant Array of Independent Disk”的縮寫,中文意思是獨立冗餘磁盤陣列。冗餘磁盤陣列技術誕生於1987年,由美國加州大學伯克利分校提出。簡單地解釋,就是將N臺硬盤通過RAID Controller(分Hardware,Software)結合成虛擬單臺大容量的硬盤使用。RAID的採用爲存儲系統(或者服務器的內置存儲)帶來巨大利益,其中提高傳輸速率和提供容錯功能是最大的優點。
服務器上大多數用的是SCSI的,可靠程度高,但是昂貴。IDE便宜,存取效率和可靠度沒有SCSI的高。
把IDE連接起來,使之具有SCSI的效能。不同的連接方式就是不同的級別,連接方式叫做RAID。Linux中常用的RAID級別有RAID0,RAID1,RAID4,RAID5,RAID6,RAID10。
要實現RAID0必須要有兩個以上硬盤驅動器,RAID0實現了條帶卷,數據並不是保存在一個硬盤上,而是分成數據塊保存在不同驅動器上。因爲將數據分佈在不同驅動器上,所以數據吞吐率大大提高,驅動器的負載也比較平衡。在所有的級別中,RAID 0的速度是最快的。但是RAID 0沒有冗餘功能的,如果一個磁盤(物理)損壞,則所有的數據都無法使用。
RAID1也叫鏡像卷。對於使用這種RAID1結構的設備來說,RAID控制器必須能夠同時對兩個盤進行讀操作和對兩個鏡象盤進行寫操作。
RAID4中有一塊特殊的硬盤做校驗,但會產生瓶頸。
爲了解決RAID4的問題,就產生了RAID5.RAID5中硬盤輪流做校驗,但只允許一塊硬盤出錯。RAID4和RAID5都至少需要3塊硬盤,且最多容錯一塊。
RAID的實現要通過mdadm來管理。
mdadm的模式選項:
-A assemble裝配模式
-C create 創建模式
-follow or monitor監控模式
grow 增長模式
manage管理模式
如何創建RAID呢?這裏舉例創建RAID5的過程:
①mdadm -C /dev/md0 -a yes -l 5 -n 2 -x 1 element
上面的語句中,-C是指定創建模式,/dev/md0是創建的RAID名,-a yes是指示udv自動給md設備創建對應的設備文件,-l指定創建的RAID級別,-n指定做RAID組件的有效設備數(不包括熱備數),-x指定熱備數(RAID0沒有容錯功能,就不需要-x選項),elements列出要把那些分區做成RAID。
②mke2fs -j /dev/md0
上面的語句是把新創建的RAID格式化。
③mdadm --detail /dev/md0
上面的語句是顯示新創建的RAID設備的信息。
Software RAID Testing and Recovery
① mdadm /dev/md0 -f /dev/sda1 模擬md0中的sda1塊壞掉
② mdadm /dev/md0 -r /dev/sda1 移除md0中的sda1塊
③ mdadm /dev/md0 -a /dev/sda1 把/dev/sda1塊加進md0中
mdadm -S /dev/md0 停止md0
mdadm -A -s 重新裝配