Ubuntu 22.04使用mdadm创建RAID阵列详细教程:完整步骤与配置指南

介绍

使用mdadm实用程序可以利用Linux的软件RAID功能创建和管理存储阵列。管理员在协调各个存储设备和创建具有更高性能或冗余特性的逻辑存储设备方面有很大的灵活性。

在本指南中,您将使用Ubuntu 22.04服务器进行不同的RAID配置。

必要条件

要按照这个指南的步骤进行操作,你需要:

  • 一个具有sudo权限的非root用户。要了解如何设置具有这些权限的账户,请遵循我们的Ubuntu 22.04初始服务器设置指南。
  • 对RAID术语和概念的基本理解。要了解更多关于RAID以及哪种RAID级别适合您的信息,请阅读我们的RAID介绍文章。
  • 服务器上可用的多个原始存储设备。本教程中的示例演示了如何在服务器上配置各种类型的阵列。因此,您需要一些驱动器进行配置。
  • 根据阵列类型,您将需要两到四个存储设备。这些驱动器在遵循本指南之前不需要进行格式化。

信息

由于虚拟专用服务器上RAID设置的低效性,我们不建议在Silicon Cloud droplets上部署RAID设置。相较于在裸金属硬件上的设置,数据中心磁盘复制的效率使得RAID的好处微不足道。本教程旨在提供传统RAID设置的参考。

重置现有RAID设备(可选)

如果您尚未设置任何阵列,您现在可以跳过本节。本指南将介绍多种不同的RAID级别。如果您希望跟随并完成每个设备的每个RAID级别,您可能希望在每个部分后重复使用您的存储设备。在测试新的RAID级别之前,您可以参考本特定章节”重置现有的RAID设备”来重置您的组件存储设备。

警告

警告:此过程将完全破坏阵列和其中任何写入的数据。确保您正在正确操作阵列,并在破坏阵列之前已经复制了您需要保留的任何数据。

从/proc/mdstat文件中找到活动阵列开始。

  1. cat /proc/mdstat
输出Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdc[1] sdd[0] 209584128 blocks super 1.2 512k chunks unused devices: <none>

然后从文件系统卸载阵列。

  1. sudo umount /dev/md0

现在停止并移除阵列。

  1. sudo mdadm --stop /dev/md0

通过下面的命令找到用于构建阵列的设备。

警告

警告:请记住,/dev/sd*的名称在每次重启时可能会更改。每次都要检查它们以确保您操作的是正确的设备。
  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
输出NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G linux_raid_member disk sdb 100G linux_raid_member disk sdc 100G disk sdd 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

在发现用于创建阵列的设备之后,将它们的超级块归零,超级块存储了RAID设置的元数据。将其归零可以移除RAID元数据,并将它们重置为正常状态。

  1. sudo mdadm --zero-superblock /dev/sda
  2. sudo mdadm --zero-superblock /dev/sdb

建议还删除阵列的任何持续引用。编辑/etc/fstab文件,注释掉或删除有关阵列的引用。你可以通过在行的开头插入井号符号#来注释掉它,使用nano或你喜欢的文本编辑器。

  1. sudo nano /etc/fstab
/etc/fstab 是系统文件中的一个重要配置文件。
. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0

另外,注释或删除/etc/mdadm/mdadm.conf文件中的阵列定义。

  1. sudo nano /etc/mdadm/mdadm.conf
/etc/mdadm/mdadm.conf 是mdadm工具的配置文件。
. . .
# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91

最后,再次更新initramfs,以便早期引导过程不会尝试启动一个不可用的阵列。

  1. sudo update-initramfs -u

从这里开始,你应该准备好单独使用存储设备,或者将它们作为不同阵列的组成部分。

创建一个RAID 0阵列

RAID 0阵列通过将数据分割成块并在可用磁盘上进行条带化来工作。这意味着每个磁盘都包含一部分数据,并且在检索信息时会引用多个磁盘。

  • 要求:至少需要2个存储设备。
  • 主要优势:在读写性能和容量方面表现优异。
  • 注意事项:请确保您有可用的备份。单个设备故障将销毁阵列中的所有数据。

确定组件设备

首先,找到您将要使用的原始磁盘的标识符。

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
输出NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

在这个例子中,你有两个没有文件系统的磁盘,每个磁盘的大小为100G。这些设备在本次会话中被赋予了/dev/sda和/dev/sdb的标识符,并且它们将作为构建阵列的原始组件使用。

创建阵列

要使用这些组件创建一个RAID 0阵列,请将它们传递给mdadm –create命令。您必须指定要创建的设备名称、RAID级别和设备数量。在这个命令示例中,您将为设备命名为/dev/md0,并包含构建阵列的两个磁盘。

  1. sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb

通过检查/proc/mdstat文件确认RAID已成功创建。

  1. cat /proc/mdstat
输出Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdb[1] sda[0] 209584128 blocks super 1.2 512k chunks unused devices: <none>

这个输出显示/dev/md0设备是使用/dev/sda和/dev/sdb设备以RAID 0配置创建的。

创建和挂载文件系统

接下来,在阵列上创建一个文件系统。

  1. sudo mkfs.ext4 -F /dev/md0

接下来,创建一个挂载点来连接新的文件系统。

  1. sudo mkdir -p /mnt/md0

您可以使用以下命令挂载文件系统:

  1. sudo mount /dev/md0 /mnt/md0

之后,检查新的空间是否可用。

  1. df -h -x devtmpfs -x tmpfs
输出Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 196G 61M 186G 1% /mnt/md0

新的文件系统已经被挂载并且可以访问。

保存阵列布局

为了确保阵列在引导时自动重新组装,您需要调整/etc/mdadm/mdadm.conf文件。您可以自动扫描活动阵列并将以下内容追加到文件中。

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

之后,您可以更新initramfs,也就是初始RAM文件系统,这样阵列就会在早期启动过程中可用。

  1. sudo update-initramfs -u

在启动时,将新的文件系统挂载选项添加到/etc/fstab文件中,以实现自动挂载。

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

你的RAID 0阵列将自动组装并挂载每个启动。

你现在已经完成了RAID设置。如果你想尝试不同的RAID设置,请按照本教程开头的重置说明进行操作,创建新的RAID阵列类型。

创建一个RAID 1阵列

RAID 1阵列类型通过将数据镜像在所有可用的磁盘上实现。RAID 1阵列中的每个磁盘都获得数据的完整副本,在设备故障时提供冗余。

  • 要求:至少需要2个存储设备。
  • 主要优势:在两个存储设备之间提供冗余备份。
  • 注意事项:由于维护了两份数据副本,只有一半的磁盘空间可用。

识别组件设备

首先,找到您将使用的原始磁盘的标识符。

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
输出NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

在这个例子中,你有两个没有文件系统的磁盘,每个磁盘大小为100G。这些设备在本次会话中被赋予了/dev/sda和/dev/sdb的标识符,并且将作为你用来构建阵列的原始组件。

创建RAID阵列

使用这些组件创建一个RAID 1阵列,只需将它们传递给mdadm –create命令。您需要指定要创建的设备名称、RAID级别和设备数量。在这个命令示例中,您将命名设备为/dev/md0,并包括用于构建阵列的磁盘。

  1. sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb

如果您正在使用的组件设备没有启用引导标志的分区,您很可能会收到以下警告。安全的做法是回复”y”并继续操作:

输出mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 mdadm: size set to 104792064K Continue creating array? y

mdadm工具将开始镜像驱动器。完成此过程可能需要一些时间,但是在此期间可以使用阵列。您可以通过检查/proc/mdstat文件来监视镜像的进度。

  1. cat /proc/mdstat
输出Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb[1] sda[0] 104792064 blocks super 1.2 [2/2] [UU] [====>................] resync = 20.2% (21233216/104792064) finish=6.9min speed=199507K/sec unused devices: <none>

在第一个突出显示的行中,通过使用/dev/sda和/dev/sdb设备,以RAID 1配置创建了/dev/md0设备。第二个突出显示的行显示了镜像进度。在此过程完成时,您可以继续下一步。

创建并挂载文件系统

接下来,在阵列上创建一个文件系统。

或者:

随后,在阵列上建立一个文件系统。

  1. sudo mkfs.ext4 -F /dev/md0

然后,创建一个挂载点来连接新的文件系统。

  1. sudo mkdir -p /mnt/md0

通过执行以下命令,你可以挂载文件系统。

  1. sudo mount /dev/md0 /mnt/md0

请确认新的空间是否可用。

  1. df -h -x devtmpfs -x tmpfs
输出Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 99G 60M 94G 1% /mnt/md0

新的文件系统已挂载并可访问。

保存阵列配置

为了确保在启动时自动重新组装阵列,你需要调整 /etc/mdadm/mdadm.conf 文件。你可以自动扫描活动的阵列并在文件末尾添加以下内容。

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

随后,您可以更新initramfs(初始RAM文件系统),以便在早期引导过程中可用该阵列。

(中文释义句子,一个选项)

  1. sudo update-initramfs -u

在启动时将新的文件系统挂载选项添加到/etc/fstab文件,实现自动挂载。

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

您的RAID 1阵列将会在每次启动时自动组装和挂载。

您现在已经完成了RAID的设置。如果您想尝试不同的RAID类型,请按照本教程开头的重置指南重新开始,以创建新的RAID阵列类型。

创建一个RAID 5阵列

RAID 5阵列类型通过将数据分割存储在可用设备上实现。每个分割的一个组成部分是一个计算出的奇偶校验块。如果某个设备发生故障,可以使用奇偶校验块和剩余的块来计算丢失的数据。接收奇偶校验块的设备会轮换,以使每个设备都具有平衡的奇偶校验信息量。

  • 要求:至少需要3个存储设备。
  • 主要优点:具有更多可用容量的冗余性。
  • 注意事项:虽然奇偶校验信息是分布式的,但相当于一个磁盘的容量将用于奇偶校验。RAID 5在降级状态下可能会遭受非常严重的性能问题。

识别组件设备

首先,找到您将使用的原始磁盘的标识符。

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
输出NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

您有三个未格式化的磁盘,每个磁盘的容量为100G。在本次会话中,这些设备已分别被标识为/dev/sda、/dev/sdb和/dev/sdc,并将作为您构建阵列的原始组件。

创建阵列

要使用这些组件创建一个RAID 5阵列,请将它们传递给mdadm –create命令。您需要指定要创建的设备名称、RAID级别和设备数量。在这个命令示例中,您将命名设备为/dev/md0,并包括要构建阵列的磁盘。

  1. sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc

mdadm工具将开始配置阵列。为了提高性能,它使用恢复过程构建阵列。这可能需要一些时间来完成,但在此期间阵列可以使用。您可以通过检查/proc/mdstat文件来监控镜像的进度。

  1. cat /proc/mdstat
输出Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 209582080 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] [>....................] recovery = 0.9% (957244/104791040) finish=18.0min speed=95724K/sec unused devices: <none>

在第一个突出显示的行中,使用/dev/sda、/dev/sdb和/dev/sdc设备以RAID 5配置创建了/dev/md0设备。第二行突出显示的是建设进度。

警告

警告:由于mdadm建立RAID 5阵列的方式,阵列正在建立时,阵列中备用设备的数量会被不准确地报告。这意味着您必须等待阵列完成组装后再更新/etc/mdadm/mdadm.conf文件。如果在阵列仍在构建时更新配置文件,系统将对阵列状态有错误的信息,并且将无法在启动时自动正确组装它。

当此过程完成时,您可以继续使用指南。

创建和挂载文件系统

接下来,在阵列上创建一个文件系统。

  1. sudo mkfs.ext4 -F /dev/md0

创建一个挂载点来附加新的文件系统。

  1. sudo mkdir -p /mnt/md0

您可以使用以下命令来挂载文件系统:

  1. sudo mount /dev/md0 /mnt/md0

检查新的空间是否可用。

  1. df -h -x devtmpfs -x tmpfs
输出Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 197G 60M 187G 1% /mnt/md0

新的文件系统已挂载且可以访问。

保存阵列布局

为了确保在启动时自动重新组装阵列,您需要调整/etc/mdadm/mdadm.conf文件。

警告

警告:如前所述,在调整配置之前,请再次检查以确保阵列已完成组装。在阵列建立之前完成以下步骤将防止系统在重新启动时正确组装阵列。

您可以通过检查/proc/mdstat文件来监视镜像进展情况。

  1. cat /proc/mdstat
输出Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] unused devices: <none>

这个输出显示重建已经完成。现在,您可以自动扫描活动的阵列并追加文件。

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

然后,您可以更新initramfs(初始RAM文件系统),以便在早期引导过程中可用该阵列。

  1. sudo update-initramfs -u

在/etc/fstab文件中添加新的文件系统挂载选项,以便在启动时自动挂载。

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

您的RAID 5阵列现在将在每次启动时自动组装并挂载。

你现在已经完成了RAID的设置。如果你想尝试不同的RAID设置,请按照本教程开头的重置说明来创建一个新的RAID阵列类型。

创建RAID 6阵列

RAID 6是一种通过将数据条带化分布在可用设备上来实现的阵列类型。每个条带由两个奇偶校验块组成。如果一个或两个设备失效,可以利用奇偶校验块和剩余块来计算丢失的数据。接收奇偶校验块的设备将轮换,以使每个设备具有平衡的奇偶校验信息量。这类似于RAID 5阵列,但允许两个驱动器故障。

  • 要求:至少需要4个存储设备。
  • 主要优点:具有双冗余和更多可用容量。
  • 注意事项:虽然奇偶校验信息是分布式的,但相当于两个磁盘的容量将用于奇偶校验。RAID 6在降级状态下可能会遭受非常差的性能。

识别组件设备

首先,找到您将使用的原始磁盘的标识符。

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
输出NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk sdd 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

在这个例子中,您有四个没有文件系统的磁盘,每个磁盘大小为100G。这些设备在本次会话中被分配了/dev/sda、/dev/sdb、/dev/sdc和/dev/sdd标识符,并且将作为构建阵列的原始组件使用。

创建阵列

要使用这些组件创建一个RAID 6阵列,将它们传入mdadm –create命令中。您需要指定您想创建的设备名称、RAID级别和设备数量。在下面的命令示例中,您将命名设备为/dev/md0,并包括将构建阵列的磁盘。

  1. sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

mdadm工具将开始配置阵列。为了提高性能,它使用恢复过程来构建阵列。这可能需要一些时间来完成,但阵列可以在此期间使用。您可以通过检查/proc/mdstat文件来监视镜像的进度。

  1. cat /proc/mdstat
输出Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid6 sdd[3] sdc[2] sdb[1] sda[0] 209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU] [>....................] resync = 0.6% (668572/104792064) finish=10.3min speed=167143K/sec unused devices: <none>

在第一行中,/dev/md0设备已经被创建成RAID 6配置,使用了/dev/sda、/dev/sdb、/dev/sdc和/dev/sdd设备。第二行显示了建立过程的进度。您可以在此过程完成时继续参考指南。

创建并挂载文件系统

接下来,在阵列上创建一个文件系统。

  1. sudo mkfs.ext4 -F /dev/md0

创建一个挂载点,用于连接新的文件系统。

  1. sudo mkdir -p /mnt/md0

你可以使用以下方式来挂载文件系统:

  1. sudo mount /dev/md0 /mnt/md0

检查新的空间是否可用。

  1. df -h -x devtmpfs -x tmpfs
输出Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 197G 60M 187G 1% /mnt/md0

新的文件系统已经挂载并且可以访问。

保存数组布局

为了确保在启动时自动重新组装数组,请调整/etc/mdadm/mdadm.conf文件。您可以通过键入以下命令来自动扫描活动数组并将其追加到该文件中:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

之后,您可以更新initramfs,也就是初始RAM文件系统,以便在早期启动过程中可用该阵列。

  1. sudo update-initramfs -u

在启动时将新的文件系统挂载选项添加到/etc/fstab文件以实现自动挂载。

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

您的RAID 6阵列现在将自动组装和挂载每个引导。

你现在已经完成了RAID的设置。如果你想尝试其他的RAID类型,按照本教程开始部分的重置指南,进行创建新的RAID阵列类型。

创建一个复杂的RAID 10阵列

传统上,RAID 10阵列类型是通过创建由多组RAID 1阵列组成的条带化RAID 0阵列来实现的。这种嵌套阵列类型在提供冗余和高性能方面表现出色,但需要较大的磁盘空间。mdadm实用程序拥有自己的RAID 10类型,提供了增强的灵活性,并具有许多相同的特性和保证。在这里,你将使用mdadm RAID 10。

  • 要求:至少需要3个存储设备。
  • 主要优势:性能和冗余。
  • 注意事项:阵列的容量减少量取决于您选择保留的数据副本数量。使用mdadm风格的RAID 10存储的副本数量是可配置的。

默认情况下,每个数据块将在所谓的近似布局中存储两份副本。指导每个数据块存储方式的可能布局如下:

  • near(近端):默认排列。在条带化时,每个块的副本会连续写入,这意味着数据块的副本将写入多个磁盘的相同部分附近。
  • far(远端):第一个和后续副本写入阵列中存储设备的不同部分。例如,第一个块可能写入磁盘的开头附近,而第二个块将写入另一个磁盘的中间位置。这可以为传统旋转磁盘提供一些读取性能增益,但会降低写入性能。
  • offset(偏移):每个条带都会被复制,并偏移一个驱动器。这意味着副本彼此偏移,但在磁盘上仍然靠近。这有助于在某些工作负载下最小化过度寻道。

你可以通过查看此手册中的RAID10部分来了解更多关于这些布局的信息。

  1. man 4 md

你也可以在网上找到这个 man 页。

识别组件设备

首先,找到你将使用的原始磁盘的标识符。

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
输出NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk sdd 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

在这个例子中,你有四个没有文件系统的磁盘,每个大小为100G。这些设备在本次会话中被赋予了/dev/sda、/dev/sdb、/dev/sdc和/dev/sdd的标识符,并且将作为构建阵列的原始组件使用。

创建数组

要使用这些组件创建一个RAID 10阵列,请将它们传递给mdadm –create命令。您需要指定您希望创建的设备名称、RAID级别和设备数量。在下面的命令示例中,您将命名设备为/dev/md0,并包含将构建阵列的磁盘。

您可以通过不指定布局和复制数量来使用相邻布局设置两个副本。

  1. sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

如果您想使用不同的布局或更改副本数量,您将需要使用–layout=选项,该选项使用布局和副本标识符。布局选项包括n代表近,f代表远,o代表偏移。然后后面附加存储的副本数量。

举例来说,要创建一个具有三个偏移布局副本的数组,命令将包括以下内容:

  1. sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

mdadm工具将开始配置阵列。它使用恢复过程来构建阵列以提高性能。这可能需要一些时间来完成,但是在此期间可以使用该阵列。您可以通过检查/proc/mdstat文件来监视镜像的进度。

  1. cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md0 : active raid10 sdd[3] sdc[2] sdb[1] sda[0] 209584128 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU] [===>.................] resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/sec unused devices: <none>

在第一行中,通过使用/dev/sda、/dev/sdb、/dev/sdc和/dev/sdd设备,以RAID 10配置创建了/dev/md0设备。第二个突出显示的区域显示了此示例中使用的布局(在近配置中有两个副本)。第三个突出显示的区域显示了构建进度。您可以在此过程完成时继续进行指导。

创建并挂载文件系统

接下来,在数组上创建一个文件系统。

  1. sudo mkfs.ext4 -F /dev/md0

创建一个挂载点来连接新的文件系统。

  1. sudo mkdir -p /mnt/md0

你可以使用以下方法挂载文件系统。

  1. sudo mount /dev/md0 /mnt/md0

检查新空间是否可用。

  1. df -h -x devtmpfs -x tmpfs
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 197G 60M 187G 1% /mnt/md0

新的文件系统已经被加载并可以访问。

保存数组布局

为了确保阵列在启动时自动重新组装,您需要调整/etc/mdadm/mdadm.conf文件。您可以通过运行以下命令自动扫描活动阵列并将其添加到文件中:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

然后,您可以更新initramfs(初始RAM文件系统),以便在早期启动过程中可以使用该数组。

  1. sudo update-initramfs -u

在 /etc/fstab 文件中添加新的文件系统挂载选项,以实现在启动时自动挂载。

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

您的RAID 10阵列将会自动组装和挂载每个启动。

结论

在本指南中,您学习了如何使用Linux的mdadm软件RAID工具创建各种类型的阵列。RAID阵列相比于单独使用多个硬盘,提供了一些引人注目的冗余和性能改进。

一旦你确定了适合你环境的阵列类型并创建了设备,你可以学习如何使用mdadm进行日常管理。我们的指南《如何使用mdadm在Ubuntu上管理RAID阵列》可以帮助你入门。

bannerAds