我对 btrfs 的新功能感到非常兴奋,并想开始对其进行测试。在开始之前,我想问一下 btrfs 是否支持通过用更大的磁盘替换磁盘(而不是添加额外的磁盘)来增加 RAID 容量。示例:由 8 个 2TB 驱动器组成的 RAID10 导致容量为 8 TB。然后,每个 2TB 驱动器被一个 6 TB 驱动器替换。每次更换磁盘后,都会执行重建/重新平衡。我想知道,如果在最后一次磁盘更换和重新平衡后容量从 8TB 跃升至 24TB?
互联网上有一些关于它的讲座,但没有像“是的,重新平衡后,容量增加!”这样的 100% 声明。 https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices#Adding_new_devices
Synology 的 NAS 设备完全支持我所询问的功能:https ://www.synology.com/en-global/knowledgebase/DSM/help/DSM/StorageManager/volume_diskgroup_expand_replace_disk 但是,我不确定,如果这功能是 btrfs 的本机功能,或者如果 Synology 的开发人员专门为他们的磁盘站操作系统创建了它。
它应该像你描述的那样工作。但是,可能需要额外的步骤。
例如,如果您在 raid1 配置中放置 4 个每个 3 GB 的驱动器,您最终将获得 6 GB 的容量。用 4 GB 驱动器替换其中两个驱动器应该会给您 7 GB 的容量(btrfs 磁盘使用计算器)。
第 1 步:创建 4x 3G = 6G 容量的 BTRFS RAID1 卷:
第 2 步:将 2 个 3G 驱动器(第 3 和第 4 个驱动器)更换为 4G 驱动器:
RAID1 文件系统应该有 7 GB 的容量,但它只有 6 GB。
解决方案
它需要调整大小以使用所有可用空间(平衡无济于事)。需要在已更换的每台设备上调整其大小,例如设备#3 和#4。
文件系统现在的预期容量为 7 GB。
第 2 步(替代):移除驱动器(旧方式,不推荐)
在添加替换命令之前,更换驱动器的唯一解决方法是添加新驱动器并移除旧驱动器。但是,这可能需要更多时间。它的缺点是会给你留下一个漏洞,即,被移除的设备的 id 将不再被使用,并且设备 id 不再匹配它们在 raid 阵列中的各自位置。
使用添加/删除时,无需手动增加卷。
请注意,当使用添加/删除时,raid 阵列中的第 3 个驱动器的索引为 5 而不是 3,当您需要根据机架中的插槽识别驱动器时,这可能会造成混淆。
这是 BTRFS 4.4 版。未来版本的行为可能会有所不同。
是的,当您用更大的驱动器替换驱动器时,容量会在 btrfs 中增长。但请确保您始终有备份!虽然 RAID0/1 代码不像 btrfs 中的 RAID5/6 代码那样有缺陷(截至 2016 年 7 月),但您的设备更换不会是第一个出现严重错误的设备。