Quiero usar badblocks para verificar mis discos duros y agradecería que me aclaren su funcionamiento.
¿Alguien puede explicar las mejores opciones para usar con -b
y -c
? He incluido sus definiciones en la página de manual, pero no estoy seguro de si los tamaños más grandes serían beneficiosos para los discos modernos con 64 MB de RAM y 4k sectores.
-b block-size Specify the size of blocks in bytes. The default is 1024.
-c number of blocks the number of blocks which are tested at a time. The default is 64
En segundo lugar, me gustaría saber si la prueba del modo de escritura es más exhaustiva que el modo de lectura-escritura no destructivo.
Por último, ¿cuántas reasignaciones del sector SMART son aceptables / deberían reemplazarse inmediatamente las unidades con recuentos de reasignación distintos de cero?
linux
hard-drive
bad-blocks
Yoren
fuente
fuente
Respuestas:
Pregunta 1:
Con respecto a la
-b
opción: esto depende de su disco. Los discos grandes y modernos tienen bloques de 4KB, en cuyo caso debe configurar-b 4096
. Puede obtener el tamaño de bloque del sistema operativo , y generalmente también se puede obtener leyendo la información del disco de la etiqueta o buscando en Google el número de modelo del disco. Si-b
se establece en algo más grande que el tamaño de su bloque, la integridad de losbadblocks
resultados puede verse comprometida (es decir, puede obtener falsos negativos: no se encuentran bloques defectuosos cuando aún pueden existir). Si-b
se establece en algo más pequeño que el tamaño de bloque de su unidad, la velocidad de labadblocks
ejecución puede verse comprometida. No estoy seguro, pero puede haber otros problemas con la configuración-b
a algo más pequeño que el tamaño de su bloque, ya que no está verificando la integridad de un bloque completo, aún podría ser posible obtener falsos negativos si se configura demasiado pequeño.La
-c
opción corresponde a cuántos bloques deben verificarse a la vez. Lote de lectura / escritura, básicamente. Esta opción no afecta la integridad de sus resultados, pero sí afecta la velocidad a la que sebadblocks
ejecuta.badblocks
escribirá (opcionalmente), luego leerá, almacenará en búfer, verificará y repetirá para cada N bloques según lo especificado por-c
. Si-c
se establece demasiado bajo, esto hará que susbadblocks
ejecuciones tarden mucho más de lo normal, ya que la cola y el procesamiento de una solicitud de E / S adicional conlleva una sobrecarga, y el disco también puede imponer una sobrecarga adicional por solicitud. Si-c
está configurado demasiado alto,badblocks
podría quedarse sin memoria. Si esto sucede,badblocks
fallará bastante rápido después de que comience. Consideraciones adicionales aquí incluyenbadblocks
ejecuciones paralelas : si está ejecutandobadblocks
contra múltiples particiones en el mismo disco (mala idea), o contra múltiples discos sobre el mismo canal de E / S, probablemente querrá sintonizar-c
algo sensiblemente alto dada la memoria disponible parabadblocks
que las ejecuciones paralelas no luchen por el ancho de banda de E / S y puede paralelizar de una manera sensata.Pregunta 2:
Al contrario de lo que indican otras respuestas, la
-w
prueba de modo de escritura no es más o menos confiable que la prueba de lectura-escritura no destructiva, pero es dos veces más rápida, a costa de ser destructiva para todos sus datos. Explicaré por qué:En modo no destructivo,
badblocks
hace lo siguiente:-p
opción, aunque generalmente no es necesario) en el bloque.En el modo destructivo (
-w
),badblocks
solo realiza los pasos 2 y 3 anteriores. Esto significa que la cantidad de operaciones de lectura / escritura necesarias para verificar la integridad de los datos se reduce a la mitad. Si un bloque es malo, los datos serán erróneos en cualquier modo. Por supuesto, si le importan los datos almacenados en su unidad, debe usar el modo no destructivo, ya-w
que eliminará todos los datos y dejarábadblocks
los patrones escritos en el disco.Advertencia: si un bloque va mal, pero aún no se ha eliminado por completo, algunos pares de verificación de lectura / escritura pueden funcionar, y algunos pueden no funcionar. En este caso, el modo no destructivo puede darle una indicación más confiable de la "característica" de un bloque, ya que realiza dos conjuntos de verificación de lectura / escritura (tal vez, vea la viñeta en el paso 4). Incluso si el modo no destructivo es más confiable de esa manera, solo es más confiable por coincidencia . La forma correcta de verificar si hay bloques que no están completamente mal pero que no pueden soportar múltiples operaciones de lectura / escritura es ejecutar
badblocks
varias veces sobre los mismos datos, utilizando la-p
opción.Pregunta 3:
Si SMART está reasignando sectores, probablemente debería considerar reemplazar la unidad lo antes posible. Las unidades que pierden algunos sectores no siempre las pierden, pero la causa suele ser una unidad muy utilizada que se vuelve magnéticamente blanda o que los cabezales / motores fallan y producen lecturas / escrituras inexactas o fallidas. La decisión final depende de usted, por supuesto: en función del valor de los datos en el disco y la confiabilidad que necesita de los sistemas que ejecuta, puede decidir mantenerlo. Tengo algunas unidades con bloques defectuosos conocidos que han estado girando con advertencias SMART durante años en mi servidor de archivos, pero están respaldados en un horario tal que podría manejar una falla total sin mucho dolor.
fuente
-b
defecto1024
? Eso me parece un poco raro. ¿Por qué no512
?ext2
. badblocks es parte de e2fsprogs, y originalmente estaba destinado a llenar la lista de bloques defectuosos de un sistema de archivos ext2. Debe ejecutarlo con el mismo tamaño de bloque que el FS para obtener los números en el formato correcto para mkfs.ext2. TL; DR: razones históricas con las que no debe preocuparse.1) Si su disco moderno usa un tamaño de sector diferente a 512b, entonces necesita establecer ese tamaño con la
-b
opción (es decir-b 4096
). Sin esa opción, su verificación será mucho más lenta ya que cada sector real se probará varias veces (8 veces en el caso del sector 4k). También como se mencionó Olivier Dulac en el comentario a la pregunta:block is indeed 1 block, and not 1/2 or 1/4th or even 2 (or more) blocks.
La opción
-c
implica cuántos sectores se tratan a la vez. Podría tener alguna implicación en el rendimiento y el valor de ese rendimiento podría depender del modelo de disco específico.2)
write-mode test
- En mi opinión, solo verificará si tiene un error grave o incorrecto (también conocido como Degradación silenciosa de datos, descomposición de bits, descomposición de los medios de almacenamiento, sectores UNC)3) No confiaría en el informe SMART en un momento dado. Es más importante cómo cambian los valores a través del tiempo. También aquí hay una investigación de Google Failure Trends en una gran población de unidades de disco y aquí hay una discusión al respecto. Aquí está la cita de la investigación:
En cuanto a las menciones de otros para el reemplazo del disco, es posible que no tenga un problema de disco duro, sino una degradación silenciosa de los datos (descomposición de bits, descomposición de los medios de almacenamiento, sectores UNC). En ese caso, no tiene sentido reemplazar el disco, pero es útil realizar la lectura / escritura de los mismos datos de nuevo en el disco. Puedes ver aquí cómo se podría resolver.
Si tiene un error de disco duro, puede intentar volver a dividir la unidad en la forma en que el área defectuosa se encuentra fuera de las particiones. Para mí, ese enfoque fue útil y ese mal manejo se usó durante mucho tiempo sin ningún problema.
fuente
-b
predeterminado es 1024. Si su disco usa un tamaño de sector diferente a 1024, que es bastante común fuera de los sistemas de archivos ext2, entonces debe especificar eso.Dejaría -b y -c por defecto a menos que tenga una razón específica para cambiarlos. Probablemente podría establecer -b en 4096 si su disco tiene tamaños de bloque de 4k.
Te sugiero que primero ejecutes badblocks con una prueba rw no destructiva. Si encuentra algún sector defectuoso, el disco está roto y debe reemplazarse. Si NO encuentra bloques defectuosos en no destructivos, pero aún sospecha que tiene bloques defectuosos, ejecute la prueba destructiva rw.
Reemplazaría la unidad tan pronto como se reemplacen los sectores.
fuente
Este tipo de diferencia va entre el modo de lectura de bloques defectuosos (no destructivo) y el modo de escritura (destructivo):
Una unidad solo reasignará un sector defectuoso cuando falla una escritura. Los errores de lectura de los archivos solo se "corrigen" cuando se intenta volver a escribir el archivo. De otra manera. el bloque defectuoso sigue siendo parte del archivo suponiendo que pueda recuperar algo. Los errores de lectura para las tablas de particiones solo pueden "corregirse" ejecutando bloques defectuosos en modo de escritura y recreando la partición
Entonces, el modo de lectura le dirá dónde están los bloques malos, pero no puede hacer nada al respecto. El modo de escritura prueba el estado de cada sector y hará que el disco reasigne un bloque defectuoso pero a expensas de destruir los datos. Elige tu opción.
fuente
Para responder a su segunda pregunta sobre sectores reasignados, depende. Estoy hablando desde el contexto de un usuario doméstico que (ocasionalmente) monitorea este tipo de cosas.
Aquí hay dos situaciones que enfrenté. Tenía un RAID5 de 6 unidades de 200GB. Después de una falla de energía que resultó en luces parpadeantes, una unidad mostró 14 sectores reasignados y registró varios errores. Observé la unidad y no se registraron más errores y el recuento de sectores reasignados se mantuvo estable. Llegué a la conclusión de que la unidad sufrió debido a una potencia transitoria y no estaba fallando. Seguí usándolo durante años. El RAID5 original fue retirado, pero tengo dos de esas unidades en servicio con aproximadamente 10 años de horas de encendido. Tienen un puñado de sectores reasignados. Utilizo dos de ellos duplicados para almacenar volcados de copia de seguridad incrementales de mi copia de seguridad primaria. De esa manera, la copia de seguridad principal está viendo (principalmente) operaciones de lectura y las escrituras van a diferentes dispositivos. Si una de estas unidades antiguas falla, la otra debería continuar. Si ambos fallan, Los reemplazo con algo más y vuelvo a ejecutar el script de copia de seguridad. El impacto si una de estas unidades falla es casi cero, así que no me preocupo por los sectores reasignados.
Tenía un HDD de 2TB que era uno de un par de unidades duplicadas y que comenzó a crecer sectores reasignados. Al principio eran docenas, luego cientos, luego miles. Esto fue durante un período de años. La otra unidad en el par permaneció saludable y, de hecho, la derivación que falla lentamente no se eliminó de la matriz. Finalmente, reemplacé ambas unidades con unidades de 6 TB y el creciente recuento de sectores reasignados se convirtió en un problema. Todavía tengo el disco y todavía "funciona", incluso con unos 4500 sectores reasignados. He puesto unidades como esta en un sistema de prueba (como miembro RAID) para ver qué sucede cuando uno realmente muere. He tenido un par de oportunidades para trabajar con esto y, en todas las circunstancias, el reemplazo fue sin drama.
Tuve una falla de unidad en mi servidor de archivos de respaldo principal. No produjo ninguna advertencia avanzada, simplemente dejó de responder a los comandos SATA. Era miembro de un ZFS RAIDZ2 y lo reemplacé sin ningún drama. De hecho, en mi servidor de prueba he reemplazado las unidades defectuosas sin apagar y reiniciar el servidor.
Un punto más a tener en cuenta, tengo copias de seguridad en el sitio y fuera del sitio de todos los datos importantes. Si se pierde un sistema, hay dos copias de los datos en otro lugar.
fuente