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

相关文章
相关标签/搜索