XFS Falsche Anweisung von "Kein Platz mehr auf Gerät"

3537
Purf

Ich habe ein Server-Setup einer XFS-Partition unter LVM auf einem Ubuntu 14.04.1 LTS . Beim Kopieren von Dateien auf die Home-Partition wird " Kein Speicherplatz auf dem Gerät " angezeigt.

df -h zeigt ausreichend Speicherplatz:

/dev/mapper/prod--vg-home 35G 21G 15G 60% /home 

Ich habe auch Fallocate verwendet, um die Festplatte fast vollständig in demselben Konto zu füllen, um sicherzustellen, dass weder Kontingent- noch andere Probleme mit dem Festplattenspeicher zusammenhängen:

/dev/mapper/prod--vg-home 35G 34G 1.5G 96% /home 

df -i zeigt auch ausreichend Inodes an:

/dev/mapper/prod--vg-home 36700160 379390 36320770 2% /home 

Ich habe auch eine große Anzahl kleiner zufälliger Dateien in demselben Konto verwendet, wodurch das Problem repliziert wurde :

mkdir 1 cd 1 dd if=/dev/zero of=masterfile bs=10000000 count=1 split -b 10 -a 10 masterfile cd .. cp -R 1 2 

Dies führte dazu, dass "Kein Speicherplatz mehr auf dem Gerät" vorhanden war und fast kein zusätzlicher Speicherplatz erforderlich war (etwa 30 MB), und df -i erwähnt:

/dev/mapper/prod--vg-home 36700160 1310464 35389696 4% /home 

Ich habe einen zweiten Test auf demselben Rechner durchgeführt (Ubuntu 14.04.1 LTS).

Ich habe ein neues logisches Volume von 5 GB erstellt und es mit kleinen Dateien gefüllt, wobei das oben beschriebene Verfahren von dd und split verwendet wurde.

Ich habe ein "Kein Speicherplatz auf Gerät" mit dem folgenden verfügbaren Speicherplatz und Inodes erhalten:

/dev/mapper/prod--vg-test 5.0G 4.2G 811M 85% /mnt/test /dev/mapper/prod--vg-test 4257712 937920 3319792 23% /mnt/test 

Ich habe diesen Test mit Root-Privilegien durchgeführt, um sicherzustellen, dass der reservierte Speicherplatz hier immer noch nicht relevant ist.

Ich habe einen dritten Test auf einem anderen Rechner durchgeführt (Debian 2.6.32-5).

Ich habe ein neues logisches Volume von 5 GB erstellt und es mit kleinen Dateien gefüllt, wobei das oben beschriebene Verfahren von dd und split verwendet wurde.

Die Prozedur war mit folgendem Speicherplatz und verfügbaren Inodes erfolgreich:

/dev/mapper/data-test 5.0G 4.2G 909M 83% /mnt/test /dev/mapper/data-test 4721904 1000005 3721899 22% /mnt/test 

Ich habe diesen Test auch mit Root-Privilegien durchgeführt, um sicherzustellen, dass der reservierte Speicherplatz hier immer noch irrelevant ist.

Weist dies auf einen Fehler in Ubuntu 14.04.1 LTS hin ?

Ich habe die Auswirkungen der Änderung des maximalen Prozentsatzes von Inodes auf dem Ubuntu 14.04.1 LTS überprüft:

xfs_growfs -m 25 /dev/mapper/prod--vg-home 

Diese Menge kann leicht verringert und erhöht werden.

Während ich mit dieser Einstellung experimentierte, stellte ich fest, dass es durch das Herabsetzen auf 3% und das erneute Erhöhen auf 25% sowie das Löschen einiger Dateien zwar sehr viel mehr Dateien hinzugefügt werden kann, der Fehler jedoch immer noch vor dem Auffüllen von Speicher oder Inodes verursacht wird .

xfs_info zeigt an:

meta-data=/dev/mapper/prod--vg-home isize=256 agcount=14, agsize=655360 blks = sectsz=512 attr=2 data = bsize=4096 blocks=9175040, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 

Gibt es eine andere Einstellung, die die Meldung "Kein Platz mehr auf dem Gerät" verursachen könnte? Oder sollte ich daraus schließen, dass dies ein Fehler ist?

Vielen Dank

5

2 Antworten auf die Frage

6
Daniel Stewart

Es gibt einen Fehler mit xfs_growfs, der dazu führt, dass Inodes nicht ordnungsgemäß über eine Partition verteilt werden. Die Lösung besteht darin, einfach mit der Option inode64 erneut zu mounten. Wenn dies beispielsweise / dev / vda1 war, würden Sie Folgendes tun:

mount -o remount,inode64 /dev/vda1 

Weitere Informationen zum Fehler finden Sie hier .

Danke Daniel, ich habe das Remount ausgeführt und konnte kleine Dateien speichern, bis die Festplatte voll war. Nach den xfs_growfs musste ich den Remount erneut ausführen. Nach dem erneuten Ausführen des obigen Remount-Befehls konnte ich die Festplatte jedoch wieder füllen. Purf vor 9 Jahren 0
0
Isaac

Es gibt eine Situation, in der ein Verzeichnis (speziell /home) möglicherweise angibt, dass die Festplatte voll ist, wenn dies nicht der Fall ist, und dass die Kontingente des Benutzers impliziert werden. Der verfügbare Speicherplatz für den Benutzer kann eingeschränkt sein. Prüfen Sie, ob es sich um ein Problem handelt.

Hallo Isaac, danke für den Vorschlag, aber auf dem Server sind keine Quoten installiert (also auch nicht konfiguriert). Purf vor 9 Jahren 0