Comment puis-je mettre à niveau le noyau de mon serveur sans redémarrer?

29

C'est une question chargée car je suis déjà au courant et je suis très intéressé par ksplice . Le problème est que depuis qu'ils ont été achetés par Oracle, ils ont été contraints de retirer de nombreuses distributions de serveurs des offres. La réponse n'est pas aussi simple qu'autrefois.

J'ai remarqué une question sur Unix.SE qui dit:

Vous pouvez créer vos propres correctifs ksplice pour les charger dynamiquement dans votre propre noyau

Génial! Mais comment?!

J'ai installé le ksplicepackage gratuit dans le dépôt sur mon bureau (non ksplice-uptrackqui n'est pas gratuit) et je souhaite maintenant générer et appliquer des mises à jour. Quel est le processus? Existe-t-il des scripts pour automatiser le processus?

De plus, si toutes les machines nécessaires aux mises à niveau sans redémarrage sont présentes dans le noyau (et le ksplicepackage), pourquoi diable n'en tirons- nous pas parti par défaut?


Tout récemment, kGraft a été annoncé . Cela semble être à peu près le même résultat, donc si vous avez une réponse qui l'implique, je serais tout aussi satisfait de cela. Il est actuellement à quelques mois de sa sortie.


Remarque 1: je suis heureux pour une solution à côté de ksplice mais elle doit fournir la même chose: des mises à jour continues du noyau qui peuvent être appliquées sans redémarrer le serveur.

Remarque 2: je le répète; le "service" principal de ksplice ne prend pas en charge Ubuntu Server. C'était le cas, mais ce n'est plus le cas. Quand je parle de vouloir utiliser ksplice, je parle des outils open source du ksplicepaquet. Toute réponse qui parle ksplice-uptrackn'est probablement pas ce que je recherche car c'est la partie qui s'intègre directement avec le "service" susmentionné.

Oli
la source

Réponses:

6

Je ne sais pas grand-chose sur ksplice mais j'ai pensé le mentionner - en avez-vous entendu parler kexec? C'est peut-être ce dont vous avez besoin.

Concernant la question pourquoi n'avons-nous pas adopté cela comme mécanisme par défaut? Eh bien, écraser la mémoire du noyau actuel alors qu'il est encore en cours d'exécution peut entraîner des problèmes potentiels. Il s'attend également à ce que les périphériques matériels soient dans un état bien défini, ce qui n'est pas toujours possible.

Vous pouvez consulter l'article consacré aux travaux des développeurs IBM à ce sujet pour décider s'il convient à vos besoins.

Marcin Kaminski
la source
5
+1 pour kexec, mais en substance, c'est un redémarrage à chaud - IE, le noyau est à nouveau chargé à partir de zéro, donc les scripts d'initialisation, etc. sont toujours appelés. Ce n'est pas techniquement un redémarrage, mais l'exécution des services s'arrêtera.
jackweirdy
Ouais, j'en suis conscient mais je n'ai rien lu sur ksplice pour savoir en quoi c'est différent.
Marcin Kaminski
1
Selon en.wikipedia.org/wiki/Ksplice , kspliceapplique un patch diff binaire au noyau en cours d'exécution alors qu'il est toujours en mémoire
jackweirdy
2
Je vais avoir besoin de lire un peu plus à ce sujet car c'est intéressant. Alors, combien de temps que vous essayez d'économiser après la réinitialisation? : D
Marcin Kaminski
3

ksplice permettra l'échange de noyau sans avoir besoin de redémarrer. Uptrack fonctionne dans ksplice et possède un fichier de configuration modifiable dans /etc/uptrack/uptrack.conf

bandeau
la source
2

Il existe quelques alternatives entièrement open source à Ksplice qui ont toutes deux été soumises pour inclusion dans le noyau Linux principal. Il est trop tôt pour dire ce qui finira dans le noyau, mais vous pouvez toujours les essayer si vous êtes assez courageux:

Vous pouvez en savoir plus sur les deux ici: SUSE Posts kGraft, Red Hat Posts Kpatch Patches

bmaupin
la source
1

Le wiki Arch Linux avait des instructions: https://wiki.archlinux.org/index.php/ksplice

La seule partie qui semble être spécifique à la distribution est de savoir comment installer ksplice lui-même. Comme vous l'avez déjà compris, il semble que cela devrait vous aider à progresser.

bobpaul
la source
1
Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure ici les parties essentielles de la réponse et de fournir le lien de référence.
Eric Carvalho
0

Depuis le 16 juillet 2015, "Oracle Ksplice est offert gratuitement sur les éditions Fedora et Ubuntu Desktop.", Officiellement.

Installez simplement le fichier .deb téléchargé que vous pouvez obtenir ici .

Si tu essayes sudo dpkg -i ksplice-uptrack.deb vous devrez peut-être corriger les dépendances avec sudo apt-get install -f.

Pablo A
la source