Table des matières

GRUB

Cet article vous expliquera comment utiliser le noyau grub-x86_64 (xen) pour démarrer vos serveurs. Il contient des instructions pour changer le noyau hébergé d'un serveur Xen existant et utiliser le noyau officiel de système, ainsi que des instructions pour migrer un serveur de la plateforme HVM à la plateforme Xen avec GRUB.

Actuellement, grub-x86_64 (xen) est le moyen de démarrage par défaut pour tous les nouveaux serveurs qui sont créés avec les images système officiellement supportées sur Gandi Cloud. Les noyaux fournis par ces distributions sont utilisés pour faire fonctionner les serveurs, plutôt que des noyaux hébergés par Gandi. Auparavant, les nouveaux serveurs étaient créés par défaut sur la plateforme HVM avec le noyau grub, qui est maintenant déprécié.

1 - Migrer un serveur Xen existant vers GRUB

Suivez ces instructions pour facilement migrer un serveur Xen existant vers le moyen de démarrage grub-x86_64 (xen) et utiliser le noyau officiel de votre système, plutôt qu'un noyau hébergé par Gandi.

Vous devrez installer ou mettre à jour le package gandi-hosting-vm2, qui adaptera la configuration de votre serveur en fonction de la distribution utilisée, installer le noyau et les modules de votre distribution, puis finalement modifier le moyen de démarrage vers grub-x86_64 (xen), avant d'arrêter puis démarrer votre serveur.

Nous vous recommandons de faire un create a snapshot de votre disque système avant d'effectuer cette migration.

Vous devez exécuter les commandes données en exemple en tant que root sur votre serveur (ou utiliser sudo). Nous vous recommandons de suivre les étapes dans le bon ordre.

1.1 - Migrer un serveur Debian 7 Xen ou Ubuntu 14.04 LTS Xen

Tout d'abord, connectez-vous à votre serveur par SSH. Dans nos exemples, nous appelons le serveur xenpv-server :

  local $> gandi vm ssh xenpv-server

Ensuite, mettez à jour le package gandi-hosting-vm2, installez le package grub2 et le noyau de votre système :

  xenpv-server #> apt-get update
  xenpv-server #> apt-get install --only-upgrade gandi-hosting-vm2
  xenpv-server #> apt-get install grub2-common
  xenpv-server #> apt-get install linux-image-amd64

Une fois que tous les packages sont installés, éditez la configuration de GRUB dans le fichier /etc/default/grub en utilisant la valeur suivante pour la clé GRUB_CMDLINE_LINUX:

  GRUB_CMDLINE_LINUX='console=hvc0 root=/dev/xvda1 nomce'

Ensuite, exécutez la commande suivante pour que GRUB prenne en compte la nouvelle configuration.

  xenpv-server #> update-grub2

Vous avez maintenant installé les packages et effectué les configurations nécessaires sur votre serveur. Maintenant référez-vous à la section 3 de ce document pour compléter la migration.

1.2 - Migrer un serveur CentOS 7 Xen

Tout d'abord, connectez-vous à votre serveur par SSH. Dans nos exemples, nous appelons le serveur xenpv-server :

  local $> gandi vm ssh xenpv-server

Ensuite, mettez à jour le package gandi-hosting-vm2, installez le noyau de votre système et les packages relatifs à grub2 :

  xenpv-server #> yum install gandi-hosting-vm2
  xenpv-server #> yum install kernel
  xenpv-server #> yum install grub2-efi grub2-tools

Une fois que tous les packages sont installés, éditez la configuration de GRUB dans le fichier /etc/default/grub en utilisant la valeur suivante pour la clé GRUB_CMDLINE_LINUX:

  GRUB_CMDLINE_LINUX="console=hvc0 root=/dev/xvda1 nomce"

Si le fichier /etc/default/grub n'existe pas, créez-le et insérez le contenu suivant :

  GRUB_DEFAULT=0
  GRUB_HIDDEN_TIMEOUT=0
  GRUB_HIDDEN_TIMEOUT_QUIET=true
  GRUB_TIMEOUT=0
  GRUB_DISTRIBUTOR=CentOS
  GRUB_CMDLINE_LINUX_DEFAULT="console=hvc0 nomce loglevel=5 net.ifnames=0 selinux=1 enforcing=0"
  GRUB_CMDLINE_LINUX=""
  GRUB_GFXPAYLOAD_LINUX=text
  GRUB_TERMINAL=console

Sauvegardez le fichier et executez la commande suivante pour finir la configuration :

  xenpv-server #> grub2-mkconfig -o /boot/grub/grub.cfg

Vous avez maintenant installé les packages et effectué les configurations nécessaires sur votre serveur. Maintenant référez-vous à la section 3 de ce document pour compléter la migration.

1.3 - Migrez des distributions plus vieilles vers GRUB

Les distributions plus anciennes que celles listées dans les sections précédentes peuvent ne pas supporter grub2 officiellement. En fonction du système que vous utilisez, il est possible que vous deviez installer et configurez vous-mêmes les logiciels, sans avoir recours à des packages officiels.

Vous pourrez trouver de la documentation sur ce processus dans les sites et forums relatifs à votre système. Nous recommandons vivement de créer un nouveau serveur avec un système récent et de migrer les données de votre vieux serveur vers le nouveau serveur.

Si vous souhaitez tout de même migrer un vieux système vers GRUB, les principes généraux que vous devrez suivre sont les suivants :

Une fois que aurez complété ces étapes, référez-vous à la section 3 de ce document pour compléter la migration.

2 - Migrer un serveur HVM vers Xen en utilisant GRUB

Votre serveur ou disque système utilise la plateforme HVM s'il est attaché à l'un des noyaux suivants: “3.12-x86_64 (hvm)”, “3.18-x86_64 (hvm)”, “grub” ou “raw”.

Nous avons créé un script, disponible avec les dernières versions du package gandi-hosting-vm2, qui effectue la configuration nécessaire pour migrer un serveur HVM sur la plateforme Xen. Le script installe tous les packages nécessaires, dont le noyau, et effectue les modifications requises dans les fichiers de configuration.

Suivez les étapes de cette section pour préparer la migration d'un serveur de la plateforme HVM à la plateforme Xen. Ensuite référez-vous à la section 3 pour compléter la migration.

Important: si vous avez attaché des disques additionnels à votre serveur, il est important de noter que le nom du device changera de /dev/sdX (ex: /dev/sdb) à /dev/xvdX (ex: /dev/xvdb). Veillez à modifier votre fstab ou équivalent, après avoir utilisé le script de migration détaillé ci-dessous.

2.1 Migrer un serveur HVM avec Debian 7, Debian 8, Ubuntu 14.04 LTS ou Ubuntu 16.04 LTS

Tout d'abord, connectez-vous à votre serveur par SSH. Dans nos exemples, nous appelons le serveur hvm-server :

  local $> gandi vm ssh hvm-server --login root

Ensuite, executez les commandes suivantes en tant que root ou en les prefixant avec sudo :

 hvm-server #> curl -s https://mirrors.gandi.net/gandi/pubkey | apt-key add -
  hvm-server #> apt-get update
  hvm-server #> apt-get install -y gandi-hosting-vm2
  hvm-server #> /usr/share/gandi/kvm_to_xen_migration.sh
  hvm-server #> exit

À ce stade, vous avez installé les packages requis et effectué les configurations nécessaires pour changer de plateforme. Suivez maintenant les étapes de la Section 3 pour compléter la migration vers Xen.

2.2 Migrer un serveur CentOS 7 de HVM à Xen

Tout d'abord, connectez-vous à votre serveur par SSH. Dans nos exemples, nous appelons le serveur hvm-server :

  local $> gandi vm ssh hvm-server --login root

Ensuite, executez les commandes suivantes en tant que root ou en les prefixant avec sudo :

 hvm-server #> wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-Gandi https://mirrors.gandi.net/gandi/pubkey
  hvm-server #> yum install -y gandi-hosting-vm2
  hvm-server #> /usr/share/gandi/kvm_to_xen_migration.sh
  hvm-server #> exit

À ce stade, vous avez installé les packages requis et effectué les configurations nécessaires pour changer de plateforme. Suivez maintenant les étapes de la Section 3 pour compléter la migration vers Xen.

2.3 Migrer un système personnalisé de HVM à Xen

Chaque distribution (ou famille) aura potentiellement ses propres packages, chemins et configurations pour pouvoir démarrer avec GRUB. Les principes généraux que vous devrez suivre sont les suivants :

Une fois que aurez complété ces étapes, référez-vous à la section 3 de ce document pour compléter la migration.

3 - Démarrer votre serveur avec GRUB

3.1 - Changer le noyau de votre disk système

Avant d'effectuer cette étape, assurez-vous d'avoir suivi les étapes indiquées dans les sections précédentes et qui s'appliquent à votre cas.

Cet exemple utilise Gandi CLI pour effectuer le changement de noyau de votre disk système. Notez que vous pouvez également effectuer cette modification dans l'interface web depuis la page de gestion de votre serveur.

  local $> gandi disk update --kernel 'grub-x86_64 (xen)' --cmdline 'console=hvc0 root=/dev/xvda1 ro nosep' myserver_system
  local $> gandi vm stop myserver
  local $> gandi vm start myserver

Une fois le serveur démarré, votre système utilisera GRUB avec le noyau que vous avez installé auparavant. Vous pouvez maintenant mettre à jour vos packages et, si nécessaire, installer les modules du noyau que vous utilisez.

3.2 - Mettre à jour le système

Connectez-vous à votre serveur par SSH à nouveau:

  local $> gandi vm ssh myserver

Ensuite éxecutez les commandes suivantes en tant que root, ou en les préfixant avec sudo :

Sur Ubuntu / Debian:

  xenpv-server #> apt-get update
  xenpv-server #> apt-get upgrade
  xenpv-server #> reboot

Sur CentOS / Fedora / Mandriva / Mageia:

  xenpv-server #> yum update
  xenpv-server #> reboot

Note: Avec Mageia / Mandriva, utilisez urpmi –auto-select si vous n'utilisez pas yum.

Pour terminer, si vous utilisez des modules noyau spécifiques, vous devez les installer en suivant les instructions contenues dans cet article :

https://wiki.gandi.net/fr/iaas/references/server/kernel_modules

Et voilà ! Votre serveur utilise désormais GRUB et le noyau officiel de votre distribution, sur notre plateforme Xen.

4 - Utiliser une image système personnalisée avec GRUB

Vous pouvez soit utiliser des images système officielles, soit utiliser des images et noyaux personnalisés et les démarrer avec GRUB.

Consultez notre guide pour apprendre à préparer une image système personnalisée (au format VMDK dans l'exemple utilisé) et l'utiliser sur Gandi Cloud: https://wiki.gandi.net/fr/iaas/tutorials/images/vmdk.

5 - Résolution de problèmes et support

5.1 - Mon serveur ne démarre plus

Si votre serveur ne démarre plus après la migration, vous pouvez remettre le noyau utilisé précédemment et recommencer la configuration. Autrement, vous pouvez détacher le disk système et l'attacher à un autre serveur pour faire du débogage:

  1. Détachez le disk système de votre serveur ($ gandi disk detach my_boot_disk)
  2. Créez un serveur qui servira temporairement à deboguer votre système ($ gandi vm create –hostname temphvmfix)
  3. Attachez le disk système à ce nouveau serveur ($ gandi disk attach my_boot_disk –vm temphvmfix)
  4. Montez le disk pour pouvoir consulter les logs et modifier les fichiers de configuration
  5. Détachez le disk du serveur temporaire ($ gandi disk detach my_boot_disk)
  6. Attachez le disk au serveur original ($ gandi disk attach my_boot_disk –vm my_original_vm)
  7. Testez à nouveau

5.2 - Support

Vous pouvez contacter notre équipe de Support Hébergement en cas de besoin.

Vous pouvez également vous joindre à nos développeurs et d'autres clients sur le canal IRC #gandi, sur le réseau Freenode (irc.freenode.net).