その際、スペースに余裕があるように見えるのに ENOSPC になったので、メモです。
もともと sdb5 のみのシングル構成で、CentOS 7.2 の OS インストール領域として使っていました。これに、sda5 を add しました。
[root@hoge ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@hoge ~]# uname -a Linux hoge 3.10.0-327.10.1.el7.x86_64 #1 SMP Tue Feb 16 17:03:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux [root@hoge ~]# btrfs device add /dev/sda5 / ※もともとsdb5のシングルだった [root@hoge ~]# df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/sdb5 40G 8.0G 31G 21% / devtmpfs 7.9G 0 7.9G 0% /dev tmpfs 7.9G 220K 7.9G 1% /dev/shm tmpfs 7.9G 9.1M 7.9G 1% /run tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup tmpfs 1.6G 8.0K 1.6G 1% /run/user/0 [root@hoge ~]# btrfs fi show -m Label: none uuid: 73fd9fe0-6681-4389-abe5-05b7db9d5fe8 Total devices 2 FS bytes used 7.79GiB devid 1 size 19.53GiB used 19.53GiB path /dev/sdb5 devid 2 size 19.53GiB used 0.00B path /dev/sda5 btrfs-progs v3.19.1次に、raid1 への変換を試みましたが、失敗。
[root@hoge ~]# btrfs device usage / /dev/sda5, ID: 2 Device size: 19.53GiB Unallocated: 19.53GiB /dev/sdb5, ID: 1 Device size: 19.53GiB Data,single: 18.74GiB Metadata,single: 776.00MiB System,single: 32.00MiB Unallocated: 1.00MiB [root@hoge ~]# btrfs fi df / Data, single: total=18.74GiB, used=7.42GiB System, single: total=32.00MiB, used=16.00KiB Metadata, single: total=776.00MiB, used=374.86MiB GlobalReserve, single: total=128.00MiB, used=0.00B [root@hoge ~]# btrfs balance start -dconvert=raid1 -mconvert=raid1 / ERROR: error during balancing '/' - No space left on device There may be more info in syslog - try dmesg | tail [root@hoge ~]# dmesg | tail [ 30.408740] Bluetooth: RFCOMM TTY layer initialized [ 30.408752] Bluetooth: RFCOMM socket layer initialized [ 30.408817] Bluetooth: RFCOMM ver 1.11 [ 54.279442] EXT4-fs (sda5): mounting ext3 file system using the ext4 subsystem [ 54.280985] EXT4-fs (sda5): mounted filesystem with ordered data mode. Opts: (null) [ 54.281113] SELinux: initialized (dev sda5, type ext3), uses xattr [ 461.381125] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs [ 529.804577] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs [ 1076.279348] BTRFS info (device sdb5): disk added /dev/sda5 [ 1720.107266] BTRFS info (device sdb5): 26 enospc errors during balanceたぶん、いったんは、このままリバランス(sdb5 のデータの半分を sda5 へ転送)してから、再実行すれば、上手くいくものと推察し、やってみたら案の定うまくいきました。
[root@hoge ~]# btrfs balance start / Done, had to relocate 26 out of 26 chunks [root@hoge ~]# btrfs balance start -dconvert=raid1 -mconvert=raid1 / Done, had to relocate 12 out of 12 chunks [root@hoge ~]# btrfs device usage / /dev/sda5, ID: 2 Device size: 19.53GiB Data,RAID1: 8.00GiB Metadata,RAID1: 768.00MiB System,RAID1: 32.00MiB Unallocated: 10.75GiB /dev/sdb5, ID: 1 Device size: 19.53GiB Data,RAID1: 8.00GiB Metadata,RAID1: 768.00MiB System,RAID1: 32.00MiB Unallocated: 10.75GiB [root@hoge ~]#コーナーケースでしょうけれど、このあたりがレッドハットが未だに Btrfs を Technology Preview 扱いにしている理由かもしれませんね。