je raconte ma vie comme d'hab'

Au moment où j'installais ce blog (plutôt au moment où j'ai essayé de l'installer) je me suis rendu compte d'un problème avec l'exécution du Docker, une erreur lié à Device Mapper. Sachant un peu comment fonctionne Docker et habitué à bricoler un peu sous Linux (quand on veut jouer avec des trucs à peine fini et qui sont limite pas intégré du tout, les erreurs sont vites arrivées) j'ai directement regardé du côté de mon kernel, et je me suis choqué moi même : un kernel pas mis à jour. Quand je dis pas à jour c'est vraiment pas à jour, avec une version 3.14.32 en marche je tournais avec une vraie antiquité.

Le truc qui bizarre c'est que je mets à jours régulièrement toutes mes machines, serveur Kimsufi inclus. Alors pourquoi ? Tout simplement parce qu'OVH n'installe pas les kernel des distributions (ni le grub des distributions d'ailleurs). Je m'en suis rendu compte en voulant forcer l'upgrade via un "pacman -Syy linux" de voir qu'il me proposait une installation et pas une réinstallation. Le kernel est installé complètement indépendamment du reste du système, et c'est le même quelque soit la distribution (de même pareil pour OVH, Kimsufi et So You Start, les 3 offres OVH).

Un kernel, sauce grsec

Là j'avais 2 choix (après avoir confirmé que l'erreur venait bien du kernel évidemment https://github.com/docker/docker/issues/20653) :

  • passer à un kernel officiel Archlinux
  • mettre à jour le kernel OVH avec un autre kernel OVH

La première solution peut sembler la meilleure : on se retrouver avec une distribution plus standard. Mais par contre on n'a plus les configuration kernel (et donc aussi les optimisations au passage comme un kernel plus léger). Donc j'ai finalement opté pour la seconde solution qui est en plus la plus simple au final. Tant mieux !

Le kernel OVH est plus ou moins équivalent au linux-grsec de Archlinux (le kernel que j'envisageais de mettre), donc pas trop de patch non plus mais ce qu'il faut pour un kernel un minimum sécurisé.

Restait à choisir la version. La dernière ? La dernière LTS ? Étant archer depuis maintenant quelques années, j'ai pas vraiment peur d'avoir le tout tout dernier kernel, au contraire, juste pour mon serveur je préfère rester sur une LTS, le support est assez long, ce qui évite d'avoir à risquer des bug d'upgrade trop souvent (j'ai pas d'accès physique à la machine, donc ça se complique quand ça boot plus). Donc un petit tour sur https://www.kernel.org/category/releases.html pour voir que la dernière LTS c'est la 4.4, et un petit tour sur le dépôt de kernel OVH pour voir que la 4.4.8 est dispo (ici ftp://ftp.ovh.net/made-in-ovh/bzImage/).

On upgrade !

Ce que j'explique ensuite est basé sur une page de documentation OVH : http://guide.ovh.com/KernelInstall.

Un petit ssh vers le serveur (je vous laisse gérer, si vous avez un dédié avec Archlinux, ssh c'est finger in the nose), puis en root :

# cd /boot
# wget ftp://ftp.ovh.net/made-in-ovh/bzImage/4.4.8/bzImage-4.4.8-xxxx-grs-ipv6-64
# wget ftp://ftp.ovh.net/made-in-ovh/bzImage/4.4.8/System.map-4.4.8-xxxx-grs-ipv6-64
# grub-mkconfig -o /boot/grub/grub.cfg

Je précise que si vous n'êtes pas sous Archlinux, pour la plupart des distributions il y a un alias "upgrade-grub" qui fait exactement la même chose que la dernière commande.

Voilà tout est configuré, suffit de rebooter. Je vous conseil tout de même de faire une copie de /boot/grub/grub.cfg avant de commencer la manipulation et de vérifier que le fichier final est bien le même que celui que vous aviez (à quelques détails lié au changement de version évidemment).

Après un reboot, qui va vous sembler interminable avec la peur d'avoir tout cassé, un petit "uname -a" devrait vous montrer une nouvelle version de kernel, la 4.4.8 pour moi.

Et voilà l'upgrade d'un kernel sur serveur OVH "à la main".

Crédit image : http://masterkira009.deviantart.com/art/Linux-Penguins-Wallpaper-246039800