BTrFS 崩溃了吗?

BTrFS 崩溃了吗?

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

我已经重新制定并重现了这个问题 3 次,我打算放弃 :(

我意识到这个问题可能并不完全是 BTrFS 的错,因为我用的还是 alpha 版本的 natty。

如果我是个白痴的话我会给出更详细的信息:

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 步...)我做错了什么吗?

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

内核错误位于 /build/buildd/linux-2.6.38/fs/btrfs/extent-tree.c:8581

编辑2:从 raid10 阵列中删除最小(46GB)的分区似乎已经消除了该问题。

答案1

从声音来看,你遇到了这个问题:

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

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

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

重点是我。您提到的第三个 80GB 驱动器上的第二个分区可能在两个 250GB 驱动器之前就已填满,并且它触发了这个特殊的 Gotcha。

此外,BTrFS 是一个测试版文件系统,这是有原因的。

答案2

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

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

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

相关内容