![btrfs 从 raid1 转换为 raid5](https://linux22.com/image/1446976/btrfs%20%E4%BB%8E%20raid1%20%E8%BD%AC%E6%8D%A2%E4%B8%BA%20raid5.png)
是否可以轻松地将 btrfs raid1 转换为 raid5。我的意思是,归根结底,它实际上只是两个镜像驱动器。所以我认为这应该很容易做到。我现在想有 3 个 3TB 驱动器用于 6TB 的存储,而不是 2 个 3TB 驱动器用于 3TB。我也一直在研究 btrfs 的 raid5 支持,它仍然被标记为实验性的,但对于家庭 nas 设置来说,这真的那么糟糕吗?我不想丢失所有媒体,但我仍然需要空间。
答案1
我还没有在 BTRFS 中从 RAID 1 转换为 RAID 5,但我已经完成了其他 BTRFS 转换,并且根据文档,它们都同样容易。
很简单
btrfs balance start -dconvert=raid5 -mconvert=raid5 /mnt
这并不难,但需要花费一些时间(很多小时)。
是的,RAID5 仍被标记为实验性的。根据我能找到的最新文档,scrub 仍然不适用于 RAID5,因此无法纠正任何数据错误。
另一种方法可以考虑:使用 BTRFS RAID1,您可以能使用三个 3TB 驱动器可获得 4.5TB 可用空间。是的,您可以使用奇数个驱动器进行镜像。BTRFS 不镜像磁盘,而是镜像块。因此,例如,一些文件将镜像在驱动器 1 和 2 上,一些镜像在 2 和 3 上,一些镜像在 1 和 3 上。
您甚至可以使用 BTRFS RAID1 拥有不同大小的驱动器。我有一套包含一个 2TB 驱动器和三个 1TB 驱动器的驱动器,提供 2.5TB 的可用空间。
BTRFS RAID1 真的很酷。
答案2
是的,可以从 RAID-1 转换为 RAID-5 或(更好的 RAID-6)。例如,您可以将单个 btrfs 文件系统(一个驱动器)转换为 RAID-1(2 个以上驱动器),然后转换为 RAID-5(3 个以上驱动器)和 RAID-6(4 个以上驱动器)。在每种情况下,您都必须先添加新驱动器(btrfs device add drive /mnt/point
),然后重新平衡并转换(btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt/point
)。
然而,对于习惯使用不提供此功能的其他技术的人来说,这听起来可能毫无用处(毕竟,为什么有人会来回转换 RAID 级别),但这实际上比其他技术(如 ZFS)具有巨大的优势:可以向现有的 RAID-6 卷添加单个驱动器,以增加该驱动器的容量。因此,您可以根据存储需求进行扩展。
还应该提到的是,在 3.19 版(内核)之前不应使用 RAID-5/RAID-6,因为当时不支持错误检测/更正。使用 btrfs 时,请始终坚持使用最新版本。很多人会说,btrfs 中的 RAID-5/RAID-6 实现在某些方面仍处于试验阶段,但只要您照顾好系统(不时进行清理以检测静默损坏)、监控驱动器并更换坏驱动器(btrfs replace,直截了当),您最终会得到一个非常稳定的文件系统。(当然,无论如何您都应该有备份。)
如前所述,转换为 RAID-5 或 RAID-6 是通过转换数据和元数据来完成的。