Linux磁盤陣列(RAID)概述與實戰


前言

硬件磁盤陣列(Hardware RAID)

簡單來說就是全部通過用硬件來實現RAID功能的就是硬RAID,比如:各種RAID卡,還有主板集成能夠做的RAID都是硬RAID。 所以硬 RAID 就是用專門的RAID控制器(RAID 卡)將硬盤和電腦連接起來,RAID控制器負責將所有的RAID成員磁盤配置成一個虛擬的RAID磁盤卷。對於操作系統而言,他只能識別到由RAID控制器配置后的虛擬磁盤,而無法識別到組成RAID的各個成員盤。硬RAID全面具備了自己的RAID控制/處理與I/O處理芯片,甚至還有陣列緩沖(Array Buffer),對CPU的占用率以及整體性能中最有優勢。

軟件磁盤陣列(Software RAID)

反而言之,通過用操作系統來完成RAID功能的就是軟RAID,比如:在Linux操作系統下,用3塊硬盤做RAID5。也就是不使用RAID控制器(業界稱其為RAID 協處理器―RAID Co-Processor )與I/O芯片,直接通過軟件層實現的RAID,所有功能都是操作系統(OS)與CPU來完成,可想而知這是效率最低的一種RAID。 與硬RAID不同的是,軟RAID的各個成員盤對於操作系統來說是可見的,但操作系統並不把各個成員盤呈現給用戶,而只是把通過軟件層配置好的虛擬RAID卷呈現給用戶,使用戶可以像使用一個普通磁盤一樣使用RAID卷。

一、服務器及 RAID 磁盤陣列介紹

RAID 將一組硬盤連結成來,組成一個陣列,以避免單個硬盤損壞而帶來的數據損失, 同時亦提供了比單個硬盤高的可用性及容錯性。常見的組合方式有:RAID0、RAID1、RAID5、RAID6、RAID01、RAID10,下面分別介紹它們的特性。

1、RAID 0

RAID0 俗稱“條帶”,它將兩個或多個硬盤組成一個邏輯硬盤,容量是所有硬盤之和, 因為是多個硬盤組合成一個,故可並行寫操作,寫入速度提高,但此方式硬盤數據沒有冗余, 沒有容錯,一旦一個物理硬盤損壞,則所有數據均丟失。因而,RAID0 適合於對數據量大, 但安全性要求不高的場景,比如音像、視頻文件的存儲等

2、RAID 1

RAID1 俗稱“鏡像”,它最少由兩個硬盤組成,且兩個硬盤上存儲的數據均相同,以實現數據冗余。RAID1 讀操作速度有所提高,寫操作理論上與單硬盤速度一樣,但由於數據需要同時寫入所有硬盤,實際上稍為下降。容錯性是所有組合方式里最好的,只要有一塊硬盤正常,則能保持正常工作。但它對硬盤容量的利用率則是最低,只有 50%,因而成本也是最高。RAID1 適合對數據安全性要求非常高的場景,比如存儲數據庫數據文件之類。

3、RAID 5

RAID5 最少由三個硬盤組成,它將數據分散存儲於陣列中的每個硬盤,並且還伴有一個數據校驗位,數據位與校驗位通過算法能相互驗證,當丟失其中的一位時,RAID 控制器能通過算法,利用其它兩位數據將丟失的數據進行計算還原。因而 RAID5 最多能允許一個硬盤損壞,有容錯性。RAID5 相對於其它的組合方式,在容錯與成本方面有一個平衡,因而受到大多數使用者的歡迎。一般的磁盤陣列,最常使用的就是 RAID5 這種方式

4、RAID 6

RAID6 是在 RAID5 的基礎上改良而成的,RAID6 再將數據校驗位增加一位,所以允許損壞的硬盤數量也由RAID5 的一個增加到二個。由於同一陣列中兩個硬盤同時損壞的概率非常少,所以,RAID6 用增加一塊硬盤的代價,換來了比 RAID5 更高的數據安全性

5、RAID 1+0

RAID1+0 是先將數據進行鏡像操作,然后再對數據進行分組,RAID 1 在這里就是一個冗余的備份陣列,而RAID 0 則負責數據的讀寫陣列。至少要四塊盤,兩塊做 raid0,另兩塊做raid1,RAID 10 對存儲容量的利用率和 RAID 1 一樣低,只有 50%. Raid1+0 方案造成了 50%的磁盤浪費,但是它提供了 200%的速度和單磁盤損壞的數據安全性,並且當同時損壞的磁盤不在同一 Raid1 中,就能保證數據安全性、RAID 10 能提供比RAID 5 更好的性能。這種新結構的可擴充性不好,使用此方案比較昂貴

以上是當前主流的 RAID 組合方式,至於如何選擇,則是結合到使用者對數據安全性、數據冗余、數據可用性、投入成本等各方面的綜合衡量。

二、陣列卡介紹

陣列卡的全稱叫磁盤陣列卡 是用來做 RAID 的。磁盤陣列是一種把若干硬磁盤驅動器按照一定要求組成一個整體,整個磁盤陣列由陣列控制器管理的系統。冗余磁盤陣列RAID(Redundant Array of Independent Disks)技術 1987 年由加州大學伯克利分校提出, 最初的研制目的是為了組合小的廉價磁盤來代替大的昂貴磁盤,以降低大批量數據存儲的費用(當時 RAID 稱為 dundant Array of Inexpensive Disks 廉價的磁盤陣列),同時也希望采用冗余信息的方式,使得磁盤失效時不會使對數據的訪問受損失,從而開發出一定水平的數據保護技術。

1、陣列卡接口類型

接口類型目前主要有幾種:IDE 接口、SCSI 接口、SATA 接口和 SAS 接口。

(1)IDE 接口

IDE 的英文全稱為“Integrated Drive Electronics”,即“電子集成驅動器”,它的本意是指把“硬盤控制器”與“盤體”集成在一起的硬盤驅動器。把盤體與控制器集成在一起的做法減少了硬盤接口的電纜數目與長度,數據傳輸的可靠性得到了增強,硬盤制造起來變得更容易,因為硬盤生產廠商不需要再擔心自己的硬盤是否與其它廠商生產的控制器兼容,對用戶而言,硬盤安裝起來也更為方便。IDE 這一接口技術從誕生至今就一直在不斷發展,性能也不斷的提高,其擁有的價格低廉、兼容性強的特點,為其造就了其它類型硬盤無法替代的地位。 IDE 代表着硬盤的一種類型,但在實際的應用中,人們也習慣用 IDE 來稱呼最早出現 IDE 類型硬盤 ATA-1,這種類型的接口隨着接口技術的發展已經被淘汰了,而其后發展分支出更多類型的硬盤接口,比如 ATA、Ultra ATA、DMA、Ultra DMA 等接口都屬於 IDE 硬盤。此外, 由於 IDE 口屬於並行接口,因此為了和 SATA 口硬盤相區別,IDE 口硬盤也叫PATA 口硬盤。

(2)SCSI 接口

SCSI 的英文全稱為“Small Computer System Interface”(小型計算機系統接口), 是同 IDE 完全不同的接口,IDE 接口是普通 PC 的標准接口,而 SCSI 並不是專門為硬盤設計的接口,是一種廣泛應用於小型機上的高速數據傳輸技術。SCSI 接口具有應用范圍廣、多任務、帶寬大、CPU 占用率低,以及支持熱插拔等優點,但較高的價格使得它很難如 IDE 硬盤般普及,因此 SCSI 硬盤主要應用於中、高端和高檔工作站中。SCSI 硬盤和普通 IDE 硬盤相比有很多優點:接口速度快,並且由於主要用於服務器,因此硬盤本身的性能也比較高, 硬盤轉速快,緩存容量大,CPU 占用率低,擴展性遠優於 IDE 硬盤,並且支持熱插拔。

(3)3.SATA 接口

使用 SATA(Serial ATA)口的硬盤又叫串口硬盤,是目前 PC 硬盤的主流。2001 年,由Intel、APT、Dell、IBM、希捷、邁拓這幾大廠商組成的 Serial ATA 委員會正式確立了 Serial ATA 1.0 規范,2002 年,雖然串行 ATA 的相關設備還未正式上市,但 Serial ATA 委員會已搶先確立了 Serial ATA 2.0 規范。Serial ATA 采用串行連接方式,串行 ATA 總線使用嵌入式時鍾信號,具備了更強的糾錯能力,與以往相比其最大的區別在於能對傳輸指令(不僅僅是數據)進行檢查,如果發現錯誤會自動矯正,這在很大程度上提高了數據傳輸的可靠性。串行接口還具有結構簡單、支持熱插拔的優點。 串口硬盤是一種完全不同於並行 ATA 的硬盤接口類型,由於采用串行方式傳輸數據而知名。相對於並行 ATA 來說,就具有非常多的優勢。首先,Serial ATA 以連續串行的方式傳送數據,一次只會傳送 1 位數據。這樣能減少 SATA 接口的針腳數目,使連接電纜數目變少, 效率也會更高。實際上,Serial ATA 僅用四支針腳就能完成所有的工作,分別用於連接電纜、連接地線、發送數據和接收數據,同時這樣的架構還能降低系統能耗和減小系統復雜性。其次,Serial ATA 的起點更高、發展潛力更大,Serial ATA 1.0 定義的數據傳輸率為 150MB/s,這比並行 ATA(即 ATA/133)所能達到 133MB/s 的最高數據傳輸率還高,而在 Serial ATA 2.0 的數據傳輸率達到 300MB/s,SATA Revision 3.0 可達到 750 MB/s 的最高數據傳輸率。

(4)SAS 接口

SAS 是新一代的 SCSI 技術,和現在流行的 Serial ATA(SATA)硬盤相同,都是采用串行

技術以獲得更高的傳輸速度,並通過縮短連結線改善內部空間等。SAS 是並行 SCSI 接口之后開發出的全新接口。此接口的設計是為了改善存儲系統的效能、可用性和擴充性,提供與串行 ATA (Serial ATA,縮寫為 SATA)硬盤的兼容性。 SAS 的接口技術可以向下兼容 SATA。SAS 系統的背板(Backpanel)既可以連接具有雙端口、高性能的 SAS 驅動器,也可以連接高容量、低成本的 SATA 驅動器。因為 SAS 驅動器的端口與 SATA 驅動器的端口形狀看上去類似,所以 SAS 驅動器和 SATA 驅動器可以同時存在於一個存儲系統之中。但需要注意的是,SATA 系統並不兼容 SAS,所以 SAS 驅動器不能連接到SATA 背板上。由於 SAS 系統的兼容性,IT 人員能夠運用不同接口的硬盤來滿足各類應用在容量上或效能上的需求,因此在擴充存儲系統時擁有更多的彈性,讓存儲設備發揮最大的投資效益。 串行 SCSI 是點到點的結構,可以建立磁盤到控制器的直接連接。具有以下特點: –更好的性能 點到點的技術減少了地址沖突以及菊花鏈連結的減速; 為每個設備提供了專用的信號通路來保證最大的帶寬; 全雙工方式下的數據操作保證最有效的數據吞吐量; –簡便的線纜連結 更細的電纜搭配更小的連接器; –更好的擴展性 可以同時連結更多的磁盤設備。

2、陣列卡的緩存

緩存(Cache)是 RAID 卡與外部總線交換數據的場所,RAID 卡先將數據傳送到緩存, 再由緩存和外邊數據總線交換數據。它是 RAID 卡電路板上的一塊存儲芯片,與硬盤盤片相比,具有極快的存取速度,實際上就是相對低速的硬盤盤片與相對高速的外部設備(例如內存)之間的緩沖器。緩存的大小與速度是直接關系到 RAID 卡的實際傳輸速度的重要因素,大緩存能夠大幅度地提高數據命中率從而提高 RAID 卡整體性能。多數 RAID 卡都配備了一定數量的內存作為高速緩存使用。不同的 RAID 卡出廠時配備的內存容量不同,一般為幾兆到數百兆容量不等,這取決於磁盤陣列產品的應用范圍。

Write Through 和 Write Back 是陣列卡緩存的兩種使用方式,也稱為透寫和回寫。Write Through 也是 RAID 陣列卡的默認模式。當選用 write through 方式時,系統的寫磁盤操作並不利用陣列卡的 Cache,而是直接與磁盤進行數據的交互。而 write Back 方式則利用陣列 Cache 作為系統與磁盤間的二傳手,系統先將數據交給 Cache,然后再由 Cache 將數據傳給磁盤。

三、硬RAID配置實戰

在啟動電腦的時候按CTRL+R 進入 RAID 設置見面如下圖

1、創建邏輯磁盤

按照屏幕下方的虛擬磁盤管理器提示,在VD Mgmt菜單(可以通過CTRL+P/CTRL+N切換菜單),按F2展開虛擬磁盤創建菜單

2、在虛擬磁盤創建窗口,按回車鍵選擇”Create New VD”創建新虛擬磁盤

3、在RAID Level選項按回車,可以出現能夠支持的RAID級別,RAID卡能夠支持的級別有RAID0/1/5/10/50/60,根據具體配置的硬盤數量不同,這個位置可能出現的選項也會有所區別。 選擇不同的級別,選項會有所差別。選擇好需要配置的RAID級別(我們這里以RAID5為例),按回車確認。

4、確認RAID級別以后,按向下方向鍵,將光標移至Physical Disks列表中,上下移動至需要選擇的硬盤位置,按空格鍵來選擇(移除)列表中的硬盤,當選擇的硬盤數量達到這個RAID級別所需的要求時,Basic Settings的VD Size中可以顯示這個RAID的默認容量信息。有X標志為選中的硬盤。 選擇完硬盤后按Tab鍵,可以將光標移至VD Size欄,VD Size可以手動設定大小,也就是說可以不用將所有的容量配置在一個虛擬磁盤中。

6、上述的配置確認完成后,按Tab鍵,將光標移至OK處,按回車,會出現如下的提示,如果是一個全新的陣列,建議進行初始化操作,如果配置陣列的目的是為了恢復之前的數據,則不要進行初始化。按回車確認即可繼續

7、配置完成后,會返回至VD Mgmt主界面,將光標移至圖中Virtual Disk 0處,按回車

8、可以看到剛才配置成功的虛擬磁盤信息,查看完成后按esc鍵可以返回主界面

9、在此界面,將光標移至圖中Virtual Disk 0處,按F2鍵可以展開對此虛擬磁盤操作的菜單。 注:左邊有+標志的,將光標移至此處,按向右方向鍵,可以展開子菜單,按向左方向鍵,可以關閉子菜單

10、如下圖紅框所示,可以對剛才配置成功的虛擬磁盤(Virtual Disk 0)進行初始化(Initialization),一致性校驗(Consistency Check),刪除,查看屬性等操作

2、配置熱備(Hot spare)

首先要已經有存在的磁盤組(陣列),我們這里舉例為已經配置了兩個陣列,陣列0是由0、1、2三塊物理磁盤配置的RAID5,陣列1是由4、5兩塊物理磁盤配置的RAID1,如圖:

2、按CTRL+N 切換至PD Mgmt界面,可以看到4號硬盤的狀態是Ready。

3、將光標移至4號硬盤,按F2,在彈出的菜單中,選擇Make Global HS,配置全局的熱備盤

四、軟RAID配置試驗

1、管理軟RAID基本命令

軟RAID創建及管理命令mdadm詳解
一、創建模式
選項:-C
專用選項:
-l 級別 -n 設備個數 -a {yes|no} 自動為其創建設備文件 -c 指定數據塊大小(chunk) -x 指定空閑盤(熱備磁盤)個數,空閑盤(熱備磁盤)能在工作盤損壞后自動頂替 -v 指定目錄 查看RAID級別的兩個方法 第一個方法 cat /proc/mdstat //查看狀態 第二個方法 mdadm -D 目錄 //查看更詳細信息

2、軟RAID配置實驗

(1)RAID0配置試驗

需要兩塊磁盤

1、磁盤分區格式需要改為fd(raid格式)

[root@localhost ~]# fdisk /dev/sdb 命令(輸入 m 獲取幫助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p ‘基本分區’ 分區號 (1-4,默認 1):1 起始 扇區 (2048-2097151,默認為 2048): 將使用默認值 2048 Last 扇區, +扇區 or +size{K,M,G} (2048-2097151,默認為 2097151): 將使用默認值 2097151 分區 1 已設置為 Linux 類型,大小設為 1023 MiB 命令(輸入 m 獲取幫助):t 已選擇分區 1 Hex 代碼(輸入 L 列出所有代碼):fd 已將分區“Linux”的類型更改為“Linux raid autodetect”

2.創建RAID0

[root@localhost ~]# mdadm -C -v /dev/md0 -l0 -n2 /dev/sd[b-c]1 '//在/dev/md0目錄下創建RAID 0' [root@localhost ~]# cat /proc/mdstat '//查看raid 第一種方法' [root@localhost ~]# mdadm -D /dev/md0 '//查看raid 第二種方法'
3.格式化分區並掛載 [root@localhost ~]# mkfs.xfs /dev/md0 [root@localhost ~]# mkdir /raid0 '//創建raid0掛載目錄' [root@localhost ~]# mount /dev/md0 /raid0/ '//將/dev/md0 掛載到/raid0' [root@localhost ~]# df -hT '//查看掛載是否成功'

(2)RAID1配置

1.創建raid1 將磁盤類型換成fd 這個參照上面raid0的操作步驟

[root@localhost ~]# mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[d-e]1 -x1 /dev/sdf1 '//創建將sdd1,sde1創建raid1,並將sdf1作為備用磁盤'

2.查看狀態信息

[root@localhost ~]# cat /proc/mdstat '//查看狀態信息' [root@localhost ~]# mdadm -D /dev/md1 '//查看詳細信息'

3.格式化並掛載

[root@localhost ~]# mkfs.xfs /dev/md1 '//格式化分區' [root@localhost ~]# mkdir /raid1 '//創建raid1掛載目錄' [root@localhost ~]# mount /dev/md1 /raid1 '//掛載' [root@localhost ~]# df -hT

(3)RAID5配置

1.創建raid5

[root@localhost ~]# mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[g-j]1 -x1 /dev/sdk1 '//用sdg1,sdh1,sdj1創建raid5,將sdk1作為備用磁盤'

2.查看磁盤信息

[root@localhost ~]# cat /proc/mdstat '//查看狀態信息' [root@localhost ~]# mdadm -D /dev/md5 '//查看詳細信息'

3.刪除一塊磁盤,看備用磁盤是否自動頂替掉壞掉的磁盤

[root@localhost ~]# mdadm -f /dev/md5 /dev/sdg1 '//刪除sdg1' mdadm: set /dev/sdg1 faulty in /dev/md5 '//提示sdg1已經損壞' [root@localhost ~]# mdadm -D /dev/md5 '//查看詳細信息' /dev/md5: Version : 1.2 Creation Time : Mon Nov 4 23:53:59 2019 Raid Level : raid5 Array Size : 41908224 (39.97 GiB 42.91 GB) Used Dev Size : 20954112 (19.98 GiB 21.46 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Tue Nov 5 00:00:54 2019 State : clean, degraded, recovering Active Devices : 2 Working Devices : 3 Failed Devices : 1 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Consistency Policy : resync Rebuild Status : 22% complete Name : localhost.localdomain:5 (local to host localhost.localdomain) UUID : e473255b:68d70fc5:3e26dce3:9a98f13e Events : 23 Number Major Minor RaidDevice State 3 8 161 0 spare rebuilding /dev/sdk1 '//發現備用sdk1已經頂替上來' 1 8 113 1 active sync /dev/sdh1 4 8 145 2 active sync /dev/sdj1 0 8 97 - faulty /dev/sdg1

4.格式化並掛載

[root@localhost ~]# mkdir /raid5 '//創建掛載點目錄' [root@localhost ~]# mkfs.xfs /dev/md5 '//格式化' [root@localhost ~]# mount /dev/md5 /raid5 '//掛載'

4、RAID 1+0 實驗

RAID 1+0 先做raid1再做raid0 1.連續創建兩個raid1

[root@localhost ~]# mdadm -C -v /dev/md0 -l1 -n2 /dev/sd[b-c]1 '//創建第一個raid1' [root@localhost ~]# mdadm -C -v /dev/md1 -l1 -n2 /dev/sd[d-e]1 '//創建第二個raid1'

2.查看詳細信息

[root@localhost ~]# mdadm -D /dev/md0 [root@localhost ~]# mdadm -D /dev/md1

3.創建raid1+0

[root@localhost ~]# mdadm -C -v /dev/md10 -l0 -n2 /dev/md0 /dev/md1

4.查看詳細信息

[root@localhost ~]# mdadm -D /dev/md10 /dev/md10: Version : 1.2 Creation Time : Tue Nov 5 00:19:07 2019 Raid Level : raid0 Array Size : 41875456 (39.94 GiB 42.88 GB) '//創建成功' Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Tue Nov 5 00:19:07 2019 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Chunk Size : 512K Consistency Policy : none Name : localhost.localdomain:10 (local to host localhost.localdomain) UUID : 6c3209a3:71bece7a:9b3129be:05a436e0 Events : 0 Number Major Minor RaidDevice State 0 9 0 0 active sync /dev/md0 1 9 1 1 active sync /dev/md1

https://cloud.tencent.com/developer/article/1690997

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM