介绍
使用mdadm
实用程序可以利用Linux的软件RAID功能创建和管理存储阵列。管理员在协调其各个存储设备并创建具有更高性能或冗余特性的逻辑存储设备方面具有很大的灵活性。
在本指南中,您将执行可以在Ubuntu 22.04服务器上设置的不同RAID配置。
要按照本指南中的步骤进行操作,您将需要:
- A non-root user with
sudo
privileges on an Ubuntu 22.04 server. To learn how to set up an account with these privileges, follow our Ubuntu 22.04 initial server setup guide. - A basic understanding of RAID terminology and concepts. To learn more about RAID and what RAID level is right for you, read our introduction to RAID article.
- 服务器上有多个原始存储设备。本教程中的示例演示了如何在服务器上配置各种类型的阵列。因此,您需要一些驱动器来进行配置。
- 根据阵列类型,您将需要两到四个存储设备。在按照本指南进行操作之前,这些驱动器无需进行格式化。
信息:由于虚拟专用服务器上的RAID设置效率低下,我们不建议在DigitalOcean droplets上部署RAID设置。数据中心磁盘复制的效率使得RAID的好处相对于裸金属硬件上的设置微不足道。本教程旨在作为传统RAID设置的参考。
重置现有 RAID 设备(可选)
如果您尚未设置任何阵列,您现在可以跳过此部分。本指南将介绍多种不同的 RAID 级别。如果您希望跟随并完成您的设备的每个 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 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 设置的元数据并将它们重置为正常状态:
- sudo mdadm --zero-superblock /dev/sda
- sudo mdadm --zero-superblock /dev/sdb
建议还应删除对数组的任何持久引用。编辑/etc/fstab
文件,并注释或删除对数组的引用。您可以通过在行首插入井号符号#
来注释它,使用nano
或您喜欢的文本编辑器:
- sudo nano /etc/fstab
. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0
还要注释或从/etc/mdadm/mdadm.conf
文件中删除数组定义:
- sudo nano /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
vdb 466K iso9660 disk
在这个例子中,您有两个没有文件系统的磁盘,每个大小为100G。这些设备在本次会话中被赋予了/dev/sda
和/dev/sdb
的标识符,并将作为构建阵列的原始组件。
创建阵列
要使用这些组件创建RAID 0阵列,请将它们传递给mdadm --create
命令。您将需要指定要创建的设备名称、RAID级别和设备数量。在这个命令示例中,您将命名设备为/dev/md0
,并包括两个构建阵列的磁盘:
- 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/md0
设备已经以RAID 0配置使用/dev/sda
和/dev/sdb
设备成功创建。
创建和挂载文件系统
接下来,在阵列上创建一个文件系统:
- 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设置。如果您想尝试不同的RAID,请按照本教程开始时的重置说明进行,以创建新的RAID阵列类型。
创建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
vdb 466K iso9660 disk
在此示例中,您有两个没有文件系统的磁盘,每个磁盘大小为100G。这些设备在此会话中被赋予了/dev/sda
和/dev/sdb
标识符,并将是构建阵列所使用的原始组件。
创建阵列
要使用这些组件创建RAID 1阵列,请将它们传递到mdadm --create
命令中。您需要指定要创建的设备名称、RAID级别和设备数量。在此命令示例中,您将命名设备/dev/md0
,并包含构建阵列的磁盘:
- 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/sda
和/dev/sdb
设备以RAID 1配置创建的/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 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设置。如果您想尝试其他RAID,请按照本教程开头的重置说明进行操作,以创建新的RAID阵列类型。
创建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
vdb 466K iso9660 disk
您有三个没有文件系统的磁盘,每个大小为100G。这些设备已经在本次会话中分别被赋予了/dev/sda
、/dev/sdb
和/dev/sdc
的标识符,并将成为您用来构建阵列的原始组件。
创建阵列
创建 RAID 5 数组,将这些组件传递给 mdadm --create
命令。您将需要指定要创建的设备名称、RAID 级别和设备数量。在此命令示例中,您将为设备命名为 /dev/md0
,并包括构建数组的磁盘:
- sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
mdadm
工具将开始配置数组。它使用恢复过程来构建数组以提高性能。这可能需要一些时间才能完成,但在此期间可以使用数组。您可以通过检查 /proc/mdstat
文件来监视镜像的进度:
- cat /proc/mdstat
OutputPersonalities : [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
文件。如果在数组仍在构建时更新配置文件,则系统将对数组状态有不正确的信息,并且将无法在启动时自动使用正确的名称组装它。
您可以在此过程完成时继续进行指南。
创建和挂载文件系统
接下来,在阵列上创建文件系统:
- 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
文件。
警告:如前所述,在调整配置之前,请再次检查以确保阵列已完成组装。在阵列构建之前完成以下步骤将防止系统在重新启动时正确组装阵列。
您可以通过检查/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/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设置。如果您想尝试其他RAID,请按照本教程开头的重置说明进行操作,以创建新的RAID阵列类型。
创建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
vdb 466K iso9660 disk
在本示例中,您有四个没有文件系统的磁盘,每个大小为100G。这些设备在本次会话中被赋予了/dev/sda
、/dev/sdb
、/dev/sdc
和/dev/sdd
的标识符,并将用作构建阵列的原始组件。
创建阵列
要使用这些组件创建一个RAID 6阵列,请将它们传递到mdadm --create
命令中。您必须指定要创建的设备名称、RAID级别和设备数量。在以下命令示例中,您将命名设备为/dev/md0
,并包含用于构建阵列的磁盘:
- 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 : [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/sda
、/dev/sdb
、/dev/sdc
和/dev/sdd
设备以RAID 6配置创建了/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 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设置。如果您想尝试不同的RAID,请按照本教程开头的重置说明进行操作,以继续创建新的RAID阵列类型。
创建一个复杂的RAID 10阵列
RAID 10阵列类型通常是通过创建由RAID 1阵列组成的分条RAID 0阵列来实现的。这种嵌套阵列类型既具有冗余性又具有高性能,但牺牲了大量的磁盘空间。mdadm
实用程序有自己的RAID 10类型,提供了相同类型的优势并增加了灵活性。它不是通过嵌套阵列创建的,但具有许多相同的特性和保证。您将在这里使用mdadm
RAID 10。
- 要求:至少3个存储设备。
- 主要优势:性能和冗余性。
- 需要记住的事项:阵列的容量减少量由您选择保留的数据副本数量定义。使用
mdadm
风格的RAID 10存储的副本数量是可配置的。
默认情况下,每个数据块的两份副本将以所谓的near布局存储。规定每个数据块的存储方式的可能布局如下:
- 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
vdb 466K iso9660 disk
在这个示例中,您有四个没有文件系统的磁盘,每个大小为100G。为了本次会话,这些设备已被赋予/dev/sda
、/dev/sdb
、/dev/sdc
和/dev/sdd
标识,并将成为构建阵列的原始组件。
创建阵列
要使用这些组件创建RAID 10阵列,请将它们传递给mdadm --create
命令。您必须指定要创建的设备名称、RAID级别和设备数量。在以下命令示例中,您将为设备命名/dev/md0
,并包括将构建阵列的磁盘:
您可以使用近似布局设置两个副本,方法是不指定布局和副本数量:
- sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
如果要使用不同的布局或更改副本数量,您必须使用--layout=
选项,该选项接受布局和副本标识符。布局有n
表示近似,f
表示远离,o
表示偏移。然后附加存储的副本数量。
例如,要创建一个具有三个副本的偏移布局的阵列,命令将包括以下内容:
- 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/sda
、/dev/sdb
、/dev/sdc
和/dev/sdd
设备在RAID 10配置中创建了/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 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上如何使用mdadm
管理RAID阵列的指南可以帮助您入门。