¿Cuánto tiempo puede durar fsck en un volumen de 30 TB?

17

A mediados de noviembre, un VPS que estoy alquilando de una empresa de hosting dejó de responder. Cuando contacté con el soporte, me explicaron que un corte de energía en el centro de datos provocó un reinicio forzado y fsck. Finalmente, pregunté por qué estaba tardando tanto y me dijeron que el tamaño del volumen es de 30 TB. La última vez que recibí una actualización fue en febrero, y no respondieron a mi consulta más reciente.

Entiendo que fsck puede ser muy lento para algunos sistemas de archivos, pero es posible que fsck demore 6 meses en un volumen de 30 TB, o debo suponer que esta empresa de hosting me está mintiendo para que continúe pagando mi factura cada ¿mes?

Brian Bi
fuente
39
Probablemente te estaban mintiendo desde el principio. Esperaría que tomara horas . Deberías haber dejado de pagar en diciembre.
Michael Hampton
15
Incluso si no están mintiendo, elegir una configuración de software HW + que pueda requerir una FSCK que por mucho tiempo demuestre que son incompetentes. Y sea cual sea el motivo, no le brindan el servicio que está pagando.
Peter Cordes
34
Suena como un verdadero clúster fsck!
JMK
2
@JMK Ahora desearía que hubiera una manera de marcar los comentarios por méritos adicionales, tal vez agregar a un salón de la fama.
tubería
2
Lo que dice @PeterCordes es el punto clave. Estás pagando por un servicio. Realmente lamentas saber que están teniendo problemas, pero estás llamando por el servicio que estás pagando y que no estás recibiendo.
Rob Moir

Respuestas:

31

fsckla velocidad depende principalmente de la cantidad de archivos y de cómo se distribuyen en el directorio respectivo. Dicho esto, 6 meses para un fsckes absolutamente absurdo: debería haberse completado en algunas horas como máximo, especialmente si se usa el xfsque tiene la xfs_repairutilidad rápida . Aquí puede encontrar algunos fsckrecorridos a escala, todos completados en menos de una hora (3600). Por lo tanto, no es posible que fscktodavía se esté ejecutando.

De todos modos, una pérdida de potencia inesperada no causará un golpe completo fsck, sino solo una repetición de diario muy rápida (algunos segundos) . Sin embargo, si algunos archivos clave se dañaron, el sistema operativo puede no arrancarse.

Pero probablemente solo te mintieron. Debe dejar de pagar de inmediato, solicitar una explicación y solicitar un reembolso total.

shodanshok
fuente
8
Si están usando ext2, entonces una falla de energía requerirá una fsckcarga completa , y no me sorprendería si llevara días en un volumen de 30TB muy usado. Por otro lado, si están usando ext2un volumen de 30 TB, eso en sí mismo es una razón para buscar servicios de alojamiento en otro lado.
Mark
14
ext2 usa un contador de bloque de 32 bits, con un tamaño de bloque máximo de 4096 bytes (es decir, una página) en x86 y x86_64. Esto significa que ext2 (y ext3) están limitados a volúmenes de 8TB, por lo que no, el OP no puede usar ext2 / 3. De todos modos, usar cualquier sistema de archivos no registrado en un volumen de 30 TB sería absolutamente una locura .
shodanshok
Creo que ext4 fsck podría ser un poco mejor si uno tiene un FS de 30 TB que contiene una gran cantidad de archivos pequeños. Locura para crear eso, así que sigue siendo una razón para buscar en otro lado.
nigel222
7

Conjetura: Su sistema utiliza un RAID sin BBU / FBWC (o incluso RAID de software) con todos los cachés de escritura posibles (incluidos estos en los propios discos duros) configurados en sus configuraciones más agresivas, para obtener el máximo rendimiento a un costo mínimo. Un corte de energía en una configuración de este tipo puede dejar un sistema de archivos de registro en una condición en la que no se puede confiar en el registro y no se puede usar para la recuperación. El problema es que dicho sistema reordena y pospone agresivamente las escrituras, lo que significa que se puede escribir una entrada de diario con el efecto de perder la acción de datos ... o la entrada de diario se pierde en una acción de datos que fue consecuente.

Recuperar dicho sistema de una interrupción en el peor de los casos puede significar que tiene que hacer un fsck / reparación "lento" que realmente examina todas las estructuras del sistema de archivos tal como están, lo que de hecho podría tomar uno o dos días para 30 TB ... y No es improbable que deba ejecutar varios ciclos de reparación. Agregue a eso que el personal podría no estar siempre disponible para monitorear esto, fácilmente podría reducirse a un fsck por semana. Probablemente se rindieron y olvidaron.

rackandboneman
fuente
1

Para la mayoría de los sistemas de archivos, será mucho más rápido, incluso cuando haya errores, ya que normalmente solo se verifican los metadatos.

En el peor de los casos, puede leer todo el disco ( por ejemplo, algo así como fsck.ext4 -cc /dev/sdauna prueba de escritura no destructiva en cada bloque), que podría tomar unos días para 30 TB. Si conoce la velocidad de las unidades, puede calcular el tamaño / velocidad . Para un disco duro de consumo con aproximadamente 100 MB / s copiando, unos pocos TB pueden llevar más horas de lo que la mayoría de la gente esperaría.

Si fuera su servidor, podría tener el problema de que se inicia y luego se cuelga cuando fsckle pregunta si desea corregir un error. Pero el administrador del centro de datos no dejará una fscksuspensión durante 6 meses mientras todos los VPS estén desconectados.

Entonces, o te están mintiendo, o hay un gran malentendido. O estaban ejecutando fsck hace algún tiempo y no lo actualizaron sobre el nuevo problema después de que terminó.

allo
fuente
44
fsckatraviesa todas las estructuras del sistema de archivos, lo que significa principalmente ejecutar E / S aleatorias. Por lo tanto, el cálculo anterior, basado en la tasa de transferencia secuencial , no es muy útil.
shodanshok
@shodanshok, de hecho, la estructura del archivo es irrelevante en una comprobación general de la unidad, como acabo de explicar en mi respuesta.
Overmind
@shodanshok mi peor hipótesis se basó en un fsck muy extenso. Por ejemplo, el típico xfs fsck no hace mucho. ext2 tiene una comprobación exhaustiva de larga ejecución y el antiguo scandisk de MS-DOS tenía una prueba de lectura y escritura en cada bloque del disco duro cuando lo ejecutaba en modo completo. Entonces tiene un límite superior al tamaño del disco.
allo
1
@Overmind Y su respuesta es irrelevante para la pregunta que trata sobre fsck y no una verificación general de la unidad.
BlackJack
Tenga en cuenta que tomar el rendimiento típico del disco como indicador puede ser engañoso. He hecho los cálculos cuando volví a sincronizar una matriz, lo que (en mi opinión) debería haber tomado menos de un día, ¡y me llevó más de dos semanas! Las búsquedas son el factor dominante para el tiempo total e incluso cuando crees que estás haciendo una operación estrictamente secuencial, a veces no lo es. Ahora fsck es estrictamente no secuencial, así que ... de ninguna manera se puede juzgar desde el rendimiento habitual del disco hasta la duración de la operación (aún así, los meses son ridículos ... es una mentira obvia).
Damon