我有一个带有 2 个 2Tb 驱动器的 RAID1 btrfs 文件系统,并且有一个备用的 750 Gb 硬盘,所以我想将其添加到 RAID 中,这样我就可以使用一些额外的存储空间。
好吧,我将其添加到卷中,可用空间量如预期增加,增加了新添加的硬盘空间量的一半。我做了一个btrfs balance /hdd
,现在的输出btrfs filesystem show
是:
Label: none uuid: e100a7bd-1c03-4424-9ab2-4aa9fa679b8c
Total devices 3 FS bytes used 496.82GiB
devid 1 size 1.82TiB used 500.03GiB path /dev/sda1
devid 2 size 1.82TiB used 500.03GiB path /dev/sdd1
devid 3 size 698.64GiB used 0.00B path /dev/sdc
相关行来自df -h
:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 2,2T 498G 1,4T 27% /hdd
即使重新平衡后,新驱动器还是空的,这正常吗?我还需要做其他事情吗?难道我做错了什么?
如果相关的话,我正在使用 Netrunner Rolling。
更新:我的一个 2 Tb 驱动器坏了,所以我向文件系统添加了一个 250 Gb 和一个 1 Tb 驱动器,并进行了平衡。目前的情况如下:
Label: 'dades' uuid: e100a7bd-1c03-4424-9ab2-4aa9fa679b8c
Total devices 4 FS bytes used 589.10GiB
devid 1 size 1.82TiB used 592.03GiB path /dev/sdb1
devid 3 size 698.64GiB used 180.00GiB path /dev/sdd
devid 4 size 232.89GiB used 0.00B path /dev/sda
devid 5 size 931.51GiB used 412.03GiB path /dev/sde
DF-H
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 1,9T 590G 755G 44% /hdd
答案1
这个问题已经存在三年了,但似乎从未得到解答。我在解决自己的类似问题时偶然发现了这个问题。如果它有一个正确的答案,那对当时的我很有用。
就您而言,这似乎是设计使然。您遇到的“问题”(在驱动器故障和更换之前和之后)是阵列中的其他现有磁盘有更多的自由空间比新添加的[s]。因此,Btrfs 将首先写入它们,即使有关配置的所有内容都按您的预期运行。一旦阵列到达新设备具有更多可用空间的点,它将被写入一对冗余块中的一对。 (下一个最大的可用空间用于第二个副本。)
您可以强制整个阵列完全重新平衡,强制新设备接收块,通过
sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 /mountpoint
不用担心将您的 raid1“转换”为 raid1。至少根据我的经验(但似乎没有在任何地方正式记录),它只会重新做所有事情,包括对所有磁盘进行完整的 raid1 重新平衡,大致与它们的大小成比例。
虽然你现在肯定已经弄清楚了这一切,但对于在搜索中发现这个问题的人来说,在这种特殊情况下,我建议不要做任何事情。新设备应该一旦东西开始填满就可以使用。不幸的是,“应该”和“将”并不总是与 Btrfs 一致。如果没有发生这种情况,请尝试上面提到的命令。如果这不起作用,请尝试这回答。