大廠小廠都在用的 RAID 軟件陣列技術,必須學起來!

1、經常使用RAID介紹

磁盤陣列的全名是(Redundant Arrays of Inexpensive Disk,RAID),中文意思是獨立冗餘磁盤陣列。RAID能夠經過技術(軟件或者硬件)將多個較小的磁盤整合成爲一個較大的磁盤設備,而這個較大的磁盤功能可不止存儲而已,它還具備數據保護的功能,整個RAID因爲選擇的級別(level)不一樣,而使得整合後的磁盤具備不一樣的功能,基本經常使用的level有如下幾種算法

RAID 0(條帶化存儲)— 性能最佳

圖片

  • RAID 0連續以位或字節爲單位分割數據,並行讀/寫於多個磁盤上,所以具備很高的數據傳輸率,但它沒有數據冗餘;
  • RAID 0只是單純地提升性能,並無爲數據的可靠性提供保證,並且其中的一個磁盤失效將影響到全部數據;
  • RAID 0不能應用於數據安全性要求高的場合。
RAID 1(鏡像存儲)— 完整備份

圖片

  • 經過磁盤數據鏡像實現數據冗餘,在成對的獨立磁盤上產生互爲備份的數據;
  • 當原始數據繁忙時,可直接從鏡像拷貝中讀取數據,所以RAID 1 能夠提升讀取性能;
  • RAID 1是磁盤陣列中單位成本最高的,但提供了很高的數據安全性和可用性。當個磁盤失效時, 系統能夠自動切換到鏡像磁盤上讀寫,而不須要重組失效的數據。
RAID 5 — 性能與數據備份的均衡考慮

圖片

  • N (N>=3) 塊盤組成陣列,一份數據產生N-1個條帶,同時還有1份校驗數據,共N份數據在N塊盤上循環均衡存儲
  • N塊盤同時讀寫,讀性能很高,但因爲有校驗機制的問題,寫性能相對不高;
  • (N-1) /N磁盤利用率;
  • 可靠性高,容許壞1塊盤,不影響全部數據。
RAID 6 — 更強大的數據備份

圖片

  • N (N>=4) 塊盤組成陣列,(N-2) N磁盤利用率;
  • 與RAID 5相比,RAID 6增長了第二個獨立的奇偶校驗信息塊;
  • 兩個獨立的奇偶系統使用不一樣的算法,即便兩塊磁盤同時失效也不會影響數據的使用;
  • 相對於RAID 5有更大的「寫損失"所以寫性能較差。
RAID 1+0(先作鏡像,再作條帶)

圖片

  • N (偶數,N>=4)塊盤兩兩鏡像後,再組合成一個RAID 0;
  • N/2磁盤利用率;
  • N/2塊盤同時寫入,N塊盤同時讀取;
  • 性能高,可靠性高。
RAID 0+1(先作條帶,在作鏡像)

圖片

  • 讀寫性能與RAID 10相同;
  • 安全性低於RAID 10;
  • 使用較少。

2、磁盤陣列的優勢

圖片

3、硬件磁盤陣列

圖片

磁盤陣列介紹

所謂的磁盤陣列是經過磁盤陣列卡(上圖所示)來完成磁盤陣列的功能,磁盤陣列卡上面有一塊專門的芯片用於處理RAID任務,所以在性能方面會比價好。在不少任務(例如RAID5奇偶校驗值計算)中,磁盤陣列並不會重複消耗本來系統的I/O總線,理論上性能會較佳,此外目前通常的中高級磁盤陣列卡都支持熱插拔,即在不關機的狀況下抽換損壞的磁盤,在系統的恢復和數據的可靠性方面很是好用!緩存

陣列卡介紹
  • 陣列卡是用來實現RAID功能的板卡
  • 一般是由I/O處理器、硬盤控制器、硬盤鏈接器和緩存等一系列組件構成的
  • 不一樣的RAID卡支持的RAID功能不一樣:
  • 例如支持RAID0、RAID一、 RAID五、 RAID10等
  • RAID卡的接口類型:
  • IDE接口、SCSI接口、 SATA接口和SAS接口
陣列卡的緩存
  • 緩存(Cache)是RAID卡與外部總線交換數據的場所,RAID卡先將數據傳送到緩存,再由緩存和外邊數據總線交換數據。
  • 緩存的大小與速度是直接關係到RAID卡的實際傳輸速度的重要因素。
  • 不一樣的RAID卡出廠時配備的內存容量不一樣,通常爲幾兆到數百兆容量不等。

軟件磁盤陣列的設置

這邊經過一個案例來詳細講解配置步驟:安全

  • 爲Linux服務器添加4塊SCSI硬盤;
  • 使用mdadm軟件包,構建RAID5磁盤陣列,提升磁盤存儲的性能和可靠性。
在VMware中給Linux添加4塊SCSI硬盤

具體步驟能夠參考此篇博客第三段:磁盤管理的檢測並確認新硬盤服務器

圖片

檢查是否安裝mdadm軟件包

使用rpm -q mdadm進行檢查,以下圖表明已安裝過mdadm軟件,未安裝的話使用yum install -y mdadm 進行安裝。性能

圖片

新磁盤劃分主分區:類型fd

修改 /dev/sdb、/dev/sdc、/dev/sdd和 /dev/sde 磁盤spa

圖片

圖片

圖片

圖片

建立RAID 5 設備

圖片

#格式mdadm -C -v /dev/md0 -a yes -l5 -n3 /dev/sd[bcd]1 -x1 /dev/sde1

圖片

查看RAID磁盤詳細信息
#查看RAID建立進度的兩種方式:
[root@cheng0307 ~]# cat /proc/mdstat 
[root@cheng0307 ~]# mdadm -D /dev/md0 

#每5秒鐘動態顯示建立過程
[root@cheng0307 ~]# watch -n 5 'cat /proc/mdstat'

#檢查某塊磁盤是否已作RAID
[root@cheng0307 ~]# mdadm -E /dev/sdb1

查看RAID建立進度的兩種方式.net

圖片

顯示內容解釋:code

[root@cheng0307 ~]# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0]
      41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

#mdo:表示後面建立raid5 包含了sdd1,sde1,sdc1,sdb1
#其中sde1(s)表示是備份
#第四行的uuu:表示前面三塊硬盤都是正常的

檢查/dev/sdb1磁盤是否已作RAID。blog

圖片

也可使用mdadm -D /dev/md0進行查看。接口

圖片

對建立的RAID5 進行格式化並掛載
#格式化
[root@cheng0307 ~]# mkfs -t xfs /dev/md0 
#掛載(非永久)
[root@cheng0307 ~]# mount /dev/md0 /opt/

圖片

模擬故障檢測RAID功能

進入掛載目錄隨便建立一些文件和文檔

圖片

模擬一塊磁盤故障,並查看從新建立的過程。

圖片

建立相關配置文件

建立/etc/mdadm.conf 配置文件,方便管理軟RAID的配置,如:啓動、中止等。

相關命令:

[root@cheng0307 opt]# echo 'DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1' > /etc/mdadm.conf

[root@cheng0307 opt]# mdadm --detail --scan >> /etc/mdadm.conf 

圖片

中止和啓動RAID

mdadm命令其餘經常使用選項:

-r:移除設備
-a:添加設備
-S:中止RAID
-A:啓動RAID
mdadm /dev/md0 -f /dev/sdc1 — 將指定磁盤設爲故障
mdadm /dev/md0 -r /dev/sdc1 — 移除指定磁盤
mdadm /dev/md0 -a /dev/sdc1 — 添加指定磁盤

手動刪除故障磁盤和添加新磁盤

圖片

將RAID 中止和啓動

若是沒有第七步進行/etc/mdadm,conf配置文件的添加,中止後掃描不到配置文件將沒法啓動。

mdadm -S /dev/md0
mdadm -As /dev/md0

#-s:指查找 /etc/mdadm.conf文件中的配置信息

圖片

連接:  https://blog.csdn.net/weixin_...