J'ai toujours été curieux de savoir ce qui se passerait si un disque dur tombait en panne pendant que le noyau Linux était en cours d'exécution. Étant donné que l'image du noyau elle-même est complètement chargée dans la RAM, je n'imagine pas qu'il y aurait des échecs du noyau. Évidemment, tout logiciel tentant d'accéder au disque échouerait.
Y a-t-il une chance que le système continue à fonctionner indéfiniment ? Sinon, qu'est-ce qui le ferait paniquer (ou au moins le rendrait inutilisable) ?
Veuillez envisager chacun des scénarios suivants :
- Le noyau peut ou non avoir le fichier d'échange activé.
- Aucune tentative de chargement des modules du noyau n'est effectuée après l'échec.
- Cela fait-il une différence si certaines parties du système de fichiers se trouvent sur des disques différents ?
Réponse acceptée :
Les pannes matérielles risquent toujours de faire planter le noyau, car ces chemins de code ont généralement subi beaucoup moins de tests, mais normalement, un disque dur défaillant ne devrait pas planter le noyau. Ce qui se passe exactement dépend de la nature de la panne. Peut-être que seuls certains secteurs sont maintenant illisibles, ce qui rend illisibles des parties de la partition /home, le système sera toujours exécutable pour qu'un administrateur système analyse le problème. Si le système de fichiers racine devient inutilisable, le système est à peu près mort, quel que soit le crash du noyau, car même un simple shell ne sera pas disponible. Si une partition d'échange devient indisponible, les programmes qui utilisent l'échange segmenteront l'erreur au moment de lire les données échangées. Si le disque dur qui s'est écrasé est simplement un espace de stockage supplémentaire, cela peut avoir peu d'effet en plus de certains systèmes de fichiers qui deviennent illisibles.
Cela peut également dépendre du type d'erreurs générées par le disque dur. J'ai vu un lecteur disparaître efficacement et à part la disparition des systèmes de fichiers, tout s'est bien passé. J'ai également vu un disque dur bloquer continuellement le système et lancer des erreurs après un long délai d'attente, entraînant une dégradation des performances de l'ensemble du système. Si vous utilisez une couche comme MD exécutant RAID1/4/5, une erreur grave amènera normalement le noyau à marquer le disque comme défaillant, et il l'ignorera en s'appuyant sur les disques restants pour maintenir le système en marche.