Ubuntu - Kein Speicherplatz mehr auf dem Gerät (NTFS)

11

Ich habe einen Server, auf dem viele Daten gespeichert sind. Ich behalte viele verschachtelte Verzeichnisse mit Millionen von Dateien.

Beim Versuch, ein großes Verzeichnis (~ 700 GB) von einer Festplatte auf eine andere zu verschieben, wird folgende Fehlermeldung angezeigt:

mv /media/storage3/dir /media/storage4/

"No space left on device"

Der Versuch, eine kleine txt-Datei auf der Festplatte zu erstellen, funktioniert ebenfalls nicht:

Error opening file '/media/storage4/Untitled Document': No space left on device

Ich habe viele Optionen online überprüft, keine hat funktioniert.

df -h Ausgabe:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdg7        77G  9.2G   64G  13% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev             32G  4.0K   32G   1% /dev
tmpfs           6.3G  1.4M  6.3G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none             32G   76K   32G   1% /run/shm
none            100M   48K  100M   1% /run/user
/dev/sdg6        19G  6.7G   11G  39% /home
/dev/sdb1       440G  278G  140G  67% /var
/dev/sda1       2.8T  2.0T  764G  73% /media/storage1
/dev/sdh1       2.8T  1.6T  1.3T  56% /media/storage2
/dev/sdi1       2.8T  1.7T  1.2T  60% /media/storage3
/dev/sdf1       2.8T  876G  1.9T  32% /media/storage4

df -i Ausgabe:

Filesystem         Inodes    IUsed      IFree IUse% Mounted on
/dev/sdg7         5079040   514215    4564825   11% /
none              8242449        2    8242447    1% /sys/fs/cgroup
udev              8239750      611    8239139    1% /dev
tmpfs             8242449      696    8241753    1% /run
none              8242449        5    8242444    1% /run/lock
none              8242449        4    8242445    1% /run/shm
none              8242449       28    8242421    1% /run/user
/dev/sdg6         1220608   218613    1001995   18% /home
/dev/sdb1        29310976 12863877   16447099   44% /var
/dev/sda1       858436804 41630853  816805951    5% /media/storage1
/dev/sdh1      1356948436 38728057 1318220379    3% /media/storage2
/dev/sdi1      1217505624 34748869 1182756755    3% /media/storage3
/dev/sdf1      2048962648 36308921 2012653727    2% /media/storage4

Beim Online-Lesen sagten die Leute, dass ähnliche Probleme aufgrund des Zugriffs auf eine große Anzahl von Dateien auftreten und dass die Einstellung von fs.inotify.max_user_watches auf eine hohe Menge das Problem lösen könnte. Ich habe es von 8192 auf 1000000 erhöht, aber es hat nicht geholfen.

PeterN
quelle
Hast du es versucht lsof +L1? man lsof: Eine Spezifikation des Formulars + L1 wählt geöffnete Dateien aus, die nicht verknüpft wurden.
AB
Es gibt keinen Grund mv, den inotifyMechanismus zu verwenden. Schauen Sie hier : Einige Prozesse verwenden möglicherweise noch nicht verknüpfte Dateien aus dem Zieldateisystem.
John WH Smith
Gelöschte Dateien werden weiterhin in der von df...
Stephen Kitt
@StephenKitt Nein. Nicht verknüpfte Dateien, die vom Dateisubsystem aufgrund von Inode-Verweisen gespeichert werden, werden. Diejenigen, die vollständig unbenutzt und nicht verbunden ("gelöscht") wurden, werden nicht angezeigt. Siehe hier .
John WH Smith
1
Suchen Sie ntfsinfo -m /dev/DEVnach Hinweisen. Es ist Teil von ntfs-3g. Beachten Sie auch, dass auf einem einzelnen NTFS-Volume nur bis zu 2 ^ 32 Dateien vorhanden sein können. Ich würde keinem nativen Linux / Unix-Tool vertrauen, das die Anzahl der NTFS-Inodes genau meldet.
Mikky

Antworten:

1

Führen Sie Folgendes aus:

lsof -s | sort -nrk 7 | head

Sie sehen die Ausgabe wie folgt:

firefox    2997                     j   52rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j   50rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j    3rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j   39rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j   31ur     REG              252,0 10485760    5505182 /some/path

Hinweis; Das Obige ist nur ein Beispiel, das Sie verwenden müssen, um die Raumnutzung zu ermitteln.

Informationen zur Ausgabe:

  • Spalte 7 gibt die Größe des verwendeten Raums an.
  • Spalte 4 ist der Dateideskriptor.

Sie können den Inhalt im Dateideskriptor entfernen, um diesen Speicherplatz zurückzugewinnen:

cat /dev/null > /proc/2997/fd/50

Offensichtlich werden dadurch alle Daten in diesem Dateideskriptor zerstört.


quelle
Wenn die Probleme erneut auftreten, werde ich es versuchen
PeterN
0

Sie können versuchen, mit einem Teer alle Daten zu kopieren und anschließend zu entfernen:

cd /media/storage3/; tar cfp - ./dir | ( cd /media/storage4; tar xfp - )

Dadurch bleiben alle Eigentumsrechte, Berechtigungen und Links erhalten

Chad Smith
quelle
Keine Kopie hat funktioniert. Nicht nur das, das Erstellen einer einfachen leeren Datei hat keine Ausnahme für den
verbleibenden
0

Ich hätte rsync -avrz storage3 storage4die Dateien danach verwendet und dann gelöscht, aber ich habe eine andere Frage, warum Sie diese Freigaben mit dem NTFS-Dateisystem haben, wenn Sie Linux (Ubuntu) verwenden, dann hätte ich mich für ext4 oder ReiserFS, ButterFS entschieden. Wenn sich diese Freigaben auf einer Windows-Box befinden, versuchen Sie bitte, diese Dateien mithilfe von Robocopy von Windows nach Windows zu verschieben, was in dieser Hinsicht hervorragend ist. Robocopy funktioniert meistens wie rsync.

Manpage für rsync: http://linux.die.net/man/1/rsync

Hilfeseite für Robocopy: https://technet.microsoft.com/en-us/library/cc733145.aspx

Support-Seite für 3g-ntfs-Treiber für Linux: www.tuxera.com/community/open-source-ntfs-3g/

FAQ für 3g-ntfs: www.tuxera.com/community/ntfs-3g-faq/

Ich vermute, dass etwas in den NTFS-Dateisystemtreibern behoben werden sollte, die Sie in Ihrer Ubuntu-Installation verwenden, welche Distribution von NTFS Sie verwenden, wie Sie die Festplatten gemountet haben, ob sie lokal an die Ubuntu-Box angeschlossen sind, auf der Sie sitzen, oder ob sie gemountet sind Verwenden von iSCSI aus einem SAN?

Diese Fehlerbehebung beinhaltet mehr als nur "Ich kann meine Dateien nicht verschieben, sie befinden sich in NTFS und ich führe Ubuntu aus, um sie zu verschieben."

OMG-1
quelle
Wie bereits erwähnt, hat keine Kopie funktioniert. Ich habe alle möglichen rsync-Befehle ausprobiert. Aber selbst das Erstellen einer leeren Datei in storage4 hat eine Ausnahme zurückgegeben. \ n Der Grund für die Verwendung von NTFS liegt darin, dass wir andere Server haben, auf denen Windows ausgeführt wird, und wir wollten eine einfache Übertragung von Festplatten von einem Server auf einen anderen ermöglichen. Rückblickend hätte ich NTFS wegen all der damit verbundenen Probleme nicht verwendet. Ubuntu ist mit einem NTFS-Mount sehr instabil. \ n Die Festplatten sind über ein SATA-Kabel direkt mit dem Motherboard des Computers verbunden, kein SAN oder ähnliches. Es ist eine direkte Verbindung zum Linux-System.
PeterN
Ich würde Ihnen zwei Dinge raten: Wenn Sie MS-Technologien verwenden, verwenden Sie einen Microsoft Windows-Dateiserver, wenn Sie NTFS benötigen. Andernfalls verwenden Sie ext4 oder ein anderes Linux-Dateisystem und teilen die Festplatte mit Smb.
OMG-1
Sparen Sie sich einige Probleme und versuchen Sie niemals, Windows und Linux zu kombinieren. Keine Menge Hilfe wird Sie auf lange Sicht retten, irgendwann wird dies immer in Tränen enden. Es scheint ein Problem mit Inode- oder Datei-Handles zu sein, aber wenn Sie NTFS in den Mix einfügen ... Zeitbombe. Wenn Ihre Umgebung eine Interaktion zwischen Linux und NTFS benötigt, stellen Sie das NTFS auf einen Windows-Server und führen Sie die Interaktion auf diese Weise durch. Nicht versuchen, auf demselben System zu kombinieren.
Baazigar