Linux

將 BTRFS 文件系統轉換為 RAID1 失敗並顯示“設備的 ioctl 不合適”

  • July 25, 2014

我在單個分區上有一個 ~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

我將如何使它工作?

編輯:這是使用 3.2 核心的最新 Debian Wheezy 安裝。

更新:奇怪的是,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

通過將核心升級到 3.8.4 解決。必須自己編譯,但庫存設置似乎工作正常(我靜態建構 btrfs 而不是作為模組,儘管我不確定這是否有必要)。

編輯:我不敢相信我錯過了這個……根據BTRFS wiki,**3.2 系列和舊核心不支持在創建文件系統後更改 RAID 級別。**那一定是我的問題。

引用自:https://serverfault.com/questions/496503