BTrFS崩溃?

Modified on: Sun, 07 Jul 2019 02:00:02 +0800

我使用两个250GB驱动器创建一个新的BTrFS raid10文件系统,并在第三个80GB驱动器上创建第二个分区。我创建了一个子文件和快照。我挂载快照并开始向其复制8GB数据。它达到大约1GB并且桌面消失,看起来像非交互式终端会出现转储/崩溃信息。我没有相机方便,或者我会拍照并发布。它基本上看起来像堆栈跟踪信息。 CTRL-ALT F7最终将恢复桌面,但操作系统的整个BTrFS部分都挂起并且没有响应,直到我重新启动。

我已经重新格式化并重现了这个问题3次,我即将放弃:(

我意识到这个问题可能并非完全是BTrFS的错,因为我在nat上仍然是alpha。

如果我是个白痴,会有更详细的细节:

1) Create FS:
sudo mkfs.btrfs -m raid10 -d raid10 /dev/sda2 /dev/sdb /dev/sdc

2) Initial temporary mount:
mkdir /btrfs && sudo mount -t btrfs /dev/sda2 /btrfs

3) Create subvol
btrfs s c /btrfs/vm

4) Create initial snapshot: (optional)
btrfs s sn /btrfs/cantremember.snap.something

5)unmount /btrfs and mount /btrfs/vm
sudo mount -t btrfs -o subvol=vm /dev/sda2 /btrfs/vm

6) Copy data to subvolume.
7) Balance data across drives: (optional)
btrfs f bal <path>

(永远不要进入第7步......)
我做错了吗?

编辑:我设法抓住了回溯/崩溃信息的尾端:

  

内核BUG

EDIT2:从raid10阵列中删除最小的(46GB)分区似乎已经消除了这个问题。

最佳答案

从它的声音中,你遇到了这个:

  

分配是在循环的基础上完成的。如果您对由不匹配的驱动器(不同大小的卷)组成的卷上的raid1策略,则较小的卷可能会填满,同时在您的单个最大驱动器上留下大量空间。如果'df'和'btrfs filesystem df [mountpoint]'之间存在任何差异,则可以验证这是一个问题。如果后一个命令也显示“total”和“used”在“Data”行上相同。重新平衡可以缓解这个问题。 (2.6.33)

  
  

      
  • 如果您的音量确实以这种方式填满,重新平衡可能会很快导致ENOSPC(“设备上没有错误消息”)oops。您可能必须删除一个相对较大的文件来解决此僵局,然后重新平衡将成功。 (2.6.33)
  •   

https://btrfs.wiki.kernel.org/index.php/Gotchas

Emphassis mine。您提到的第三个80GB驱动器上的第二个分区可能在这对250GB驱动器之前就已经填满了,它正在触发这个特定的Gotcha。

另外,出于某种原因,BTrFS是一个beta文件系统。

作者:sysadmin1138

相关问答

添加新评论