如何在Ubuntu18.04上使用mdadm创建RAID阵列

来自菜鸟教程
跳转至:导航、​搜索

介绍

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

在本指南中,我们将介绍一些可以使用 Ubuntu 18.04 服务器设置的不同 RAID 配置。

先决条件

为了完成本指南中的步骤,您应该具备:

  • 在 Ubuntu 18.04 服务器上具有 sudo 权限的非 root 用户:本指南中的步骤将使用 sudo 用户完成。 要了解如何设置具有这些权限的帐户,请遵循我们的 Ubuntu 18.04 初始服务器设置指南
  • RAID 术语和概念的基本理解:虽然本指南会顺便涉及一些 RAID 术语,但更完整的理解非常有用。 要了解有关 RAID 的更多信息并更好地了解适合您的 RAID 级别,请阅读我们的 RAID 简介文章
  • 服务器上可用的多个原始存储设备:我们将演示如何在服务器上配置各种类型的阵列。 因此,您将需要一些驱动器进行配置。 如果您使用的是 DigitalOcean,则可以使用 Block Storage volumes 来填补这个角色。 根据阵列类型,您至少需要 两到四个存储设备 。 在遵循本指南之前,无需格式化这些驱动器。

重置现有 RAID 设备

在本指南中,我们将介绍创建多个不同 RAID 级别的步骤。 如果您想继续,您可能希望在每个部分之后重复使用您的存储设备。 可以参考本节来了解如何在测试新的 RAID 级别之前快速重置组件存储设备。 如果您尚未设置任何阵列,请暂时跳过此部分。

警告: 此过程将完全破坏数组和写入其中的任何数据。 确保在正确的阵列上进行操作,并且在销毁阵列之前复制了需要保留的所有数据。


通过键入以下命令在 /proc/mdstat 文件中查找活动数组:

cat /proc/mdstat
OutputPersonalities : [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>

从文件系统中卸载阵列:

sudo umount /dev/md0

然后,通过键入以下命令停止并删除数组:

sudo mdadm --stop /dev/md0

使用以下命令查找用于构建阵列的设备:

警告: 请记住,/dev/sd* 名称可以在您重新启动时随时更改! 每次检查它们以确保您在正确的设备上进行操作。


lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     SIZE FSTYPE            TYPE MOUNTPOINT
sda      100G                   disk 
sdb      100G                   disk 
sdc      100G linux_raid_member disk 
sdd      100G linux_raid_member disk 
vda       25G                   disk 
├─vda1  24.9G ext4              part /
├─vda14    4M                   part 
└─vda15  106M vfat              part /boot/efi

发现用于创建阵列的设备后,将其超级块归零以删除 RAID 元数据并将其重置为正常:

sudo mdadm --zero-superblock /dev/sdc
sudo mdadm --zero-superblock /dev/sdd

您应该删除对数组的任何持久引用。 编辑 /etc/fstab 文件并注释掉或删除对数组的引用:

sudo nano /etc/fstab

/etc/fstab

. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0

此外,注释掉或从 /etc/mdadm/mdadm.conf 文件中删除数组定义:

sudo nano /etc/mdadm/mdadm.conf

/etc/mdadm/mdadm.conf

. . .
# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91

最后,再次更新 initramfs,以便早期引导过程不会尝试使不可用的阵列联机。

sudo update-initramfs -u

此时,您应该准备好单独重用存储设备,或作为不同阵列的组件重用。

创建 RAID 0 阵列

RAID 0 阵列的工作原理是将数据分解成块并将其分散到可用磁盘上。 这意味着每个磁盘都包含一部分数据,并且在检索信息时将引用多个磁盘。

  • 要求:至少 2 个存储设备
  • 主要好处:性能
  • 要记住的事情:确保您有功能备份。 单个设备故障将破坏阵列中的所有数据。

识别组件设备

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

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     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

正如您在上面看到的,我们有两个没有文件系统的磁盘,每个大小为 100G。 在此示例中,这些设备已被赋予此会话的 /dev/sda/dev/sdb 标识符。 这些将是我们将用于构建数组的原始组件。

创建数组

要使用这些组件创建 RAID 0 阵列,请将它们传递给 mdadm --create 命令。 您必须指定要创建的设备名称(在我们的示例中为 /dev/md0)、RAID 级别和设备数量:

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

您可以通过检查 /proc/mdstat 文件来确保 RAID 已成功创建:

cat /proc/mdstat
OutputPersonalities : [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/sda/dev/sdb 设备在 RAID 0 配置中创建了 /dev/md0 设备。

创建和挂载文件系统

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

sudo mkfs.ext4 -F /dev/md0

创建挂载点以附加新文件系统:

sudo mkdir -p /mnt/md0

您可以通过键入以下内容来挂载文件系统:

sudo mount /dev/md0 /mnt/md0

通过键入以下内容检查新空间是否可用:

df -h -x devtmpfs -x tmpfs
OutputFilesystem      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 文件。 您可以通过键入以下内容自动扫描活动阵列并附加文件:

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

之后,您可以更新 initramfs 或初始 RAM 文件系统,以便阵列在早期引导过程中可用:

sudo update-initramfs -u

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

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

您的 RAID 0 阵列现在应该在每次启动时自动组装和安装。

创建 RAID 1 阵列

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

  • 要求:至少 2 个存储设备
  • 主要好处:冗余
  • 注意事项:由于维护了两个数据副本,因此只有一半的磁盘空间可用

识别组件设备

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

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     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

正如您在上面看到的,我们有两个没有文件系统的磁盘,每个大小为 100G。 在此示例中,这些设备已被赋予此会话的 /dev/sda/dev/sdb 标识符。 这些将是我们将用于构建数组的原始组件。

创建数组

要使用这些组件创建 RAID 1 阵列,请将它们传递给 mdadm --create 命令。 您必须指定要创建的设备名称(在我们的示例中为 /dev/md0)、RAID 级别和设备数量:

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

如果您使用的组件设备不是启用了 boot 标志的分区,您可能会看到以下警告。 输入 y 继续是安全的:

Outputmdadm: 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 文件来监控镜像的进度:

cat /proc/mdstat
OutputPersonalities : [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/md0 设备已使用 /dev/sda/dev/sdb 设备在 RAID 1 配置中创建。 第二个突出显示的行显示了镜像的进度。 在此过程完成后,您可以继续本指南。

创建和挂载文件系统

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

sudo mkfs.ext4 -F /dev/md0

创建挂载点以附加新文件系统:

sudo mkdir -p /mnt/md0

您可以通过键入以下内容来挂载文件系统:

sudo mount /dev/md0 /mnt/md0

通过键入以下内容检查新空间是否可用:

df -h -x devtmpfs -x tmpfs
OutputFilesystem      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 文件。 您可以通过键入以下内容自动扫描活动阵列并附加文件:

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

之后,您可以更新 initramfs 或初始 RAM 文件系统,以便阵列在早期引导过程中可用:

sudo update-initramfs -u

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

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

您的 RAID 1 阵列现在应该会在每次启动时自动组装和安装。

创建 RAID 5 阵列

RAID 5 阵列类型是通过跨可用设备条带化数据来实现的。 每个条带的一个组件是计算的奇偶校验块。 如果一个设备发生故障,奇偶校验块和剩余块可以用来计算丢失的数据。 接收奇偶校验块的设备会被轮换,以使每个设备都有均衡数量的奇偶校验信息。

  • 要求:至少 3 个存储设备
  • 主要好处:具有更多可用容量的冗余。
  • 要记住的事情:在分发奇偶校验信息时,一个磁盘的容量将用于奇偶校验。 当处于降级状态时,RAID 5 的性能可能会非常差。

识别组件设备

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

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     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

正如您在上面看到的,我们有三个没有文件系统的磁盘,每个大小为 100G。 在此示例中,这些设备已被赋予此会话的 /dev/sda/dev/sdb/dev/sdc 标识符。 这些将是我们将用于构建数组的原始组件。

创建数组

要使用这些组件创建 RAID 5 阵列,请将它们传递给 mdadm --create 命令。 您必须指定要创建的设备名称(在我们的示例中为 /dev/md0)、RAID 级别和设备数量:

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

mdadm 工具将开始配置阵列(出于性能原因,它实际上使用恢复过程来构建阵列)。 这可能需要一些时间才能完成,但在此期间可以使用阵列。 您可以通过检查 /proc/mdstat 文件来监控镜像的进度:

cat /proc/mdstat
OutputPersonalities : [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/2] [UU_]
      [===>.................]  recovery = 15.6% (16362536/104792064) finish=7.3min speed=200808K/sec
      
unused devices: <none>

正如您在第一行突出显示的那样,已使用 /dev/sda/dev/sdb/dev/sdc 设备在 RAID 5 配置中创建了 /dev/md0 设备。 第二个突出显示的行显示了构建的进度。

警告: 由于 mdadm 构建 RAID 5 阵列的方式,在阵列仍在构建时,阵列中的备用数量将不准确报告。 这意味着在更新 /etc/mdadm/mdadm.conf 文件之前,您必须等待阵列完成组装。 如果在阵列仍在构建时更新配置文件,系统将获得有关阵列状态的错误信息,并且无法在引导时使用正确的名称自动组装它。


在此过程完成后,您可以继续本指南。

创建和挂载文件系统

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

sudo mkfs.ext4 -F /dev/md0

创建挂载点以附加新文件系统:

sudo mkdir -p /mnt/md0

您可以通过键入以下内容来挂载文件系统:

sudo mount /dev/md0 /mnt/md0

通过键入以下内容检查新空间是否可用:

df -h -x devtmpfs -x tmpfs
OutputFilesystem      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 文件。

如上所述,在调整配置之前,请再次检查以确保阵列已完成组装。 在构建阵列之前完成此步骤将导致系统在重新启动时无法正确组装阵列:

cat /proc/mdstat
OutputPersonalities : [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>

上面的输出显示重建完成。 现在,我们可以通过键入以下内容自动扫描活动数组并附加文件:

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

之后,您可以更新 initramfs 或初始 RAM 文件系统,以便阵列在早期引导过程中可用:

sudo update-initramfs -u

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

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

您的 RAID 5 阵列现在应该会在每次启动时自动组装和安装。

创建 RAID 6 阵列

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

  • 要求:至少 4 个存储设备
  • 主要好处:具有更多可用容量的双重冗余。
  • 要记住的事情:在分发奇偶校验信息时,将使用两个磁盘的容量进行奇偶校验。 当处于降级状态时,RAID 6 的性能可能会非常差。

识别组件设备

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

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     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

正如您在上面看到的,我们有四个没有文件系统的磁盘,每个大小为 100G。 在此示例中,这些设备已被赋予此会话的 /dev/sda/dev/sdb/dev/sdc/dev/sdd 标识符。 这些将是我们将用于构建数组的原始组件。

创建数组

要使用这些组件创建 RAID 6 阵列,请将它们传递给 mdadm --create 命令。 您必须指定要创建的设备名称(在我们的示例中为 /dev/md0)、RAID 级别和设备数量:

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

mdadm 工具将开始配置阵列(出于性能原因,它实际上使用恢复过程来构建阵列)。 这可能需要一些时间才能完成,但在此期间可以使用阵列。 您可以通过检查 /proc/mdstat 文件来监控镜像的进度:

cat /proc/mdstat
OutputPersonalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [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 和 [ X158X] 设备。 第二个突出显示的行显示了构建的进度。 在此过程完成后,您可以继续本指南。

创建和挂载文件系统

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

sudo mkfs.ext4 -F /dev/md0

创建挂载点以附加新文件系统:

sudo mkdir -p /mnt/md0

您可以通过键入以下内容来挂载文件系统:

sudo mount /dev/md0 /mnt/md0

通过键入以下内容检查新空间是否可用:

df -h -x devtmpfs -x tmpfs
OutputFilesystem      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 文件。 我们可以通过键入以下内容自动扫描活动数组并附加文件:

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

之后,您可以更新 initramfs 或初始 RAM 文件系统,以便阵列在早期引导过程中可用:

sudo update-initramfs -u

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

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

您的 RAID 6 阵列现在应该会在每次启动时自动组装和安装。

创建复杂的 RAID 10 阵列

RAID 10 阵列类型传统上是通过创建由 RAID 1 阵列集组成的条带化 RAID 0 阵列来实现的。 这种嵌套阵列类型提供了冗余和高性能,但会占用大量磁盘空间。 mdadm 实用程序具有自己的 RAID 10 类型,可提供相同类型的优势和更高的灵活性。 它不是由嵌套数组创建的 而非 ,但具有许多相同的特征和保证。 我们将在这里使用 mdadm RAID 10。

  • 要求:至少 3 个存储设备
  • 主要好处:性能和冗余
  • 要记住的事情:阵列的容量减少量由您选择保留的数据副本数量定义。 使用 mdadm 样式 RAID 10 存储的副本数量是可配置的。

默认情况下,每个数据块的两个副本将存储在所谓的“近”布局中。 指示如何存储每个数据块的可能布局是:

  • near:默认排列。 每个块的副本在条带化时是连续写入的,这意味着数据块的副本将围绕多个磁盘的同一部分写入。
  • far:第一个副本和后续副本被写入阵列中存储设备的不同部分。 例如,第一个块可能写在磁盘的开头附近,而第二个块可能会写到另一个磁盘的一半。 这可以以牺牲写入性能为代价,为传统旋转磁盘带来一些读取性能提升。
  • offset:复制每个条带,偏移一个驱动器。 这意味着副本彼此偏移,但在磁盘上仍然靠得很近。 这有助于在某些工作负载期间最大限度地减少过度搜索。

您可以通过查看此 man 页面的“RAID10”部分了解有关这些布局的更多信息:

man 4 md

您也可以在这里在线找到这个man页面。

识别组件设备

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

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     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

正如您在上面看到的,我们有四个没有文件系统的磁盘,每个大小为 100G。 在此示例中,这些设备已被赋予此会话的 /dev/sda/dev/sdb/dev/sdc/dev/sdd 标识符。 这些将是我们将用于构建数组的原始组件。

创建数组

要使用这些组件创建 RAID 10 阵列,请将它们传递给 mdadm --create 命令。 您必须指定要创建的设备名称(在本例中为 /dev/md0)、RAID 级别和设备数量。

您可以通过不指定布局和副本编号来使用近布局设置两个副本:

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

如果您想使用不同的布局或更改副本数量,则必须使用 --layout= 选项,该选项采用布局和副本标识符。 布局是 n 表示近,f 表示远,o 表示偏移。 之后会附加要存储的副本数。

例如,要创建一个在偏移布局中有 3 个副本的数组,命令如下所示:

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

mdadm 工具将开始配置阵列(出于性能原因,它实际上使用恢复过程来构建阵列)。 这可能需要一些时间才能完成,但在此期间可以使用阵列。 您可以通过检查 /proc/mdstat 文件来监控镜像的进度:

cat /proc/mdstat
OutputPersonalities : [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/md0 设备已在 RAID 10 配置中使用 /dev/sda/dev/sdb/dev/sdc 和 [ X159X] 设备。 第二个突出显示的区域显示了用于此示例的布局(近配置中的 2 个副本)。 第三个突出显示的区域显示了构建的进度。 在此过程完成后,您可以继续本指南。

创建和挂载文件系统

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

sudo mkfs.ext4 -F /dev/md0

创建挂载点以附加新文件系统:

sudo mkdir -p /mnt/md0

您可以通过键入以下内容来挂载文件系统:

sudo mount /dev/md0 /mnt/md0

通过键入以下内容检查新空间是否可用:

df -h -x devtmpfs -x tmpfs
OutputFilesystem      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 文件。 我们可以通过键入以下内容自动扫描活动数组并附加文件:

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

之后,您可以更新 initramfs 或初始 RAM 文件系统,以便阵列在早期引导过程中可用:

sudo update-initramfs -u

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

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

您的 RAID 10 阵列现在应该会在每次启动时自动组装和挂载。

结论

在本指南中,我们演示了如何使用 Linux 的 mdadm 软件 RAID 实用程序创建各种类型的阵列。 与单独使用多个磁盘相比,RAID 阵列提供了一些引人注目的冗余和性能增强。

一旦您确定了您的环境所需的阵列类型并创建了设备,您将需要学习如何使用 mdadm 执行日常管理。 我们关于 如何在 Ubuntu 16.04 上使用 mdadm 管理 RAID 阵列的指南可以帮助您入门。