Назад | Перейти на главную страницу

Преобразование файловой системы BTRFS в RAID1 завершается ошибкой «Несоответствующий ioctl для устройства»

У меня был том BTRFS размером ~ 1,6 ТБ на одном разделе, к которому я успешно добавил еще один недавно созданный и отформатированный раздел (на другом устройстве) точно такого же размера с целью их зеркального копирования. Размер тома теперь составляет ~ 3,2 ТБ. Однако, когда я пытаюсь преобразовать том (установленный на /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

Решено обновлением ядра до 3.8.4. Пришлось скомпилировать свои собственные, но стандартные настройки, похоже, работают нормально (я построил btrfs статически, а не как модуль, хотя я не уверен, было ли это необходимо).

РЕДАКТИРОВАТЬ: Я не могу поверить, что пропустил это ... согласно BTRFS вики, изменение уровней рейда после создания файловой системы не поддерживается для ядер серии 3.2 и более старых. Должно быть, это была моя проблема.