• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] du Verzeichnisgröße ohne hardlinks

froemken

Member
Hallo zusammen,

wir arbeiten bei uns mit diesem storebackup und ich wundere mich ständig, warum das Web-Frontend unseres NAS-Servers ständig sagt, das die Festplatte voll wäre.
Es wird NUR am Monatsanfang eine Vollsicherung gemacht und alle nachfolgenden Tage ein Veränderungsbackup, aber alle Backup-Verzeichnisse sind gleich groß?!

Bisher habe ich immer mit

du -sk

oder

du -h

gearbeitet. Was muss ich machen, damit mir die tatsächliche Größe eines Verzeichnisses angezeigt wird.

In den Dokumentationen von storebackup habe ich gelesen, dass diese Software mit Hardlinks arbeitet. Das wird wohl der Grund sein, warum alle Backups annähernd gleichgroß sind.

Danke Euch

Stefan
 
OP
froemken

froemken

Member
Ich merk schon...das wird nicht einfach. Hab grad noch ein paar interessante Informationen im Netz gefunden.

Mit einem Hard-Link wird eine neue INODE zu einer Datei gesetzt. Heißt: Dieser Link IST eine Datei. Und hat auch eine entsprechende Größe. Es gibt keinen Hinweis, dass das ein Link oder sowas ist.

Es würde allerhöchstens eine Möglichkeit geben, wenn man herausfinden könnte, ob diese Datei MEHR als nur eine INODE besitzt.

if(summe_inodes_zu_datei == 1) {
verzeichnisgröße = verzeichnisgröße + Dateigröße;
}

So in etwa müsste das dann aussehen.

froemken
 

pft

Advanced Hacker
Hi,

im prinzip geht das. Das System zählt die Anzahl der hardlinks bzw inodes. Schon allein damit die eigentlichen Daten erst gelöscht / der PLatz freigegeben wird wenn auch der letzte Link gelöscht wurde.
Mit "ls -l"Irgendwie kann man die Anzahl der Links auch anzeigen.

Leider bin ich nicht genug tief in der Materie um jetzt aus der Hüfte geschossen mit allen Details zu brillieren. Aber vielleicht hilft das auf bei der weiteren Suche.
 

regexer

Advanced Hacker
Moment mal, ich verstehe das ursprüngliche Problem mit du noch nicht ganz.

man du sagt nämlich:
-l, --count-links
count sizes many times if hard linked
Nach meinem Verständnis sollte also du ohne -l jede inode nur einmal zählen...
 
OP
froemken

froemken

Member
notoxp schrieb:
Nach meinem Verständnis sollte also du ohne -l jede inode nur einmal zählen...

Richtig...von jeder inode wird nur einmal die Größe genommen. Er soll aber nur DIE Größe einer Datei nehmen, von der es auch nur eine INODE gibt.

An dieser Stelle möchte ich Danke für Eure Hilfe sagen, weil mein Problem sich endlich in die Luft aufgelöst hat.

Das Frontend von unserem NAS-Server zeigte uns ständig 0,00 GB von 660 GB (800 GB) frei an. Ich hab dann 250 GB an Datensicherungen gelöscht und war erstaunt, dass immer noch 0,00 GB frei sind.
Ich bin jetzt seit heute 11:00 Uhr (und gestern) nur am Löschen von Datensicherungen und um 14:00 Uhr hatte ich dann endlich mal 4 % frei.

Jetzt um 16 Uhr bin ich auf 54GB freien Speicher. Wenn ich dann "irgendwann" mal runter auf 250 freien Speicher bin, kann ich endlich die neuen Festplatten in das Backupsystem einbauen.

Eine neue Backupplanung unter Berücksichtigung diesen Dateisystems mit inodes habe ich heute von der Geschäftsführung absegnen lassen.

Nochmals Danke

Stefan
 

pft

Advanced Hacker
Das Frontend von unserem NAS-Server zeigte uns ständig 0,00 GB von 660 GB (800 GB) frei an. Ich hab dann 250 GB an Datensicherungen gelöscht und war erstaunt, dass immer noch 0,00 GB frei sind.
Das spricht aber doch dafür, dass die Kiste wirklich voll war. Solange du nur Hardlinks auf Daten löscht die mehrfache inodes haben, schaffst Du damit ja auch keinen Platz. Also ist das Verhalten qualitativ erst mal richtig.

Ob das Ergebnis quantitativ richtig ist kann ich nicht beurteilen, da ich weder weiß wie dein froiont end arbeitet noch wieviel Daten Du wirklich hast.

Allerdings hatte ich hin und wieder auch schon seltsame Differenzen bei der Ermittlung von Datenmengen.
Z.B bei ganzen gemounteten Partitionen zwischen "df", "du -s mount-dir", "du mount-dir/*" (mount-dir=home enhält nur directories)
 
OP
froemken

froemken

Member
pft schrieb:
Das spricht aber doch dafür, dass die Kiste wirklich voll war. Solange du nur Hardlinks auf Daten löscht die mehrfache inodes haben, schaffst Du damit ja auch keinen Platz. Also ist das Verhalten qualitativ erst mal richtig.

Nachdem ich nun endlich das Thema inodes verstanden habe...kann ich Dir absolut zustimmen. Dem ist so!

PS: Hab heute versucht, einem Windows-Nutzer die Funktionalität von inodes zu erklären. Hoffnungslos :)
Man klammert sich so an diesen Dateien-sind-in-Verzeichnis-Kram da kommt man nur schwer gegen an.
Erklär einem MS-ler mal: "Du hast 56 GB gelöscht aber nur 2,3 GB sind auf dem Datenträger mehr verfügbar." oder "Ich habe heute das Vollbackup gelöscht, weil ich ja noch ALLE Dateien im inkrementiellen Backup habe."

Katastrophe!

Gruß froemken
 

regexer

Advanced Hacker
froemken schrieb:
PS: Hab heute versucht, einem Windows-Nutzer die Funktionalität von inodes zu erklären. Hoffnungslos :)

Das erklärt man am besten damit, dass z.B. das Verzeichnis ".." (jedermann weiß, dass das zum Überverzeichnis zeigt) nichts anderes ist, als ein hardlink.

Code:
prompt> cd /usr
prompt> ls -ild ..
2 drwxr-xr-x 22 root root 544 Aug 25 11:10 ..
prompt> ls -ild /
2 drwxr-xr-x 22 root root 544 Aug 25 11:10 /
"Ich habe heute das Vollbackup gelöscht, weil ich ja noch ALLE Dateien im inkrementiellen Backup habe."
Naja, das kommt doch sehr auf das verwendete Backup-System an... Ein Vollbackup ist ja eigentlich als erster Aufsetzpunkt im Falle eines System-Crashs gedacht. Ich würde es nicht so einfach löschen...
 

pft

Advanced Hacker
"Ich habe heute das Vollbackup gelöscht, weil ich ja noch ALLE Dateien im inkrementiellen Backup habe."

Von einer solchen Aussage würde ich Dir dringend abraten. Sie ist zwar in diesem konkreten Fall aufgrund der Realisierung deines Backup System nicht verkehrt, aber sie steht erst mal allein da und i.d.R. versteht dass auch keiner. Und wirklich richtig ist sie ja trotzdem nicht. Du hast ja eigentlich keine inkrementellen backups sondern nur Vollbackups.

So generell ist sie grotten falsch. Ein inkrementelles Backup definiert sich ja dadurch, dass es nicht alle Daten enthält.

Du wirst also vermutlich erstmal als kompletter Idiot dastehen. Wenn Du Pech hast bei Deinem Chef :-(
 
Oben