一、RAID介绍
RAID即廉价冗余磁盘阵列(Redundant Array of Inexpensive Disks),从Linux 2.4内核开始,Linux就提供软件RAID,不必购买昂贵的硬件RAID控制器和附件(一般中、高挡服务器都提供这样的设备和热插拔硬盘),就可以通过并行处理多个独立的I/O 请求提高读写性能,而且能通过增加冗余信息来提高数据存储的可靠性。
二、几种RAID类型
RAID 0
非冗余,读写性能好,数据可靠性低于单个磁盘。
RAID 1
镜像,读性能好,写性能与单个磁盘相当,数据可靠性高,成本高。
RAID 2
并行访问,通过海明码实现冗余,读写性能好,磁盘同步旋转,带检错纠错功能,可靠性高,读写性能好,但一次只能执行一个I/O 请求。
RAID 3
并性访问,通过奇偶校验实现冗余,读写性能好,磁盘同步旋转,带检错功能,可靠性高,读写性能好,但一次只能执行一个I/O 请求。
RAID 4
独立访问,以块为单位计算奇偶校验块并存放与校验盘,数据可靠性高,读性能好,写性能差(因为每次写都要更新校验盘数据),校验盘成为性能瓶颈。
RAID 5
在RAID 4 基础上,把奇偶校验块循环分布在所有磁盘上,从而减轻单个校验盘的性能瓶颈问题,读写性能和可靠性类似于RAID 4。
三、硬件RAID 和软件RAID
硬件RAID
(1)利用硬件RAID 控制器来实现, 由集成或专用的阵列卡来控制硬盘驱动器。
(2)存取性能和数据保护能力高, 但成本也高。
(3)Linux 将硬件磁盘阵列看作一块实际的硬盘, 其设备名为/dev/sd[a-p]。
软件RAID
(1)利用操作系统提供的软件RAID 功能来实现。
(2)适用于要求不高的场合, 成本低。
(3)Linux 将软件磁盘阵列看作多重磁盘设备(MD), 其设备名为/dev/md0、/dev/md1 等。
四、linux中RAID配置
在Linux系统中,主要提供RAID 0、RAID 1、RAID 5三种级别的RAID。mdadm是 linux下标准的的软raid管理工具,是一个模式化工具(在不同的模式下);程序工作在内存用户程序区,为用户提供RAID接口来操作内核的模块,实现各种功能。
1、RAID 1 配置
(1)创建两个相同大小的RAID 分区,设置分区id 为fd。
(2)建立RAID 设备
mdadm --create /dev/md0 --level 1 --raid-devices=2 /dev/sdb1 /dev/sdc1
(3)设置mdadm 配置文件/etc/mdadm.conf
DEVICE /dev/sdb1 /dev/sdc1
ARRAY /dev/md0 devices=/dev/sdb1,/dev/sdc1
(4)建立文件系统
mkfs -t ext3 /dev/md0
(5)挂载RAID 1 设备
mkdir /mnt/raid1
mount /dev/md0 /mnt/raid1
(6)管理RAID 1阵列
# 模拟某成员磁盘发生故障
mdadm /dev/md0 --fail /dev/sdc1
# 从RAID 1 阵列中移除故障成员
mdadm /dev/md0 --remove /dev/sdc1
# 准备一块要替换的磁盘,并将新磁盘加入到阵列中
mdadm /dev/md0 --add /dev/sdd1
# 查看阵列实时信息
cat /proc/mdstat
mdadm --detail /dev/md0
2、RAID 5配置
(1)准备4 个阵列成员(创建RAID 分区)
(2)创建RAID 设备:系统默认只有md0 设备,其他需自行创建。
ls –l /dev/md0 # 查看md 设备的类型和主次设备号
mknod /dev/md1 b 9 1 # 创建设备文件
(3)建立RAID 5 设备
mdadm --create /dev/md1 --level=5 --raid-devices=3 --spare-devices=1 /dev/sdd[5-8] mdadm --detail /dev/md1
(4)设置mdadm 配置文件/etc/mdadm.conf
DEVICE /dev/sdd5 /dev/sdd6 /dev/sdd7 /dev/sdd8
ARRAY /dev/md1 devices=/dev/sdd5,/dev/sdd6,/dev/sdd7,/dev/sdd8
(5)建立文件系统
mkfs.ext3 /dev/md1
(6)挂载RAID 5 设备
mkdir /mnt/raid5
mount /dev/md1 /mnt/raid5
(7)管理RAID 5 阵列
# 利用备用盘重建RAID 5
mdadm /dev/md1 --fail /dev/sdd6
mdadm --detail /dev/md1
# 可看到备用盘自动参与重建阵列, 而故障盘成为备用磁盘, 而且# 注意: 要等待RAID 重建完毕, 再替换故障磁盘
# 将故障磁盘移除并加入新磁
mdadm /dev/md1 --remove /dev/sdd6
mdadm /dev/md1 --add /dev/sde1
mdadm --detail /dev/md1
(8)启用/停用/监控RAID 设备
# 停止RAID 设备(停止前要先卸载)
mdadm --stop /dev/md0
# 启动RAID 设备
mdadm --assemble --scan /dev/md0
# 监控RAID 设备
mdadm --monitor [email protected] --delay=180 /dev/md0
# 将监控任务转入后台执行
nohup mdadm --monitor [email protected] --delay=180 /dev/md0
(9)如果要删除RAID 多重磁盘设备(可选)
每个md 设备只能被建立一次,如果创建命令(mdadm–create) 出错,将造成该md 设备无法使用,这时需要按以下步骤先删除该错误的md 设备,然后才能重新创建它。
#1. 停用RAID 设备
mdadm --stop /dev/md0
#2. 清空每个组成分区的超级块
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdc1