Aktualisieren der freien Festplattengröße ohne Neustart des Hosts


23

Ich benutze RHEL4 mit LVM2 darauf. Manchmal wird die Partitionsgröße auch nach dem Entfernen großer Dateien mit mehr als einem GB nicht aktualisiert, wenn der dfBefehl verwendet wird.

-bash-3.00$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/sys-root  3.9G  1.4G  2.3G  39% /
/dev/cciss/c0d0p1     251M   19M  219M   8% /boot
/dev/mapper/sys-home  250G  125G  113G  53% /home
/dev/mapper/sys-tmp   3.9G   41M  3.7G   2% /tmp
/dev/mapper/sys-var   3.9G  3.6G   98M  98% /var

Aber wenn ich mit du nachschaue, wird die richtige Größe angezeigt

-bash-3.00$ sudo du -sh /var/
 179M   /var/

Sie können dort sehen, dass die df-Ausgabe / var-Partition 3,6 GB verwendet werden, aber die du zeigt, dass es nur 179 MB sind.

Das Problem ist nun, dass weder Sync noch Partprobe die Informationen nicht aktualisieren. Ein Neustart des Hosts wird das Problem jedoch mit Sicherheit beheben. Da dies jedoch ein Produktionsserver ist, kann ich ihn nicht neu starten. Kann ich die Festplatteninformationen auf irgendeine Weise manuell aktualisieren, ohne den Host neu zu starten?


1
Sie haben wahrscheinlich gelöschte Dateien geöffnet (dh Prozesse, die an gelöschten Dateien festhalten). Probieren Sie etwas aus lsof, um es herauszufinden. Used / avail ist nicht in der Partitionstabelle gespeichert, partprobe (oder jede Art von Partition, die erneut gelesen wird) hilft überhaupt nicht.
Mat

Antworten:


28

Wenn eine Datei entfernt / gelöscht / nicht verknüpft wird, wird nur der Verzeichniseintrag für die Datei gelöscht, nicht die Daten der Datei, wenn sie noch von einem Prozess geöffnet gehalten wird. Wenn die Datei von allen Prozessen vollständig geschlossen wurde, werden die Daten an den Pool für freien Speicherplatz zurückgegeben. Dies ist eine Funktion, da Sie auf diese Weise anonyme Dateien haben können.

Führen Sie einen der folgenden Befehle aus, um festzustellen, ob eine gelöschte Datei in einem Dateisystem geöffnet /mount/pointist /var:

lsof +L1 /mount/point

Dieser Artikel über offene, nicht verknüpfte Dateien soll dazu beitragen, dies weiter zu erläutern.


2
Ich habe Protokolle gelöscht, dfaber keinen freigegebenen Speicherplatz angezeigt, bis ich die Serverprozesse neu gestartet habe. Vielen Dank!
Fet

Rufen Sie lsof besser mit 'lsof + L1' auf, um gelöschte Dateien anzuzeigen. Hat einen Bearbeitungsvorschlag abgegeben
Nuno Pereira

Also, wie man sie schließt?
Faressoft
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.