BTRFSを使用して、2つのディスクからRAID0ボリュームを作成しています。どちらもAWS EC2インスタンス上にあり、それぞれ30 GBの空き容量があります。ファイルシステムの作成に使用したコマンドはbtrfs -d raid0 -L MYLABEL /dev/xvdf /dev/xvdg
です。
Ubuntuは、BTRFSと同様に、ディスク領域がいっぱいであることを通知します。
root@Host:/var/docker-apps/prometheus# btrfs balance start -dconvert=raid0 .
ERROR: error during balancing '.': No space left on device
There may be more info in syslog - try dmesg | tail
root@Host:/var/docker-apps/prometheus#
面白いのは、btrfs filesystem usage
を見ると次のようになっていることです。
root@Host:/var/docker-apps/prometheus# btrfs filesystem usage .
Overall:
Device size: 60.00GiB
Device allocated: 60.00GiB
Device unallocated: 2.00MiB
Device missing: 0.00B
Used: 25.26GiB
Free (estimated): 34.22GiB (min: 34.22GiB)
Data ratio: 1.00
Metadata ratio: 2.00
Global reserve: 256.00MiB (used: 0.00B)
Data,RAID0: Size:57.98GiB, Used:23.76GiB
/dev/xvdf 28.99GiB
/dev/xvdg 28.99GiB
Metadata,RAID1: Size:1.00GiB, Used:766.11MiB
/dev/xvdf 1.00GiB
/dev/xvdg 1.00GiB
System,RAID1: Size:8.00MiB, Used:16.00KiB
/dev/xvdf 8.00MiB
/dev/xvdg 8.00MiB
Unallocated:
/dev/xvdf 1.00MiB
/dev/xvdg 1.00MiB
root@Host:/var/docker-apps/prometheus#
さて、「私は60 GBのRAID0スペースが利用可能であり、現在約25を使用しています(同じブロック内のFree:エントリーと一緒に、使用済み:上部ブロックのエントリー)。これはかなり明確だと思います。
それでも:No space left on device
。
だから-私は間違っていますか?これをどのように読む必要がありますか? BTRFSパーティションにファイルを作成できなくなるのはなぜですか?この出力を読み取るにはどうすればよいですか?何が起きてる?
これを読んでください: http://marc.merlins.org/perso/btrfs/post_2014-05-04_Fixing-Btrfs-Filesystem-Full-Problems.html
Btrfsが0.5 GBを予約しているため、記事の「メタデータは完全な場合」に苦しんでいるようです。つまり、Btrfsは完全であり、新しい書き込みを妨げます。この記事は、完全にリバランスする必要があることを示唆しています。
また、通常のdfが存在することも覚えておいてください。実際のbtrfsの使用状況を示すことは決してありません。