Ubuntu

BTRFS:“設備上沒有剩餘空間”,但 btrfs 命令另有說明

  • July 6, 2017

我正在使用 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 個(已使用:頂部塊中的條目,以及空閒:同一塊中的條目)”。我認為這很清楚。

但還是: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,這意味著它已滿,因此阻止了任何新的寫入。這篇文章建議你應該對其進行全面的重新平衡。

還要記住,正常的 df 是謊言,它永遠不會告訴你真正的 btrfs 使用統計資訊。

引用自:https://serverfault.com/questions/790464