在 RAID 5 中,数据条带化后存储在分布式奇偶校验的多个磁盘上。分布式奇偶校验的条带化意味着它将奇偶校验信息和条带化数据分布在多个磁盘上,这样会有很好的数据冗余。html
在 Linux 中配置 RAID 5linux
对于此 RAID 级别它至少应该有三个或更多个磁盘。RAID 5 一般被用于大规模生产环境中,以花费更多的成原本提供更好的数据冗余性能。vim
奇偶校验是在数据存储中检测错误最简单的常见方式。奇偶校验信息存储在每一个磁盘中,好比说,咱们有4个磁盘,其中至关于一个磁盘大小的空间被分割去存储全部磁盘的奇偶校验信息。若是任何一个磁盘出现故障,咱们能够经过更换故障磁盘后,从奇偶校验信息重建获得原来的数据。服务器
建立 RAID 5 最少须要3个磁盘,你也能够添加更多的磁盘,前提是你要有多端口的专用硬件 RAID 控制器。在这里,咱们使用“mdadm”包来建立软件 RAID。分布式
mdadm 是一个容许咱们在 Linux 下配置和管理 RAID 设备的包。默认状况下没有 RAID 的配置文件,咱们在建立和配置 RAID 后必须将配置文件保存在一个单独的文件 mdadm.conf 中。工具
在进一步学习以前,我建议你经过下面的文章去了解 Linux 中 RAID 的基础知识。性能
操做系统 : CentOS 6.5 Final
IP 地址 : 192.168.0.227
主机名 : rd5.tecmintlocal.com
磁盘 1 [20GB] : /dev/sdb
磁盘 2 [20GB] : /dev/sdc
磁盘 3 [20GB] : /dev/sdd
这是9篇系列教程的第4部分,在这里咱们要在 Linux 系统或服务器上使用三个20GB(名为/dev/sdb, /dev/sdc 和 /dev/sdd)的磁盘创建带有分布式奇偶校验的软件 RAID 5。学习
一、 正如咱们前面所说,咱们使用 CentOS 6.5 Final 版原本建立 RAID 设置,但一样的作法也适用于其余 Linux 发行版。spa
# lsb_release -a
# ifconfig | grep inet
CentOS 6.5 摘要操作系统
二、 若是你按照咱们的 RAID 系列去配置的,咱们假设你已经安装了“mdadm”包,若是没有,根据你的 Linux 发行版使用下面的命令安装。
# yum install mdadm [在 RedHat 系统]
# apt-get install mdadm [在 Debain 系统]
三、 “mdadm”包安装后,先使用fdisk
命令列出咱们在系统上增长的三个20GB的硬盘。
# fdisk -l | grep sd
安装 mdadm 工具
四、 如今该检查这三个磁盘是否存在 RAID 块,使用下面的命令来检查。
# mdadm -E /dev/sd[b-d]
# mdadm --examine /dev/sdb /dev/sdc /dev/sdd # 或
检查 Raid 磁盘
注意: 上面的图片说明,没有检测到任何超级块。因此,这三个磁盘中没有定义 RAID。让咱们如今开始建立一个吧!
五、 首先,在建立 RAID 前磁盘(/dev/sdb, /dev/sdc 和 /dev/sdd)必须有分区,所以,在进行下一步以前,先使用fdisk
命令进行分区。
# fdisk /dev/sdb
# fdisk /dev/sdc
# fdisk /dev/sdd
请按照下面的说明在 /dev/sdb 硬盘上建立分区。
n
建立新的分区。P
选择主分区。选择主分区是由于尚未定义过度区。P
来打印建立好的分区。L
能够列出全部可用的类型。t
修改分区类型。fd
设置为 RAID 的类型。p
查看咱们所作的更改。w
保存更改。建立 sdb 分区
注意: 咱们仍要按照上面的步骤来建立 sdc 和 sdd 的分区。
如今,经过下面的截图给出建立 sdc 和 sdd 磁盘分区的方法,或者你能够按照上面的步骤。
# fdisk /dev/sdc
建立 sdc 分区
# fdisk /dev/sdd
建立 sdd 分区
六、 建立分区后,检查三个磁盘 sdb, sdc, sdd 的变化。
# mdadm --examine /dev/sdb /dev/sdc /dev/sdd
# mdadm -E /dev/sd[b-d] # 或
检查磁盘变化
注意: 在上面的图片中,磁盘的类型是 fd。
七、 如今在新建立的分区检查 RAID 块。若是没有检测到超级块,咱们就可以继续下一步,在这些磁盘中建立一个新的 RAID 5 配置。
Check Raid on Partition
*在分区中检查 RAID *
八、 如今使用全部新建立的分区(sdb1, sdc1 和 sdd1)建立一个 RAID 设备“md0”(即 /dev/md0),使用如下命令。
# mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
# mdadm -C /dev/md0 -l=5 -n=3 /dev/sd[b-d]1 # 或
mdadm -C /dev/md0 -l5 -n3 /dev/sd[b-d]1 ##我在Debian使用的这个命令
九、 建立 RAID 设备后,检查并确认 RAID,从 mdstat 中输出中能够看到包括的设备的 RAID 级别。
# cat /proc/mdstat
验证 Raid 设备
若是你想监视当前的建立过程,你可使用watch
命令,将 cat /proc/mdstat
传递给它,它会在屏幕上显示且每隔1秒刷新一次。
# watch -n1 cat /proc/mdstat
监控 RAID 5 构建过程
Raid 5 过程概要
十、 建立 RAID 后,使用如下命令验证 RAID 设备
# mdadm -E /dev/sd[b-d]1
验证 Raid 级别
注意: 由于它显示三个磁盘的信息,上述命令的输出会有点长。
十一、 接下来,验证 RAID 阵列,假定包含 RAID 的设备正在运行并已经开始了从新同步。
# mdadm --detail /dev/md0
验证 RAID 阵列
十二、 在挂载前为“md0”设备建立 ext4 文件系统。
# mkfs.ext4 /dev/md0
建立 md0 文件系统
1三、 如今,在/mnt
下建立目录 raid5,而后挂载文件系统到 /mnt/raid5/ 下,并检查挂载点下的文件,你会看到 lost+found 目录。
# mkdir /mnt/raid5
# mount /dev/md0 /mnt/raid5/
# ls -l /mnt/raid5/
1四、 在挂载点 /mnt/raid5 下建立几个文件,并在其中一个文件中添加一些内容而后去验证。
# touch /mnt/raid5/raid5_tecmint_{1..5}
# ls -l /mnt/raid5/
# echo "tecmint raid setups" > /mnt/raid5/raid5_tecmint_1
# cat /mnt/raid5/raid5_tecmint_1
# cat /proc/mdstat
挂载 RAID 设备
1五、 咱们须要在 fstab 中添加条目,不然系统重启后将不会显示咱们的挂载点。编辑 fstab 文件添加条目,在文件尾追加如下行。挂载点会根据你环境的不一样而不一样。
# vim /etc/fstab
/dev/md0 /mnt/raid5 ext4 defaults 0 0
自动挂载 RAID 5
1六、 接下来,运行mount -av
命令检查 fstab 条目中是否有错误。
# mount -av
检查 Fstab 错误
1七、 在前面章节已经说过,默认状况下 RAID 没有配置文件。咱们必须手动保存。若是此步中没有跟随不属于 md0 的 RAID 设备,它会是一些其余随机数字。
因此,咱们必需要在系统从新启动以前保存配置。若是配置保存它在系统从新启动时会被加载到内核中而后 RAID 也将被加载。
# mdadm --detail --scan --verbose >> /etc/mdadm.conf
保存 RAID 5 配置
注意:保存配置将保持 md0 设备的 RAID 级别稳定不变。
1八、 备用磁盘有什么用?它是很是有用的,若是咱们有一个备用磁盘,当咱们阵列中的任何一个磁盘发生故障后,这个备用磁盘会进入激活重建过程,并从其余磁盘上同步数据,这样就有了冗余。
更多关于添加备用磁盘和检查 RAID 5 容错的指令,请阅读下面文章中的第6步和第7步。
在这篇文章中,咱们已经看到了如何使用三个磁盘配置一个 RAID 5 。在接下来的文章中,咱们将看到如何故障排除而且当 RAID 5 中的一个磁盘损坏后如何恢复。