Linux
將 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
。我將如何使它工作?
編輯:這是使用 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 級別。**那一定是我的問題。