Maximale Anzahl von Dateien in einem einzelnen Verzeichnis für Netapp NFS-Bereitstellungen unter Linux

7

Auf einer älteren Linux-Box, die ich habe, gibt es einen NFS-Mount einer Netapp. Sobald sich 100.000 Dateien in einem einzelnen Verzeichnis in diesem Feld befinden, können keine Dateien mehr geschrieben werden. Weiß jemand, was dies verursachen könnte? Mir wurde gesagt, dass symbolische Links noch geschrieben werden können.

Ich werde spezifischere Informationen hinzufügen, wenn ich sie nachschlage. Bitte überspringen Sie die "Verwenden Sie eine bessere Datei- / Ordnerstruktur und / oder Datenbank", ich weiß ...

Kyle Brandt
quelle
2.6.9-55.0.12.ELsmp
Kyle Brandt
Vielleicht das Limit wafl.maxdirsize erreichen, versuchen, das Problem zu replizieren, und dann sehen
Kyle Brandt
Es scheint, dass es ein Limit von 100.000 Hardlinks gibt, und diese Dateien sind Verzeichnisse: now.netapp.com/NOW/cgi-bin/bol?Type=Detail&Display=292410
Kyle Brandt

Antworten:

7

Es gibt zwei Grenzen, die Sie möglicherweise erreicht haben.

  • Inodes (unwahrscheinlich)

    Sie haben alle verfügbaren Inodes für dieses Volume verbraucht. Sie können dies mit den Befehlen df -iund bestätigen maxfiles.

  • maxdirsize (wahrscheinlicher)

    ONTAP begrenzt die Größe von Verzeichnissen. Die Größe ist ein Produkt von Metadaten / Hardlinks, nicht von Dateiinhalten. Diese Grenze beträgt standardmäßig (unter der Annahme von> 6,5) 1% des System-RAM. Auf diese Weise wird sichergestellt, dass große Verzeichnisse die Systemleistung nicht beeinträchtigen. Weil lineare Verzeichnisscans erfordern, dass Verzeichnisdatenstrukturen in den Speicher geladen werden. Schneller Überblick:

Wenn es keines dieser Probleme ist, würde ich empfehlen, Ihre ONTAP-Protokolle zu überprüfen und zu veröffentlichen.

Dan Carley
quelle
Oh danke, mein Gedanke auf walf.maxdirsize war vielleicht auf dem richtigen Weg, aber veraltet :-)
Kyle Brandt
Obwohl das das Maximum auf 20 MB setzen würde, was ein ziemlich großes Verzeichnis ist ...
Kyle Brandt
Nein, es ist nicht die Dirfilesize, es ist definitiv die Anzahl der Dateien ...
Kyle Brandt
Mit 20 MB sollten Sie ungefähr 640.000 NFS-Dateien erhalten. Aber ich habe festgestellt, dass die Berechnungen nicht immer so günstig sind. Überprüfen Sie dies dennoch, /etc/messagesda die Protokolle häufig hilfreich sind.
Dan Carley
Es ist nicht unangemessen, dass die Inodes ausgehen ... innerhalb von 6 Monaten nach mäßiger Nutzung in einer akademischen Forschungsumgebung hatte ich ein System, dem die Standardanzahl der Inodes ausgegangen ist. Menschen können Inodes sehr schnell zerkauen, wenn sie beispielsweise Kopien ihrer IMAP-Ordner in ihren Home-Verzeichnissen speichern.
Aculich
6

Das System erreicht das Link-Limit für ein Verzeichnis, das eine feste Einschränkung des NetApp ONTAP-Dateisystems darstellt. Aus diesem Knowledge Base-Artikel :

Ab Data ONTAP 6.5 kann ein einzelnes Verzeichnis maximal 99998 (100 KB) Unterverzeichnisse haben. Data ONTAP 6.4 und frühere Versionen waren auf Unterverzeichnisse mit 65534 (64 KB) beschränkt. Diese Nummer darf nicht geändert werden. Informationen zum Grund für diese Begrenzung finden Sie im folgenden Abschnitt über Hardlinks und die Implementierung von Unterverzeichnissen.

Kyle Brandt
quelle
1
Diese Antwort ist nicht mehr wahr, die Grenzen können geändert werden, siehe neue Antworten serverfault.com/a/591995/10361
sorin
1

http://www.unixunderground.com/blog/?cat=11

Ein bisschen veraltet, könnte aber hilfreich sein. Ich glaube, die Anzahl der Dateien basiert auf der Anzahl der Festplatten / Knoten.

Mojeska
quelle
Das ist nicht das Problem, wie es scheint ...
Kyle Brandt
Guter Gedanke!
Kyle Brandt
0

In neueren Versionen von NetApp (8.1+) können Sie die Standardgrenzwerte pro Volume mit diesem Befehl überschreiben:

vol options vol_name maxdirsize 150000

Um zu sehen, wie die aktuellen Einstellungen ausgeführt werden

vol options vol_name

Es gibt keine Möglichkeit, diese über den GUI-Client zu ändern.

Sorin
quelle