Disk-Usage

磁碟神秘地“滿”:dudf 不一致

  • June 17, 2020

我有一個相當庫存的 xubuntu 安裝,在正常執行大約 1.5 年後突然出現“磁碟已滿”錯誤。它有一個系統 SSD(~128GB)、一個包含 samba 共享的“數據”SSD(~500GB)和一個用於備份自身的 raid(兩個 ~4TB 硬碟)。它還執行一個 subsonic 實例來流式傳輸音頻文件。這是設置:

root@castor:/# lsblk
NAME                     MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                        8:0    0   3.7T  0 disk  
└─md0                      9:0    0   3.7T  0 raid1 
 └─md0p1                259:6    0   3.7T  0 md    /raid
sdb                        8:16   0   3.7T  0 disk  
└─md0                      9:0    0   3.7T  0 raid1 
 └─md0p1                259:6    0   3.7T  0 md    /raid
nvme0n1                  259:0    0   477G  0 disk  
└─nvme0n1p1              259:1    0   477G  0 part  /data
nvme1n1                  259:2    0 111.8G  0 disk  
├─nvme1n1p1              259:3    0   512M  0 part  /boot/efi
├─nvme1n1p2              259:4    0   732M  0 part  /boot
└─nvme1n1p3              259:5    0 110.6G  0 part  
 └─nvme0n1p3_crypt      253:0    0 110.6G  0 crypt 
   ├─xubuntu--vg-root   253:1    0 109.6G  0 lvm   /
   └─xubuntu--vg-swap_1 253:2    0   976M  0 lvm   [SWAP]

在上面,請注意/data/raid位於不同的物理設備/。系統認為/已滿:

root@castor:/# df -h /
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/xubuntu--vg-root  108G  106G     0 100% /

但是如果我排除/data並且/raid我看到只使用了 9GB,而不是使用了 106GB:

root@castor:/# du -hs --exclude={./data,./raid}
du: cannot access './run/user/110/gvfs': Permission denied
du: cannot access './proc/1747/task/1747/fd/4': No such file or directory
du: cannot access './proc/1747/task/1747/fdinfo/4': No such file or directory
du: cannot access './proc/1747/fd/3': No such file or directory
du: cannot access './proc/1747/fdinfo/3': No such file or directory
9.0G    .

這裡發生了什麼?這與使用加密文件系統安裝還是使用 LVM 有關?(我承認我真的不知道 LVM 在底層是如何工作的,我只是抽像地知道它應該允許多個物理設備構成一個邏輯“驅動器”)。

萬一它有用,這裡du沒有exclude論據;它顯然包括以下內容/data/raid總數:

root@castor:/# du -hs /data
220G    /data
root@castor:/# du -hs /raid
220G    /raid
root@castor:/# du -hs .
du: cannot access './run/user/110/gvfs': Permission denied
du: cannot access './proc/1762/task/1762/fd/4': No such file or directory
du: cannot access './proc/1762/task/1762/fdinfo/4': No such file or directory
du: cannot access './proc/1762/fd/3': No such file or directory
du: cannot access './proc/1762/fdinfo/3': No such file or directory
448G    .

這是完整的輸出df

root@castor:/# df -h
Filesystem                    Size  Used Avail Use% Mounted on
udev                          7.7G     0  7.7G   0% /dev
tmpfs                         1.6G  3.0M  1.6G   1% /run
/dev/mapper/xubuntu--vg-root  108G  106G     0 100% /
tmpfs                         7.7G     0  7.7G   0% /dev/shm
tmpfs                         5.0M  4.0K  5.0M   1% /run/lock
tmpfs                         7.7G     0  7.7G   0% /sys/fs/cgroup
/dev/nvme0n1p1                469G  220G  226G  50% /data
/dev/nvme1n1p2                705M   81M  573M  13% /boot
/dev/nvme1n1p1                511M  6.1M  505M   2% /boot/efi
tmpfs                         1.6G  4.0K  1.6G   1% /run/user/110
tmpfs                         1.6G     0  1.6G   0% /run/user/1000
/dev/md0p1                    3.6T  221G  3.2T   7% /raid

編輯回答“在哪裡/proc?”

root@castor:/# du -hs /proc
du: cannot access '/proc/1797/task/1797/fd/4': No such file or directory
du: cannot access '/proc/1797/task/1797/fdinfo/4': No such file or directory
du: cannot access '/proc/1797/fd/3': No such file or directory
du: cannot access '/proc/1797/fdinfo/3': No such file or directory
0    /proc


root@castor:/# ll /proc -S | head
total 4
-r--------    1 root             root             140737477881856 Jun 11 13:53 kcore
drwxr-xr-x+  27 root             root                        4096 Jun 11 12:22 ../
lrwxrwxrwx    1 root             root                          11 Jun 11 13:53 mounts -> self/mounts
lrwxrwxrwx    1 root             root                           8 Jun 11 13:53 net -> self/net/
dr-xr-xr-x  185 root             root                           0 Jun 11 12:34 ./
dr-xr-xr-x    9 root             root                           0 Jun 11 12:34 1/
dr-xr-xr-x    9 root             root                           0 Jun 11 12:35 10/
dr-xr-xr-x    9 root             root                           0 Jun 11 12:35 100/
dr-xr-xr-x    9 root             root                           0 Jun 11 12:35 1016/

事實證明,/raid在某些時候沒有正確重新安裝,因此有一段時間自動每日備份沒有寫入實際的raid /dev/md0(安裝在)/raid,而是寫入. 我沒有註意到這一點,因為在我開始調查時,實際的 raid安裝在並有效地掩蓋了底層文件夾的內容。/raid``/dev/xubuntu-vg/root``/raid

總而言之,問題解決了

umount /raid
mdadm --stop /dev/md0
rm -rf /raid/*
mdadm --create --assume-clean --level=1 /dev/md0 --raid-devices=2 /dev/sda /dev/sdb 
mount /raid

引用自:https://unix.stackexchange.com/questions/592381