RAID(Redundant Array of Independent Disks):
定義:獨立硬盤冗余陣列,舊稱廉價磁盤冗余陣列(Redundant Array of Independent Disks),簡稱磁盤陣列。
原理:把多個相對便宜的硬盤組合起來,成為一個硬盤陣列組,使其性能達到甚至超過價格昂貴,容量巨大的硬盤。
優勢:
-
RAID在容量和管理上的優勢
-
易于靈活地進行容量拓展
-
“虛擬化”可使管理性極大的增強
-
RAID在性能上的優勢
-
“磁盤分塊”技術帶來性能的提高
-
RAID在可靠性和可用性上的優勢
-
通過冗余技術和熱備、熱換提升了可靠性
分級
RAID-0:條帶卷。將兩個以上磁盤并聯起來,成為一個大容量的磁盤。在存放數據時,以條帶的形式將數據塊(chunk)均勻分布在陣列的各個磁盤上,因為讀寫時都可以并行處理,所以在所有的級別中,RAID-0的速度是最快的。但是RAID-0既沒有冗余能力,也不具備容錯能力,如果一個物理磁盤損壞,所有數據都會丟失。
小結:
-
硬盤的讀、寫性能均得到提高
-
磁盤陣列可用空間:size=N*min(S1,S2,S3…)
-
無容錯能力
-
所需最少磁盤數為2塊
應用場景:視頻生成和編輯、圖像編輯及其他需要大的傳輸帶寬的操作。
RAID-1:鏡像卷。以鏡像為冗余方式,對虛擬磁盤上的數據做多份拷貝,放在成員磁盤上。在一些多線程操作系統中能有很好的讀取速度,理論上讀取速度等于硬盤數量的倍數,另外寫入速度有微小的降低。只要一個磁盤正常即可維持運作,可靠性最高。其原理為在主硬盤上存放數據的同時也在鏡像硬盤上寫一樣的數據。當主硬盤(物理)損壞時,鏡像硬盤則代替主硬盤的工作。因為有鏡像硬盤做數據備份,所以RAID 1的數據安全性在所有的RAID級別上來說是最好的。但無論用多少磁盤做RAID-1,僅算一個磁盤的容量,是所有RAID中磁盤利用率最低的一個級別。
小結:
-
讀性能提升,寫性能略有下降
-
磁盤陣列可用空間:size=min(S1,S2,S3…)
-
有冗余能力
-
所需最少磁盤數為2塊
應用場景:財務、金融等高可用、高安全的數據存儲環境
RAID-3:數據塊被分為更小的塊并行傳輸到各個成員磁盤上,同時計算XOR校驗數據存放到專用的校驗磁盤上,比較適于讀取大量數據時使用。
小結:
-
讀寫性能都比較好當有磁盤損壞時,對整體吞吐量影響較小
-
采用并行存取方式,主軸同步時吞吐量沒有提高校驗磁盤的寫性能有瓶頸
-
所需最少磁盤數為3塊
應用場景:視頻生成和圖像、視頻編輯等需要高吞吐量的應用環境
RAID-4:數據被分為更大的塊并行傳輸到各個成員磁盤上,同時計算XOR校驗數據存放到專用的校驗磁盤上,它與RAID 3不同的是它在分區時是以區塊為單位分別存在硬盤中.
小結:
-
提高了讀、寫性能,但是冗余校驗碼都是存放在單一硬盤上,所以此硬盤性能可能會很差
-
提高了硬盤容錯能力
-
陣列所需最少磁盤數為3塊
-
可用空間:size=(N-1)*min(S1,S2,S3…)
RAID-5:較RAID-4,采用獨立存取的陣列方式,校驗信息被均勻的分散到陣列的各個磁盤上。
小結:
-
提高了讀、寫性能
-
提升了硬盤的容錯能力
-
陣列的可用空間:size=(N-1)*min(S1,S2,…)
-
最少磁盤數為3塊
應用場景:文件服務器、Email服務器、Web服務器等環境數據庫應用
RAID-6:帶有兩種分布存儲的檢驗信息的磁盤陣列,它是對RAID5的擴展,主要是用于要求數據絕對不能出錯的場合,使用了二種奇偶校驗方法,需要N+2個磁盤。
小結:
-
讀、寫性能提升
-
可用空間:size=(N-2)*min(S1,S2,…)
-
提高了容錯能力
-
所需最少磁盤數為4塊
RAID-10:結合RAID-1和RAID-0,先鏡像,再條帶化。
小結:
-
讀、寫性能提升
-
可用空間:size=N*min(S1,S2,…)/2
-
有容錯能力:每組鏡像最多只能壞一塊
-
最少磁盤數為4塊
應用場景:多用于要求高可用性和高安全性的數據庫應用
RAID-01:結合RAID-0和RAID-1,先條帶化,再鏡像。
小結:
-
讀、寫性能提升
-
可用空間:size=N*min(S1,S2,…)/2
-
有容錯能力,但效果不理想
-
所需最少磁盤數為4塊
RAID-50:RAID 5與RAID 0的組合,先作RAID 5,再作RAID 0.
小結:
RAID 50在底層的任一組或多組RAID 5中出現1顆硬盤損壞時,仍能維持運作,不過如果任一組RAID 5中出現2顆或2顆以上硬盤損毀,整組RAID 50就會失效。
應用場景:大型數據庫服務器、應用服務器、文件服務器等應用
JBOD:將多個硬盤空間合并成一個大的邏輯硬盤。
小結:
-
沒有錯誤備援機制
-
size=sum(S1,S2,…)
常用RAID級別的比較
RAID的實現方式
-
硬件方式:主板上集成了相應的硬件和控制芯片,需要在BIOS界面中進行配置。硬件RAID的實現不占用其他硬件資源,穩定性和速度都比軟件RAID高,對于服務器來說,一般使用硬件RAID來提高計算機的性能。
-
軟件方式:通過內核的md(Multi Devices)機制來實現,由于沒有獨立的硬件和接口,需要占用一定的系統資源。
CentOS 6上軟件RAID的實現
-
模塊化工具mdadm
1.支持的RAID級別:RAID0,RAID1,RAID4,RAID5,RAID6,RAID10; 2.可以基于多塊硬盤、分區以及邏輯卷來實現RAID; 3.狀態信息保存在/proc/mdstat 4.已創建好的RAID位于/dev/md#
-
mdadm的語法格式
mdadm [mode] <raiddevice> [options] <component-devices> 模式: 創建:-C 裝配: -A 監控: -F 管理:-f, -r, -a <raiddevice>: /dev/md# <component-devices>: 任意塊設備 -C: 創建模式 -n #: 使用#個塊設備來創建此RAID; -l #:指明要創建的RAID的級別; -a {yes|no}:自動創建目標RAID設備的設備文件; -c CHUNK_SIZE: 指明塊大?。? -x #: 指明空閑盤的個數; -D:顯示raid的詳細信息; mdadm -D /dev/md# 管理模式: -f: 標記指定磁盤為損壞; -a: 添加磁盤 -r: 移除磁盤 觀察md的狀態: cat /proc/mdstat 停止md設備: mdadm -S /dev/md#
-
實現實例
創建一個大小為10G的RAID1,要求有一個空閑盤,而且CHUNK大小為128k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能
[root@CentOS6 ~]# mdadm -C /dev/md0 -n 2 -l 1 -c 128 /dev/sd{b,c} [root@CentOS6 ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Fri Aug 19 15:40:11 2016 Raid Level : raid1 Array Size : 5238720 (5.00 GiB 5.36 GB) Used Dev Size : 5238720 (5.00 GiB 5.36 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Fri Aug 19 15:40:27 2016 State : clean, resyncing Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Resync Status : 64% complete Name : CentOS6:0 (local to host CentOS6) UUID : f92a25b5:a1120042:521176b5:1964c806 Events : 10 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc [root@CentOS6 ~]# mkfs.ext4 /dev/md0 [root@CentOS6 ~]# echo "/dev/md1 /backup ext4 defaults,acl,nodiratime 0 0" >> /etc/fstab
-
注意:
-
創建好RAID之后,最好將相關信息保存到
/etc/mdadm
文件中,如是在下次啟動系統時會自動掛載啟用RAID# mdadm -D --scan > /etc/mdadm.conf
-
創建好RAID之后使用時要使用RAID設備來掛載,不要對原塊設備操作
-
在停止RAID之前要先卸載,而后使用
mdadm -S
命令 -
若要重啟RAID使用
mdadm -R
命令,但是由于操作系統或軟件版本的問題,關閉RAID后會找不到/dev/md#
塊設備,此時只要重啟系統便可,因為已把相關信息保存至/etc/mdadm.conf
文件
其他概念:
XOR算法:相同為假,不同為真。
熱備是指在不干擾當前系統的正常使用的情況下,用系統中另外一個正常的備用磁盤頂替失效磁盤。
熱換是指在不影響系統正常運轉的情況下,用正常的磁盤物理替換RAID陣列中的失效磁盤。
原創文章,作者:Jeason,如若轉載,請注明出處:http://www.www58058.com/37550