一、概述 RAID ( Redundant Array of Independent Disks )即獨立磁碟冗餘陣列,通常簡稱為磁碟陣列。簡單地說, RAID 是由多個獨立的高性能磁碟驅動器組成的磁碟子系統,從而提供比單個磁碟更高的存儲性能和數據冗餘高可靠性的存儲技術。RAID分為硬 RAID、全 ...
目錄
- 一、概述
- 二、RAID類型
- 三、 RAID 主要優勢有如下幾點
- 四、關鍵技術
- 五、RAID 等級介紹
- 六、實驗
- 七、管理模式
- 八、監控模式
- 九、增長模式,用於增加磁碟,為陣列擴容
- 十、裝配模式,軟RAID是基於系統的,當原系統損壞了,需要重新裝配RAID
一、概述
RAID ( Redundant Array of Independent Disks )即獨立磁碟冗餘陣列,通常簡稱為磁碟陣列。簡單地說, RAID 是由多個獨立的高性能磁碟驅動器組成的磁碟子系統,從而提供比單個磁碟更高的存儲性能和數據冗餘高可靠性的存儲技術。RAID分為硬 RAID、全軟 RAID、半軟 RAID。
二、RAID類型
1)硬體磁碟陣列(Hardware RAID)
簡單來說就是全部通過用硬體來實現RAID功能的就是硬RAID,比如:各種RAID卡,還有主板集成能夠做的RAID都是硬RAID。
硬RAID全面具備了自己的RAID控制/處理與I/O處理晶元,甚至還有陣列緩衝(Array Buffer),對CPU的占用率以及整體性能中最有優勢。
2)軟體磁碟陣列(Software RAID)
反而言之,通過用操作系統來完成RAID功能的就是軟RAID,比如:在Linux操作系統下,用3塊硬碟做RAID5。
直接通過軟體層實現的RAID,所有功能都是操作系統(OS)與CPU來完成,可想而知這是效率最低的一種RAID。
與硬RAID不同的是,軟RAID的各個成員盤對於操作系統來說是可見的,但操作系統並不把各個成員盤呈現給用戶,而只是把通過軟體層配置好的虛擬RAID捲呈現給用戶,使用戶可以像使用一個普通磁碟一樣使用RAID捲。
3)硬體輔助磁碟陣列(Hardware-Assisted RAID)
與硬 RAID 和 全軟 RAID 相比,半軟 RAID需要一張RAID卡,以及廠商所提供的驅動程式。
但是半軟半硬RAID 缺乏自己的I/O 處理晶元,所以這方面的工作仍要由CPU 與驅動程式來完成。而且,半軟半硬RAID 所採用的RAID 控制/處理晶元的能力一般都比較弱,不能支持高的RAID 等級。
三、 RAID 主要優勢有如下幾點
大容量
這是 RAID 的一個顯然優勢,它擴大了磁碟的容量,由多個磁碟組成的 RAID 系統具有海量的存儲空間。
高性能
RAID 的高性能受益於數據條帶化技術。通過數據條帶化, RAID 將數據 I/O 分散到各個成員磁碟上,從而獲得比單個磁碟成倍增長的聚合 I/O 性能。
可靠性
可用性和可靠性是 依賴於RAID 的數據冗餘特征。
可管理性
實際上, RAID 是一種虛擬化技術,它對多個物理磁碟驅動器虛擬成一個大容量的邏輯驅動器;RAID 可以動態增減磁碟驅動器,可自動進行數據校驗和數據重建,這些都可以 大大簡化管理工作。
四、關鍵技術
1)鏡像
鏡像是一種冗餘技術,為磁碟提供保護功能,防止磁碟發生故障而造成數據丟失。
對於 RAID 而言,採用鏡像技術 典型地 將會同時在陣列中產生兩個完全相同的數據副本,分佈在兩個不同的磁碟上。鏡像提供了完全的數據冗餘能力,當一個數據副本失效不可用時,外部系統仍可正常訪問另一副本,不會對應用系統運行和性能產生影響。
鏡像技術可以從多個副本進行併發讀取數據,提供更高的讀 I/O 性能,但不能並行寫數據,寫多個副本會會導致一定的 I/O 性能降低。
2)數據條帶
磁碟存儲的性能瓶頸在於磁頭尋道定位,它是一種慢速機械運動,無法與高速的 CPU 匹配。再者,單個磁碟驅動器性能存在物理極限, I/O 性能非常有限。
RAID 由多塊磁碟組成,數據條帶技術將數據以塊的方式分佈存儲在多個磁碟中,從而可以對數據進行併發處理。這樣寫入和讀取數據就可以在多個磁碟上同時進行,併發產生非常高的聚合 I/O ,有效提高了整體 I/O 性能,而且具有良好的線性擴展性。
3)數據校驗
鏡像具有高安全性、高讀性能,但冗餘開銷太昂貴。數據條帶通過併發性來大幅提高性能,然而對數據安全性、可靠性未作考慮。數據校驗是一種冗餘技術,它用校驗數據來提供數據的安全,可以檢測數據錯誤,併在能力允許的前提下進行數據重構。相對鏡像,數據校驗大幅縮減了冗餘開銷,用較小的代價換取了極佳的數據完整性和可靠性。數據條帶技術提供高性能,數據校驗提供數據安全性, RAID 不同等級往往同時結合使用這兩種技術。
五、RAID 等級介紹
常見RAID有RAID0 、 RAID1 、RAID5 、 RAID10、RAID01 五種 RAID 等級。標準等級是最基本的 RAID 配置集合,單獨或綜合利用數據條帶、鏡像和數據校驗技術。標準 RAID 可以組合,即 RAID 組合等級,滿足 對性能、安全性、可靠性要求更高的存儲應用需求。
1)RAID0
RAID0 是一種簡單的、無數據校驗的數據條帶化技術。實際上不是一種真正的 RAID ,因為它並不提供任何形式的冗餘策略。
RAID0 具有低成本、高讀寫性能、 100% 的高存儲空間利用率等優點,但是它不提供數據冗餘保護,一旦數據損壞,將無法恢復。
2)RAID1
RAID1 稱為鏡像,它將數據完全一致地分別寫到工作磁碟和鏡像 磁碟,它的磁碟空間利用率為 50% 。 RAID1 在數據寫入時,響應時間會有所影響,但是讀數據的時候沒有影響。 RAID1 提供了最佳的數據保護,一旦工作磁碟發生故障,系統自動從鏡像磁碟讀取數據,不會影響用戶工作。
RAID1 與 RAID0 剛好相反,是為了增強數據安全性使兩塊 磁碟數據呈現完全鏡像,從而達到安全性好、技術簡單、管理方便。 RAID1 擁有完全容錯的能力,但實現成本高。
3)RAID5
RAID5 應該是目前最常見的 RAID 等級,它在寫操作可以同時發生在完全不同的磁碟上。因此, RAID5 不存在併發寫操作時的校驗盤性能瓶頸問題。另外, RAID5 還具備很好的擴展性。當陣列磁碟 數量增加時,並行操作量的能力也隨之增長。
RAID5 兼顧存儲性能、數據安全和存儲成本等各方面因素,它可以理解為 RAID0 和 RAID1 的折中方案,是目前綜合性能最佳的數據保護解決方案。
4)RAID組合等級
目前在業界和學術研究中提到的 RAID 組合等級主要有 RAID00 、 RAID01 、 RAID10 、 RAID100 、 RAID30 、 RAID50 、 RAID53 、 RAID60 ,但實際得到較為廣泛應用的只有 RAID01 和 RAID10 兩個等級。所以這裡只講RAID01 和 RAID10。
1、RAID01 和 RAID10
RAID01 是先做條帶化再作鏡像,本質是對物理磁碟實現鏡像。
RAID10 是先做鏡像再作條帶化,是對虛擬磁碟實現鏡像。
RAID01 兼備了 RAID0 和 RAID1 的優點,它先用兩塊磁碟建立鏡像,然後再在鏡像內部做條帶化。 RAID01 的數據將同時寫入到兩個磁碟陣列中,如果其中一個陣列損壞,仍可繼續工作,保證數據安全性的同時又提高了性能。 RAID01 和 RAID10 內部都含有 RAID1 模式,因此整體磁碟利用率均僅為 50% 。
2、RAID01和RAID10的區別
RAID01比較缺乏安全性,且故障時難以恢復,實際應用中幾乎沒有人會選擇。
RAID10速度較快,故障容易恢復。
5)RAID 等級對比
類型 | 讀寫性能 | 安全性、可靠性 | 磁碟利用率 | 成本 |
---|---|---|---|---|
RAID0 | 最好(因並行性而提高) | 最差(完全無安全保障) | 最高(100%) | 最低 |
RAID1 | 讀和單個磁碟無分別,寫則要寫兩邊 | 最高(提供數據的百分之百備份) | 差(50%) | 最高 |
RAID5 | 讀:RAID5=RAID0(相近似的數據讀取速度);寫:RAID5<對單個磁碟進行寫入操作(多了一個奇偶校驗信息寫入) | RAID0與RAID1折中 | RAID0>RAID5>RAID 1 | RAID1>RAID5>RAID0 |
RAID10;RAID10 | 讀:RAID10=RAID0;寫:RAID10=RAID1 | RAID10=RAID1 | RAID10=RAID1(50%) | RAID10=RAID1 |
六、實驗
通常電腦功能既可以由硬體來實現,也可以由軟體來實現。對於 RAID 系統而言,自然也不例外,它可以採用軟體方式實現,也可以採用硬體方式實現,或者採用軟硬結合的方式實現。硬RAID自己電腦無法實現,這裡只講軟RAID實現。
軟RAID實現(通過mdadm軟體實現)
1)mdadm安裝與介紹
1、安裝
$ yum install -y mdadm
2、mdadm介紹
mdadm命令常見參數解釋:
-a {yes|no} 自動為其創建設備文件
-n 指定設備數量
-l 指定RAID級別
-C 創建
-v 顯示過程
-f 模擬設備損壞
-r 移除設備
-Q 查看摘要信息
-D 查看詳細信息
-S 停止RAID磁碟陣列
-c 指定數據塊大小(chunk)
-x 指定空閑盤(熱備磁碟)個數,空閑盤(熱備磁碟)能在工作盤損壞後自動頂替
2)RAID0實現
1、準備兩塊磁碟
/dev/sdb1
/dev/sdb2
2、創建raid
$ mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}
3、格式化
$ mkfs.ext4 /dev/md0
註意:在格式化時,可以指定-E選項下的stride參數指定條帶是塊大小的多少倍,有在一定程度上提高軟RAID性能,如塊預設大小為4k,而條帶大小預設為64k,則stride為16,這樣就避免了RAID每次存取數據時都去計算條帶大小,如:
$ mkfs.ext4 -E stride=16 -b 4096 /dev/md0
其中stride=chunk/block,為2的n次方
4、掛載
$ mkdir /opt/raid0
$ mount /dev/md0 /opt/raid0
$ lsblk -f
$ 添加自動掛載
$ echo 'UUID=4ca46e4a-9308-4f3e-9542-f93de83bb0e3 /opt/raid0 ext4 defaults 0 0' >> /etc/fstab
3)AID1實現
1、準備兩塊磁碟
/dev/sdc
/dev/sdd
2、創建raid
$ mdadm -C /dev/md1 -a yes -n 2 -l 1 /dev/sd{c,d}
3、格式化
$ mkfs.ext4 /dev/md1
註意:這個提示是說軟raid不能用作啟動分區。
4、掛載
$ mkdir /opt/raid1
$ mount /dev/md1 /opt/raid1
$ lsblk -f
$ 添加自動掛載
$ echo 'UUID=28171480-3db3-4b80-be78-e86693b5d8a2 /opt/raid1 ext4 defaults 0 0' >> /etc/fstab
4)RAID5實現
1、準備兩塊磁碟
/dev/sdc
/dev/sdd
2、創建raid
$ mdadm -C /dev/md5 -a yes -l 5 -n 3 /dev/sde{1,2,3}
3、格式化
$ mkfs.ext4 /dev/md5
4、掛載
$ mkdir /opt/raid5
$ mount /dev/md5 /opt/raid5
$ lsblk -f
$ 添加自動掛載
$ echo 'UUID=c617c439-641d-4347-9a37-c6c559f8abc5 /opt/raid5 ext4 defaults 0 0' >> /etc/fstab
5、增加熱備磁碟
$ mdadm /dev/md5 -a /dev/sdf
【科普熱備】
熱備的概念是 平時不參與陣列,就是一塊空盤,在陣列中某一塊盤壞掉了 熱備才頂上
七、管理模式
選項:-a(--add),-d(--del),-r(--remove),-f(--fail)
1)模擬損壞
$ mdadm /dev/md1 -f /dev/sdd
2)移除損壞的磁碟
$ mdadm /dev/md1 -r /dev/sdd
3)添加新的硬碟到已有陣列
$ mdadm /dev/md1 -a /dev/sdg
註意:
新增加的硬碟需要與原硬碟大小一致
如果原有陣列缺少工作磁碟(如raid1只有一塊在工作,raid5只有2塊在工作),這時新增加的磁碟直接變為工作磁碟,如果原有陣列工作正常,則新增加的磁碟為熱備磁碟。
4)停止陣列
選項:-S = --stop
# 必須先取消掛載
$ umount /opt/raid1
$ mdadm -S /dev/md1
八、監控模式
選項:-F
不常用,不做詳細說明。
九、增長模式,用於增加磁碟,為陣列擴容
選項:-G
示例,將上述raid5的熱備磁碟增加到陣列工作磁碟中
$ mdadm -G /dev/md2 -n 4
註意:-n 4 表示使用四塊工作磁碟
再次使用-D選項查看陣列詳細信息如下:
$ mdadm -D /dev/md1
十、裝配模式,軟RAID是基於系統的,當原系統損壞了,需要重新裝配RAID
選項:-A
示例:將上述已經停止的陣列重新裝配:
$ mdadm -A /dev/md1 /dev/sdc /dev/sdd
$ mount /dev/md1 /opt/raid1
實現自動裝配
mdadm運行時會自動檢查/etc/mdadm.conf 文件並嘗試自動裝配,因此第一次配置raid後可以將信息導入到/etc/mdadm.conf 中,命令如下:
$ mdadm -Ds >/etc/mdadm.conf