btrfs 余额操作期间继续工作安全吗?

Abs*_*Abs 3 network-attached-storage outofmemoryerror memory-usage btrfs

我有一个 Rocks 集群系统,带有 NAS,在 RAID 10 配置中使用 btrfs 文件系统。最近,我们一直面临“设备上没有剩余空间”错误,我最终发现元数据几乎完全用完。所以我希望执行平衡操作来解决这个问题。

我不清楚的是,在进行平衡操作时,我们的用户是否可以继续工作并访问他们在 nas 上的目录?平衡手册指出:

“文件系统的磁盘状态始终保持一致,因此意外中断(例如系统崩溃、重新启动)不会损坏文件系统。平衡操作的进度会暂时存储,并将在挂载时恢复,除非挂载选项指定了skip_balance。”

这让我认为数据块只有在该块的平衡完成后才会被重新分配,但我在任何地方都没有找到我的问题的明确答案:用户继续工作、在 nas 上读取/写入数据是否安全在平衡操作期间,或者是否有必要在此过程中使系统离线,这对于我们的 TB 数据可能需要数小时或数天的时间?

Spo*_*ler 5

是的,您可以在线执行此操作。数据或元数据引用仅在特定块的平衡完成后才会更新,因此即使在修改期间也将保持一致。

如果系统是高度写入事务性的,则余额操作将花费更长的时间,但这比必须使系统离线要好得多。