Considérez un serveur sans tête comme celui-ci: Une boîte x86 typique à un emplacement distant, que vous pouvez initialiser à distance avec une image Ubuntu stock – disons -. Une fois initialisé, vous ne pouvez vous connecter que via ssh – ou le réinitialiser à distance, cest-à-dire que vous ne pouvez pas accéder au BIOS ou à linvite du gestionnaire de démarrage (disons Grub 1).
Peut-être quune sorte de KVM est disponible, mais lutilisation du KVM coûte très cher et il faut le réserver toutes les heures.
Dans ce scénario, on peut devenir paranoïaque à propos des problèmes de démarrage. Par exemple:
- Que faire si une mise à jour du noyau échoue?
- Quen est-il dune invite fsck au début du processus de démarrage? Probablement, ssh nest pas encore disponible …
Y a-t-il dautres pièges à surveiller?
Pour les mises à jour du noyau, je configure grub (lancien) de telle sorte que le préambule de menu.lst
contient
default saved fallback 2 # counts from 0
et la première entrée se termine par:
savedefault fallback
La première entrée grub est le noyau mis à jour, et la troisième est un fonctionnement connu. Voir aussi la section du manuel grub sur le démarrage de secours .
Jai changé le script de démarrage /etc/rc.local
(sur un système de type Debian) à leffet que le paramètre dentrée par défaut est réinitialisé en cas de démarrage réussi:
grub-set-default 0
Cette configuration grub fonctionne, mais par exemple sur Ubuntu ce nest pas la valeur par défaut et il faut ajuster manuellement le menu.lst
après chaque mise à jour du noyau.
Je fournis
panic=60
comme paramètre de noyau tel que, par exemple en cas de mauvais paramètre root=
ou de noyau cassé, le système redémarre automatiquement en cas derreur.
À propos du problème fsck, je ne suis pas sûr de ce quil y a de mieux la manière est. Sur les systèmes de type Debian, vous pouvez définir
FSCKFIX=yes
dans /etc/default/rcS
, qui indique à fsck de se réparer automatiquement par défaut .
Mais si la réparation automatique échoue, peut-être que je reçois toujours une invite à laquelle je ne peux pas accéder à distance?
Sinon, je pourrais simplement désactiver la vérification fsck via un zéro dans le sixième colonne de /etc/fstab
– en cas derreur fs, il suffit de réinitialiser le système et de restaurer les sauvegardes – évitant ainsi tous les problèmes de fsck?
Commentaires
- Très bonne question. Un serveur bare metal sans console distante ou coûteux est un gros problème.
Réponse
Sérieusement, si votre fournisseur ne propose pas d’assistance manuelle gratuite (ou du moins bon marché) pour les cas extrêmes, il est temps de changer. Sinon, je pense que vous êtes à peu près daccord avec votre configuration.
Lorsque votre système est tellement cassé que fsck ne peut pas le réparer, il ny a pas grand-chose dautre à faire, à part une réinstallation complète. En fait, je nai pas vu cela se produire à moins quil y ait une panne matérielle fatale.
Une chose à noter. Pour une machine comme celle-ci, choisissez une distribution stable (Debian, RHEL, SLES), et mettez définitivement à niveau uniquement après une période suffisamment longue (nouvelle version stabilisée pendant au moins 6 mois).
Réponse
Vous devriez rechercher un hébergement fournisseur qui fournira un accès série sur ssh et configurera votre installation Linux pour utiliser le port série (pertinent) comme console (la façon dont vous procédez dépend de si le système utilise une initialisation de type upstart ou sysV). Notez quil existe un BIOS disponible qui communiquera avec un port série plutôt quavec le périphérique décran intégré. Mais généralement ils ne sont fournis quavec du matériel coûteux.
Vous devez également indiquer à grub dutiliser le port série si vous souhaitez le contrôler via un DTE .
Réponse
Quelque chose que vous pourriez envisager est de créer un initrd personnalisé qui inclura dropbear (fonctionnant sur un autre port, bien sûr), suffisamment de logique pour démarrer votre réseau et peut-être un moyen de charger des outils de récupération si nécessaire. Sur cette base, vous pouvez créer une configuration de noyau de récupération qui se chargera avec la capacité du réseau et vous permettra de ssh, vous permettant de revenir sur le système et de tenter une récupération.
Commentaires
- Oui, ça ressemble à un projet. Je pourrais même imaginer créer un petit système Linux qui démarre toujours en premier et agit comme un gestionnaire de démarrage (tout en fournissant
ssh
-access etscreen
) – il pourrait alors démarrer le vrai noyau via des techniques comme en.wikipedia.org/wiki/Kexec . Ou on peut regarder dans les serveurs qui viennent avec coreboot.org au lieu de certains BIOS merdiques des années 80. Mais bien sûr, tout cela nest rien que vous puissiez configurer et maintenir de manière fiable en quelques heures – à ce stade avec une distribution stable. - On dirait que vous ‘ serez en mesure de lésiner une partie des efforts en regardant cette page