Ist XFS immer noch die beste Wahl für Mongodb?

9

Es gibt dieses Handbuch für Produktionsserver:

https://docs.mongodb.com/manual/administration/production-notes/#kernel-and-file-systems

Es wird angegeben, dass für die WiredTiger-Speicher-Engine XFS dringend gegen ext3 oder ext4 empfohlen wird. Aber dieser Artikel muss sehr alt sein. Heutzutage verwenden wir den Linux-Kernel 4. Die Kernel der 2.6-Serie stammen aus dem Jahr 2003. Das ist unglaublich alt.

Hier kommt also die Frage: Hat sich in den letzten 14 Jahren etwas geändert? (Dies klingt im IT-Bereich nach einer dummen Frage, und es ist lächerlich, sie aufzuschreiben.) Wird XFS immer noch für einen Produktions-MongoDb-Cluster bevorzugt? Oder sollten wir stattdessen ext4 oder etwas anderes verwenden?

Nagylzs
quelle
Die Dokumentation ist ziemlich klar ... "Sie sollten den Linux-Kernel Version 2.6.36 oder höher verwenden ... mit der WiredTiger-Speicher-Engine wird die Verwendung von XFS dringend empfohlen, um Leistungsprobleme zu vermeiden, die bei der Verwendung von EXT4 mit WiredTiger auftreten können." Dies ist in der noch zu veröffentlichenden Version 3.6 der Dokumentation noch vorhanden.
LowlyDBA
1
Es ist ziemlich klar und verweist auch auf eine Kernel-Version, die ungefähr 10 Jahre alt ist. Die Frage stellte sich, weil ext4 und auch xfs in den letzten 10 Jahren entwickelt wurden. Aber ich glaube dir, ich brauchte nur eine Bestätigung. Gibt es eine Erklärung, warum ext4 schlechter abschneidet?
Nagylzs
1
Das könnte sich in MongoDB-Interna verwandeln, was meiner Erfahrung nach schwer zu beschaffende Daten sind, aber dieser Beitrag könnte etwas Licht ins Dunkel bringen.
LowlyDBA
Obwohl ich zu dieser Frage ein negatives Feedback erhalten habe, musste ich dies vor der Installation eines Produktionsclusters stellen ... Danke.
Nagylzs
2
10 Jahre und NoSQL gealtert wie ein Glas Milch.
Evan Carroll

Antworten:

9

Die Herkunft der Informationen in den MongoDB-Produktionsnotizen ist derzeit nicht ersichtlich, aber WiredTiger und die Empfehlung zur Verwendung von XFS wurden definitiv viel später als die Details des Linux-Kernels hinzugefügt. Die Produktionsnotizen teilen kollektive Erfahrungen mit bekannten Problemen, sind jedoch in der Regel eher Empfehlungen als strenge Richtlinien. Die meisten Notizen werden zu dem Zeitpunkt hinzugefügt, an dem ein weit verbreitetes Problem festgestellt wird, aber die Umstände könnten sich sicherlich ändern.

Es wird angegeben, dass für die WiredTiger-Speicher-Engine XFS dringend gegen ext3 oder ext4 empfohlen wird.

Die spezifische Empfehlung gegen ext4 basiert auf beobachteten Verzögerungen während der WiredTiger-Checkpoints, die von einer Reihe von Produktionsbenutzern gemeldet wurden. Gemäß SERVER-18314 (Mai 2015) besteht die Wahrscheinlichkeit eines Stillstands, wenn das ext4-Journaling mit den WiredTiger-Prüfpunkten zusammenfällt. Dies ist möglicherweise nicht für alle Workloads ein Problem, stellt jedoch eine ausreichend wichtige Einschränkung dar, dass in MongoDB 3.4 (veröffentlicht im November 2016) eine Startwarnung für Bereitstellungen mit ext4 mit WiredTiger hinzugefügt wurde. Es gab keine ähnlichen Berichte mit XFS, und es wurde beobachtet, dass es mit MongoDB im Allgemeinen besser abschneidet.

Es gibt andere verfügbare Dateisysteme unter Linux (ZFS, btrfs, ...), aber diese werden derzeit in der Produktion nicht häufig verwendet (im Vergleich zu ext4 und XFS), sodass XFS aufgrund von Tests und Erfahrungen das empfohlene Dateisystem ist.

Heutzutage verwenden wir den Linux-Kernel 4. Die Kernel der 2.6-Serie stammen aus dem Jahr 2003. Das ist unglaublich alt.

Während die meisten Distributionen vom 2.6-Kernel übernommen wurden, gibt es einige Enterprise-Stalwarts wie RHEL6 , die den Standardkernel während ihres Lebenszyklus der Release-Unterstützung nicht aktualisieren. Redhat führt Cherrypick- und Backport-Korrekturen mit ihrer eigenen Kernel-Subversion durch, bleibt jedoch ab dem Zeitpunkt der Veröffentlichung auf der ursprünglichen Kernel-Basis. RHEL hat eine 10-Jahres-Supportrichtlinie, gefolgt von einem 4-Jahres-Support für verlängerte Lebenszyklen. Daher bleiben alte Versionen in der Regel viel länger im Feld, als Sie vielleicht erwarten. RHEL6 wird 2020 auf erweiterten Support umgestellt, sodass es 2017 immer noch neue Bereitstellungen mit dem 2.6-Kernel gibt. RHEL7 verwendet den 3.10-Linux-Kernel und wird den erweiterten Support erst 2024 erreichen.

Stennie
quelle