¿Por qué un disco duro que se sabe que tiene bloques defectuosos (verificado en HDTune y HDDScan) congela todo mi sistema?
No es la unidad del sistema operativo; está conectado a otro puerto SATA, y estoy tratando de copiar archivos de él a otra unidad en buen estado.
He experimentado este problema con casi todos los discos duros dañados y cada PC con Windows.
Esperaría ver congelación solo para el programa que estoy usando para copiar los archivos (Explorador de Windows, etc.), pero en su lugar, mi PC entera se vuelve irregular, y no puedo navegar por la web o mirar películas mientras copio archivos de la unidad dañada.
La larga historia
Vivo en una zona rural donde hay problemas con la electricidad (apagones, etc.). Yo mismo estoy usando un UPS y mis propios discos duros están perfectamente bien. Pero mis vecinos a menudo piden ayuda con sus problemas de PC, y a menudo encuentro que sus discos duros están dañados, probablemente debido a problemas de electricidad. Por supuesto, después de reemplazar la unidad dañada, sugiero a mis vecinos que compren un UPS.
Siempre me he preguntado por qué mi PC se congela por completo al recuperar datos de unidades dañadas. ¿Es un problema de hardware? ¿Es causado por la forma en que el sistema operativo lee los datos? ¿Es algo específico de Windows y no lo experimentaré en * nix?
De todos modos, de ahora en adelante usaré algún software dedicado (como la Copiadora imparable de Roadkil) en lugar del Explorador de Windows, aunque no estoy seguro de si esto funcionará de manera diferente, sin congelar toda la PC.
No es una solicitud de ayuda, es más para fines educativos, así que sé por qué las cosas funcionan de esa manera.
fuente
Respuestas:
Esta es una de esas áreas donde SATA es subóptima. El problema está en el nivel de protocolo de interconexión del dispositivo de almacenamiento y, por lo tanto, no está relacionado con el software que está ejecutando. Usar otra copiadora de archivos u otro sistema operativo no mejorará mágicamente las cosas, excepto que podría intentar establecer diferentes valores de tiempo de espera para reducir el impacto del problema (que puede o no ser posible dependiendo del hardware y el firmware; ver más abajo )
Hay algunos puntos importantes aquí:
El punto n. ° 1 es uno de los principales puntos de venta de SAS en servidores; SAS tiene un manejo de errores significativamente mejor que SATA. El punto n. ° 2 es una limitación del firmware de la unidad, y el n. ° 3 se convierte en un problema realmente solo por el n. ° 2.
Entonces, lo que sucede es que el sistema operativo emite un comando de "sectores de lectura" en el disco, y los sectores particulares de alguna manera están dañados. Por lo tanto, el disco pasa al modo de reintento para intentar quitar los datos de los platos, intentando leer una y otra vez hasta que obtenga datos lo suficientemente buenos como para que la corrección de errores ( FEC ) del disco pueda corregir los errores restantes. Si no tiene suerte, es posible que esto nunca suceda, pero la unidad seguirá intentándolo durante un período de tiempo bastante largo antes de decidir que esta lectura no tendrá éxito.
Debido a que el sistema operativo está esperando la lectura, esto al menos ralentizará el proceso de copia a un rastreo, y dependiendo de la arquitectura exacta del sistema operativo puede hacer que el sistema operativo se vuelva irregular o incluso se congele por el tiempo. El disco, en este punto, está ocupado con la lectura original y no responderá a más comandos de lectura hasta que finalice el que se está ejecutando actualmente (con éxito o sin éxito), y otro software generalmente no funcionará mejor que el sistema operativo. se está ejecutando.
Por lo tanto, cualquier cosa que active una lectura en otro lugar ( idealmente , solo en la unidad dañada) tendrá que esperar en línea hasta que la unidad dañada lea con éxito el sector en cuestión o determine que no se puede leer. Debido al manejo menos que óptimo de SATA de las unidades que no responden, esto puede significar que no solo la unidad desde la que está copiando tendrá un retraso de E / S. Esto puede causar que otro software se vuelva lento o no responda, ya que ese software espera a que finalice una solicitud de E / S diferente, incluso si el sistema operativo puede hacer frente.
También es importante tener en cuenta aquí que la E / S de disco puede ocurrir aunque no esté accediendo explícitamente a ningún archivo en el disco. Las dos causas principales para esto serían el código ejecutable de carga a pedido y el intercambio. Dado que el intercambio a veces se usa incluso cuando el sistema no está bajo presión de memoria, y el código ejecutable de carga bajo demanda es común en los sistemas modernos y con formatos de archivo ejecutables modernos, la actividad de lectura de disco no intencionada durante el uso normal es una posibilidad muy real.
Como se señaló en un comentario a la pregunta de Matteo Italia , una estrategia mitigante es utilizar una interconexión de almacenamiento diferente, que es una forma complicada de decir "poner el disco en un gabinete USB". Al abstraer a través del protocolo de almacenamiento masivo USB , esto aísla la parte problemática SATA del resto de su sistema, lo que significa que, en teoría , solo las E / S en ese disco específico deberían verse afectadas por problemas de E / S en ese disco.
Como un aparte, esta es la razón por la cual SATA (particularmente, SATA sin ERC a nivel de unidad) a menudo se desaconseja para RAID (especialmente niveles RAID con redundancia, que entre los estándares es todo excepto RAID 0 ); los largos períodos de tiempo de espera y el manejo deficiente de los errores pueden hacer que un dispositivo completo sea expulsado de la matriz por un solo sector defectuoso, que el controlador RAID podría manejar muy bien si existe redundancia y el controlador de almacenamiento simplemente sabe que este es el problema. SAS fue diseñado para grandes matrices de almacenamiento y, por lo tanto, con la expectativa de que ocasionalmente habrá problemas en varias unidades, lo que llevó a que se diseñara para manejar el caso de una sola unidad problemática o solicitud de E / S con graciaincluso si el disco no lo hace. Los discos problemáticos no son muy comunes en los sistemas de consumo simplemente porque estos tienden a no tener muchos discos instalados, y los que están instalados prácticamente nunca tienen redundancia; Dado que SATA tenía como objetivo reemplazar PATA / IDE, no SCSI (este último es el nicho al que apuntaba SAS), es probable que sus características y demandas (o garantías) de manejo de errores se consideren adecuadas para su caso de uso previsto.
fuente
Como se indicó anteriormente, el problema con la congelación del sistema debido a un disco duro defectuoso se debe principalmente a los largos intentos del disco por recuperar datos ilegibles de sectores defectuosos. Uno de los puntos de venta de las unidades empresariales es el tiempo de espera de lectura muy corto para sectores fallidos. El uso de una unidad empresarial puede mitigar sus problemas hasta cierto punto, pero no los resolverá.
La mejor respuesta, en el futuro, es mantener copias de seguridad adecuadas para que no se requiera recuperación. Cambiar el software de recuperación no hará una diferencia ya que este es un problema de tiempo de espera de firmware.
fuente
No tienen que hacerlo (en general). Realmente depende del sistema de archivos en particular cómo se trata la falla de un disco.
Considere ZFS, que está diseñado desde cero para lidiar con bastante tolerancia a fallas. Aquí hay un video de demostración (y uno con más explicaciones ) donde colocan unidades en funcionamiento en un yunque, golpean con un martillo y perforan otra unidad. Todo mientras ZFS sigue funcionando.
fuente
Creo que el problema con el que se encuentra es que una parte de bajo nivel del sistema operativo intenta en numerosas ocasiones leer bloques defectuosos antes de darse por vencido. Esta rutina se implementa en un nivel bajo en caso de que sea necesaria durante el arranque u otra operación independiente y, por lo tanto, es difícil hacer que vuelva a entrar. El sistema operativo buscará continuamente durante el funcionamiento normal y es difícil dar prioridad a las solicitudes en competencia porque el sistema de bajo nivel no sabrá la prioridad del proceso que posee una solicitud de paginación.
fuente