[Xen] Cloner vm a chaud.
|
16-01-2014, 18h12
Message : #1
|
|
Junky
Snorky Master Messages : 228 Sujets : 35 Points: 204 Inscription : Mar 2013 |
[Xen] Cloner vm a chaud.
Bonjour,
Sujet plus administration système que sécurité Je me suis trouvé récement devant une problématique. Cloner une machine dans Xen. Le but de la manipulation consiste a cloner une VM à chaud. C'est à dire de ne pas couper le/les service(s). Existant: Vous avez un client possédant un gros site web. On peu imaginer une achitecture de la sorte: Code : +--------------+ |-----> Serveur1 Dans cette situation, nous avons donc:
Scénario: Nous sommes le vendredi 13, et deux terroriste ce sont écrasés sur la tour Montparnasse en ULM (Oh les cons... ). Votre client relais l'info sur son site, et les visites explosent (Normal y'a eu deux morts. :p). Les serveurs prennent de plus en plus de charge. Vous décidez de rajouter une machine dans votre pool Web. Il est bien entendu pas question de tomber un serveur existant afin de le cloner, Il faut qu'ils restent tous actifs. Nous allons donc essayer de faire la manip sans éteindre de machine et surtout sans tout casser car machine cassé == client pas content 0x01: Petite précision Xen Je ne sais pas si tout le monde connais Xen (je l'utilise moi même et ne connais pas toutes les subtilités parfaitement sur le bout des doigts). Xen est un hyperviseur de machine virtuelle. Plus précisément, il fait de la paravirtualisation, c'est a dire qu'il faut que le systeme virtualisé soit "modifié" afin de pourvoir tourner correctement dans Xen. La VM a "conscience" de l'existance de l'hyperviseur. Xen permet de créer donc des VM avec une commande trés facile a comprendre qui est xen-create-image... Code : xen-create-image --hostname Manouvellevm --ip X.X.X.X --size 50G --memory 500M La commande va (je ne rentre pas dans les détails) créer deux lv. Un HOSNAME-disk et un HOSTNAME-swap. Je pense que vous avez assez de connaissances pour comprendre le rôle des deux donc je ne vais pas m'éterniser la dessus. 0x02: C'est tipar Info: dom0 = machine physique domU = machine Virtuelle On va donc devoir:
0x03: Création des LV pour le clone Il est vivement conseillé de réaliser les commandes dans un Screen Se connecter sur le dom0 qui devra acceuillir le clone, se logger en root via un sudo -s et créer les deux lv. Code : lvcreate -n NAME-[disk|swap] -L SIZE VG NAME: le nom du lv + disk ou swap SIZE: le nouveau lv doit IMPÉRATIVEMENT avoir la même taille que que le lv que nous clonons. Aussi bien pour le swap, que pour le disk. On peu trouver cette information en réalisant un lvdisplay VG: Le nom du VG dans lequel nous créons notre LV. Faire un vgdiplay pour plus d'informations. 0x04: Création du snapshot Il faut maintenant créer le snaptshot afin d'isoler la VM a cloner, et de temporiser les écritures. Code : lvcreate -s -n NAME /PATH/TO/LV -L SIZE L'option -s indique que l'on désire créer un snapshot NAME: Le nom du snapshot /PATH/../..: Chemin absolu du LV sur lequel nous désirons créer le snapshot SIZE: La taille du snapshot. Pas la peine de mettre 30G hein Une "temporisation" de 1G est largement suffisante puisque qu'a la fin de la procédure, nous "mergerons" (Un nouveau mot :p ) le snapshot au lv d'origine. 0x05: "Clonage" de la vm A ce stade, nous avons donc notre LV d'origine "isolé" et notre espace pour le clone de créé. Il nous suffit donc de tout copier avec la commande dd. Code : dd if=/PATH/TO/LV-ORI of=/PATH/TO/NEW-LV Ne pas oublier de le faire aussi pour le swap. Suivant la taille, la copie peu prendre + ou - de temps. 0x06: Modification des fichiers sur le dom0 Il faut créer un NAME.cfg dans le /etc/xen. Copier le MACHINE-ORI.cfg en HOSTNAME.cfg (remplacer MACHINE-ORI et HOSTNAME par les noms qui vont bien.). Editer le HOSTNAME.cfg et modifier les paths des disks par les nouveaux. Ils se trouvent généralement dans: Code : /dev/VG/ Créer aussi une nouvelle adresse MAC avec cette ligne de commande. Les addresses MAC de xen commencent par 00:16:3E. Code : perl -e printf "00:16:3E:%02X:%02X:%02X\n", rand 0xFF, rand 0xFF, rand 0xFF Sauvegarder le le fichier et créer le lien symbolique dans le auto/. 0x07: Modification configuration pour le domU fraichement créé Monter le clone a gd coup de mount. Code : mount /PATH/TO/HOSTNAME-disk /mnt/DIR Editer et modifier les fichiers suivants afin d'eviter les doublons sur le réseau. /mnt/DIR/etc/hostname => On change le nom de la machine, /mnt/DIR/etc/network/interface => On change l'ip de la machine. /mnt/DIR/etc/hosts => saisir les infos de l'IP et domaine. Démonter le HOSTNAME-disk Code : umount /mnt/DIR 0x08: Enregistrement DNS Si vous disposez d'un gros réseau, vous avez surment un powerDNS ou un bind. Il faudra donc enregistrer votre nouveau domU. 0x09: Boot du clone, + grosse prière Démarrer la vm fraichement créé. Code : xl create -c /ect/xen/auto/HOSTNAME.cfg 0x0A: Merge du snapshot Si tout c'est bien passé, nous pouvons merger le snapshot. Code : dmsetup remove /PATH/TO/SNAP 0x0B: Conclusion Voilà comment j'ai procédé, j'avais ensuite pas mal de configurations à faire pour remettre le monitoring en place. Regénérer des clés SSH et des certificats puppet les backup ect... Le temps de mise en place du clone (sans les configs propre au parc) m'a pris 25-30 min. Donc c'est un laps de temps qui je pense n'est pas trop dégueu. Bon bien entendu tout ce qui a été ecrit sur la machine d'origine apres le snapshot ne sera pas présent sur la nouvelle machine. J'ai fait des test a coup de dd pendant la copy. Ca n'a absolument rien perturbé (normal vous allez dire mais des fois... ) et les copies se sont réalisés sans incident. V'la une bout d'xp partagé avec vous. N'hésitez a poser des questions et/ou corriger certaines manip qui vous semblerez pas top du tout. Junky, Pour la sécurité, sous linux, le principal soucis est l'interface chaise/clavier
|
|
16-01-2014, 18h32
Message : #2
|
|
gruik
gouteur de savon Messages : 757 Sujets : 44 Points: 482 Inscription : Oct 2012 |
RE: [Xen] Cloner vm a chaud.
ça c'est du tuto !
(16-01-2014, 18h12)Junky a écrit : Sujet plus administration système que sécurité nan tu déconnes ?
Avant donc que d'écrire, apprenez à penser.
Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure. Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau, L'Art poétique) |
|
17-01-2014, 15h59
Message : #3
|
|
Junky
Snorky Master Messages : 228 Sujets : 35 Points: 204 Inscription : Mar 2013 |
RE: [Xen] Cloner vm a chaud.
Pour le swap je passe par dd car en générale nos partition swap dans xen.conf fond que: 128Mo
Mais il est tt a fait possible de passer par: Code : mkswap Junky, Pour la sécurité, sous linux, le principal soucis est l'interface chaise/clavier
|
|
18-01-2014, 13h17
Message : #4
|
|
thxer
:(){ :|:& };: Messages : 382 Sujets : 60 Points: 162 Inscription : Feb 2013 |
RE: [Xen] Cloner vm a chaud.
Super pratique ! Merci
|
|
18-01-2014, 14h51
Message : #5
|
|
0pc0deFR Non-enregistré |
RE: [Xen] Cloner vm a chaud.
Sympa comme partage. Merci.
|
|
« Sujet précédent | Sujet suivant »
|
Sujets apparemment similaires… | |||||
Sujet | Auteur | Réponses | Affichages | Dernier message | |
Clonage P2V à chaud Linux -> .vdi | thxer | 0 | 794 |
22-12-2014, 10h54 Dernier message: thxer |
|
[SYS] Modification des ressources à chaud de VM Xen | Junky | 5 | 1,630 |
14-11-2014, 10h34 Dernier message: memphis |
|
[LVM] resize DD d'une VM a chaud | Junky | 3 | 1,461 |
27-05-2014, 18h42 Dernier message: gruik |
Utilisateur(s) parcourant ce sujet : 2 visiteur(s)