将 BTRFS 文件系统转换为 RAID1 失败,并显示“设备的 ioctl 不适当”

将 BTRFS 文件系统转换为 RAID1 失败,并显示“设备的 ioctl 不适当”

我有一个 ~1.6TB 的 BTRFS 卷,位于单个分区上,我成功地向其中添加了另一个新创建并格式化的分区(在另一台设备上),其大小完全相同,目的是镜像它们。现在卷的大小似乎约为 3.2TB。但是,当我尝试将卷(安装到/mnt/mnt0)转换为 RAID-1时,

btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt/mnt0

(从这里

我收到以下错误:

ERROR: error during balancing '/mnt/mnt0' - Inappropriate ioctl for device
There may be more info in syslog - try dmesg | tail

dmesg输出非常无趣(并且无论如何,运行上述命令似乎都没有产生任何输出):

root@Xeon:~# dmesg | tail
[26712.029432] device label Storage devid 1 transid 3760 /dev/sdb1
[26712.029464] device fsid 7c7bb4a7-f403-4dad-b7e3-92fa1a30c764 devid 1 transid 175588 /dev/sdb2
[26712.029494] device fsid 56a9e829-c964-4f16-a37f-3bde05fb22a0 devid 1 transid 172361 /dev/sdb3
[26712.029524] device fsid 29181083-c9d6-4d8a-bd3b-1f17b925bb21 devid 1 transid 70197 /dev/sdb4
[26712.029582] device fsid ff65812c-9515-465d-8536-e8d00cfb2193 devid 1 transid 3677 /dev/sda1
[26712.029641] device label Storage devid 2 transid 3760 /dev/sdc1
[26712.029886] device fsid 44c395d9-df4e-4ab2-8a41-5b06e584e854 devid 1 transid 4 /dev/sdc2
[26828.213983] device label Storage devid 1 transid 3760 /dev/sdb1
[26967.116350] device label Storage devid 1 transid 3760 /dev/sdb1
[27079.571213] device label Storage devid 2 transid 3763 /dev/sdc1

btrfs fi show给出(如果相关的话):

Label: 'Storage'  uuid: 77a43f33-908b-468b-9570-55964547d1a1
        Total devices 2 FS bytes used 744.68GB 
        devid    2 size 1.62TB used 0.00 path /dev/sdc1
        devid    1 size 1.62TB used 947.54GB path /dev/sdb1

两个分区均已通过btrfs.fsck

我该如何让它工作呢?

编辑:这是最新的 Debian Wheezy 安装,带有 3.2 内核。

更新:奇怪的是,btrfs balance start /mnt/mnt0运行正常 - 但是,btrfs balance cancel /mnt/mnt0由于相同的错误而失败。平衡后,两个卷上似乎都有相同的数据,但数据仍在 RAID0 中;btrfs fi show给出

Label: 'Storage'  uuid: 77a43f33-908b-468b-9570-55964547d1a1
        Total devices 2 FS bytes used 744.66GB
        devid    2 size 1.62TB used 901.01GB path /dev/sdc1
        devid    1 size 1.62TB used 901.01GB path /dev/sdb1

btrfs fi df

Data, RAID0: total=1.72TB, used=742.51GB
System, RAID1: total=8.00MB, used=144.00KB
System: total=4.00MB, used=0.00
Metadata, RAID1: total=19.00GB, used=2.15GB

答案1

通过将内核升级到 3.8.4 解决了这个问题。我不得不自己编译,但原有的设置似乎运行良好(我静态构建了 btrfs,而不是将其作为模块,但我不确定这是否有必要)。

编辑:我不敢相信我错过了这个……根据BTRFS 维基3.2 系列和更早版本的内核不支持在创建文件系统之后更改 raid 级别。那肯定是我的问题。

相关内容