btrfs 可以使用使用过滤器将 raid 5 转换为 1 吗?

btrfs 可以使用使用过滤器将 raid 5 转换为 1 吗?

btrfs 是否支持部分转换文件系统?

我目前处于这种状态:

btrfs fi df .
Data, RAID5: total=9.83TiB, used=7.68TiB
System, RAID1: total=32.00MiB, used=704.00KiB
Metadata, RAID1: total=12.00GiB, used=8.61GiB
GlobalReserve, single: total=512.00MiB, used=0.00B

由于在 raid5 模式中发现错误,我想迁移到 raid1。目前无法进行完全转换的原因有很多。我想将目标模式设置为 raid1。因此,任何新数据都将放入 raid1,当有时间时,我可以触发完全重新平衡(或软平衡)

那么这样的事情可能吗?

btrfs balance start -dconvert=raid1 -dusage=10 .

答案1

好吧,由于没有其他人有任何信息,我只是尝试了一下并在此记录我的步骤。

btrfs balance start -dconvert=raid1 -dusage=10 .

此命令只是转换了符合过滤器(使用率=10%)的块。没有对块进行压缩(如常规平衡),也没有将目标 raid 级别从 raid5 设置为 raid1。因此,这相当无用,它创建了大部分为空数据的大块,浪费了时间。

下一步是使用限制过滤器和软参数,逐步进行转换。

btrfs balance start -dconvert=raid1 -dlimit=500,soft .

就这样文件系统一步步转换完毕。

笔记:

  1. 在转换之前平衡“空块”。这样可以节省时间。
  2. 在此过程中,btrfs 会始终将新数据放入旧 raid 配置文件的块中。我发现没有办法改变这一点。因此,新数据将始终放入 raid5 块中,或者创建新的 raid5 块来保存数据。一旦整个文件系统转换完毕,这种行为当然就消失了。
  3. 这在网上完全有效:)

相关内容