一、RAID的概念
RAID又稱之為廉價的冗余磁盤陣列,早七磁盤陣列就是由很多價格較便宜的[磁盤]組合成一個容量巨大的磁盤組,利用個別磁盤提供數(shù)據(jù)所產(chǎn)生加成效果提升整個磁盤系統(tǒng)效能。利用這項技術,將數(shù)據(jù)切割成許多區(qū)段,分別存放在各個硬盤上。后來經(jīng)過發(fā)展,RAID加入了同位校驗等功能,可以在某塊磁盤損壞時數(shù)據(jù)不會丟失失效等特性。
RAID根據(jù)技術的不同,又可分為軟RAID和硬RAID,軟RAID就是根據(jù)系統(tǒng)軟件工具將多塊磁盤根據(jù)一定的技術實現(xiàn)的,但是會消耗大量的服務器CPU等資源。當然還有一種是硬RAID,根據(jù)硬件RAID卡將多塊磁盤自動重組為RAID的技術,這一過程不需消耗系統(tǒng)本身的資源,不占用CPU,但是RAID卡的成本偏高,主要應用于中高端服務器設備上。今天我們只了解軟件RAID的實現(xiàn),硬件RAID需要使用RAID設備來實現(xiàn),暫時我們不予討論。
RAID就是將多塊磁盤組合在一塊,在數(shù)據(jù)存儲時,將數(shù)據(jù)存儲在不同的磁盤上,實現(xiàn)多塊磁盤同時讀寫,增加了磁盤的讀寫速度,因為數(shù)據(jù)校驗位的存在,也有了一定的冗余性和安全性。
RAID的級別分為:RAID0,RAID1,RAID4,RAID5,RAID6,RAID10,RAID50,及RAID2.0+等。
- RAID0:
RAID0由兩塊及以上的磁盤組成,也是早出現(xiàn)的一種級別,確實增加了磁盤的讀寫速度,數(shù)據(jù)寫入和讀取時多塊磁盤同時工作,提高了磁盤的性能,但是因為沒有容錯檢驗功能,當一塊磁盤損壞時整塊RAID將停止工作。
RAID0 卷為邏輯狀態(tài),最小單元 chunk size =512k,磁盤的默認最小存儲單元(block
size=4k),即實現(xiàn)卷的數(shù)據(jù)存放,1 個 chunk size 占用 128 個 block size ,即磁盤是以 128block
為單元存放,a 盤和 b 盤各寫一個 block size 單元,依次輪換,為條帶功能。即 A 盤和 b 盤
依次輪流讀寫 chunk size,即為 RAID0 的條帶作用,條帶數(shù)量越多,讀寫速度越快
優(yōu)點時磁盤利用率可達百分百,且具有條帶功能,缺點就是沒有冗余檢驗功能。
RAID1:
RAID1又稱之為磁盤鏡像,由兩塊磁盤構成,兩塊磁盤互為鏡像,一份數(shù)據(jù)同時寫入兩塊磁盤上,即一塊磁盤為另一塊的備份。
優(yōu)點是安全性高,有校驗功能,缺點是磁盤利用率只有百分之五十
RAID4:
RAID4由三塊及以上的磁盤構成,其中有一塊固定的磁盤用作存放奇偶校驗法的數(shù)據(jù)校驗位,其余的磁盤用來存放數(shù)據(jù),當一塊磁盤損壞時不影響RAID的使用,并且當新的磁盤加入時數(shù)據(jù)會自動回復而不會丟失,利用率為(N-1)/N。
RAID5:
RAID5為分布式奇偶校驗的磁盤陣列,奇偶校驗位不是存放在一塊固定的磁盤上,而是分別存放在不同的磁盤上,這樣的優(yōu)點是減少了奇偶校驗位磁盤的多次讀寫造成的損壞率高,也是由三塊以上的磁盤構成,比RAID4的優(yōu)點在于減少了校驗盤的壓力,利用率也為(N-1)/N。
RAID6:
RAID6為帶有兩種校驗位的奇偶校驗分布磁盤,由四塊及以上的磁盤構成,使用兩種不同的算法對數(shù)據(jù)進行計算,并存放在不同的磁盤上,可最大承受兩塊磁盤的損壞,利用率為(N-2)/N。
RAID10:
RAID10 (RAID0 和 RHID1 的組合),由四塊以上磁盤構成
RAID10 由兩種做法:
①RAID(1+0),先做 raid1,在做 raid0 ,即由物理的四塊磁盤與兩個邏輯 2 級磁盤做raid1,一個 2 級邏輯磁盤分別對應一個數(shù)據(jù)物理盤和一個數(shù)據(jù)備份盤,然后再由兩個 2 級邏級磁盤與 1 級邏輯磁盤運用 raid0 的條帶技術進行讀寫
② RAID10 是把四塊磁盤即做 RAID0 又做 RAID1
RAID60:
RAID60由六塊以上磁盤構成,利用RAID6和RAID0兩種技術實現(xiàn),利用率也為百分之五十,安全容錯性最高。
此外,還有 RAID5+1 RAID10+1 RAID1+1 +1 為增加了一塊熱備盤,隨后為損壞的磁盤做替補
二、RAID的實現(xiàn)
mdadm為創(chuàng)建軟raid的工具
Raid 的設備為/dev/md0 0 代表第一塊 raid 設備
Raid 的磁盤類型為 linux raid
-
mdadm
參數(shù): -C 創(chuàng)建一個新的陣列 -l RAID 的類型 eg -l 1,-l 10, -l 5 -n 磁盤數(shù)目 -A 加入一個以前定義的陣列 -f 強制是某個磁盤丟失 -r 正常移除某塊磁盤 -X 增加一塊熱備盤 -D 打印 md 設備文件 -s 掃描配置文件和丟失的文件信息 -S 停止刪除 md0(raid) -
watch 實時跟蹤查看信息
-n 間隔刷新時間 eg .5 間隔為 0.5 秒 mdadmRAID創(chuàng)建相關命令:
mdadm -c /dev/md0 -l 10 -n 4 -X 1 /dev/sd{a,b,c,d,e} 創(chuàng)建 raid10 設備,sde 為一塊熱備盤,四塊磁盤構成 raid10
Mdadm -f /dev/md0 /dev/sdb 使 md0 設備的/dev/sdb 磁盤強制損壞
Mdadm -r /dev/md0 /dev/sdb 使 md0 設備的/dev/sdb 磁盤正常移除
Mdadm -a /dev/md0 /dev/sdf 使 md0 設備新增加一塊磁盤/dev/sdf
- Mdadm -D -S > /etc/mdadm.conf 生成 mdadm.conf 文件
- /etc/mdadm.conf 為 RAID 的開機啟動配置文件
創(chuàng)建RAID10
現(xiàn)有/dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5 /dev/sdb6 五個磁盤分區(qū),沒有格式化,因為資源有限,使用分區(qū)代替磁盤使用,一個分區(qū)等同于一個磁盤,即五個分區(qū)等同于五塊磁盤,每一塊分區(qū)大小為10G。
mdadm -c /dev/md0 -a yes -l 10 -n 4 -X 1 /dev/sdb{1,2,3,5,6} -n指定四塊盤,-l指定RAID類型為10,-C為創(chuàng)建/dev/md0設備 -X為指定一塊做熱備盤
mkfs.ext4 /dev/md0 RAID10設備md0格式化為ext4
vim /etc/fstab 將md0設備掛載信息寫入fstab文件
/dev/md0 /app/md0 ext4 defaults 0 0
mount -a 掛載md0設備
mdadm -D -s > /etc/mdadm.conf 生成/etc/mdadm.conf配置文件
vim /etc/mdadm.conf 編輯
MAILADDER root@localhost(郵件接受者)
當磁盤發(fā)生故障時,郵件通知本地的 root 用戶在文件的每一個 RAID 后面編輯
Auto=yes space-group=danran(口令)
每個 raid 的口令必須一致,熱備盤才可替換任何一個發(fā)生故障的磁盤
將郵件地址寫入 /etc/mdadm.conf 后,重啟 mdmonitor.server 服務,配置文件生效, /etc/mdadm.conf必須寫入 mailadder 郵件接收者,此服務才能正常啟動
/etc/mdadm.conf 為 RAID 的開機啟動配置文件,用來自啟動 RAID