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!
fuente
Respuestas:
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
fuente
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.
fuente
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.
fuente
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
--mirrors
opció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.
fuente
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
fuente
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.
fuente
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.
fuente