如何设置 Btrfs RAID

您所在的位置:网站首页 RAID60教程 如何设置 Btrfs RAID

如何设置 Btrfs RAID

2024-07-17 10:34| 来源: 网络整理| 查看: 265

如何设置 Btrfs RAID

Btrfs 是一种现代的写入时复制 (CoW) 文件系统,具有内置 RAID 支持。因此,您不需要任何第三方工具即可在 Btrfs 文件系统上创建软件 RAID。

Btrfs 文件系统将文件系统元数据和数据分开保存。您可以同时对数据和元数据使用不同的 RAID 级别。这是 Btrfs 文件系统的主要优点。

本文介绍如何在 RAID-0、RAID-1、RAID-1C3、RAID-1C4、RAID-10、RAID-5 和 RAID-6 配置中设置 Btrfs RAID。

缩写

Btrfs ——B 树文件系统

RAID – 廉价磁盘冗余阵列/独立磁盘冗余阵列

GB – 技嘉

TB ——太字节

HDD – 硬盘驱动器

SSD – 固态硬盘

先决条件

要尝试本文中包含的示例:

您的计算机上必须安装 Btrfs 文件系统。

您将需要至少四个相同容量的 HDD/SSD 来尝试不同的 RAID 配置。

在我的 Ubuntu 机器中,我添加了四个 HDD(sdb、sdc、sdd、sde)。每个的大小为 20 GB。

$ sudo lsblk -e7

注意:您的 HDD/SSD 的名称可能与我的不同。因此,从现在开始,请务必将它们替换为您的。

如需在 Ubuntu 中安装 Btrfs 文件系统的帮助,请查看文章在 Ubuntu 20.04 LTS 上安装和使用 Btrfs。

如需在 Fedora 中安装 Btrfs 文件系统的帮助,请查看文章在 Fedora 33 上安装和使用 Btrfs。

Btrfs 配置文件

Btrfs 配置文件用于告诉 Btrfs 文件系统要保留多少数据/元数据副本以及数据/元数据使用什么 RAID 级别。 Btrfs 文件系统包含许多配置文件。了解它们将帮助您按照您想要的方式配置 Btrfs RAID。

可用的 Btrfs 配置文件如下:

single:如果数据/元数据使用single配置文件,则即使您添加多个存储设备,文件系统中也只会存储一份数据/元数据副本到文件系统。因此,添加到文件系统的每个存储设备的磁盘空间100%都可以被利用。

dup:如果dup配置文件用于数据/元数据,则添加到文件系统的每个存储设备将保留数据/元数据的两个副本。因此,添加到文件系统的每个存储设备的50%磁盘空间可以被利用。

raid0:在raid0配置文件中,数据/元数据将均匀地分配到添加到文件系统的所有存储设备上。在此设置中,不会有冗余(重复)数据/元数据。因此,添加到文件系统的每个存储设备的磁盘空间100%都可以使用。在任何情况下,如果其中一个存储设备发生故障,整个文件系统将被损坏。您将需要至少两个存储设备才能在 raid0 配置文件中设置 Btrfs 文件系统。

raid1:在raid1配置文件中,数据/元数据的两个副本将存储在添加到文件系统的存储设备中。在此设置中,RAID 阵列可以在一个驱动器发生故障时幸存下来。但是,您只能使用总磁盘空间的50%。您将需要至少两个存储设备才能在 raid1 配置文件中设置 Btrfs 文件系统。

raid1c3:在raid1c3配置文件中,数据/元数据的三个副本将存储在添加到文件系统的存储设备中。在此设置中,RAID 阵列可以承受两次驱动器故障,但您只能使用总磁盘空间的33%。您将需要至少三个存储设备才能在 raid1c3 配置文件中设置 Btrfs 文件系统。

raid1c4:在raid1c4配置文件中,数据/元数据的四个副本将存储在添加到文件系统的存储设备中。在此设置中,RAID 阵列可以承受三个驱动器故障,但您只能使用总磁盘空间的25%。您将需要至少四个存储设备才能在 raid1c4 配置文件中设置 Btrfs 文件系统。

raid10:在 raid10配置文件中,数据/元数据的两个副本将存储在添加到文件系统的存储设备中,如在 raid1中> 简介。此外,数据/元数据将跨存储设备分割,如 raid0 配置文件中一样。

raid10 配置文件是 raid1 和 raid0 配置文件的混合体。一些存储设备形成raid1阵列,其中一些raid1阵列用于形成raid0阵列。在 raid10 设置中,文件系统可以承受每个 raid1 阵列中的单个驱动器故障。

您可以在 raid10 配置中使用总磁盘空间的 50%。您将需要至少四个存储设备才能在 raid10 配置文件中设置 Btrfs 文件系统。

raid5:在raid5配置文件中,数据/元数据的一份副本将跨存储设备分割。将计算单个奇偶校验并将其分配给 RAID 阵列的存储设备。

在 raid5 配置中,文件系统可以在单个驱动器发生故障时幸存下来。如果驱动器发生故障,您可以将新驱动器添加到文件系统,丢失的数据将根据正在运行的驱动器的分布式奇偶校验来计算。

您可以在 raid5 配置中使用总磁盘空间的 100x(N-1)/N %。这里,N是添加到文件系统的存储设备的数量。您将需要至少三个存储设备才能在 raid5 配置文件中设置 Btrfs 文件系统。

raid6:在 raid6 配置文件中,数据/元数据的一份副本将跨存储设备拆分。将计算两个奇偶校验并在 RAID 阵列的存储设备之间分配。

在 raid6 配置中,文件系统可以同时承受两个驱动器故障。如果驱动器发生故障,您可以将新驱动器添加到文件系统,并且将从正在运行的驱动器的两个分布式奇偶校验来计算丢失的数据。

您可以在 raid6 配置中使用总磁盘空间的 100x(N-2)/N %。这里,N是添加到文件系统的存储设备的数量。您将需要至少四个存储设备才能在 raid6 配置文件中设置 Btrfs 文件系统。

创建挂载点

您需要创建一个目录来挂载将在本文下一部分中创建的 Btrfs 文件系统。

要创建目录/挂载点/data,请运行以下命令:

$ sudo mkdir -v /data设置 RAID-0

在本部分中,您将了解如何使用四个 HDD(sdb、sdc、sdd 和 sde)在 RAID-0 配置中设置 Btrfs RAID。 HDD 的大小为 20 GB。

$ sudo lsblk -e7

要使用四个 HDD(sdb、sdc、sdd 和 sde)在 RAID-0 配置中创建 Btrfs RAID,请运行以下命令:

$ sudo mkfs.btrfs -L data -d raid0 -m raid0 -f /dev/sdb /dev/sdc /dev/sdd /dev/sde

这里,

–L选项用于设置文件系统标签data。

–d 选项用于为文件系统数据设置 RAID 配置文件 raid0 。

–m选项用于为文件系统元数据设置 RAID 配置文件raid0。

–f选项用于强制创建 Btrfs 文件系统,即使任何 HDD 已有文件系统也是如此。

现在应该创建 RAID-0 配置中的 Btrfs 文件系统数据,如下面的屏幕截图所示。

您可以使用用于创建 RAID 的任何 HDD/SSD 挂载 Btrfs RAID。

例如,我使用 HDD sdb、sdc、sdd 和 sde 在 RAID-0 配置中创建 Btrfs RAID。

因此,我可以使用硬盘 sdb 将 Btrfs 文件系统 data 挂载到 /data 目录中,如下所示:

$ sudo mount /dev/sdb /data

可以看到,Btrfs RAID挂载在/data目录下。

$ sudo df -h /data

要查找挂载在 /data 目录中的 data Btrfs 文件系统的文件系统使用信息,请运行以下命令:

$ sudo btrfs filesystem usage /data

如你看到的,

RAID 大小(设备大小)为80 GB(每个 HDD 4×20 GB)。

大约78.98 GB(可用(估计))的80 GB 磁盘空间可用于 RAID-0 配置。

在 RAID-0 配置中,Btrfs 文件系统中将仅存储一份数据副本(数据比率)和一份元数据副本(元数据比率)。

当 Btrfs RAID 正在工作时,您可以将其从 /data 目录中卸载,如下所示:

$ sudo umount /data设置 RAID-1

在本部分中,您将了解如何使用四个 HDD(sdb、sdc、sdd 和 sde)在 RAID-1 配置中设置 Btrfs RAID。 HDD 的大小为 20 GB。

$ sudo lsblk -e7

要使用四个 HDD(sdb、sdc、sdd 和 sde)在 RAID-1 配置中创建 Btrfs RAID,请运行以下命令:

$ sudo mkfs.btrfs -L data -d raid1 -m raid1 -f /dev/sdb /dev/sdc /dev/sdd /dev/sde

这里,

–L选项用于设置文件系统标签data。

–d选项用于为文件系统数据设置 RAID 配置文件raid1。

–m 选项用于为文件系统元数据设置 RAID 配置文件 raid1。

–f选项用于强制创建 Btrfs 文件系统,即使任何 HDD 已有文件系统也是如此。

现在应该创建 RAID-1 配置中的 Btrfs 文件系统数据,如下面的屏幕截图所示。

您可以使用用于创建 RAID 的任何 HDD/SSD 挂载 Btrfs RAID。

例如,我使用 HDD sdb、sdc、sdd 和 sde 在 RAID-1 配置中创建 Btrfs RAID。

我可以使用硬盘 sdb 将 Btrfs 文件系统 data 挂载到 /data 目录中,如下所示:

$ sudo mount /dev/sdb /data

如您所见,Btrfs RAID 挂载在 /data 目录中。

$ sudo df -h /data

要查找挂载在 /data 目录中的数据 Btrfs 文件系统的文件系统使用信息,请运行以下命令:

$ sudo btrfs filesystem usage /data

如你看到的,

RAID 大小(设备大小)为80 GB(每个 HDD 4×20 GB)。

大约38.99 GB(可用(估计))的80 GB磁盘空间可用于 RAID-1 配置。

在 RAID-1 配置中,两个数据副本(数据比率)和两个元数据副本(元数据比率)将存储在 Btrfs 文件系统中。

当 Btrfs RAID 正在工作时,您可以将其从 /data 目录中卸载,如下所示:

$ sudo umount /data设置 RAID-1C3

在本节中,您将了解如何使用四个 HDD(sdb、sdc、sdd 和 sde)在 RAID-1C3 配置中设置 Btrfs RAID。 HDD 大小为 20 GB

$ sudo lsblk -e7

要使用四个 HDD sdb、sdc、sdd 和 sde 在 RAID-1C3 配置中创建 Btrfs RAID,请运行以下命令:

$ sudo mkfs.btrfs -L data -d raid1c3 -m raid1c3 -f /dev/sdb /dev/sdc /dev/sdd /dev/sde

这里,

–L选项用于设置文件系统标签数据。

–d 选项用于为文件系统data 设置 RAID 配置文件raid1c3 。

–m选项用于为文件系统元数据设置 RAID 配置文件raid1c3。

–f 选项用于强制创建 Btrfs 文件系统,即使任何 HDD 具有现有文件系统也是如此。

现在应该创建 RAID-1C3 配置中的 Btrfs 文件系统数据,如下面的屏幕截图所示。

您可以使用用于创建 RAID 的任何 HDD/SSD 挂载 Btrfs RAID。

例如,我使用 HDD sdb、sdc、sdd 和 sde 在 RAID-1C3 配置中创建 Btrfs RAID。

因此,我可以使用硬盘 sdb 将 Btrfs 文件系统 data 挂载到 /data 目录中,如下所示:

$ sudo mount /dev/sdb /data

可以看到,Btrfs RAID挂载在/data目录下。

$ sudo df -h /data

要查找安装在 /data 目录中的data Btrfs文件系统的文件系统使用信息,请运行以下命令:

$ sudo btrfs filesystem usage /data

如你看到的,

RAID 大小(设备大小)为80 GB(每个 HDD 4×20 GB)。

大约25.66 GB(可用(估计))80 GB磁盘空间可用于 RAID-1C3 配置。

在 RAID-1C3 配置中,三个数据副本(数据比率)和三个元数据副本(元数据比率)将存储在 Btrfs 文件系统中。

当 Btrfs RAID 正在工作时,您可以将其从 /data 目录中卸载,如下所示:

$ sudo umount /data设置 RAID-1C4

在本节中,您将了解如何使用四个 HDD sdb、sdc、sdd 和 sde 在 RAID-1C4 配置中设置 Btrfs RAID。 HDD 的大小为 20 GB。

$ sudo lsblk -e7

要使用四个 HDD sdb、sdc、sdd 和 sde 在 RAID-1C4 配置中创建 Btrfs RAID,请运行以下命令:

$ sudo mkfs.btrfs -L data -d raid1c4 -m raid1c4 -f /dev/sdb /dev/sdc /dev/sdd /dev/sde

这里,

–L选项用于设置文件系统标签data。

–d 选项用于设置文件系统数据的 RAID 配置文件 raid1c4。

–m选项用于为文件系统元数据设置 RAID 配置文件raid1c4。

–f 选项用于强制创建 Btrfs 文件系统,即使任何 HDD 具有现有文件系统也是如此。

现在应该创建 RAID-1C4 配置中的 Btrfs 文件系统数据,如下面的屏幕截图所示。

您可以使用用于创建 RAID 的任何 HDD/SSD 挂载 Btrfs RAID。

例如,我使用 HDD sdb、sdc、sdd 和 sde 在 RAID-1C4 配置中创建 Btrfs RAID。

因此,我可以使用硬盘 sdb 将 Btrfs 文件系统 data 挂载到 /data 目录中,如下所示:

$ sudo mount /dev/sdb /data

可以看到,Btrfs RAID挂载在/data

$ sudo df -h /data

查找挂载在/data中的dataBtrfs文件系统的文件系统使用信息

$ sudo btrfs filesystem usage /data

如你看到的,

RAID 大小(设备大小)为80 GB(每个 HDD 4×20 GB)。

RAID-1C4 配置中可使用 80 GB 大约18.99 GB(可用(估计))磁盘空间。

在 RAID-1C4 配置中,四个数据副本(数据比率)和四个元数据副本(元数据比率)将存储在 Btrfs 文件系统中。

当 Btrfs RAID 正在工作时,您可以将其从 /data 目录中卸载,如下所示:

$ sudo umount /data设置 RAID-10

在本部分中,您将了解如何使用四个 HDD sdb、sdc、sdd 和 sde 在 RAID-10 配置中设置 Btrfs RAID。 HDD 的大小为 20 GB。

$ sudo lsblk -e7

要使用四个 HDD sdb、sdc、sdd 和 sde 在 RAID-10 配置中创建 Btrfs RAID,请运行以下命令:

$ sudo mkfs.btrfs -L data -d raid10 -m raid10 -f /dev/sdb /dev/sdc /dev/sdd /dev/sde

这里,

–L选项用于设置文件系统标签data。

–d选项用于为文件系统数据设置 RAID 配置文件raid10。

–m选项用于为文件系统元数据设置 RAID 配置文件raid10。

–f 选项用于强制创建 Btrfs 文件系统,即使任何 HDD 具有现有文件系统也是如此。

现在应该创建 RAID-10 配置中的 Btrfs 文件系统数据,如下面的屏幕截图所示。

您可以使用用于创建 RAID 的任何 HDD/SSD 挂载 Btrfs RAID。

例如,我使用 HDD sdb、sdc、sdd 和 sde 在 RAID-10 配置中创建 Btrfs RAID。

因此,我可以使用硬盘 sdb 将 Btrfs 文件系统 data 挂载到 /data 目录中,如下所示:

$ sudo mount /dev/sdb /data

可以看到,Btrfs RAID挂载在/data目录下。

$ sudo df -h /data

要查找挂载在 /data 目录中的数据 Btrfs 文件系统的文件系统使用信息,请运行以下命令:

$ sudo btrfs filesystem usage /data

如你看到的,

RAID 大小(设备大小)为80 GB(每个 HDD 4×20 GB)。

RAID-10 配置中可使用大约39.48 GB(可用(估计))的80 GB磁盘空间。

在 RAID-10 配置中,两个数据副本(数据比率)和两个元数据副本(元数据比率)将存储在 Btrfs 文件系统中。

当 Btrfs RAID 正在工作时,您可以将其从 /data 目录中卸载,如下所示:

$ sudo umount /data设置 RAID-5

在本部分中,您将了解如何使用四个硬盘 sdb、sdc、sdd、 和 sde 在 RAID-5 配置中设置 Btrfs RAID。 HDD 的大小为 20 GB。

$ sudo lsblk -e7

要使用四个 HDD sdb、sdc、sdd 和 sde 在 RAID-5 配置中创建 Btrfs RAID,请运行以下命令:

$ sudo mkfs.btrfs -L data -d raid5 -m raid5 -f /dev/sdb /dev/sdc /dev/sdd /dev/sde

这里,

–L选项用于设置文件系统标签data。

–d选项用于为文件系统数据设置RAID配置文件raid5。

–m 选项用于为文件系统元数据设置 RAID 配置文件 raid5。

–f 选项用于强制创建 Btrfs 文件系统,即使任何 HDD 具有现有文件系统也是如此。

现在应该创建 RAID-5 配置中的 Btrfs 文件系统数据,如下面的屏幕截图所示。

您可以使用用于创建 RAID 的任何 HDD/SSD 挂载 Btrfs RAID。

例如,我使用 HDD sdb、sdc、sdd 和 sde 在 RAID-5 配置中创建 Btrfs RAID。

因此,我可以使用硬盘 sdb 将 Btrfs 文件系统 data 挂载到 /data 目录中,如下所示:

$ sudo mount /dev/sdb /data

可以看到,Btrfs RAID挂载在/data目录下。

$ sudo df -h /data

要查找挂载在 /data 目录中的数据 Btrfs 文件系统的文件系统使用信息,请运行以下命令:

$ sudo btrfs filesystem usage /data

如你看到的,

RAID 大小(设备大小)为80 GB(每个 HDD 4×20 GB)。

大约59.24 GB(可用(估计))的80 GB磁盘空间可用于 RAID-5 配置。

在 RAID-5 配置中,1.33 个数据副本(数据比率)和 1.33 个元数据副本(元数据比率)将存储在 Btrfs 文件系统中。

当 Btrfs RAID 正在工作时,您可以将其从 /data 目录中卸载,如下所示:

$ sudo umount /data设置 RAID-6

在本节中,您将了解如何使用四个硬盘 sdb、sdc、sdd 和 sde 在 RAID-6 配置中设置 Btrfs RAID。 HDD 的大小为 20 GB。

$ sudo lsblk -e7

要使用四个 HDD sdb、sdc、sdd 和 sde 在 RAID-6 配置中创建 Btrfs RAID,请运行以下命令:

$ sudo mkfs.btrfs -L data -d raid6 -m raid6 -f /dev/sdb /dev/sdc /dev/sdd /dev/sde

这里,

–L选项用于设置文件系统标签data。

–d选项用于为文件系统数据设置RAID配置文件raid6。

–m选项用于为文件系统元数据设置 RAID 配置文件raid6。

–f 选项用于强制创建 Btrfs 文件系统,即使任何 HDD 具有现有文件系统也是如此。

现在应该创建 RAID-6 配置中的 Btrfs 文件系统数据,如下面的屏幕截图所示。

您可以使用用于创建 RAID 的任何 HDD/SSD 挂载 Btrfs RAID。

例如,我使用 HDD sdb、sdc、sdd 和 sde 在 RAID-6 配置中创建 Btrfs RAID。

因此,我可以使用硬盘 sdb 将 Btrfs 文件系统 data 挂载到 /data 目录中,如下所示:

$ sudo mount /dev/sdb /data

可以看到,Btrfs RAID挂载在/data目录下。

$ sudo df -h /data

要查找安装在 /data 目录中的 data Btrfs 文件系统的文件系统使用信息,请运行以下命令:

$ sudo btrfs filesystem usage /data

如你看到的,

RAID 大小(设备大小)为80 GB(每个 HDD 4×20 GB)。

大约 39.48 GB (可用(估计))80 GB 磁盘空间可用于 RAID-6 配置。

在 RAID-6 配置中,两个数据副本(数据比率)和两个元数据副本(元数据比率)将存储在 Btrfs 文件系统中。

当 Btrfs RAID 正在工作时,您可以将其从 /data 目录中卸载,如下所示:

$ sudo umount /dataBtrfs RAID-5 和 RAID-6 的问题

内置 Btrfs RAID-5 和 RAID-6 配置仍处于实验阶段。这些配置非常不稳定,您不应该在生产中使用它们。

为了防止数据损坏,Ubuntu 操作系统没有为 Btrfs 文件系统实现 RAID-5 和 RAID-6。因此,您将无法使用 Ubuntu 上 Btrfs 文件系统的内置 RAID 功能在 RAID-5 和 RAID-6 配置中创建 Btrfs RAID。这就是为什么我向您展示了如何在 Fedora 33(而不是 Ubuntu 20.04 LTS)的 RAID-5 和 RAID-6 配置中创建 Btrfs RAID。

启动时自动挂载 Btrfs RAID

要使用 /etc/fstab 文件在启动时自动挂载 Btrfs RAID,您需要知道 Btrfs 文件系统的 UUID。

您可以使用以下命令查找 Btrfs 文件系统的 UUID:

$ sudo blkid --match-token TYPE=btrfs

可以看到,为了配置RAID而添加到Btrfs文件系统中的存储设备的UUID是相同的。

就我而言,它是c69a889a-8fd2-4571-bd97-a3c2e4543b6b。这对你来说会有所不同。因此,从现在开始,请务必将此 UUID 替换为您的 UUID。

现在,使用nano文本编辑器打开/etc/fstab文件,如下所示:

$ sudo nano /etc/fstab

将以下行添加到 /etc/fstab 文件的末尾。

UUID=c69a889a-8fd2-4571-bd97-a3c2e4543b6b  /data   btrfs   defaults    0   0

完成后,按 + X,然后按 Y 和 保存 /etc/fstab 文件。

为了使更改生效,请重新启动计算机,如下所示:

$ sudo reboot

可以看到,Btrfs RAID 已正确挂载到 /data 目录中。

$ df -h /data

正如您所看到的,安装在 /data 目录中的 Btrfs RAID 工作正常。

$ sudo btrfs filesystem usage /data结论

本文详细解释了各种 Btrfs RAID 配置文件。本文向您展示了如何在 RAID-0、RAID-1、RAID-1C3、RAID-1C4、RAID-10、RAID-5 和 RAID-6 配置中设置 Btrfs RAID。您还了解了 Btrfs RAID-5 和 RAID-6 配置的一些问题,以及如何在启动时自动挂载 Btrfs RAID。

参考

[1] 在多个设备上使用 Btrfs – btrfs Wiki – https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices

[2] Btrfs 手册页配置文件布局 – https://btrfs.wiki.kernel.org/index.php/Manpage/mkfs.btrfs#PROFILE_LAYOUT

[4] 标准 RAID 级别 – 维基百科 – https://en.wikipedia.org/wiki/Standard_RAID_levels



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3