CentOS 6.3下配置軟RAID(Software RAID)

1、RAID 簡介html

RAID 是英文Redundant Array of Independent Disks 的縮寫,翻譯成中文意思是「獨立磁盤冗餘陣列」,有時也簡稱磁盤陣列(Disk Array)。linux

簡單的說,RAID是一種把多塊獨立的硬盤(物理硬盤)按不一樣的方式組合起來造成一個硬盤組(邏輯硬盤),從而提供比單個硬盤更高的存儲性能和提供數據備份的技術。數據庫

組成磁盤陣列的不一樣方式稱爲RAID級別(RAID Levels),常見的RAID Level 包括raid0, raid1, raid5, raid10。各level 對好比下:centos

RAID等級 最少硬盤 最大容錯 可用容量 讀取性能 寫入性能 安全性 目的 應用產業
0 2 0 n n n 一個硬盤異常,所有硬盤都會異常 追求最大容量、速度 3D產業實時渲染、視頻剪接高速緩存
1 2 n-1 1 n 1 最高,一個正常便可 追求最大安全性 我的、企業備份
5 3 1 n-1 n-1 n-1 追求最大容量、最小預算 我的、企業備份
10 4 n/2 n/2 n n/2 安全性高 綜合RAID 0/1優勢,理論速度較快 大型數據庫、服務器

說明:n 表明硬盤總數api

關於RAID的詳細介紹,請參考:http://zh.wikipedia.org/wiki/RAID緩存

2、系統環境安全

實驗環境:Oracle VM VirtualBox服務器

系統平臺:CentOS release 6.3 (Final)工具

mdadm 版本:mdadm - v3.2.6 - 25th October 2012性能

3、設置磁盤

在Oracle VM VirtualBox 裏模擬物理增長磁盤,在這篇文章中,咱們將建立RAID0, RAID1, RAID5分區,RAID0 須要兩塊硬盤,RAID1 須要兩塊硬盤,RAID5須要四塊硬盤,因此在這裏添加了八塊物理硬盤,每塊5.00 GB.

26

在Linux 系統裏使用fdisk –l 命令查看。

27

4、安裝mdadm

mdadm 是multiple devices admin 的簡稱,它是Linux下的一款標準的軟件RAID 管理工具。

4.1 查看是否安裝了mdadm軟件

# rpm -qa|grep mdadm

9

4.2 若是未安裝,則使用yum 方式安裝。

10

準備工做完畢,下面能夠着手建立raid 了。

5、建立RAID0

5.1 新建分區

建立RAID0 須要兩塊硬盤,因此咱們拿/dev/sdb 和/dev/sdc 來實驗。

# fdisk /dev/sdb        //對sdb 進行分區

輸入"m", 獲取幫助,輸入"p", 查看分區前磁盤狀態,其餘Command action 具體含義請自行Google, Baidu。

3

輸入"n" 新建分區,這裏咱們將整個磁盤都劃分紅一個分區,而後輸入"p" 查看分區狀況。

4

5.2 修改分區類型

默認新建分區的類型是Linux,代號83,咱們須要將其修改成raid 類型。輸入"t" ,而後輸入"L" 列出全部的文件格式,這裏咱們選擇"fd Linux raid auto", 輸入"fd",而後再輸入"p" 查看分區狀況,這是分區格式已經變成了Linux raid autodetect.

5

5.3 保存分區

輸入"w" 保存分區。

6

使用一樣方法對/dev/sdc 進行分區操做。

5.4 同步分區狀況

使用partprobe 命令同步分區狀況。

7

5.5 查看如今的狀態

# fdisk -l /dev/sdb /dev/sdc

11

5.6 開始建立RAID0

# mdadm -C /dev/md0 -ayes -l0 -n2 /dev/sd[b,c]1

12

說明:

-C  --create   建立陣列;

-a  --auto    贊成建立設備,如不加此參數時必須先使用mknod 命令來建立一個RAID設備,不過推薦使用-a yes參數一次性建立;

-l   --level   陣列模式,支持的陣列模式有 linear, raid0, raid1, raid4, raid5, raid6, raid10, multipath, faulty, container;

-n     --raid-devices    陣列中活動磁盤的數目,該數目加上備用磁盤的數目應該等於陣列中總的磁盤數目;

/dev/md0     陣列的設備名稱;

/dev/sd{b,c}1  參與建立陣列的磁盤名稱;

5.7 查看raid0 狀態

# cat /proc/mdstat

# mdadm -D /dev/md0

13

說明:Raid Level : 陣列級別; 

   Array Size : 陣列容量大小;

   Raid Devices : RAID成員的個數;

   Total Devices : RAID中下屬成員的總計個數,由於還有冗餘硬盤或分區,也就是spare,爲了RAID的正常運珩,隨時能夠推上去加入RAID的;

   State : clean, degraded, recovering 狀態,包括三個狀態,clean 表示正常,degraded 表示有問題,recovering 表示正在恢復或構建;

   Active Devices : 被激活的RAID成員個數;

   Working Devices : 正常的工做的RAID成員個數;

   Failed Devices : 出問題的RAID成員;

   Spare Devices : 備用RAID成員個數,當一個RAID的成員出問題時,用其它硬盤或分區來頂替時,RAID要進行構建,在沒構建完成時,這個成員也會被認爲是spare設備;

   UUID : RAID的UUID值,在系統中是惟一的;

5.8 建立RAID 配置文件/etc/mdadm.conf

RAID 的配置文件爲/etc/mdadm.conf,默認是不存在的,須要手工建立。

該配置文件的主要做用是系統啓動的時候可以自動加載軟RAID,同時也方便往後管理。但不是必須的,推薦對該文件進行配置。

咱們這裏須要建立這個文件,測試中發現,若是沒有這個文件,則reboot 後,已經建立好的md0 會自動變成md127。

/etc/mdadm.conf 文件內容包括:

由DEVICE 選項指定用於軟RAID的全部設備,和ARRAY 選項所指定陣列的設備名、RAID級別、陣列中活動設備的數目以及設備的UUID號。

5.8.1 建立/etc/mdadm.conf

# echo DEVICE /dev/sd{b,c}1 >> /etc/mdadm.conf

# mdadm –Ds >> /etc/mdadm.conf

5.8.2 修改配置文件

當前生成的/etc/mdadm.conf 文件內容並不符合所規定的格式,因此也是不生效的,這時須要手工修改該文件內容爲以下格式:

# cat /etc/mdadm.conf

DEVICE /dev/sdb1 /dev/sdc1

ARRAY /dev/md0 level=raid0 num-devices=2 UUID=5160ea40:cb2b44f1:c650d2ef:0db09fd0

5.9 格式化磁盤陣列

# mkfs.ext4 /dev/md0

14

5.10 創建掛載點並掛載

# mkdir /raid0

# mount /dev/md0 /raid0/

15

能夠看到,/dev/md0 的可用大小爲9.9G。

5.11 寫入/etc/fstab

爲了下次開機還能正常使用咱們的RAID設備,須要將掛載的信息寫入/etc/fstab 文件中。

16

而後reboot 測試開機是否自動掛載,raid0 建立完畢。

6、建立RAID1

和建立raid0 相似,咱們拿/dev/sdd 和/dev/sde 這兩塊硬盤來作實驗。

6.1 新建分區並修改分區類型

17

使用一樣方法對/dev/sde 進行分區操做,分區結果以下:

18

6.2 開始建立RAID1

# mdadm -C /dev/md1 -ayes -l1 -n2 /dev/sd[d,e]1

19

6.3 查看raid1 狀態

# cat /proc/mdstat

# mdadm -D /dev/md1

20

說明:Used Dev Size : RAID單位成員容量大小,也就是構成RAID的成員硬盤或分區的容量的大小;

能夠看到,raid1 正在建立,待建立完畢,狀態以下:

21

6.4 添加raid1 到RAID 配置文件/etc/mdadm.conf 並修改

# echo DEVICE /dev/sd{b,c}1 >> /etc/mdadm.conf

# mdadm –Ds >> /etc/mdadm.conf

22

6.5 格式化磁盤陣列

# mkfs.ext4 /dev/md1

23

6.6 創建掛載點並掛載

# mkdir /raid1

# mount /dev/md1 /raid1/

24

能夠看到,/dev/md1 的可用大小爲4.9G。

6.7 寫入/etc/fstab

25

而後reboot 測試開機是否自動掛載,raid1 建立完畢。

7、建立RAID5

RAID5 至少須要三塊硬盤,咱們拿/dev/sdf, /dev/sdg, /dev/sdh, /dev/sdi 這四塊硬盤來作實驗,三塊作爲活動盤,另外一塊作爲熱備盤。

7.1 新建分區並修改分區類型

分區結果以下:

28

7.2 開始建立RAID5

# mdadm -C /dev/md5 -ayes -l5 –n3 -x1 /dev/sd[f,g,h,i]1

29

說明:"-x1" 或"--spare-devices=1" 表示當前陣列中熱備盤只有一塊,如有多塊熱備盤,則將"--spare-devices" 的值設置爲相應的數目。

7.3 查看raid5 狀態

# cat /proc/mdstat

# mdadm -D /dev/md5

30

說明:Rebuild Status : RAID 的構建進度;

         4 8 113 2 spare rebuilding /dev/sdh1 注:未被激活,正在構建中的成員,正在傳輸數據;

         3 8 129 - spare /dev/sdi1 熱備盤

raid5 正在建立,並且速度很慢,待建立完畢,狀態以下:

31

7.4 添加raid5 到RAID配置文件/etc/mdadm.conf 並修改

# echo DEVICE /dev/sd{f,g,h,i}1 >> /etc/mdadm.conf

# mdadm –Ds >> /etc/mdadm.conf

32

7.5 格式化磁盤陣列

# mkfs.ext4 /dev/md5

33

7.6 創建掛載點並掛載

# mkdir /raid5

# mount /dev/md5 /raid5/

34

raid5 的可用大小爲9.9G,即(3-1)x 5G.

向 /raid5 裏面寫入測試數據:

# touch test_raid5.failed
# touch test_raid5.fail
# ls

38

7.7 寫入 /etc/fstab

35

而後reboot 測試開機是否自動掛載,raid5 建立完畢。

8、RAID維護

RAID 作好以後,還須要進行平常的維護操做,好比其中一塊物理硬盤損壞,咱們須要進行更換故障磁盤的操做,下面咱們將模擬raid5 中磁盤損壞來說解軟RAID 的維護操做。

8.1 模擬磁盤損壞

在實際中,當軟RAID 檢測到某個磁盤有故障時,會自動標記該磁盤爲故障磁盤,並中止對故障磁盤的讀寫操做。在這裏咱們將/dev/sdh1 模擬爲出現故障的磁盤,命令以下:

# mdadm /dev/md5 -f /dev/sdh1

36

8.2 查看重建狀態

在上面建立RAID 5過程當中,咱們設置了一個熱備盤,因此當有標記爲故障磁盤的時候,熱備盤會自動頂替故障磁盤工做,陣列也可以在短期內實現重建。經過查看"/proc/mdstat" 文件能夠看到當前陣列的狀態,以下:

37

以上信息代表陣列正在重建,當一個設備出現故障或被標記故障時,相應設備的方括號後將被標以(F),如 "sdh1[4](F)"。

其中 "[3/2]" 的第一位數表示陣列所包含的設備數,第二位數表示活動的設備數,由於目前有一個故障設備,因此第二位數爲2;

這時的陣列以降級模式運行,雖然該陣列仍然可用,可是不具備數據冗餘;

而 "[UU_]" 表示當前陣列能夠正常使用的設備是/dev/sdf1 和/dev/sdg1,若是是設備 「/dev/sdf1」 出現故障時,則將變成[_UU]。

8.3 查看以前寫入的測試數據是否還在

39

數據正常,未丟失。

8.4 重建完畢後查看陣列狀態

40

當前的RAID 設備又恢復了正常。

8.5 移除損壞的磁盤

移除剛纔模擬出現故障的/dev/sdh1,操做以下:

41

8.6 再次查看md5的狀態

42

/dev/sdh1 已經移除了。

8.7 新加熱備磁盤

若是是實際生產中添加新的硬盤,一樣須要對新硬盤進行建立分區的操做,這裏咱們爲了方便,將剛纔模擬損壞的硬盤再次新加到raid5 中。

43

8.8 查看raid5 陣列狀態

44

/dev/sdh1 已經變成了熱備盤。

8.9 查看測試數據

45

數據正常,未丟失。故障切換測試完畢。

9、向RAID中增長存儲硬盤

若是如今已經作好的RAID 空間仍是不夠用的話,那麼咱們能夠向裏面增長新的硬盤,來增長RAID 的空間。

9.1 在虛擬機中添加物理硬盤

上面咱們已經在虛擬機中添加了八塊硬盤,這裏須要模擬新增硬盤,因此首先將虛擬機關閉,而後在存儲裏再次新增一塊5GB的硬盤。而後分區等等操做,這裏再也不贅述。

47

9.2 向RAID 中新加一塊硬盤

# mdadm /dev/md5 -a /dev/sdj1

48

查看此時的RAID 狀態

49

默認狀況下,咱們向RAID 中增長的磁盤,會被默認看成熱備盤,咱們須要把熱備盤加入到RAID 的活動盤中。

9.3 熱備盤轉換成活動盤

# mdadm -G /dev/md5 -n4

50

查看此時RAID 狀態

51

/dev/sdj1 已經變成了活動盤,可是Array Size : 10465280 (9.98 GiB 10.72 GB) 並無變大,這是由於構建沒有完成,圖中也能夠看出Status 爲clean, reshaping。

等RAID 完成構建後,RAID的容量就會改變爲(4-1)x 5GB,查看進度能夠參考Reshape Status,也能夠參考/proc/mdstat.

53

構建完畢後的RAID 狀態:

54

Array Size : 15697920 (14.97 GiB 16.07 GB),磁盤容量已經增長了。

9.4 擴容文件系統

RAID 構建完畢後,陣列容量增長,可是文件系統尚未增長,這時咱們還須要對文件系統進行擴容。

# df –TH

# resize2fs /dev/md5

# df –TH

57

文件系統已經擴容到15G,並且測試數據正常,未丟失,新增物理硬盤成功。

9.5 修改RAID 配置文件/etc/mdadm.conf

56

9.6 reboot 測試

58

重啓系統後,一切正常,Linux下配置軟RAID成功。

轉自:http://www.cnblogs.com/mchina/p/linux-centos-disk-array-software_raid.html

相關文章
相關標籤/搜索