Das XFS-Dateisystem ist in RHEL / CentOS 6.x defekt. Was kann ich dagegen tun?

28

Aktuelle Versionen von RHEL / CentOS (EL6) haben einige interessante Änderungen an dem XFS-Dateisystem gebracht, von dem ich seit über einem Jahrzehnt stark abhängig bin . Ich habe einen Teil des letzten Sommers damit verbracht, eine XFS-Sparse- Dateisituation aufzuspüren , die auf einen schlecht dokumentierten Kernel-Backport zurückzuführen ist. Andere hatten unglückliche Leistungsprobleme oder ein inkonsistentes Verhalten, seit sie zu EL6 gewechselt sind.

XFS war mein Standarddateisystem für Daten und Wachstumspartitionen, da es Stabilität, Skalierbarkeit und eine gute Leistungssteigerung gegenüber den Standard-ext3-Dateisystemen bot.

Es gibt ein Problem mit XFS auf EL6-Systemen, das im November 2012 aufgetreten ist. Ich habe festgestellt, dass meine Server selbst im Leerlauf eine ungewöhnlich hohe Systemlast aufwiesen. In einem Fall würde ein unbeladenes System einen konstanten Lastdurchschnitt von 3+ anzeigen. In anderen Fällen gab es einen Anstieg der Ladung um 1+. Die Anzahl der gemounteten XFS-Dateisysteme schien den Schweregrad der Lastzunahme zu beeinflussen.

Das System verfügt über zwei aktive XFS-Dateisysteme. Die Auslastung beträgt nach dem Upgrade auf den betroffenen Kernel +2. Bildbeschreibung hier eingeben

Bei näherer Betrachtung fand ich einige Threads in der XFS-Mailingliste , die auf eine erhöhte Häufigkeit des xfsaildProzesses im Status STAT D hinwiesen . Die entsprechenden Einträge zu CentOS Bug Tracker und Red Hat Bugzilla beschreiben die Besonderheiten des Problems und schließen daraus, dass es sich nicht um ein Leistungsproblem handelt. nur ein Fehler bei der Meldung der Systemlast in Kerneln neuer als 2.6.32-279.14.1.el6 .

WTF?!?

Ich verstehe, dass die Lastberichterstattung in einer einmaligen Situation keine große Sache sein kann. Versuchen Sie, dies mit Ihrem NMS und Hunderten oder Tausenden von Servern zu verwalten! Dies wurde im November 2012 am Kernel 2.6.32-279.14.1.el6 unter EL6.3 identifiziert. Die Kernel 2.6.32-279.19.1.el6 und 2.6.32-279.22.1.el6 wurden in den folgenden Monaten (Dezember 2012 und Februar 2013) ohne Änderung dieses Verhaltens veröffentlicht. Es gibt sogar eine neue kleinere Version des Betriebssystems, seitdem dieses Problem erkannt wurde. EL6.4 wurde veröffentlicht und ist jetzt auf Kernel 2.6.32-358.2.1.el6 , der das gleiche Verhalten aufweist.

Ich hatte eine neue Warteschlange für die Systemerstellung und musste das Problem umgehen, indem ich entweder die Kernelversionen für EL6.3 vor November 2012 sperrte oder einfach XFS nicht verwendete, wobei ich mich für ext4 oder ZFS entschied , was zu erheblichen Leistungseinbußen führte für die spezifische benutzerdefinierte Anwendung, die auf ausgeführt wird. Die betreffende Anwendung stützt sich stark auf einige der XFS-Dateisystemattribute, um Mängel im Anwendungsdesign zu berücksichtigen.

Hinter Red Hats kostenpflichtiger Knowledgebase-Site wird ein Eintrag angezeigt, der Folgendes enthält :

Nach der Installation von Kernel 2.6.32-279.14.1.el6 wird ein Durchschnitt für hohe Auslastung festgestellt. Der Durchschnitt der hohen Auslastung wird dadurch verursacht, dass xfsaild für jedes XFS-formatierte Gerät in den Status D wechselt.

Derzeit gibt es keine Lösung für dieses Problem. Es wird derzeit über Bugzilla # 883905 verfolgt. Umgehung Führen Sie ein Downgrade des installierten Kernelpakets auf eine Version vor 2.6.32-279.14.1 durch.

(mit Ausnahme von Kernel-Downgrades, die unter RHEL 6.4 keine Option sind ...)

Wir sind also schon mehr als 4 Monate in diesem Problem, ohne dass eine echte Korrektur für die EL6.3- oder EL6.4-Betriebssystemversionen geplant ist. Es gibt ein vorgeschlagenes Update für EL6.5 und einen Kernel Source Patch ... Aber meine Frage ist:

Ab wann ist es sinnvoll, von den vom Betriebssystem bereitgestellten Kernels und Paketen abzuweichen, wenn der Upstream-Betreuer eine wichtige Funktion verletzt hat?

Red Hat hat diesen Bug eingeführt. Sie sollten einen Fix in einen Errata-Kernel integrieren. Einer der Vorteile der Verwendung von Unternehmensbetriebssystemen besteht darin, dass sie ein konsistentes und vorhersehbares Plattformziel bieten . Dieser Fehler störte Systeme, die sich bereits während eines Patch-Zyklus in der Produktion befanden, und verringerte das Vertrauen in die Bereitstellung neuer Systeme. Ich könnte zwar einen der vorgeschlagenen Patches auf den Quellcode anwenden , aber wie skalierbar ist das? Es würde einige Wachsamkeit erfordern, um auf dem neuesten Stand zu bleiben, wenn sich das Betriebssystem ändert.

Was ist der richtige Zug hier?

  • Wir wissen, dass dies möglicherweise behoben werden könnte, aber nicht wann.
  • Das Unterstützen Ihres eigenen Kernels in einem Red Hat-Ökosystem hat seine eigenen Einschränkungen.
  • Was ist der Einfluss auf die Förderfähigkeit des Supports?
  • Sollte ich nur einen funktionierenden EL6.3-Kernel auf neu erstellte EL6.4-Server legen, um die richtige XFS-Funktionalität zu erhalten?
  • Soll ich nur warten, bis dies offiziell behoben ist?
  • Was sagt dies über den Mangel an Kontrolle über die Veröffentlichungszyklen von Linux in Unternehmen aus?
  • War es ein Planungs- / Entwurfsfehler, sich so lange auf ein XFS-Dateisystem zu verlassen?

Bearbeiten:

Dieser Patch wurde in das neueste CentOSPlus- Kernel-Release ( Kernel-2.6.32-358.2.1.el6.centos.plus ) integriert. Ich teste dies auf meinen CentOS-Systemen, aber das hilft den Red Hat-basierten Servern nicht viel.

ewwhite
quelle
3
Ich war immer der Überzeugung, dass wenn Sie EL6 verwenden und RHEL-Support bezahlen, es ihre Pflicht ist, dies für Sie zu beheben?
Tom O'Connor
6
Ja ... Red Hat wird das Problem beheben ... Nach eigenem Zeitplan !! - Dieses Problem ist Ende 2012 aufgetreten. Es ist immer noch nicht behoben. Es ist nicht für die Reparatur bis zum Release von RHEL 6.5 geplant, also kümmern sie sich technisch darum ...
ewwhite
Nun, mit der Haltung, die Red Hat zeigt (siehe Bug-Tracker), glaube ich ehrlich gesagt nicht, dass sie sich mehr mit XFS beschäftigen. Ein angepasster Kernel ist hier sinnvoll, aber wozu muss man für Support bezahlen? Vielleicht ist CentOS Ihr Weg ..
Pause
5
<rant> Ich verstehe Ihre Frustration, ich war zuvor für eine gemischte RHEL / CentOS-Umgebung verantwortlich, und RH macht es Ihnen wirklich schwer, die Dinge manchmal auf dem neuesten Stand zu halten, da sie ständig "ignorieren", um entscheidende Fehler zu beheben, manchmal stellen sie sich selbst vor . Dann planen sie einen Fix für die nächste Hauptversion, aber da sie das Upgrade auf die nächste Hauptversion nicht unterstützen, ist dies wenig hilfreich. Irgendwann entschied ich mich dafür, ihre offiziellen Kernel auf einigen RHEL5-Boxen abzulegen, nur weil ich aufgrund eines Mangels an einer bestimmten Funktion musste. </ Rant>
Adrian Frühwirth
1
@ MartinSchröder SLES ist in den USA nicht besonders beliebt, könnte aber eine Option sein. XFS selbst ist nicht kaputt, aber Red Hat kümmert sich darum. Es lohnt sich zu überlegen.
ewwhite

Antworten:

14

Ab wann ist es sinnvoll, von den vom Betriebssystem bereitgestellten Kernels und Paketen abzuweichen, wenn der Upstream-Betreuer eine wichtige Funktion verletzt hat?

"An dem Punkt, an dem der Kernel oder die Pakete des Anbieters so schrecklich kaputt sind, dass sie sich auf Ihr Geschäft auswirken", lautet meine allgemeine Antwort. .

Grundsätzlich scheint RedHat, wie Sie und andere gesagt haben, dies nicht in ihrem verteilten Kernel zu patchen (aus welchem ​​Grund auch immer). Das bringt Sie so ziemlich in die Situation, Ihren eigenen Kernel rollen zu müssen (selbst Patches aktualisieren, Ihr eigenes Paket warten und es auf Ihren Systemen mit Puppet oder ähnlichem installieren oder einen Paketserver laufen lassen, den Yum oder was auch immer sie haben) Verwenden Sie heute kann verweisen), oder nehmen Sie Ihre Murmeln und nach Hause gehen.


Ja, ich weiß, dass es oft teuer ist, Murmeln mitzunehmen und nach Hause zu gehen - das Wechseln des Betriebssystems ist ein großer Schmerz, insbesondere in der Linux-Welt, in der sich die Aromen vom administrativen Standpunkt aus radikal unterscheiden.
Andere Optionen, wie die vollständige Nutzung von CentOS, sind ebenfalls unattraktiv (da Sie den Support verlieren und immer noch RedHats Code von einer anderen Person erhalten, sodass Sie immer noch diesen Fehler haben).

Wenn nicht genügend Leute (dh "große Firmen") ihre Murmeln mitnehmen und nach Hause gehen, kümmert sich der Verkäufer leider nicht so sehr darum, Leute zu verarschen, indem er schlechten Code versendet und ihn nicht repariert.

voretaq7
quelle
14

Dies wurde ( stillschweigend ) von Red Hat am 23. April 2013 in RHEL kernel-2.6.32-358.6.1.el6 als Teil der 6.4-Errata-Updates behoben ...

ewwhite
quelle
2
20 Wochen nach dem Bugreport, 2 Wochen nach dem Post hier, Glaubst du, dass RedHat vielleicht alle Ratschläge zum "Gehen"
gelesen hat
Vielleicht? Ich bin mir nicht sicher.
Ewwhite
3

Wenn Sie Ihren RHEL-Kernel patchen müssen, können Sie dies selbst tun und sich von diesem Kernel offiziell unterstützen lassen. Sie müssen ihn nur zertifizieren.

Die RHEL-Supportvereinbarung enthält Bestimmungen dazu - ISTR ist auf 1 oder 2 pro Quartal oder Jahr beschränkt, Sie können sich jedoch nicht sicher erinnern.

MikeyB
quelle
Sehr gut zu wissen!
ewwhite
Das ist nicht richtig. Sie können einen beschleunigten Fix bei Red Hat anfordern, aber es gibt Kriterien, die das Problem erfüllen muss, damit dieser geliefert wird, und verschiedene Möglichkeiten, einen unterstützten beschleunigten Fix zu liefern. Wenn Sie Ihren eigenen Kernel neu kompilieren, wird dieser Kernel von Red Hat nicht unterstützt.
28.
Ich habe einen Kunden, der genau das tut. Ich glaube nicht, dass sie es für alle tun, aber sie tun es.
MikeyB