Il filesystem XFS è rotto in RHEL / CentOS 6.x - Cosa posso fare al riguardo?


28

Le versioni recenti di RHEL / CentOS (EL6) hanno apportato alcune interessanti modifiche al filesystem XFS da cui ho fatto molto affidamento per oltre un decennio. Ho trascorso parte dell'estate scorsa a inseguire una situazione di file sparsa XFS risultante da un backport del kernel scarsamente documentato. Altri hanno avuto problemi di prestazioni sfortunati o comportamenti incoerenti da quando sono passati a EL6.

XFS era il mio filesystem predefinito per dati e partizioni di crescita, poiché offriva stabilità, scalabilità e un buon incremento delle prestazioni rispetto ai filesystem ext3 predefiniti.

C'è un problema con XFS sui sistemi EL6 emersi nel novembre 2012. Ho notato che i miei server mostravano carichi di sistema anomali, anche quando erano inattivi. In un caso, un sistema senza carico mostrerebbe una media di carico costante di 3+. In altri, c'era un dosso 1+ nel carico. Il numero di filesystem XFS montati sembrava influenzare la gravità dell'aumento del carico.

Il sistema ha due filesystem XFS attivi. Il carico è +2 dopo l'aggiornamento al kernel interessato. inserisci qui la descrizione dell'immagine

Scavando più a fondo, ho trovato alcuni fili sulla lista XFS che indicava un aumento della frequenza del xfsaildprocesso seduta in STAT D stato. Le voci corrispondenti di CentOS Bug Tracker e Red Hat Bugzilla delineano le specifiche del problema e concludono che questo non è un problema di prestazioni; solo un errore nella segnalazione del carico di sistema nei kernel più recenti di 2.6.32-279.14.1.el6 .

WTF?!?

In una situazione una tantum, capisco che la segnalazione del carico potrebbe non essere un grosso problema. Prova a gestirlo con il tuo NMS e centinaia o migliaia di server! Questo è stato identificato nel novembre 2012 nel kernel 2.6.32-279.14.1.el6 sotto EL6.3. I kernel 2.6.32-279.19.1.el6 e 2.6.32-279.22.1.el6 sono stati rilasciati nei mesi successivi (dicembre 2012 e febbraio 2013) senza alcuna modifica a questo comportamento. C'è stata persino una nuova versione minore del sistema operativo da quando questo problema è stato identificato. EL6.4 è stato rilasciato ed è ora nel kernel 2.6.32-358.2.1.el6 , che presenta lo stesso comportamento.

Ho avuto una nuova coda di build del sistema e ho dovuto aggirare il problema, bloccando le versioni del kernel alla versione precedente a novembre 2012 per EL6.3 o semplicemente non usando XFS, optando per ext4 o ZFS , con una grave riduzione delle prestazioni per l'applicazione personalizzata specifica in esecuzione in cima. L'applicazione in questione si basa fortemente su alcuni degli attributi del file system XFS per tenere conto delle carenze nella progettazione dell'applicazione.

Andando dietro il sito della knowledge base a pagamento di Red Hat , appare una voce che afferma:

Si osserva una media di carico elevato dopo l'installazione del kernel 2.6.32-279.14.1.el6. La media del carico elevato è causata da xfsaild che passa allo stato D per ciascun dispositivo formattato XFS.

Al momento non esiste una soluzione per questo problema. Attualmente è monitorato tramite Bugzilla # 883905. Soluzione alternativa Eseguire il downgrade del pacchetto del kernel installato a una versione precedente alla 2.6.32-279.14.1.

(eccetto il downgrade dei kernel non un'opzione su RHEL 6.4 ...)

Quindi siamo in 4+ mesi in questo problema senza una vera correzione pianificata per le versioni del sistema operativo EL6.3 o EL6.4. C'è una soluzione proposta per EL6.5 e una patch sorgente del kernel disponibile ... Ma la mia domanda è:

A che punto ha senso allontanarsi dai kernel e dai pacchetti forniti dal sistema operativo quando il manutentore a monte ha rotto una funzionalità importante?

Red Hat ha introdotto questo errore. Essi dovrebbero incorporare una correzione in un kernel errata. Uno dei vantaggi dell'utilizzo dei sistemi operativi aziendali è che forniscono un obiettivo di piattaforma coerente e prevedibile . Questo bug ha disturbato i sistemi già in produzione durante un ciclo di patch e ha ridotto la fiducia nella distribuzione di nuovi sistemi. Mentre potrei applicare una delle patch proposte al codice sorgente , quanto è scalabile? Richiederebbe un po 'di vigilanza per essere aggiornato quando il sistema operativo cambia.

Qual è la mossa giusta qui?

  • Sappiamo che questo potrebbe essere risolto, ma non quando.
  • Supportare il proprio kernel in un ecosistema Red Hat ha un proprio set di avvertimenti.
  • Qual è l'impatto sull'idoneità all'assistenza?
  • Dovrei semplicemente sovrapporre un kernel EL6.3 funzionante su server EL6.4 di nuova generazione per ottenere la corretta funzionalità XFS?
  • Devo solo aspettare che questo sia risolto ufficialmente?
  • Cosa dice questo sulla mancanza di controllo sui cicli di rilascio di Linux aziendali?
  • Fare affidamento su un filesystem XFS per così tanto tempo un errore di pianificazione / progettazione?

Modificare:

Questa patch è stata incorporata nel più recente CentOSPlus release del kernel ( kernel-2.6.32-358.2.1.el6.centos.plus ). Sto testando questo sui miei sistemi CentOS, ma questo non aiuta molto per i server basati su Red Hat.


3
Sono sempre stato convinto che se stai usando EL6 e pagando il supporto RHEL, è loro compito ripararlo per te?
Tom O'Connor,

6
Sì ... Red Hat lo risolverà ... Nel loro programma !! - Questo problema è emerso alla fine del 2012. Non è ancora stato risolto. Non è previsto per la riparazione fino al rilascio di RHEL 6.5, quindi tecnicamente se ne stanno occupando ...
ewwhite

Bene, con l'atteggiamento che sta dimostrando Red Hat (rif. Bug tracker) Sinceramente non credo più che si stiano preoccupando di XFS. Un kernel personalizzato ha senso qui, ma che senso ha pagare per il supporto? Forse CentOS è il tuo percorso ..
pauska,

5
<rant> Capisco la tua frustrazione, prima ero responsabile di un ambiente misto RHEL / CentOS e RH ti rende davvero difficile tenere le cose a volte, visto che continuamente "ignorano" per correggere bug cruciali, a volte che si presentano . Quindi pianificano una correzione per la prossima versione principale, ma poiché non supportano l'aggiornamento alla prossima versione principale, ciò è di scarsa utilità. Ad un certo punto ho scelto di abbandonare i loro kernel ufficiali su alcune scatole RHEL5 semplicemente perché dovevo farlo a causa della mancanza di una funzione specifica. </rant>
Adrian Frühwirth

1
@ MartinSchröder SLES non è particolarmente popolare negli Stati Uniti, ma potrebbe essere un'opzione. XFS stesso non è rotto, ma Red Hat lo gestisce. Vale la pena considerare.
ewwhite,

Risposte:


14

A che punto ha senso allontanarsi dai kernel e dai pacchetti forniti dal sistema operativo quando il manutentore a monte ha rotto una funzionalità importante?

"Nel punto in cui il kernel oi pacchetti del fornitore sono così orribilmente spezzati da avere un impatto sulla tua attività" è la mia risposta generale (per coincidenza, si tratta anche del punto in cui dico che ha senso iniziare a cercare modi per discostarsi dalla relazione con il fornitore) .

Fondamentalmente come hai detto tu e altri, RedHat sembra non voler patchare questo nel loro kernel distribuito (per qualsiasi motivo). Ciò ti lascia praticamente nella situazione di dover eseguire il rollup del tuo kernel (tenerlo aggiornato sulle patch tu stesso, mantenere il tuo pacchetto e installarlo sui tuoi sistemi con Puppet o simili, o eseguire un pacchetto server che Yum o qualunque cosa loro usare oggi può fare riferimento), o prendere i tuoi marmi e andare a casa.


Sì, lo so che portare i tuoi marmi e tornare a casa è spesso una proposta costosa: cambiare fornitore di sistemi operativi è una vera seccatura, specialmente nel mondo Linux in cui i sapori sono radicalmente diversi da un punto di vista amministrativo.
Anche altre opzioni come andare totalmente a CentOS non sono interessanti (perché perdi il supporto e stai ancora ottenendo essenzialmente il codice RedHat creato da qualcun altro, quindi avresti ancora questo bug).

Sfortunatamente, a meno che un numero sufficiente di persone (ovvero "grandi aziende") prenda i propri marmi e torni a casa, il venditore non si preoccuperà tanto di rovinare le persone inviando codice errato e non risolvendolo.


14

Questo problema è stato risolto (in silenzio ) da Red Hat il 23 aprile 2013 in RHEL kernel-2.6.32-358.6.1.el6 come parte degli aggiornamenti errata 6.4 ...


2
20 settimane dopo la segnalazione dei bug, 2 settimane dopo il post qui, pensi che forse Redhat abbia visto tutti i consigli che dicevano "cammina"
Jasen,

Può essere? Non ne sono sicuro.
ewwhite,

3

Se hai bisogno di patchare il tuo kernel RHEL, puoi farlo tu stesso ed essere ufficialmente supportato su quel kernel, dovrai solo certificarlo.

Ci sono disposizioni nel contratto di supporto RHEL per farlo - ISTR sei limitato a 1 o 2 per trimestre o anno ma non ricordi di sicuro.


Molto bene a sapersi!
ewwhite

Questo non è corretto È possibile richiedere una correzione accelerata da Red Hat, ma esistono alcuni criteri che il problema deve soddisfare per la consegna e diversi metodi per fornire una correzione accelerata supportata. Se si ricompila il proprio kernel, quel kernel non è supportato da Red Hat.
suprjami,

Ho un cliente che fa esattamente questo. Non penso che lo facciano per tutti ma lo fanno.
MikeyB,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.