我正在使用BTRFS从2个磁盘创build一个RAID0卷。 两者均位于每个可用30 GB空间的AWS EC2实例上。 我用来创build文件系统的命令是: 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个(用于:入口在顶部的块,与免费:入口在同一个块)”。 我觉得这很清楚。
但仍然: No space left on device 。
所以 – 我错了吗? 我该如何阅读? 为什么我不能在BTRFS分区中创build文件? 我该如何读取这个输出? 这里发生了什么?
阅读: http : //marc.merlins.org/perso/btrfs/post_2014-05-04_Fixing-Btrfs-Filesystem-Full-Problems.html
看来你正在遭受文章的“元数据是满的情况下”,因为Btrfs为自己保留了0.5 GB,这意味着它已经满了,因此阻止了任何新的写入。 文章build议你应该做一个完整的重新平衡。
还要记住,正常的df谎言,它永远不会告诉你真正的btrfs使用统计。