[gelöst] df zeigt 0 Bytes frei, obwohl Dateien gelöscht

Probleme mit Samba, NFS, FTP und Co.
Antworten
buhtz
Beiträge: 496
Registriert: 04.12.2015 17:54:49

[gelöst] df zeigt 0 Bytes frei, obwohl Dateien gelöscht

Beitrag von buhtz » 29.12.2020 00:45:03

Ich versuche ein merkwürdiges Phänomen zu ergründen.
df zeigt mir für ein RAID1 (/dev/md127) 0 freie Bytes. Jedoch habe ich in den Minuten davor bereits mehrere GB an Dateien gelöscht - richtig, gelöscht, nicht nur in .Trash gelegt.

Code: Alles auswählen

$ df
Dateisystem     1K-Blöcke    Benutzt  Verfügbar Verw% Eingehängt auf
udev              1445948          0    1445948    0% /dev
tmpfs              372312      11568     360744    4% /run
/dev/mmcblk0p2   15001568    1435280   12784516   11% /
tmpfs             1861552          0    1861552    0% /dev/shm
tmpfs                5120          4       5116    1% /run/lock
tmpfs             1861552          0    1861552    0% /sys/fs/cgroup
/dev/mmcblk0p1     240972      84028     144503   37% /boot
/dev/sda2      3844630836  178144172 3471119892    5% /NoRAID
/dev/md127     3844510520 3693000048          0  100% /Daten
tmpfs              372308          0     372308    0% /run/user/34
tmpfs              372308          0     372308    0% /run/user/1001

$ lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda           8:0    0  7,3T  0 disk  
├─sda1        8:1    0  3,7T  0 part  
│ └─md127     9:127  0  3,7T  0 raid1 /Daten
└─sda2        8:2    0  3,7T  0 part  /NoRAID
sdb           8:16   0  3,7T  0 disk  
└─sdb1        8:17   0  3,7T  0 part  
  └─md127     9:127  0  3,7T  0 raid1 /Daten
mmcblk0     179:0    0 14,9G  0 disk  
├─mmcblk0p1 179:1    0  243M  0 part  /boot
└─mmcblk0p2 179:2    0 14,6G  0 part  /

$ sudo mdadm --detail /dev/md127
[sudo] Passwort für admin: 
/dev/md127:
           Version : 1.2
     Creation Time : Fri Dec 25 22:36:56 2020
        Raid Level : raid1
        Array Size : 3906885440 (3725.90 GiB 4000.65 GB)
     Used Dev Size : 3906885440 (3725.90 GiB 4000.65 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Tue Dec 29 00:40:06 2020
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

              Name : OLAF:0  (local to host OLAF)
              UUID : 74eac003:44f8aa75:1f0ba622:7ec8899f
            Events : 93892

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       2       8        1        1      active sync   /dev/sda1
Zuletzt geändert von buhtz am 30.12.2020 10:23:33, insgesamt 1-mal geändert.

Benutzeravatar
schorsch_76
Beiträge: 2032
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: df zeigt 0 Bytes frei, obwohl Dateien gelöscht

Beitrag von schorsch_76 » 29.12.2020 07:18:43

Welches Dateisystem wird benutzt? btrfs?

buhtz
Beiträge: 496
Registriert: 04.12.2015 17:54:49

Re: df zeigt 0 Bytes frei, obwohl Dateien gelöscht

Beitrag von buhtz » 29.12.2020 12:03:20

schorsch_76 hat geschrieben: ↑ zum Beitrag ↑
29.12.2020 07:18:43
Welches Dateisystem wird benutzt? btrfs?
ext4

Nachdem ich jetzt über Nacht weitere 500GB auf ein externes Laufwerk ausgelagert habe, sehe ich wieder mehr als 0.

Benutzeravatar
whisper
Beiträge: 2683
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: df zeigt 0 Bytes frei, obwohl Dateien gelöscht

Beitrag von whisper » 29.12.2020 12:25:48

Sehr viele kleine Dateien?
Was sagt

Code: Alles auswählen

df -hi
?

buhtz
Beiträge: 496
Registriert: 04.12.2015 17:54:49

Re: df zeigt 0 Bytes frei, obwohl Dateien gelöscht

Beitrag von buhtz » 29.12.2020 15:18:30

whisper hat geschrieben: ↑ zum Beitrag ↑
29.12.2020 12:25:48
Sehr viele kleine Dateien?
Alles! Da sind diverse Backups drauf. Viel sehr kleines, viel sehr großes. ;)
whisper hat geschrieben: ↑ zum Beitrag ↑
29.12.2020 12:25:48
Was sagt

Code: Alles auswählen

df -hi
Also hier habe ich bereits aufgeräumt - d.h. ca 500 GB von /Daten (md127) nach /NoRAID (sda2) geschoben.

Code: Alles auswählen

$ df -hi
Dateisystem    Inodes IBenutzt IFrei IUse% Eingehängt auf
udev             354K      482  353K    1% /dev
tmpfs            455K      633  454K    1% /run
/dev/mmcblk0p2   936K      43K  894K    5% /
tmpfs            455K        1  455K    1% /dev/shm
tmpfs            455K        3  455K    1% /run/lock
tmpfs            455K       18  455K    1% /sys/fs/cgroup
/dev/mmcblk0p1    61K       54   61K    1% /boot
/dev/sda2        233M     192K  233M    1% /NoRAID
/dev/md127       233M     796K  233M    1% /Daten
tmpfs            455K       10  455K    1% /run/user/1001

Benutzeravatar
TRex
Moderator
Beiträge: 6882
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: df zeigt 0 Bytes frei, obwohl Dateien gelöscht

Beitrag von TRex » 29.12.2020 16:21:06

Mal fsck befragt? Also dryrun, nur reporten lassen, nix korrigieren...
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!

buhtz
Beiträge: 496
Registriert: 04.12.2015 17:54:49

Re: df zeigt 0 Bytes frei, obwohl Dateien gelöscht

Beitrag von buhtz » 29.12.2020 17:12:07

TRex hat geschrieben: ↑ zum Beitrag ↑
29.12.2020 16:21:06
Mal fsck befragt? Also dryrun, nur reporten lassen, nix korrigieren...
Die manpage verwirrt mich etwas.

Reparieren scheint per default zu geschehen. Eine --dry-run oder ähnliche Option, um das zu unterbinden, finde ich jetzt nicht.

Nebenfrage: Soll ich auch die unter dem RAID liegenden "Dateisysteme"/Partitionen (Typ "Linux RAID") der Einzelgeräte prüfen?

Benutzeravatar
TRex
Moderator
Beiträge: 6882
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: df zeigt 0 Bytes frei, obwohl Dateien gelöscht

Beitrag von TRex » 29.12.2020 17:34:07

Code: Alles auswählen

 -N     Don't execute, just show what would be done.
buhtz hat geschrieben: ↑ zum Beitrag ↑
29.12.2020 17:12:07
Nebenfrage: Soll ich auch die unter dem RAID liegenden "Dateisysteme"/Partitionen (Typ "Linux RAID") der Einzelgeräte prüfen?
Ich wüsste nicht, mit welchem Tool - was aber kein Nein auf die Frage ist. Ich hab sowas nur noch nie versucht.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!

buhtz
Beiträge: 496
Registriert: 04.12.2015 17:54:49

Re: df zeigt 0 Bytes frei, obwohl Dateien gelöscht

Beitrag von buhtz » 29.12.2020 21:46:31

Die hohe Anzahl der links (vermutlich gemeint: hardlinks) ist der Nutzung als Backup Medium mit Debianbackintime (macht per Debianrsync inkrementelle Backups mit Hilfe von hardlinks) geschuldet.

Code: Alles auswählen

$ sudo fsck.ext4 /dev/md127 -n -f -v
e2fsck 1.44.5 (15-Dec-2018)
Pass 1: Checking inodes, blocks, and sizes
Inode 12190936 extent tree (at level 1) could be shorter.  Optimize? no

Inode 45484693 extent tree (at level 1) could be shorter.  Optimize? no

Inode 236981113 extent tree (at level 1) could be shorter.  Optimize? no

Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

      814288 inodes used (0.33%, out of 244187136)
        7400 non-contiguous files (0.9%)
        5739 non-contiguous directories (0.7%)
             # of inodes with ind/dind/tind blocks: 0/0/0
             Extent depth histogram: 812197/1998
   775138972 blocks used (79.36%, out of 976721360)
           0 bad blocks
         301 large files

      478631 regular files
      335563 directories
           0 character device files
           0 block device files
           0 fifos
     3709406 links
          85 symbolic links (85 fast symbolic links)
           0 sockets
------------
     4523685 files

wanne
Moderator
Beiträge: 6860
Registriert: 24.05.2010 12:39:42

Re: df zeigt 0 Bytes frei, obwohl Dateien gelöscht

Beitrag von wanne » 30.12.2020 06:28:29

1. ext4 reserviert per default 5% der Platte für root reserviert. Als normaler User kannst du entsprechend maximal bis 3652284994kiB von deinem 3844510520kiB schreiben. Du hast aber schon (vermutlich als root) 3693000048kiB beschieben.
Wei viele Blöcke (das sind 4kiB Blöke! Also 48056381 Blöcke heißen 183GiB!) du reserviert hast siehst du damit.

Code: Alles auswählen

tune2fs -l  /dev/md127 | grep Reserved.*count:
Ändern kannst du da damit auf 10GiB

Code: Alles auswählen

tune2fs -r 2500000 /dev/md127
Oder damit auf 0% (also keine):

Code: Alles auswählen

tune2fs -m 0 /dev/md127
2. Dateien nehmen in ext3 immer vielfache von 4kiB weg. (Eine 1B große Datei braucht also 4kiB eine 4097B große datei 8kiB usw.) ext4 wird das ganze komplizierter. Von der Idee her aber ähnlich. du und df berechnen das allerdings schon ein.
rot: Moderator wanne spricht, default: User wanne spricht.

buhtz
Beiträge: 496
Registriert: 04.12.2015 17:54:49

Re: df zeigt 0 Bytes frei, obwohl Dateien gelöscht

Beitrag von buhtz » 30.12.2020 10:23:16

Dickes Danke. Die root-reservierten Blöcke würden auch ein anderes Phänomen erklären, dass an dieser Stelle aber zu vage und komplex ist, um es sinnvoll im Forum diskutiere zu können.

So sah es vorher aus:

Code: Alles auswählen

/dev/md127      3,6T    2,9T  583G   84% /Daten
Und nach -m 0 ist ordentlich was frei geworden.

Code: Alles auswählen

/dev/md127      3,6T    2,9T  769G   80% /Daten
Nachfrage: An welcher Stelle, werden die 5% per default und "versteckt" angelegt? Beim Formatieren als ext4 oder schon beim Partitionieren? Also einer von beiden Tools hätte mich wenigstens auf die root-Blöcke hinweisen können.
Frage mich auch, ob das sinnvoll ist, auf einer nicht-system-Partition (also ohne Betriebssystemdaten drauf) per default root-Blöcke zu reservieren.

Wieder was gelernt.

Antworten