如何在Ubuntu 16.04上使用‘mdadm’创建RAID 5存储阵列
在本文中,我们将学习如何使用‘mdadm’实用程序创建RAID 5阵列配置。
‘mdadm’是一个用于在Linux上创建和管理具有RAID功能的存储阵列的实用程序,管理员可以灵活地管理单个存储设备并创建高性能和冗余的逻辑存储。

RAID 5阵列是一种通过跨所有可用设备条带化数据来实现的类型。每个条带的每个组件都由奇偶校验块计算。如果任何设备发生故障,奇偶校验块将使用剩余的块来计算来自设备的缺失数据。然后接收奇偶校验块的设备将旋转,以便每个设备都具有关于存储的平衡数量的奇偶校验信息。
- RAID 5的主要优点是冗余性和更高的可用存储容量。
- 在RAID 5中,奇偶校验信息是分布式的,一个磁盘容量将用于奇偶校验。
前提条件
- 一台具有sudo权限的非root用户的Ubuntu机器。
- 多个用于创建RAID存储的原始存储设备。
- 为了完成此演示,我们需要至少3个存储设备。
要查找连接到机器的存储设备,可以使用以下命令。
使用‘mdadm’命令创建新的RAID 5阵列。
在开始任何操作之前,我们将检查连接到机器的现有磁盘。以下是列出可用磁盘的命令。
$ lsblk –o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT Output NAME SIZE FSTYPE TYPE MOUNTPOINT sda 20G disk sdb 20G disk sdc 20G linux_raid_member disk vda 20G disk ├─vda1 20G ext4 part / └─vda15 1M part
正如我们在上面的输出中看到的,我们有3个没有文件系统的20GB磁盘,这些设备在本机或会话中分别命名为/dev/sda、/dev/sdb和/dev/sdc。
为了创建RAID 5阵列,我们将使用mdadm – 命令来创建设备名称、我们想要创建的RAID级别以及连接到RAID的设备数量。
$ sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
mdadm工具将启动阵列的创建,完成配置需要一些时间,我们可以使用以下命令监控进度
$ cat /proc/mdstat Output Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 24792064 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] [===>.................] recovery = 15.6% (16362536/24792064) finish=7.3min speed=200808K/sec unused devices: <none>
在上面的输出中,我们可以看到/dev/md0设备正在使用/dev/sda、/dev/sdb和/dev/sdc存储设备创建RAID 5,这也会显示RAID设备的进度。
创建和挂载文件系统
在我们挂载阵列磁盘之前,我们需要在使用上述步骤创建的阵列磁盘上创建一个文件系统。
我们将在阵列上创建一个文件系统
$ sudo mkfs.ext4 –F /dev/md0
我们现在将创建一个挂载点并将上面步骤中创建的新RAID磁盘连接到该挂载点。
$ sudo mkdir –p /mnt/raiddisk1 $ sudo mount /dev/md0 /mnt/raiddisk1
验证新的挂载点或RAID磁盘
$ df –h –x devtmpfs –x tmpfs Output Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.1G 18G 6% / /dev/md0 40G 60M 39G 1% /mnt/raiddisk1
正如我们所看到的,新的文件系统已挂载并可访问。
现在我们可以扫描活动阵列并使用以下命令追加文件
$ sudo mdadm –details –scan | sudo tee –a /etc/mdadm/mdadm.conf
我们需要更新‘initramfs’文件,以便在机器启动引导过程时RAID阵列可用。
$ sudo update-initramfs -u
在启动时自动挂载RAID阵列。
将以下行添加到/etc/fstab。
/dev/md0 /mnt/raiddisk1 ext4 defaults,nofail,discard 0 0
在上述设置和配置中,我们已经使用三个磁盘配置了一个RAID 5级别阵列,并在启动时挂载了磁盘,以便每当我们重新启动服务器时,RAID磁盘都会加载。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP