¿Qué sistema de archivos para grandes LVM de discos (8 TB)?

21

Tengo un servidor Linux con muchos discos de 2 TB, todos actualmente en un LVM que dan como resultado unos 10 TB de espacio. Uso todo este espacio en una partición ext4, y actualmente tengo alrededor de 8,8 TB de datos.

El problema es que a menudo recibo errores en mis discos, e incluso si los reemplazo (es decir, copio el disco viejo a uno nuevo con dd y luego pongo el nuevo en el servidor) tan pronto como aparecen los errores, A menudo obtengo alrededor de 100 MB de datos corruptos. Eso hace que e2fsck se vuelva loco cada vez, y a menudo lleva una semana volver a poner el sistema de archivos ext4 en un estado sano.

Entonces la pregunta es: ¿Qué me recomendarías usar como sistema de archivos en mi LVM? ¿O qué me recomendarías que haga (realmente no necesito el LVM)?

Perfil de mi sistema de archivos:

  • muchas carpetas de diferentes tamaños totales (algunas por un total de 2 TB, algunas por un total de 100 MB)
  • casi 200,000 archivos con diferentes tamaños (3/4 de ellos alrededor de 10 MB, 1/4 entre 100 MB y 4 GB; actualmente no puedo obtener más estadísticas sobre los archivos ya que mi partición ext4 está completamente destruida durante algunos días)
  • muchas lecturas pero pocas escrituras
  • y necesito tolerancia a fallas (dejé de usar mdadm RAID porque no me gusta tener UN error en todo el disco, y a veces tengo discos defectuosos, que reemplazo tan pronto como puedo, pero eso significa que puedo obtener datos corruptos en mi sistema de archivos)

El principal problema son los discos defectuosos; Puedo perder algunos archivos, pero no puedo permitirme perder todo al mismo tiempo.

Si sigo usando ext4, escuché que debería intentar crear sistemas de archivos más pequeños y "fusionarlos" de alguna manera, pero no sé cómo.

Escuché que btrfs sería bueno, pero no puedo encontrar ninguna pista sobre cómo logra perder una parte de un disco (o un disco completo), cuando los datos NO se replican ( mkfs.btrfs -d single?).

Cualquier consejo sobre la pregunta será bienvenido, gracias de antemano!

alphatiger
fuente
1
Exactamente qué errores de disco obtienes. Eso debería dar una pista
Soham Chakraborty
Sectores defectuosos, a menudo son solo uno o dos sectores defectuosos en todo el disco ...
alphatiger
Eso significa que su disco está yendo mal. Casi nada que ver con el sistema de archivos. Si el disco está dañado, no importa qué fs uses, será útil. Como otros han mencionado, busque discos RAID y / o compre discos empresariales. Además, busque también controladores de calidad.
Soham Chakraborty
Sí, lo sé, es por eso que reemplazo los discos que van mal. Lo siento si mi pregunta no fue clara. Pero aún así, pensé que algunos sistemas de archivos se comportarían mejor con datos corruptos ...
alphatiger
Realmente deberías reemplazar las piezas defectuosas de tu hardware. Esto es como mirar un maniquí de prueba de choque después de que un automóvil ha sido conducido contra la pared a 200 km / h. "¡Oh, mira! ¡Su pierna izquierda está casi bien! ¡La prueba fue exitosa!" ... ningún sistema de archivos puede ayudarlo si el hardware subyacente se pudre. XFS tiene fsck más rápido que ext *, y después de que pase suficiente tiempo y el sistema de archivos madure un poco más, quizás btrfs también funcione. Luego está ZFS, pero en Linux su estado es un poco triste.
Janne Pikkarainen

Respuestas:

22

No es un problema del sistema de archivos, son las limitaciones físicas de los discos. Aquí hay algunos datos:

Las unidades SATA se especifican comúnmente con una tasa de error de lectura (URE) irrecuperable de 10 ^ 14. Eso significa que 1 byte por 12TB se perderá irrecuperablemente incluso si los discos funcionan bien.

Esto significa que sin RAID, perderá datos incluso si no falla la unidad ; RAID es su única opción.

Si elige RAID5 (capacidad total n-1, donde n = número de discos) aún no es suficiente. Con 10TB RAID5 que consta de 6 x 2TB HDD, tendrá un 20% de posibilidades de que falle una unidad por año y con un solo fallo de disco, debido a URE tendrá un 50% de posibilidades de reconstruir con éxito RAID5 y recuperar el 100% de sus datos .

Básicamente, con la alta capacidad de los discos y el URE relativamente alto, necesita RAID6 para estar seguro, incluso una vez más, la falla de un disco.

Lea esto: http://www.zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162

c2h5oh
fuente
3
Espere, URE significa error de lectura irrecuperable, pero esto no significa que el disco realmente tenga el error. La próxima lectura puede (y probablemente lo hará) devolver el bit correcto. El sistema operativo probablemente volverá a leer el sector y obtendrá los datos correctos. También se olvidó de hablar sobre SMART: antes de que un sector se dañe permanentemente, SMART intentará leer / escribir datos desde / hacia él. Si detecta demasiadas fallas, SMART simplemente mueve el contenido del sector a otro lugar y lo marca como MALO y nadie podrá volver a escribir en él.
Avio
Por lo tanto, simplemente sugiere comprar toneladas de discos sin preguntar POR QUÉ sus discos son tan defectuosos. Podría ser un problema de calor, podría ser un problema con un controlador SATA defectuoso, podría ser un problema de conectores SATA defectuosos, etc., etc., etc.
Avio
@Avio Lo que estoy diciendo es que con 10 TB de datos, tendrá errores de lectura debido a limitaciones del disco duro, incluso si todos los discos, el controlador SATA, los conectores SATA, etc. están en perfectas condiciones y funcionan de acuerdo con las especificaciones. También estoy diciendo que incluso si decide usar RAID para mitigar que debería ir con RAID6 porque la capacidad del disco + URE hace que incluso RAID5 no sea lo suficientemente confiable. Incluso la falla de una sola unidad en RAID5 tiene una alta probabilidad de pérdida de datos (¡50% FFS!).
c2h5oh
1
@Avio U en URE significa irrecuperable como desaparecido para siempre.
c2h5oh
Puede ser el problema del sistema de archivos, si usa una copia en el sistema de escritura de archivos como btrfs o xfs, es muy probable que pueda recuperar una versión anterior del archivo, por lo que solo perderá el último cambio en el archivo. (si alguna vez se cambió)
Jens Timmerman
13

Hazte un favor y utiliza un RAID para tus discos, incluso podría ser RAID de software con mdadm. También piense por qué "a menudo recibe errores en sus discos"; esto no es normal, excepto cuando utiliza unidades SATA de clase de escritorio baratas en lugar de discos de grado RAID.

Después de eso, el sistema de archivos ya no es tan importante: ext4, xfs son buenas opciones.

Sven
fuente
1
Estoy de acuerdo en que debería;) pero no uso RAID por muchas razones. El principal es el precio, ya que son 2-3 veces más caros, y realmente no puedo pagarlo. La segunda razón es que la última vez que utilicé RAID 5, tuve la suerte de obtener dos discos defectuosos antes de poder conectar uno nuevo y volver a sincronizarlo (no tenía discos de repuesto en ese momento, tuve que esperar un uno nuevo; estoy de acuerdo en que con los discos de clase RAID, habría tenido este problema). La tercera razón es que a medida que crecen los datos que tengo que almacenar, agrego nuevos discos de mayor tamaño progresivamente, lo que no puedo hacer con una configuración RAID.
Alphatiger
Así que estoy tratando de ver si existe un sistema de archivos que alguien me recomendaría usar en una configuración donde no puedo confiar en datos no corruptos. Aún así, gracias por tu respuesta!
alphatiger
44
¿Entonces estás diciendo que tus datos no valen el gasto adicional? Si no puede permitirse el lujo de tener al menos dos copias de sus datos, debe considerar que se han perdido. Tienes razón en que RAID5 probablemente no sea una buena opción, probablemente deberías mirar RAID6 o RAID10.
Zoredache
@alphatiger: los discos son demasiado caros si su tiempo y sus datos son demasiado baratos.
Restablece a Monica - M. Schröder el
8

He tenido buena suerte con ZFS, puedes verificar si está disponible en cualquier distribución que uses. Advertencia justa, probablemente significará reconstruir todo el sistema, pero ofrece un rendimiento realmente bueno y tolerancia a fallas.

TMN
fuente
Actualmente uso Debian GNU / Linux, parece que hay una implementación FUSE, pero no hay paquete (debido a problemas de licencia). Probablemente lo intentaré (después de compilar desde las fuentes, ya que usar FUSE no es muy bueno para un alto rendimiento), no me preocupa tener que reconstruir todo mi sistema de archivos. Gracias !
alphatiger
+1 para ZFS. El RAID tradicional corrompe silenciosamente los datos porque no es lo suficientemente inteligente como para saber cuándo los bloques están mal o cómo repararlos. ZFS, por otro lado, detectará bloques corruptos (a través de sumas de verificación) y los reparará a partir de copias espejo bien conocidas. Ejecutar ZFS bajo FUSE, aunque no es ideal, funcionará suficientemente bien para muchas cargas de trabajo. Dicho esto, debe probar la carga de su aplicación antes de usarla en un entorno de producción.
bahamat
1
Otro +1 para ZFS. Casi todos los servidores aquí están ejecutando Linux y soy un gran admirador de él, pero ZFS me ha resultado tan útil en los últimos 3 años que en realidad me he esforzado por aprender y configurar FreeBSD en el Gran máquina de almacenamiento para poder utilizar ZFS sin problemas de licencia o rendimiento.
ssc
Lo estoy ejecutando bajo Solaris en mi antigua estación de trabajo Sun, y el rendimiento es sorprendente, considerando el hardware (Opteron de un solo núcleo a 2.2GHz con 3G de memoria y un par de unidades SATA de 250G).
TMN
8

Añado progresivamente nuevos discos de mayor tamaño.

Dado que está interesado en usar LVM y desea manejar múltiples unidades, la respuesta simple sería usar la función de espejo que forma parte de LVM. Simplemente agregue todos los volúmenes físicos a su LVM. Cuando esté creando un volumen lógico, pase la --mirrorsopción. Esto duplica sus datos.

Otra opción podría ser simplemente configurar varios pares RAID1. Luego agregue todos los volúmenes RAID1 como PV a su VG. Luego, cuando quiera expandir su almacenamiento, simplemente compre un par de discos.

Zoredache
fuente
7

Realmente debería usar un RAID 5, 6, 10, 50 o 60. Aquí hay algunos recursos para comenzar:

información general sobre RAID

Cómo y configuración

Vea mis deliciosos enlaces para obtener enlaces RAID adicionales: http://delicious.com/slmingol/raid

slm
fuente
Vea mis comentarios sobre la respuesta de SvenW para ver por qué realmente no quiero RAID. (De hecho, ya configuré múltiples RAID de software en una empresa que podía permitírselo ...) Aún así, ¡gracias!
alphatiger
Siempre he usado discos básicos para RAID, nunca he usado los clasificados para uso RAID y nunca he tenido problemas con eso siempre que elija un RAID que tenga suficiente redundancia (RAID 6 o RAID 60). Usando un RAID 6 necesita un número par. Puede aumentar los RAID con bastante facilidad reemplazando los miembros existentes con discos más grandes y luego creciendo en el espacio de los discos más nuevos.
slm
4

Si está realmente preocupado por la corrupción de datos, recomendaría un sistema de archivos con suma de verificación como zfs y btrfs, aunque tenga en cuenta que btrfs todavía se considera en desarrollo y no listo para producción.

No hay garantía de que los datos leídos (incluso leídos con éxito) de un disco sean correctos. Los bloques tienen sumas de comprobación, pero son sumas de comprobación simples que no siempre detectan errores. Los sistemas de archivos más nuevos como ZFS adjuntan sumas de verificación más capaces a los archivos y pueden (y según los informes lo hacen) detectar y reparar errores de datos que el disco duro o el controlador RAID no notan.

tylerl
fuente
1

Como dice @ c2h5oh , lo irrecuperable es crítico, significa que el disco ya ha intentado y no ha podido volver a leer el sector.

En mi experiencia, una vez que un disco comienza a producir errores de lectura irrecuperables (URE), algunos datos se pierden para siempre, y su única esperanza es hacer una copia de seguridad inmediata de todos los datos utilizando GNU ddrescue , que puede volver a intentar los sectores defectuosos y omitir los irrecuperables.

Suponiendo que tenga copias de seguridad, es posible que hayan fallado debido a las URE, y ciertamente tendrán algunos archivos corruptos, por lo que tendrá que juntar un conjunto completo de datos de varias copias de seguridad del mismo sistema de archivos.

Vale la pena leer las otras respuestas que recomiendan ZFS, ya que sus funciones continuas de depuración de datos y RAID ayudarán a mantener sus datos más seguros en el futuro, aunque aún no son un sustituto de las copias de seguridad, que también protegen contra errores de usuarios y administradores.

Solo usaría LVM si no necesita instantáneas: no se integra tan bien con RAID, no incluye restregado de datos / sumas de verificación de datos, y aún necesita copias de seguridad, por lo que algo como ZFS es probablemente una mejor opción. Consulte esta respuesta sobre problemas y riesgos de LVM para obtener más información.

RichVel
fuente