El sistema de archivos XFS está roto en RHEL / CentOS 6.x - ¿Qué puedo hacer al respecto?


28

Las versiones recientes de RHEL / CentOS (EL6) trajeron algunos cambios interesantes al sistema de archivos XFS del que he dependido mucho durante más de una década. Pasé parte del verano pasado persiguiendo una situación de archivo XFS escaso como resultado de un backport de kernel mal documentado. Otros han tenido problemas de rendimiento desafortunados o comportamiento inconsistente desde que se mudaron a EL6.

XFS era mi sistema de archivos predeterminado para datos y particiones de crecimiento, ya que ofrecía estabilidad, escalabilidad y un buen aumento del rendimiento sobre los sistemas de archivos ext3 predeterminados.

Hay un problema con XFS en los sistemas EL6 que apareció en noviembre de 2012. Noté que mis servidores mostraban cargas de sistema anormalmente altas, incluso cuando estaban inactivas. En un caso, un sistema descargado mostraría un promedio de carga constante de 3+. En otros, hubo un aumento de 1+ en la carga. El número de sistemas de archivos XFS montados parecía influir en la gravedad del aumento de carga.

El sistema tiene dos sistemas de archivos XFS activos. La carga es +2 después de la actualización del núcleo afectado. ingrese la descripción de la imagen aquí

Profundizando, encontré algunos hilos en la lista de correo XFS que apuntaban a una mayor frecuencia del xfsaildproceso en el estado STAT D. Las entradas correspondientes de CentOS Bug Tracker y Red Hat Bugzilla resumen los detalles del problema y concluyen que este no es un problema de rendimiento; solo un error en el informe de carga del sistema en núcleos más nuevos que 2.6.32-279.14.1.el6 .

WTF?!?

En una situación única, entiendo que el informe de carga puede no ser un gran problema. ¡Intente administrar eso con su NMS y cientos o miles de servidores! Esto se identificó en noviembre de 2012 en el kernel 2.6.32-279.14.1.el6 en EL6.3. Los núcleos 2.6.32-279.19.1.el6 y 2.6.32-279.22.1.el6 se lanzaron en los meses siguientes (diciembre de 2012 y febrero de 2013) sin cambios en este comportamiento. Incluso ha habido una nueva versión menor del sistema operativo desde que se identificó este problema. EL6.4 fue lanzado y ahora está en el kernel 2.6.32-358.2.1.el6 , que exhibe el mismo comportamiento.

He tenido una nueva cola de compilación del sistema y he tenido que solucionar el problema, ya sea bloqueando las versiones del kernel en la versión anterior a noviembre de 2012 para EL6.3 o simplemente no usando XFS, optando por ext4 o ZFS , con una severa penalización de rendimiento para la aplicación personalizada específica que se ejecuta encima. La aplicación en cuestión depende en gran medida de algunos de los atributos del sistema de archivos XFS para tener en cuenta las deficiencias en el diseño de la aplicación.

Al ir detrás del sitio de la base de conocimiento de Red Hat , aparece una entrada que dice:

Se observa un alto promedio de carga después de instalar el kernel 2.6.32-279.14.1.el6. El alto promedio de carga se debe a que xfsaild entra en estado D para cada dispositivo con formato XFS.

Actualmente no hay una resolución para este problema. Actualmente se está rastreando a través de Bugzilla # 883905. Solución alternativa Reduzca el paquete del kernel instalado a una versión inferior a 2.6.32-279.14.1.

(excepto la rebaja de kernels no es una opción en RHEL 6.4 ...)

Así que llevamos más de 4 meses en este problema sin una solución real planificada para las versiones del sistema operativo EL6.3 o EL6.4. Hay una solución propuesta para EL6.5 y un parche de fuente del núcleo disponible ... Pero mi pregunta es:

¿En qué punto tiene sentido apartarse de los núcleos y paquetes provistos por el sistema operativo cuando el responsable del mantenimiento ha roto una característica importante?

Red Hat introdujo este error. Ellos deben incorporar una solución en un núcleo de erratas. Una de las ventajas de usar sistemas operativos empresariales es que proporcionan un objetivo de plataforma consistente y predecible . Este error interrumpió los sistemas que ya estaban en producción durante un ciclo de parche y redujo la confianza en la implementación de nuevos sistemas. Si bien podría aplicar uno de los parches propuestos al código fuente , ¿qué tan escalable es eso? Se requeriría cierta vigilancia para mantenerse actualizado a medida que cambia el sistema operativo.

¿Cuál es el movimiento correcto aquí?

  • Sabemos que esto podría solucionarse, pero no cuándo.
  • Apoyar su propio núcleo en un ecosistema de Red Hat tiene su propio conjunto de advertencias.
  • ¿Cuál es el impacto en la elegibilidad de soporte?
  • ¿Debería superponer un núcleo EL6.3 que funciona sobre servidores EL6.4 de nueva construcción para obtener la funcionalidad XFS adecuada?
  • ¿Debería esperar hasta que esto se arregle oficialmente?
  • ¿Qué dice esto sobre la falta de control que tenemos sobre los ciclos empresariales de lanzamiento de Linux?
  • ¿Confiar en un sistema de archivos XFS durante tanto tiempo fue un error de planificación / diseño?

Editar:

Este parche se incorporó a la versión más reciente del núcleo CentOSPlus ( kernel-2.6.32-358.2.1.el6.centos.plus ). Estoy probando esto en mis sistemas CentOS, pero esto no ayuda mucho a los servidores basados ​​en Red Hat.


3
Siempre creí que si estás usando EL6 y pagas el soporte de RHEL, ¿es su responsabilidad arreglarlo por ti?
Tom O'Connor

66
Sí ... Red Hat lo arreglará ... ¡¡ En su propio horario !! - Este problema apareció a fines de 2012. Todavía no se ha solucionado. No está programado para su reparación hasta el lanzamiento de RHEL 6.5, por lo que técnicamente, que se encarga de eso ...
ewwhite

Bueno, con la actitud que muestra Red Hat (ref. El rastreador de errores) Sinceramente, ya no creo que se estén molestando con XFS. Un núcleo personalizado tiene sentido aquí, pero ¿cuál es el punto de pagar por soporte? Tal vez CentOS es su camino ..
pauska

55
<rant> Entiendo su frustración, antes era responsable de un entorno mixto de RHEL / CentOS y RH hace que sea muy difícil mantener las cosas en stock a veces, viendo cómo continuamente "ignoran" para corregir errores cruciales, a veces que se presentan . Luego programan una solución para la próxima versión principal, pero dado que no admiten la actualización a la próxima versión principal, esto es poco útil. En algún momento decidí deshacerme de sus núcleos oficiales en algunas cajas RHEL5 simplemente porque tenía que hacerlo debido a la falta de una característica específica. </rant>
Adrian Frühwirth

1
@ MartinSchröder SLES no es particularmente popular en los Estados Unidos, pero podría ser una opción. XFS en sí no está roto, pero el manejo de Red Hat sí lo está. Vale la pena considerarlo.
ewwhite

Respuestas:


14

¿En qué punto tiene sentido apartarse de los núcleos y paquetes provistos por el sistema operativo cuando el responsable del mantenimiento ha roto una característica importante?

"En el punto en que el núcleo o los paquetes del proveedor se rompen tan horriblemente que impactan en su negocio" es mi respuesta general (por coincidencia, este también es el punto en el que digo que tiene sentido comenzar a buscar formas de apartarse de la relación con el proveedor) .

Básicamente, como usted y otros han dicho, RedHat parece no querer parchear esto en su núcleo distribuido (por cualquier razón). Eso te deja en la situación de tener que rodar tu propio kernel (mantenerlo actualizado en parches tú mismo, mantener tu propio paquete e instalarlo en tus sistemas con Puppet o similar, o ejecutar un servidor de paquetes que Yum o lo que sea use hoy puede hacer referencia), o tomar sus canicas y volver a casa.


Sí, sé que llevar sus canicas e irse a casa a menudo es una propuesta costosa: cambiar de proveedor de sistemas operativos es un gran problema, especialmente en el mundo de Linux, donde los sabores son radicalmente diferentes desde un punto de vista administrativo.
Otras opciones, como ir totalmente a CentOS, también son poco atractivas (porque pierdes el soporte y todavía obtienes esencialmente el código de RedHat creado por otra persona, por lo que aún tendrás este error).

Desafortunadamente, a menos que suficientes personas (es decir, "grandes compañías) tomen sus canicas y se vayan a casa, al vendedor no le importará tanto molestar a las personas enviando un código incorrecto y no reparándolo.


14

Esto fue corregido ( silenciosamente ) por Red Hat el 23 de abril de 2013 en RHEL kernel-2.6.32-358.6.1.el6 como parte de las actualizaciones de erratas 6.4 ...


2
20 semanas después del informe de error, 2 semanas después de la publicación aquí, ¿Crees que quizás Redhat vio todos los consejos diciendo "caminar"
Jasen

¿Tal vez? No estoy seguro.
ewwhite

3

Si necesita parchear su núcleo RHEL, puede hacerlo usted mismo y contar con el respaldo oficial de ese núcleo, solo necesitará que lo certifiquen.

Hay disposiciones en el acuerdo de soporte de RHEL para hacerlo: ISTR está restringido a 1 o 2 por trimestre o año, pero no puedo recordarlo con certeza.


Muy bueno saberlo!
ewwhite

Esto no es correcto. Puede solicitar un arreglo acelerado de Red Hat, pero hay criterios que el problema debe cumplir para que esto se entregue, y varias formas diferentes de entregar un arreglo acelerado compatible. Si va a recompilar su propio núcleo, ese núcleo no es compatible con Red Hat.
suprjami

Tengo un cliente que hace exactamente esto. No creo que lo hagan por todos, pero lo hacen.
MikeyB
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.