Logo Khaganat

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:xen [2018/08/08 22:51] – [Si ça ne marche pas] /* ortho + meilleure commande pour lister les entrées grub */ merlin8282fr:xen [2021/12/03 19:19] (Version actuelle) – modification externe 127.0.0.1
Ligne 40: Ligne 40:
 Installer les divers outils dont on va avoir besoin : Installer les divers outils dont on va avoir besoin :
   apt update   apt update
-  apt install xen-linux-system-amd64 xen-tools qemu-system-x86 +  apt install  xen-tools qemu-system-x86 xen-system-amd64 
 +  avant buster : xen-linux-system-amd64
 ==== Booter sur le bon noyau : configuration de GRUB ==== ==== Booter sur le bon noyau : configuration de GRUB ====
  
 +Avec Stretch sur online.net, je n'ai pas eu besoin de changer manuellement le noyau
 +   reboot
  
-Il faut ensuite [[https://wiki.debian.org/Xen#Prioritise_Booting_Xen_Over_Native|changer le noyau puis redémarrer]], pour utiliser celui de Xen.+Sinon il faut ensuite [[https://wiki.debian.org/Xen#Prioritise_Booting_Xen_Over_Native|changer le noyau puis redémarrer]], pour utiliser celui de Xen.
   dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen   dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen
   # La ligne ci-dessous ne concerne que les machines chez OVH.   # La ligne ci-dessous ne concerne que les machines chez OVH.
Ligne 56: Ligne 58:
 Name                                        ID   Mem VCPUs State Time(s) Name                                        ID   Mem VCPUs State Time(s)
 Domain-0                                     0 14779         r-----    1881.8 Domain-0                                     0 14779         r-----    1881.8
- 
- 
 </code> </code>
  
 +Si ça fonctionne passez au 1.3 .
 === Si ça ne marche pas === === Si ça ne marche pas ===
  
Ligne 91: Ligne 92:
 </WRAP> </WRAP>
  
-=== Bug et impossibilité de redémarrer ===+== Xen override grub =
 +Vérifiez dans le fichier ''/etc/default/grub.d/xen.cfg'' que la variable ''XEN_OVERRIDE_GRUB_DEFAULT'' soit à 1, et dans le bloc suivant il doit y avoir la bonne entrée (''GRUB_DEFAULT'' doit correspondre à la bonne entrée) :
  
-<WRAP center round important 100%> +  if [ "$XEN_OVERRIDE_GRUB_DEFAULT" = "1" ]; then 
-Nous avons rencontré un bug lors de la dernière mise à jour de Xen. La machine refusait de redémarrer. Voici la résolutionsi un problème similaire se représente. + GRUB_DEFAULT="Debian GNU/Linuxwith Xen hypervisor" 
-</WRAP>+  fi
  
-Après avoir redémarré en rescue((Suivant votre hébergement, diverses possibilités pour arriver à booter...)), changez le grub pour redémarrer sur un noyau non-xen. Pour nous, ''/etc/default/grub'' réglé sur ''GRUB_DEFAULT=2''.+Exécutez ''update-grub'', ça devrait être bon maintenant.
  
-Puis réinstaller la version précédente de Xen (TODO : MerlinShepeng, comment on fait ça ?). Et passer le paquet en hold : +== Forcer le boot d'un noyau == 
-  apt-mark hold xen-hypervisor-4.8-amd64+Il se peut aussi que l'hyperviseur Xen n'ait pas été configuré pour être le "noyau" démarré par défaut. Pour vérifier cela, on peut lister les différentes possibilités que nous offre grub lors du boot :
  
 +  awk -F\' '/(menuentry|submenu)\ / {print $2}' /boot/grub/grub.cfg | nl -v0
  
-Ensuite, il faut tester les entrées qui passent, le dernier noyau linux ne sera pas forcément compatible si Xen n'est pas à jour. Attention, avec Xen, ''/boot/grub/grub.cfg'' est configuré avec des sous-menu et il faut chainer ça (voir ''man grub-reboot'': +Remarquez les numéros en début de ligne : c'est le numéro qui nous permettra de dire à grub quel noyau démarrer par défautPour voir lequel est actuellement configuré :
-  grub-reboot 'Advanced options for Debian GNU/Linux (with Xen hypervisor)>Xen hypervisor, version 4.8-amd64>Debian GNU/Linux, with Xen 4.8-amd64 and Linux 4.9.0-6-amd64'+
  
-Si ça marchechanger /etc/default/grub avec la même chaine +  grep -Eoe "(menuentry|submenu) '[^']*'" /boot/grub/grub.cfg | nl -v0 
-  GRUB_DEFAULT='Advanced options for Debian GNU/Linux (with Xen hypervisor)>Xen hypervisor, version 4.8-amd64>Debian GNU/Linux, with Xen 4.8-amd64 and Linux 4.9.0-6-amd64'+ 
 +     0 menuentry 'Debian GNU/Linuxwith Xen hypervisor' 
 +     1 submenu 'Advanced options for Debian GNU/Linux (with Xen hypervisor)' 
 +     2 submenu 'Xen hypervisor, version 4.8-amd64' 
 +     3 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64 and Linux 4.9.0-7-amd64' 
 +     4 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64 and Linux 4.9.0-7-amd64 (recovery mode)' 
 +     5 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64 and Linux 4.9.0-6-amd64' 
 +     6 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64 and Linux 4.9.0-6-amd64 (recovery mode)' 
 +     7 submenu 'Xen hypervisor, version 4.8-amd64.efi' 
 +     8 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64.efi and Linux 4.9.0-7-amd64' 
 +     9 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64.efi and Linux 4.9.0-7-amd64 (recovery mode)' 
 +    10 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64.efi and Linux 4.9.0-6-amd64' 
 +    11 menuentry 'Debian GNU/Linux, with Xen 4.8-amd64.efi and Linux 4.9.0-6-amd64 (recovery mode)' 
 +    12 menuentry 'Debian GNU/Linux' 
 +    13 submenu 'Advanced options for Debian GNU/Linux' 
 +    14 menuentry 'Debian GNU/Linux, with Linux 4.9.0-7-amd64' 
 +    15 menuentry 'Debian GNU/Linux, with Linux 4.9.0-7-amd64 (recovery mode)' 
 +    16 menuentry 'Debian GNU/Linux, with Linux 4.9.0-6-amd64' 
 +    17 menuentry 'Debian GNU/Linux, with Linux 4.9.0-6-amd64 (recovery mode)' 
 + 
 +On peut obliger grub à démarrer un noyau spécifique au prochain redémarrage avec la commande ''xen-set-default'' en lui donnant l'entrée à démarrer, soit par son nom, soit par son numéro ; par contre étant donné que c'est un menu avec sous-menus et éventuellement sous-sous-menus, il faut donner à la commande le chemin complet de l'entrée à démarrer, par exemple : 
 + 
 +  grub-set-default '1>2>3' 
 + 
 +Alors c'est comme un chemin, sauf que c'est séparé par des ''>''
 + 
 +Ou avec le nom exact, selon l'exemple ci-dessus : 
 + 
 +  grub-set-default 'Advanced options for Debian GNU/Linux (with Xen hypervisor)>Xen hypervisor, version 4.8-amd64>Debian GNU/Linux, with Xen 4.8-amd64 and Linux 4.9.0-7-amd64' 
 +   
 +== locales == 
 + 
 +Grub a besoin que la locale par défaut soit anglaise. Suite à un problème de boot on a mis la locale ''en_US.UTF-8'' et re-généré le fichier /boot/grub/grub.cfg avec ''update-grub''
 + 
 + 
 +=== Bug et impossibilité de redémarrer === 
 + 
 +<WRAP center round important 100%> 
 +Nous avons rencontré un bug lors de la dernière mise à jour de Xen. La machine refusait de redémarrer. La source du problème était la langue ("locale") qui était en français, et les scripts de grub n'aiment pas ça (en tout cas pas à l'heure actuelle -- août 2018). Voir ci-dessus pour la résolution du problème. 
 +</WRAP>
  
-Et ça devrait marcher. À noter que la syntaxe peut aussi la version chiffrée, mais ça risque de se décaler lors de la mise à jour du noyau...  
-  GRUB_DEFAULT='0>0>2' 
 ==== Configuration du réseau ==== ==== Configuration du réseau ====
  
Ligne 120: Ligne 159:
   sysctl -p /etc/sysctl.conf   sysctl -p /etc/sysctl.conf
  
-Ensuite, modifiez iptables :+Trouvez quelle est votre interface ethernet (probablement quelque chose comme enp1s0, ou eth0) : 
 +  ip a 
 + 
 +Ensuite, modifiez iptables. Si c'est ''enp1s0'' :
  
-  iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE+  iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
  
 <WRAP center round warning 60%> <WRAP center round warning 60%>
Ligne 129: Ligne 171:
  
 Sauvegarde des règles : Sauvegarde des règles :
-  mkdir /etc/iptables +  apt install iptables-persistent 
-  iptables-save > /etc/iptables/iptables.rules+  iptables-save > /etc/iptables/rules.v4
  
-Pour exécuter les règles au démarrage du serveur, éditez le fichier ''/etc/network/interface'' :+Pour exécuter les règles au démarrage du serveur, éditez le fichier ''/etc/network/interfaces'' :
 <code> <code>
-auto eth0 +auto enp1s0 
-iface eth0 inet static+iface enp1s0 inet static
         address 91.121.136.163         address 91.121.136.163
         netmask 255.255.255.0         netmask 255.255.255.0
Ligne 262: Ligne 304:
  
 Si vous avez les éléments pour expliquer la théorie, complétez l'article. Si vous avez les éléments pour expliquer la théorie, complétez l'article.
- --- //[[wiki:user:zatalyz|zatalyz]] 2018/04/20 08:57//+ --- //[[user:zatalyz|zatalyz]] 2018/04/20 08:57//
 </WRAP> </WRAP>
  
 +NB : pour savoir ce qui reste comme espace de libre :
 +  pvscan 
  
 ==== Lancer/se connecter aux VM ==== ==== Lancer/se connecter aux VM ====
Ligne 290: Ligne 334:
   xl console myvm   xl console myvm
 Puis retour à la ligne pour entrer dans le terminal (sinon, la commande reste affichée sans rien d'autre) Puis retour à la ligne pour entrer dans le terminal (sinon, la commande reste affichée sans rien d'autre)
 +
 +Pour sortir de la VM, depuis l’hôte :
 +  crlt + ( ou 5
  
 Pour éteindre une VM, depuis l'hôte : Pour éteindre une VM, depuis l'hôte :
Ligne 339: Ligne 386:
  
 Penser à sauvegarder les règles pour le redémarrage ! Penser à sauvegarder les règles pour le redémarrage !
-  iptables-save > /etc/iptables/iptables.rules+  iptables-save > /etc/iptables/rules.v4
  
 Pensez aussi, si ce n'est pas déjà fait, à bien configurer fail2ban sur l'hyperviseur.  Pensez aussi, si ce n'est pas déjà fait, à bien configurer fail2ban sur l'hyperviseur. 
  
 +
 +<WRAP center round tip 90%>
 + Je mets ici un exemple de config iptable
 +</WRAP>
 +
 +<code bash>
 +#!/bin/bash
 +
 +#acepter les connexions ssh
 +iptables -t nat -I PREROUTING -i eno1 -p tcp --destination-port ssh -j ACCEPT
 +
 +#rediriger tous les ports sur une VM proxy
 +iptables -t nat -A PREROUTING -i eno1 -j DNAT --to-destination 192.168.**.10
 +
 +#ouvrir un port ssh pour chaque VM 
 +iptables -t nat -I PREROUTING -p tcp --destination-port 3510 -j DNAT --to 192.168.**.10:22
 +iptables -t nat -I PREROUTING -p tcp --destination-port 3511 -j DNAT --to 192.168.**.11:22
 +iptables -t nat -I PREROUTING -p tcp --destination-port 3512 -j DNAT --to 192.168.**.12:22
 +iptables -t nat -I PREROUTING -p tcp --destination-port 3513 -j DNAT --to 192.168.**.13:22
 +iptables -t nat -I PREROUTING -p tcp --destination-port 3514 -j DNAT --to 192.168.**.14:22
 +
 +#exemple pour diriger un port sur une VM
 +iptables -t nat -I PREROUTING -i eno1 -p tcp --destination-port **** -j DNAT --to 192.168.**.**:****
 +
 +
 +#exemple pour prosody
 +iptables -t nat -I PREROUTING -i eno1 -p tcp --destination-port 5222 -j DNAT --to 192.168.**.13:5222
 +iptables -t nat -I PREROUTING -i eno1 -p tcp --destination-port 5269 -j DNAT --to 192.168.**.13:5269
 +iptables -t nat -I PREROUTING -i eno1 -p tcp --destination-port 5280 -j DNAT --to 192.168.**.13:5280
 +iptables -t nat -I PREROUTING -i eno1 -p tcp --destination-port 5281 -j DNAT --to 192.168.**.13:5281
 +
 +</code>
 ==== Réinitialiser le mot de passe root d'une VM ==== ==== Réinitialiser le mot de passe root d'une VM ====
 Ouais, bon, ça arrive. Si on a accès à l'hôte (Dom), tout va bien.  Ouais, bon, ça arrive. Si on a accès à l'hôte (Dom), tout va bien. 
Ligne 365: Ligne 444:
 ===== Faire des snapshots, cloner une VM ===== ===== Faire des snapshots, cloner une VM =====
 Il s'agit de manipulations propres à LVM((En tout cas, chez nous. Il y a d'autres systèmes qui permettent des snapshots.)), c'est donc dans la [[fr:lvm_snapshot#snapshot|documentation sur LVM, ici.]] Il s'agit de manipulations propres à LVM((En tout cas, chez nous. Il y a d'autres systèmes qui permettent des snapshots.)), c'est donc dans la [[fr:lvm_snapshot#snapshot|documentation sur LVM, ici.]]
 +
 +===== Upgrade de Stretch à Buster =====
 +Mettre à jour la distribution puis :
 +  apt autoremove
 +  
 +Changer dans /etc/xen/maVM.conf
 +  bootloader = '/usr/lib/xen-4.11/bin/pygrub' 
 +  
 +Vérifier que /etc/sysctl.conf
 +  net.ipv4.ip_forward = 1
 +  
 +Dans /etc/xen/scripts/vif-nat (à la fin)
 +  echo handle_iptable
 +===== Bugs récurrents =====
 +Il y en a quelques uns déjà listé sur cette page, mais consultez aussi la [[fr:lvm_snapshot|page de LVM]], car les deux logiciels sont très liés... 
 +
 +Si lors du lancement d'un VM, vous avez ceci en erreur :
 +
 +<code># xl create /etc/xen/etherpad2.cfg
 +Parsing config from /etc/xen/etherpad2.cfg
 +libxl: error: libxl_device.c:381:libxl__device_disk_set_backend: Disk vdev=xvda2 failed to stat: /dev/nuxru/etherpad2-disk: No such file or directory
 +libxl: error: libxl_create.c:946:initiate_domain_create: Unable to set disk defaults for disk 0
 +libxl: error: libxl.c:1575:libxl__destroy_domid: non-existant domain 2
 +libxl: error: libxl.c:1534:domain_destroy_callback: unable to destroy guest with domid 2
 +libxl: error: libxl.c:1463:domain_destroy_cb: destruction of domain 2 failed</code>
 +
 +Allez voir [[fr:lvm_snapshot#lvs_liste_des_disques_qui_ont_disparus|LVS liste des disques qui ont disparus]].
 +
  
 ===== Sources et documentation ===== ===== Sources et documentation =====
Ligne 371: Ligne 478:
   * [[http://xenbits.xen.org/docs/unstable/man/xl.1.html|man de xl]]   * [[http://xenbits.xen.org/docs/unstable/man/xl.1.html|man de xl]]
  
-{{tag>serveur web}}+{{tag>serveur web sysadmin}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/xen.txt · Dernière modification : 2021/12/03 19:19 de 127.0.0.1

Licences Mentions légales Accueil du site Contact