Upgrade de Xenserver 6.5 en pool vers 7.1 LTSR patché

La mise à jour de xenserver en pool doit toujours commencer par le master. Autrement il faudra sortir du pool le slave avant de le mettre à jour. Voir la section cas particulier : mettre à jour un xenserver slave avant le master.

Préparer les bascules

Sur le slave

Basculer toutes les machines possibles.

Attention

Plusieurs scénarios existent : * Storage en DRBD partagé * Storage en DRBD croisé * Storage en iSCSI partagé

  • Dans le premier cas, la migration a chaud des machines est possible est simplifiée cependant pendant la mise à jour du master, il faudra penser à passer en primary le xen slave ;

  • Dans le second scénario il existe deux cas possibles ;

** Le DRBD a assez de place pour déplacer la totalité des machines sur le slave;

** Le DRBD n’a pas assez de place, il faudra soit laisser les VM sur la machine soit passer en primary la partition sur le slave et replugguer le SR;

  • Dans le dernier cas, l’iSCSI est partagé, la migration des machines peuvent se faire à chaud. Si le montage n’est pas partagé, il faudra prévoir une interruption de service et replugguer le sr et son pbd sur le slave ;

Sur le master

faire un dump

xe pool-dump-database file-name=backup_data.xml

le déposer sur une plateforme en dehors du xenserver

faire un rsync du /

Liste des informations éventuelles à récupérer :

  • accès IPMI (IP + login/mdp)

  • vérifier @ip

  • vérifier hostname

  • vérifier ntp

  • vérifier dns

  • vérifier suffixe dns

  • noter les couples mac/eth sur la machine

Installer Xenserver via script officiel (Méthode recommandée)

sources :

préparer les fichiers nécessaires à l’upgrade

Récupérer depuis un xencenter 7.0 le fichier RPU002, l’extraire de la manière suivante sur un Linux :

gpg --output shar.sh RPU002.xsupdate
sh shar.sh unpack
cd /tmp/tmp.HASARD

Récupérer dedans upgrade-plugin-2.1.1-xs2435.noarch.rpm

Puis depuis un Xencenter 7.1 à nouveau le même fichier, son contenu diffère.

Récupérer xcp-python-libs-2.0.1-163

Si le paquet host-upgrade est installé sur la machine, le supprimer

Utiliser ou mettre en place un serveur web qui contient les rpm en question ainsi que l’iso de Xenserver7.1 dézippé (attention à bien tout récupérer un fichier caché nommé .treeinfo est nécessaire à l’update)

Indication

Si vous avez besoin d’un serveur web, voici une configuration possible : Installer nginx, ajouter dans le /etc/nginx/site-enabled/default les lignes suivantes dans location / :

autoindex on;
   autoindex_exact_size off;
   autoindex_format html;
   autoindex_localtime on;

Et commenter l’index.

C’est une possibilité parmi d’autre, si vous avez déjà un serveur web, inutile de faire ce paramétrage.

Récupérer les rpm, les déplacer sur le serveur web et les installer sur le xen cible

wget http://SERVEUR_WEB/upgrade-plugin-2.1.1-xs2435.noarch.rpm
wget http://SERVEUR_WEB/xcp-python-libs-2.0.1-163.noarch.rpm
rpm -Uvh *.rpm

Tester le lien URL récupérer l’UUID du host cible : xe host-list

la machine ne doit pas être en pool :

xe host-call-plugin plugin=prepare_host_upgrade.py host-uuid=$(xe host-list --minimal) fn=testUrl args:url=http://SERVEUR_WEB/XS7.1/

Cela doit renvoyer true

Configurer l’upgrade

xe host-call-plugin plugin=prepare_host_upgrade.py host-uuid=$(xe host-list --minimal) fn=main args:url=http://SERVEUR_WEB/XS7.1/

Lorsque c’est à true, lancer la mise à jour.

Simplement faire un reboot et laisser le temps que Xenserver s’installe.

Vous pourrez ensuite patcher le Xenserver.

Installer Xenserver via ISO et IPMI

Attention

Cette méthode va complètement écraser toutes les données, il est donc impératif de bien noter toutes les informations demandées ci-dessus.

Récupérer l’iso de xenserver 7.1 ici :

wget https://srvinstallation.tranquil.it/xenserver/xs7.1/iso/XenServer-7.1.0-s1-install-cd.iso

Depuis l’IPMI, réinstaller Xenserver

Reconfigurer Xenserver

Vérifier qu’il y a bien un suffixe DNS et un serveur DNS configuré (xe otherconfig)

xe pif-param-set uuid=<pif uuid> other-config:domain=searchdomain.net,searchdomain2.net

pousser les couples mac/eth s’ils ont changé

interface-rename --update eth0=UNE_MAC eth1=UNE_AUTRE_MAC eth2=ETC.

Changer avec xsconsole l’interface et passer à la connexion originelle (si de base sur eth4, remettre sur eth4) Les changements d’interface sont générés dans un fichier par la couche Xenserver.

/etc/sysconfig/network-scripts/interface-rename-data/dynamic-rules.json

Pour reconfigurer les interface au niveau XenServer

xe pif-introduce device=eth11

Verifier s’il est bridgé:

xe network-list PIF-uuids=

Configurer le MTU:

xe pif-list device=eth11
xe pif-param-set uuid=UUID_ETH11 other-config:mtu=9000

Nettoyer les anciennes conf eth:

xe network-list

bridge: xenbr0
uuid : 45140af4-2181-c769-2e30-20f65c8eaf46

récupérer l’UUID

xe network-param-list   uuid=45140af4-2181-c769-2e30-20f65c8eaf46
peut donner le pif-uuid : 7a83f8e9-65e7-5b6a-dddd-f5125209d544
xe pif-param-list uuid=7a83f8e9-65e7-5b6a-dddd-f5125209d544

Reconfigurer l’eth0

xe pif-reconfigure-ip uuid=7a83f8e9-65e7-5b6a-dddd-f5125209d544 mode=none IP= DNS= gateway= netmask=

Ajouter une interface géré par XenServer

ip link set eth11 up
xe pif-introduce host-uuid=8c953062-ee7d-43c5-b964-6daa760886ff device=eth11
xe-toolstack-restart

Pour lister les réseaux :

xe-network-list

Récupère uuid du network où le bridge est xenbr11

xe pif-list device=eth11 : vérifier si le network-uuid est le même qu'au dessus

Détruire les bridges inutiles eth8 et eth9 xenbr8 et xenbr9 dans notre exemple

[root@srvxen3 ~]# xe pif-list device=eth9
   uuid ( RO)                  : 8d1f53e4-1762-20af-2d93-06ea79f0827e
                   device ( RO): eth9
       currently-attached ( RO): true
                     VLAN ( RO): -1
             network-uuid ( RO): 3618fb34-43fa-ee03-517d-e205529b6be4


   [root@srvxen3 ~]# xe pif-list device=eth8
   uuid ( RO)                  : 18cafc00-06e8-2519-1f75-f726ffcfa267
                   device ( RO): eth8
       currently-attached ( RO): true
                     VLAN ( RO): -1
             network-uuid ( RO): 2a74bd6c-4890-7f42-370f-ec4a118b5f05
xe pif-forget uuid=18cafc00-06e8-2519-1f75-f726ffcfa267
xe pif-forget uuid=8d1f53e4-1762-20af-2d93-06ea79f0827e

Detruire le network associé bridge = xenbr9

uuid = 3618fb34-43fa-ee03-517d-e205529b6be4
xe network-destroy uuid=3618fb34-43fa-ee03-517d-e205529b6be4

Indication

Optionnel

Reparamétrer iscsi (dans notre exemple il est sur eth11)

xe pif-list device=eth11
xe pif-reconfigure-ip uuid=25d0ec15-c6fe-b7cd-5f95-ac2ea151516f mode=static IP=10.16.2.16 netmask=255.255.255.0 MTU=9000
xe pif-param-list uuid=25d0ec15-c6fe-b7cd-5f95-ac2ea151516f

Vous pourrez ensuite patcher le Xenserver.