Siempre he tenido curiosidad por saber qué sucedería si un disco duro fallara mientras se ejecutaba el kernel de Linux. Dado que la imagen del kernel en sí se carga completamente en la RAM, no imagino que haya fallas en el kernel. Obviamente, cualquier software que intentara acceder al disco fallaría.
¿Hay alguna posibilidad de que el sistema continúe funcionando indefinidamente? Si no, ¿qué causaría que entrara en pánico (o al menos dejara de funcionar)?
Considere cada uno de los siguientes escenarios:
- El núcleo puede o no tener habilitado el archivo de intercambio.
- No se realizan intentos de cargar los módulos del kernel después de la falla.
- ¿Hay alguna diferencia si ciertas partes del sistema de archivos están en discos diferentes?
Respuesta aceptada:
Las fallas de hardware siempre corren el riesgo de bloquear el Kernel, ya que esas rutas de código generalmente han tenido muchas menos pruebas, pero normalmente, un disco duro defectuoso no debería bloquear el Kernel. Lo que sucede exactamente depende de la naturaleza de la falla. Quizás solo ciertos sectores ahora son ilegibles, lo que hace que partes de la partición /home sean ilegibles, el sistema aún se podrá ejecutar para que un administrador de sistemas analice el problema. Si el sistema de archivos raíz se vuelve inutilizable, el sistema está prácticamente muerto, independientemente de un bloqueo del Kernel, ya que incluso un shell simple no estará disponible. Si una partición de intercambio deja de estar disponible, los programas que usan el intercambio segmentarán la falla cuando llegue el momento de leer los datos intercambiados. Si el disco duro que falló es simplemente almacenamiento adicional, puede tener poco efecto además de que algunos sistemas de archivos se vuelvan ilegibles.
También puede depender de qué tipo de errores arroja el disco duro. He visto desaparecer una unidad de manera efectiva y, además de desaparecer los sistemas de archivos, todo funcionó bien. También he visto un disco duro que bloquea continuamente el sistema y genera errores después de un tiempo de espera prolongado, lo que hace que el rendimiento del sistema se degrade. Si usa una capa como MD que ejecuta RAID1/4/5, un error grave normalmente hará que el Kernel marque el disco como fallido y lo ignorará confiando en las unidades restantes para mantener el sistema en funcionamiento.