Filesystems

btrfs - <ERROR> 中的數據使用情況,設備的 ioctl 不合適

  • June 16, 2021

我正在嘗試追踪我的 btrfs 文件系統上的一些空間正在使用什麼。和之間有很大的區別,btrfs fi du -s /而且btrfs fi usage /區別似乎&lt;ERROR&gt;在執行時的部分btdu

我如何追查導致這種&lt;ERROR&gt;用法的原因?

# btrfs fi du -s /
    Total   Exclusive  Set shared  Filename
    5.50GiB     5.50GiB       0.00B  /
# btrfs fi usage /
Overall:
   Device size:                  20.00GiB
   Device allocated:             12.28GiB
   Device unallocated:            7.72GiB
   Device missing:                  0.00B
   Used:                         11.59GiB
   Free (estimated):              8.22GiB      (min: 8.22GiB)
   Data ratio:                       1.00
   Metadata ratio:                   1.00
   Global reserve:               16.00MiB      (used: 0.00B)

Data,single: Size:12.00GiB, Used:11.50GiB
  /dev/sda2      12.00GiB

Metadata,single: Size:256.00MiB, Used:89.03MiB
  /dev/sda2     256.00MiB

System,single: Size:32.00MiB, Used:16.00KiB
  /dev/sda2      32.00MiB

Unallocated:
  /dev/sda2       7.72GiB

相關btdu輸出:

--- / --------------------------------------------------------------------------------
  ~12.0 GiB  [##########] /&lt;DATA&gt;  
  ~253.1 MiB [          ]  &lt;METADATA&gt;
  ~32.0 MiB  [          ]  &lt;SYSTEM&gt;
  
  
--- /DATA ----------------------------------------------------------------------------
   ~6.5 GiB [##########] /&lt;ERROR&gt;
   ~2.1 MiB [          ] /&lt;ROOT_TREE&gt;
   ~5.5 GiB [########  ] /@ 
   
   
--- /DATA/ERROR ----------------------------------------------------------------------
   ~6.0 GiB [##########]  logical ino (Inappropriate ioctl for device)
 ~509.9 MiB [          ]  logical ino (No such file or directory)

所以我的結論是我係統上的實際文件佔用了大約 5.5GB,其餘的使用來自 btdu 報告為錯誤的東西。

筆記/我嘗試過的事情:

  • 我已經執行了 在任何網站上都能找到的各種口味的balance, rescue, 。沒運氣。check --repair``scrub
  • 我已解除安裝所有其他磁碟 / nfs 驅動器 / 等。(安裝下沒有隱藏文件。)

好的,再看看核心程式碼和 btdu,我想我明白了。

您的核心太舊(4.14 或更早)並且不支持BTRFS_IOC_LOGICAL_INO_V2.

  1. btdu 大部分工作和 2) 這些錯誤被映射到 6 GB 空間的原因是,BTRFS_IOC_LOGICAL_INO_V2如果第一個查詢(使用 -no 完成)沒有產生結果,btdu 僅用於執行BTRFS_IOC_LOGICAL_INO查詢_V2

我將更新 btdu 以顯示針對這種情況的適當提示。

至於是什麼消耗了這 6 GB 的空間:很可能它們是部分使用的擴展區中無法訪問的部分。碎片整理將擺脫它們。如果您更新核心,btdu 將能夠告訴您哪些文件正在固定這些範圍。

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