RAID從誕生開始便是為了伺服器服務的,它的超大容量,良好的容錯能力(備援),以及極緻的性能都是優點,面對伺服器的高壓環境,它便是卓越的選擇。
簡單的說,RAID是把多塊獨立的實體硬碟按照不同的方式組合起來,形成一個邏輯大硬碟,進而提供比單個硬碟更高的存儲性能和提供資料備份技術。在我們使用者看起來,多個硬碟組合起來就像是一個硬碟,在使用者層面,我們根本在使用中感覺不到,使用者可以對它進行分區,格式化等等。總之,對磁盤陣列的操作與單個硬碟一模一樣。不同的是,磁盤陣列的存儲速度要比單個硬碟高很多,而且可以提供自動資料備份。資料備份的功能是在使用者資料一旦發生損壞後,利用備份資訊可以使損壞資料得以恢複,進而保障了使用者資料的安全性。
而RAID主要有以下幾種,它們各有優勢,讓我們來一起看一下:
RAID 0

-
優點:
讀寫性能是所有RAID級别中最高的。
-
缺點:
無法提供資料的備援,一旦使用者資料損壞,損壞的資料将無法得到恢複。RAID 0運作時隻要其中任一塊硬碟出現問題就會導緻整個硬碟的故障,不能在繼續使用。
總結:
- 磁盤空間使用率:100%,成本最低。
- 讀性能:N*單塊磁盤的讀性能。
- 寫性能:N*單塊磁盤的寫性能。
- 備援:毫無備援能力,隻要有一塊磁盤損壞,将導緻整個陣列的不可用。
RAID 1
RAID 1 是通過鏡像原理來實作的,對于實體硬碟1和實體硬碟2來說,它們存放的資料是一份一模一樣的,實體硬碟2通過拷貝實體硬碟1得來的,對于實體硬碟1中資料的增删改操作,實體硬碟2都會複制一邊,是以一邊的資料丢了,另一邊也會丢。至少需要兩塊硬碟
- RAID 1會在兩塊實體硬碟上産生互相為對方的備份資料,在資料讀取負載比較大的時候,可直接從鏡像備份中讀取資料,是以RAID 1可以提供讀取性能。
- RAID 1是硬碟中機關成本最高的,但提供了很高的資料安全性和可用性,當一個硬碟失效時,系統可以自動切換到鏡像硬碟上讀/寫,并且不需要來進行回複損壞硬碟的資料。
- 磁盤空間使用率:50%,成本最高。
- 讀性能:隻能在一個磁盤上讀取,取決于磁盤中較快的那塊盤。
- 寫性能:兩塊磁盤都要寫入,因為是并行寫入,是以要比對,取決于磁盤中較慢的那塊盤。
- 備援:隻要系統中任何一對鏡像盤中有一塊磁盤可以使用,甚至可以在一半數量的硬碟出現問題時系統都可以正常運作。
RAID 4
**RAID 4 增加了校驗位 **
有一塊實體硬碟存放了異或校驗位,是老舊版的RAID 5,已經快被淘汰了,具體在RAID 5中細說。至少三塊硬碟。
- 有了一定的容錯性,在一塊實體硬碟損壞之後可以通過異或運算求出被損壞的資料,進而保證硬碟的繼續運作。
-
缺點
不過存放校驗位的硬碟因為壓力比較大老壞。
- 磁盤空間使用率:N-1/N。
- 讀性能:在存放資料的硬碟中讀取,均勻讀取,壓力變小
- 寫性能:兩塊磁盤都要寫入均勻寫入,速度更快。
- 備援:任何一塊實體硬碟損壞之後,都可以使用,校驗位硬碟損壞不影響資料讀取寫入,其他硬碟損壞之後,可以通過校驗位進行異或運算求出損壞的資料,隻不過在運算是系統壓力比較大
RAID 5
RAID 5也含有校驗位,它是RAID 4的更新版,因為在RAID 4中所有的校驗位存在在一塊實體硬碟中,它的壓力較大,容易壞,是以便有了這種做法,四塊實體硬碟都有校驗位存在,實作了RAID的負載均勻,這樣存放異或校驗位,讓每一塊硬碟扮演角色都一樣,犧牲空間換取容錯性。
做RAID 5陣列的所有磁盤容量必須一樣大,當容量不同時,會以最小的容量為準。 最好硬碟轉速一樣,否則會影響性能,而且可用空間=磁盤數N-1,RAID 5沒有獨立的奇偶校驗盤,所有校驗資訊分散放在所有磁盤上, 隻占用一個磁盤的容量。
- 磁盤空間使用率:(N-1)/N,即隻浪費一塊磁盤用于奇偶校驗。
- 讀性能:(N-1)*單塊磁盤的讀性能,接近RAID 0的讀性能
- 寫性能:比單塊磁盤的寫性能要高
- 備援:隻允許一塊磁盤損壞。
RAID 6
和RAID 5一樣的結構,隻不過擁有兩個校驗位,更加穩定,但是價格相對更高
RAID 10
将RAID 0與RAID 1巧妙的結合在了一起,實作了互相融合。先将實體硬碟1和2組合成RAID 1結構,把硬碟3和4也組合成RAID 1結構,最後把兩個邏輯硬碟用RAID 0結構組合在一起,就形成了這種結構。
-
它提供了200%的速度和單磁盤損壞的資料安全性,并且當同時損壞的磁盤不在同一RAID 1中,就能保證資料安全性。假如磁盤中的某一塊盤壞了,整個邏輯磁盤仍能正常工作的。
當我們需要恢複RAID10中損壞的磁盤時,隻需要更換新的硬碟,按照RAID10的工作原理來進行資料恢複,恢複資料過程中系統仍能正常工作。原先的資料會同步恢複到更換的硬碟中。
- RAID 10方案造成了50%的磁盤浪費
磁盤空間使用率:50%。
讀性能:N/2*單塊硬碟的讀性能
寫性能:N/2*單塊硬碟的寫性能
備援:隻要一對鏡像盤中有一塊磁盤可以使用就沒問題。
這種結構。RAID 10 系統不能運作的幾率為1/5
既然有RAID 10就肯定會有RAID 01,它是先将實體硬碟1和2組合成RAID 0結構,把硬碟3和4也組合成RAID 0結構,最後把兩個邏輯硬碟用RAID 1結構組合在一起,就形成了這種結構。
不過因為RAID 01系統不能運作的幾率為3/5,是以不如RAID 10結構穩定。
軟RAID 5 實作
-
1.下載下傳mdadm模式化工具
yum install -y mdadm
-
2.分區,大小相同
先使用fdisk工具進行分區,需要注意的是每個分區的大小應該相同,而且需要把分區格式修改為Linux raid格式,按t鍵之後,代碼為fd。
- 3.使用dd if=/dev/sdb of=/dev/sdc bs=1 count=66 skip=446 seek=446把磁盤陣列中區域分區,備用硬碟分區,全部分區。
-
4.建立RAID
mdadm -C /dev/md0 -a yes -l5 -n 3 -x1 /dev/sd{b,c,d,e}1
-
5.查詢RAID是否建立成功
mdadm -D /dev/md0
-
6.統一建立檔案系統
mkfs.ext4 /dev/md0 -L raid5
-
7.寫入配置檔案/etc/fstab
UUID=5f22970a-91ec-43ea-af62-357864186b7c /mnt/raid5 xfs defaults 0 0
-
8.建立挂載目錄
mkdir /mnt/raid5
-
9.生成RAID的配置檔案
mdadm -Ds /dev/md0 > /etc/mdadm.conf
這樣做是為了可以随時停用RAID
-
10.停用RAID
先取消挂載
umount /mnt/raid
輸入
mdadm -S /dev/md0 停用
-
11.再次激活
mdadm -A /dev/md0
-
其餘指令用來模拟軟RAID的使用:
mdadm /dev/md0 -f /dev/sdb1 模拟sdb1損壞
mdadm /dev/md0 -r /dev/sdb1 移除損壞的sdb1
mdadm /dev/md0 -a /dev/sdb1 添加新換的sdb1
在添加新硬碟時,使用以下指令格式化分區:
-
ext4檔案系統
resizefs /dev/md0 同步檔案系統 ,在新增加磁盤的時候可以使用
-
xfs檔案系
xfs_growfs raid挂載點
需要注意的是:
在建立RAID時候
-
-C :建立模式
-n :使用幾個塊裝置來建立此RAID
-l :指明要建立的RAID類型
-a :{yes|no} 是否自動建立目标RAID裝置的裝置檔案
-c :指明塊大小,機關k
-x :指明備用盤個數
- -D:顯示RAID的詳細資訊
- 1.先取消挂載
- 2.停用RAID
-
3.清除成員磁盤當中陣列的超級塊資訊
mdadm --zero-superblock /dev/sdb
-
4.删除或注釋/etc/fstab上的挂載資訊
vim /etc/fstab
-
删除RAID配置檔案
rm /etc/mdadm.conf