BTrFS 崩溃hhh?

bum*_*ool 5 btrfs

我使用两个 250GB 驱动器和第三个 80GB 驱动器上的第二个分区创建了一个新的 BTrFS raid10 文件系统。我创建了一个 subvol 和快照。我挂载快照并开始将 8GB 的​​数据复制到其中。它达到 1GB 左右,桌面消失,看起来像非交互式终端的东西出现了转储/崩溃信息。我手头没有相机,否则我会拍张照片并发布。它基本上看起来像堆栈跟踪信息。CTRL-ALT F7 最终将带回桌面,但操作系统的整个 BTrFS 部分挂起且无响应,直到我重新启动。

我现在已经重新调整并重现了这个问题 3 次,我即将放弃:(

我意识到这个问题可能不完全是 BTrFS 的错,因为我仍然处于 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>
Run Code Online (Sandbox Code Playgroud)

(永远不要走到这一步 7...)我做错了什么吗?

编辑:我设法捕捉到回溯/崩溃信息的尾端:

/build/buildd/linux-2.6.38/fs/btrfs/extent-tree.c:8581的内核BUG

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

sys*_*138 12

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

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

  • 如果您的卷确实以这种方式填满,重新平衡可能会很快导致 ENOSPC(“设备上没有剩余空间错误”)哎呀。您可能需要删除一个相对较大的文件来解决这个僵局,然后重新平衡就会成功。(2.6.33)

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

强调我的。您提到的第三个 80GB 驱动器上的第二个分区可能在这对 250GB 驱动器之前被填满,并且它触发了这个特殊的陷阱。

此外,出于某种原因,BTrFS 是测试版文件系统。


jco*_*and 6

我建议您参考:http : //packages.ubuntu.com/natty/btrfs-tools,其中指出:

警告:Btrfs 正在大量开发中,不适合除基准测试和审查之外的任何用途。

我怀疑您是否会在邮件列表之外获得很多帮助。