可以使用软件 RAID 级别进行管理 mdadm
Linux 上的工具。 在本教程中,您将学习如何在 Ubuntu 20.04 上使用创建 RAID Level 10 (RAID 1+0) mdadm
公用事业。 有不同级别的 RAID 配置,范围从 0 到 9。 某些级别,例如 RAID 级别 1 (mirroring
) 和 RAID 级别 0 (striping
) 可以组合起来提供更好的存储冗余和更高的数据恢复机会,以防某些磁盘损坏。
在我们之前的指南中,我们学习了如何创建和设置 RAID 级别 1。
在 Ubuntu 20.04 上设置软件 RAID
在 Ubuntu 20.04 上创建 RAID 级别 10 (RAID 1+0)
将物理驱动器连接到您的机器
RAID 级别 10 (1+0),至少需要四个驱动器。
我们已经有物理驱动器连接到我们的系统,/开发/SD[b-e],都与 4G 存储大小。
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 93.8M 1 loop /snap/core/8935 loop1 7:1 0 67M 1 loop /snap/lxd/14133 sda 8:0 0 15G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot └─sda3 8:3 0 14G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 14G 0 lvm / sdb 8:16 0 4G 0 disk sdc 8:32 0 4G 0 disk sdd 8:48 0 4G 0 disk sde 8:64 0 4G 0 disk
创建 RAID 分区
将上面连接的磁盘分区并初始化为 RAID 分区。
for i in {b..e}; do parted -a optimal /dev/sd$i mklabel msdos; done
for i in {b..e}; do parted -a optimal /dev/sd$i mkpart primary ext4 0% 100%; done
for i in {b..e}; do parted -a optimal /dev/sd$i set 1 raid on; done
检查磁盘的分区表;
parted -a optimal /dev/sdb print
Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdb: 4295MB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 4295MB 4294MB primary raid
您可以对其他磁盘执行相同操作。
在 Ubuntu 20.04 上创建 RAID 级别 10 (RAID 1+0)
磁盘设置完成后,您现在可以使用以下命令在 Ubuntu 20.04 上创建 RAID 级别 10 (1+0) mdadm
命令。
检查是否 mdadm
安装包;
apt list -a mdadm
Listing... Done mdadm/focal-updates,now 4.1-5ubuntu1.2 amd64 [installed,automatic] mdadm/focal 4.1-5ubuntu1 amd64
如果没有安装,你可以通过运行下面的命令来安装它;
apt install mdadm
的基本命令行语法 mdadm
命令是;
mdadm [mode] <raiddevice> [options] <component-devices>
[mode] 指定任何主要的 mdadm 操作模式,可以是以下之一;
Assemble (-A, --assemble)
: 将先前创建的数组的组件组装到活动数组中。Build (-B, --build)
:构建一个没有每个设备元数据(超级块)的数组。Create (-C, --create)
:使用每个设备的元数据(超级块)创建一个新数组。Follow/Monitor (-F, --follow, --monitor)
:监控一个或多个 md 设备并对任何状态变化采取行动。 这仅对 RAID1、4、5、6、10 或多路径阵列有意义。Grow (-G, --grow)
:增长(或缩小)一个数组,或者以某种方式重塑它。Incremental Assembly (-I, --incremental)
:将单个设备添加到适当的阵列。Manage
:这是用于对阵列的特定组件执行操作,例如添加新备件和移除故障设备。Misc
:这是一种“其他一切”模式,支持对活动阵列的操作、对组件设备的操作(例如擦除旧超级块)和信息收集操作。- 自动检测 (–auto-detect):此模式不会作用于特定设备或阵列,而是请求 Linux 内核激活任何自动检测到的阵列。
要在 Ubuntu 20.04 上创建 RAID Level 10 (RAID 1+0),可以使用这样的命令。
mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sd[bcde]1
样本输出;
mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
有关 mdadm 选项的信息,请参阅手册页。
检查 RAID 状态
您可以使用以下命令检查上面创建的 RAID 设备的状态;
mdadm --detail /dev/md0
样本输出;
/dev/md0: Version : 1.2 Creation Time : Tue Jun 15 18:35:00 2021 Raid Level : raid10 Array Size : 8380416 (7.99 GiB 8.58 GB) Used Dev Size : 4190208 (4.00 GiB 4.29 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Tue Jun 15 18:35:42 2021 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : near=2 Chunk Size : 512K Consistency Policy : resync Name : ubuntu20:0 (local to host ubuntu20) UUID : 4491a495:a29490e6:3e353c6d:cffac47d Events : 17 Number Major Minor RaidDevice State 0 8 17 0 active sync set-A /dev/sdb1 1 8 33 1 active sync set-B /dev/sdc1 2 8 49 2 active sync set-A /dev/sdd1 3 8 65 3 active sync set-B /dev/sde1
列出每个 RAID 设备的详细信息;
mdadm --examine /dev/sd[bcde]1
您还可以通过运行以下命令来检查状态;
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid10 sde1[3] sdd1[2] sdc1[1] sdb1[0] 8380416 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU] unused devices: <none>
从上面的输出;
Personalities
行显示内核当前支持的 RAID 级别。- md 设备行显示阵列的状态、设备上设置的当前 RAID 级别以及阵列中使用的设备。
- 另一行以块为单位表示数组的可用大小
- [n/m] 例如 [4/4] 显示该阵列将有 n 个设备,但目前正在使用 m 个设备。 当 m >= n 时,一切都很好。 U 表示启动,UUUU 表示阵列上的所有四个设备都已启动,并且全部启动。
在 RAID 10 设备上创建文件系统
创建 RAID 10 设备后,您需要在其上创建文件系统以使其可用。
我们使用了四个磁盘,每个磁盘都有 4G。 RAID 10 不是总共获得 16G,而是将大小减少了一半,因此可以使用 8G。
数据在阵列中的磁盘之间进行镜像和条带化。
在 RAID 10 设备上创建文件系统。 下面的命令创建一个 EXT4 文件系统。
mkfs.ext4 /dev/md0
挂载 RAID 10 设备
您现在可以挂载 RAID 10 设备以开始使用它
mount /dev/md0 /mnt
确认安装;
df -hT -P /mnt/
Filesystem Type Size Used Avail Use% Mounted on /dev/md0 ext4 7.9G 36M 7.4G 1% /mnt
要在启动时自动挂载设备,请更新 /etc/fstab
通过添加类似于下面的行来创建文件;
/dev/md0 /mnt ext4 defaults 0 0
此外,您需要更新 /etc/mdadm/mdadm.conf
通过创建一个原型配置文件,该文件描述了已知由 IDE 或 SCSI 驱动器的分区组成的当前活动阵列,使用 mdadm --detail --scan
命令
mdadm --detail --scan
ARRAY /dev/md0 metadata=1.2 name=ubuntu20:0 UUID=244a7fd9:d6fcc210:9b559249:df999270
将信息写入 mdadm.conf
,然后运行;
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
一旦你更新 mdadm.conf
,然后您可以更新 initramfs。
update-initramfs -u
完成后,更新 initramfs,您可以重新启动系统以确认 RAID 设备是否可以自动挂载。
这标志着我们关于如何在 Ubuntu 20.04 上创建 RAID 级别 10 (1+0) 的指南结束。
咨询 man mdadm
有关其用法的更多信息。
在 Rocky Linux 8 上设置软件 RAID
在 Debian 10 上设置软件 RAID
在 Ubuntu 20.04 上设置 NFS 服务器的简单方法