1. 程式人生 > >Linux下實現最常用的磁碟陣列RAID5

Linux下實現最常用的磁碟陣列RAID5

(一) RAID簡介:
獨立磁碟冗餘陣列(RAID, Redundant Array of Independent Disks),舊稱廉價磁碟冗餘陣列(RAID,Redundant Array of Inexpensive Disks),簡稱硬碟陣列。其基本思想就是把多個相對便宜的硬碟組合起來,成為一個硬碟陣列組,使效能達到甚至超過一個價格昂貴、容量巨大的硬碟。根據選擇的版本不同,RAID比單個硬碟有以下一個或多個方面的好處:增強資料整合度,增強容錯功能,增加處理量或容量。另外,磁碟陣列對於電腦來說, 看起來就像一個單獨的硬碟或邏輯儲存單元。分為RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50
簡單來說,RAID把多個硬碟組合成為一個邏輯扇區,因此,作業系統只會把它當作一個硬碟。RAID常被用在伺服器電腦上,並且常使用完全相同的硬碟作為組合。由於硬碟價格的不斷下降與RAID功能更加有效地與主機板整合,它也成為了玩家的一個選擇,特別是需要大容量儲存空間的工作,如:視訊與音訊製作

最初的RAID分成了不同的等級,每種等級都有其理論上的優缺點,不同的等級在兩個目標間取得平衡,分別是增加資料可靠性以及增加儲存器(群)讀寫效能。這些年來,出現了對於RAID觀念不同的應用
Linux下實現最常用的磁碟陣列RAID5
RAID 5 是一種儲存效能、資料安全和儲存成本兼顧的儲存解決方案。 RAID 5可以理解為是RAID 0和RAID 1的折中方案。RAID 5具有和RAID 0相近似的資料讀取速度,只是多了一個奇偶校驗資訊,寫入資料的速度比對單個磁碟進行寫入操作稍慢。同時由於多個數據對應一個奇偶校驗資訊,RAID 5的磁碟空間利用率要比RAID 1高,儲存成本相對較低,是目前運用較多的一種解決方案

(二) 各軟RAID的區別:
RAID4,奇偶備份,最少3塊硬碟,其中一塊硬碟作為奇偶校驗備份,那麼任意一塊硬碟損壞都可以其他盤和校驗盤通過奇偶校驗還原資料
RAID5,將奇偶校驗資料庫分散到各個硬碟,最少3塊硬碟
RAID6,橫向和縱向都生成奇偶校驗,最少4塊硬碟
RAID0,速度最快,不冗餘,最少2塊硬碟,提高2倍速度(硬碟越多,理論速度提高越多),但任何一塊硬碟損壞,則所有資料報廢
RAID1,50%冗餘;——RAID0+1
(三) Linux實現RAID5各引數詳解與注意事項:
需要的磁碟個數:三塊以上
我們在這裡新增四塊硬碟,其中3塊做磁碟陣列,1塊做預備(spare)磁碟
注意:raid5 的磁碟使用率是N-1 也就是說四個30G的硬碟可用空間是90G
實驗步驟:

  1. 檢視一下系統中的磁碟裝置fdisk -l
    Linux下實現最常用的磁碟陣列RAID5
  2. 接下來建立raid了使用的命令是mdadm,如果沒有請先安裝mdadm軟體包(rpm -qa |grep mdadm)
    注意:RHEL 6.5的光碟中有
    mdadm --create --auto=yes /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[b-e]
    Linux下實現最常用的磁碟陣列RAID5
    引數解釋:
    --create //表示要建立raid
    --auto=yes /dev/md0 //是否自動檢測,新建立的軟體磁碟陳列裝置為md0,md序號可以為0-9
    --level=5 //磁碟陣列的等級,這裡是raid5
    -raid-devices //所需使用的磁碟數量
    --spare-devices //新增作為預備(spare)磁碟的塊數
    /dev/sd[b-e] //磁碟陣列所使用的裝置,還可以寫成“/dev/sdb /dev/sdc /dev/sdd /dev/sde”同樣可以縮寫為:mdadm –C –a yes /dev/md0 –l5 –n3 –x1 /dev/sd[b-e]
    檢視RAID是否成功的建立是否執行的正常,有兩種方法
  3. 檢視詳細資訊:mdadm --detail /dev/md0命令檢視RAID的詳細資訊
    Linux下實現最常用的磁碟陣列RAID5

  4. 較為簡單的檢視:可以直接檢視cat /proc/mdstat的檔案看到RAID執行的情況
    Linux下實現最常用的磁碟陣列RAID5
    U代表沒有問題、_則表示不正常;磁碟後面的(S)表示作為預備
    格式化並且掛載和使用建立的RAID
    mkfs.ext4 /dev/md0 //格式化 raid5磁碟為 md0
    Linux下實現最常用的磁碟陣列RAID5
    mkdir /raid
    mount /dev/md0 /raid //將md0 掛載到/raid目錄下
    檢視一下掛載情況
    df –hT
    Linux下實現最常用的磁碟陣列RAID5
    試一下新加上的RAID是不是可以使用,向裡面寫入檔案Linux下實現最常用的磁碟陣列RAID5
    設定開機自動啟動RAID以及自動掛載
    讓RAID開機啟動, RIAD配置檔名字為mdadm.conf , 這個檔案預設是不存在的,要自己建立.該配置檔案存在的主要作用是系統啟動的時候能夠自動載入軟RAID,同時也方便日後管理. 說明下mdadm.conf檔案主要由以下部分組成:
    DEVICES選項制定組成RAID所有裝置,
    ARRAY選項指定陣列的裝置名、RAID級別、陣列中活動裝置的數目以及裝置的UUID號
    注意:此檔案如果不建立下次開機重啟後/dev/md0將會被系統自動識別為其他非/dev/md0名稱的裝置,對於實現開機掛載和使用都不方便
    自動啟動raid
    先建立/etc/mdadm.conf 這個檔案
    mdadm --detail --scan > /etc/mdadm.conf
    要對這個檔案做一下改動:將組成RAID5的裝置名全部追加到配置檔案中
    Linux下實現最常用的磁碟陣列RAID5
    在設定RAID的自動掛載
    修改檔案 vi /etc/fstab
    在裡面加上一行 /dev/md0 /raid ext4 defaults 0 0
    模擬RAID5中的磁碟損壞,驗證spare磁碟的功能(在raid5中允許一塊磁碟的損壞,也就是我們設定的spare磁碟會立即的替換壞掉的磁碟進行raid的重建,保障資料的安全性)
    mdadm --manage /dev/md0 --fail /dev/sdd //使用此命令設定sdd成為出錯的狀態(或可簡寫為mdadm /dev/md0 -f /dev/sdd)
    Linux下實現最常用的磁碟陣列RAID5
    再來檢視一下磁碟的資訊:mdadm –-detail /dev/md0
    Linux下實現最常用的磁碟陣列RAID5

簡單的檢視一下RAID的情況:
Linux下實現最常用的磁碟陣列RAID5
建立完成也就是說明raid5 已經自動的恢復了!
檢視一下raid5是不是可以正常使用!
向裡面寫寫資料,這時可以發現,RAID5還可正常使用,對資料不造成任何影響
Active sync /dev/sdb1 # raid的真成員
spare /dev/sdc1 #raid備用成員
如果想重新新增/dev/sdd進RAID5,可做以下操作:
mdadm /dev/md0 --remove /dev/sdd //將壞掉的磁碟sdd從raid中
mdadm /dev/md0 -a /dev/sdd //將/dev/sdd加入陣列
mdadm --zero-superblock --force /dev/sdd(可選) //可修復硬碟將模擬損壞的硬碟重新新增
命令引數
-A = --assemble 啟用
-S = --stop 停止
-D = --detail 檢視raid詳細資訊
-C = -- create 建立raid裝置
-v = --verbose 顯示建立過程的詳細資訊
-l = --level raid的級別
-n = --raid-devices raid裝置數
-s = --scan 掃描raid裝置
-f = --fail 標示壞的硬碟
-a = --add 新增硬碟
-r = -remove 移除壞的硬碟

關閉RAID的方法:

直接解除安裝/dev/md0,並且註釋掉/etc/fstab檔案中的配置
umount /dev/md0 //解除掛接
vi /etc/fstab //將fstab裡面的開機自動掛載註釋掉
#/dev/md0 /var/www/html ext4 defaults 0 0
mdadm --stop /dev/md0 //停止md0磁碟服務