Cloner une VM

Rédigé par kriko - - Aucun commentaire
Le clonage d'une VM est relativement aisé. Vous pouvez le faire par Virtual Center avec l'option Clone mais ceci nécessite l'arrêt de la VM. De plus, Virtual Center a le défaut de masquer toute la partie sous-jacente des VMs. Ceci peut être génant lorsque vous avez mis en place certaines conventions de nommage pour les fichiers vmx et vmdk. La méthode que je préfère utiliser est la suivante. Elle concerne les VMs Windows. Pour les VMs Linux, la méthode reste valable. Je vais prendre l'exemple du clonage de la VM suivante :
  • Nom de la VM source : f098st56
  • Disques de la VM source : f098st56.disk0.vmdk et f098st56.disk1.vmdk
  • Nom de la VM cible : f098st57
Pour cloner f098st56 en f098st57, procéder comme suit :
  • Passer les disque f098st56.disk0.vmdk et f098st56.disk1.vmdk en mode REDO à l'aide de la commande vmkfstools addredo
  • Toujours à l'aide de vmkfstools, effectuer une copie des disques f098st56.disk0.vmdk et f098st56.disk1.vmdk respectivement en f098st57.disk0.vmdk et f098st57.disk1.vmdk.
  • Faire une commit des disques de la VM d'origine.
  • A l'aide de l'interface Web de VMware, créer une nouvelle VM nommée f098st57. Prendre bien garde à ne pas la connecter au réseau sans quoi, une fois démarrée, il y aurait un conflit de nom et d'adresse IP sur le réseau
  • Ouvrez une console et démarrez la VM f098st57
  • Si la VM faisait partie d'un domaine, repassez la en Workgroup
  • Utilisez ensuite l'utilitaire de Sysinternals newsid (voir la page des liens pour le télécharger) afin de changer le nom Netbios f098st56 en f098st57 et générer un nouveau SID. le changement de SID est impératif si vous êtes en Workgroup, il reste conseillé si vous êtes dans un domaine. Remarque importante : si le service Schedule de votre VM utilisait un compte spécifique pour le service AT, veillez à remettre le service AT sous le compte LocalSystem avant de changer le SID, sinon vous ne pourrez plus le faire après l'utilisation de newsid et les commandes AT ne se lanceront plus. Ceci est valable aussi si vous utilisez sysprep pour cloner des machines. Cf l'article Microsoft http://support.microsoft.com/kb/321204/en-us
  • Une fois le nom Netbios et le SID changés, donnez une nouvelle adresse IP à la nouvelle VM f098st57. Vous pouvez alors la reconnecter au réseau.
  • Faite une recherche dans le registre pour remplacer les entrées contenant encore f098st56 par f098st57.
  • Le cas échéant, réinscrivez la nouvelle machine dans le domaine

Empêcher VMware d'effectuer un COMMIT à l'arrêt d'une VM

Rédigé par kriko - - Aucun commentaire

C'est le piège : quand une VM a été passée en mode REDO à chaud (par la commande vmkfstools addredo), le commit est implicite lors de l'arrêt de la VM ! Ceci peut être très génant si l'on ne veut justement pas conserver les modifications apportées à la VM depuis le passage en mode REDO. Deux méthodes permettent d'empêcher le commit tout en arrêtant la VM :

La méthode brutale :
Faire un ps -eafwww | grep "" et relever tous les process associés à la VM. Voici typiquement le résultat de la commande :

[root@esx29801 root]# ps -eafwww | grep "f098st42.vmx"
UID  PID  PPID C STIME  TTY TIME   CMD
root 9885    1 0 Mar 28 ? 00:15:16 /usr/lib/vmware/bin/vmware-vmx ...
root 9886 9885 0 Mar 28 ? 00:00:18 vmware-mks -A 11 -D 13 -S -L ...
root 9893 9885 0 Mar 28 ? 00:00:00 /usr/lib/vmware/bin/vmware-vmx ...
root 9894 9893 0 Mar 28 ? 01:11:39 /usr/lib/vmware/bin/vmware-vmx ...

Il ne reste plus qu'à faire un kill -9 des PIDs, puis de supprimer le fichier .REDO et le tour est joué

Méthode douce :

Faire un REDO de REDO. Autrement dit repasser une commande vmkfstools addredo. Ceci va créer un fichier .REDO.REDO. Ensuite, arrêter normalement la VM. Le .REDO.REDO est commité dans le .REDO et le fichier .vmdk principal n'est pas affecté. La VM étant arrêté, vous pouvez alors supprimer alors le fichier .REDO restant puis la redémarrer.

Effectuer un COMMIT à chaud

Rédigé par kriko - - Aucun commentaire

Utilisez la commande vmkfstools avec l'option commit. A noter que pendant la phase de commit, la VM ne répond quasiment plus. Si le fichier REDO est d'une taille conséquente, la VM pourra apparaîtra comme bloquée pendant un certain temps donnant l'illusion qu'elle est plantée. La syntaxe de la commande commit est la suivante :

vmkfstools <fichier_vmx> commit <scsi_id>
  • <fichier_vmx> est le nom du fichier de configuration de la VM (avec son chemin complet) ;
  • <scsi_id> représente l'entrée scsix:y présente dans le fichier de configuration à laquelle est rattachée le disque que vous voulez passer en mode REDO ;

Par exemple, pour la VM configurée dans /home/vmware/vm1/vm1.vmx et le disque situé en ID 0:0, passez la commande suivante :

vmkfstools /home/vmware/vm1/vm1.vmx commit scsi0:0

Activer l'utilisation de vmkusage

Rédigé par kriko - - Aucun commentaire

Par défaut, l'URL http:///vmkusage n'est pas activée.

Pour l'activer, il suffit de passer la commande suivante :

vmkusagectl install

Ceci aura pour effet d'activer la collecte des informations pour vmkusage

Passer en mode REDO à chaud

Rédigé par kriko - - Aucun commentaire

Par passage en mode REDO à chaud, j'entends : création d'un fichier REDO sans avoir besoin d'arrêter la VM, passage du disque voulu en mode Undoable puis de redémarrage de la VM.

Toutefois, dans le cas d'une VM en production, l'arrêt / redémarrage peut ne pas être envisageable. Dans ce cas, vous devez alors passer en mode REDO à chaud par la console Linux en utilisant la commande vmkfstools avec l'option addredo. La syntaxe est la suivante :

vmkfstools <fichier_vmx> addredo <scsi_id>
  • <fichier_vmx> est le nom du fichier de configuration de la VM (avec son chemin complet) ;
  • <scsi_id> représente l'entrée scsix:y présente dans le fichier de configuration à laquelle est rattachée le disque que vous voulez passer en mode REDO ;

Par exemple, pour la VM configurée dans /home/vmware/vm1/vm1.vmx et le disque situé en ID 0:0, passez la commande suivante :

vmkfstools /home/vmware/vm1/vm1.vmx addredo scsi0:0

Déplacer une VM à froid d'un ESX vers un autre

Rédigé par kriko - - Aucun commentaire

Il peut s'avérer nécessaire de déplacer une VM à froid (VM éteinte) d'un serveur ESX vers un autre. Par exemple, ceci est nécessaire quand les ESX n'ont pas la même architecture processeur.

La procédure est relativement simple

    Arrêter la VM qui doit être déplacée
  • Ouvrir une session ssh sur le serveur cible
  • Aller dans le répertoire /home/vmware
  • Copier le répertoire de la VM source par scp
  • Sous VirtualCenter, noter le description de la VM et le dossier où elle se trouve
  • Sous VirtualCenter, faire un clic-droit sur la VM source puis choisir "Remove"
  • Sur le serveur ESX cible, enregistrer la VM grâce à la commande vmware-cmd -s register <chemin du vmx/fichier.vmx>
  • Dans VirtualCenter, déplacer la VM qui vient d'être enregistrée du dossier Discovered VMs vers le dossier original puis remettre la description
  • Ouvrir la console sur la VM puis faire un Power On en spécifiant de garder le même identifiant

Voici un exemple concernant un VM srv298a2 qui est déplacée de esx29803 vers esx29804 :

Copie de la VM

[root@esx29804 vmware]# cd /home/vmware
[root@esx29804 vmware]# scp -r esx29803:/home/vmware/srv298a2 .
root@esx29803's password:
srv298a2.vmx                                  100% 1025   551.1KB/s   00:00
vmware.log                                    100% 3877   806.7KB/s   00:00
nvram                                         100% 8664   859.9KB/s   00:00
vmware-0.log                                  100% 3877   905.5KB/s   00:00
vmware-1.log                                  100% 3880   917.2KB/s   00:00
vmware-2.log                                  100% 3877   877.8KB/s   00:00

Dossier et description

Dans VirtualCenter, noter le dossier où se trouve la VM et sa description :

Suppression de la VM

Dans VirtualCenter, clic-droit et choix de l'option Remove :

Enregistrement de la VM sur le serveur cible

Sur l'ESX cible, enregistrement de la VM déplacée

[root@esx29804 vmware]# vmware-cmd -s register /home/vmware/srv298a2/srv298a2.vmx
register(/home/vmware/srv298a2/srv298a2.vmx) = 1

Redémarrage de la VM

Dans VirtualCenter après avoir rangé la VM dans le bon dossier et remis la bonne description, ouvrir une console sur la VM puis faire un Power On. Le serveur ESX demande si l'on veut générer un nouvel UUID ou garder l'existant. S'agissant de la même VM qui n'a été que déplacée, on va garder l'UUID initial :

Réactiver le défragmenteur Microsoft

Rédigé par kriko - - Aucun commentaire

Suite à la désinstallation d'un logiciel de défragmentation tiers, l'option "Défragmenter" peut ne plus fonctionner quand vous consultez les propriété d'un disque dur.

Pour réactiver l'outil de défragmentation natif de Windows, il suffit de procéder comme suit :

  • A l'aide de l'explorateur, rendez-vous dans le dossier %WINDIR%\inf
  • Localisez le fichier nommé dfrg.inf
  • Faites un clic-droit de la souris, puis choisissez l'option "Installer"

Cette manipulation réactive le défragmenteur natif de Windows.

Désinstaller proprement la JVM de Microsoft

Rédigé par kriko - - Aucun commentaire

Sous Windows NT/2000 et XP avant le SP2, Microsoft fournissait une machine virtuelle Java (JVM). Cette JVM n'étant plus supportée, vous voudrez peut être la désinstaller et utiliser la JVM de Sun à la place.

Voici la procédure à suivre :

Démarrer -> Executer -> runDll32 advpack.dll,LaunchINFSection java.inf,UnInstall

Confirmez ensuite l'action de désinstallation et redémarrez le PC comme demandé

Finissez le nettoyage en supprimant :

  • Le répertoire %systemroot%\java
  • Le fichier %systemroot%\inf\java.pnf
  • Le fichier %systemroot%\system32\wjview.exe
  • Le fichier %systemroot%\system32\jview.exe
  • La clé de registre HKLM\SOFTWARE\Microsoft\Java VM
  • La clé de registre HKLM\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\JAVA_VM

Vous pouvez alors installer la JVM de Sun en suivant ce lien : http://java.com/fr/download

Forcer la désinstallation de Citrix

Rédigé par kriko - - Aucun commentaire

L'objectif consiste à désinstaller Citrix d'un serveur alors que le magasin de données n'est pas joignable

Il se peut qu'après certaines manipulations hasardeuses, le service IMA refuse de démarre. Si aucune solution ne permet de rétablir le service IMA, il faut désinstaller puis réinstaller Citrix. Or, la désinstallation nécessite que le service IMA soit disponible afin de désinscrire le serveur de la batterie...

Il existe toutefois une façon de désinstaller Citrix sans que le programme de désinstallation ne tente de supprimer le serveur de la batterie (il faudra ensuite supprimer manuellement le serveur par la CMC). Pour lancer une désinstallation "forcée" de Citrix, utilisez Démarrer -> Executer puis entrez la commande suivante :

msiexec.exe /i MPS.msi CTX_MF_FORCE_SUBSYSTEM_UNINSTALL=Yes 

Vous devez bien sûr disposer du package d'installation MPS.msi (sur le CD ou à partir de l'endroit où vous avez stocké la distribution Citrix)

Accélerer la copie d'un fichier .vmdk

Rédigé par kriko - - Aucun commentaire

Lorsque vous clonez une VM, vous êtes amené à copier le(s) fichier(s) .vmdk (autrement dit, le(s) disque(s) de la VM) sous leur nouveau nom. Si vous passez par la commande cp, les blocs non utilisés seront quand même copiés et cela prendra du temps. Il peut être intéressant de passer par un export / import du vmdk en utilisant vmkfstools mais sans passer par un fichier intermédiaire. vmfsktools possède une option cachée. Il suffit d'utiliser la commande suivante :

vmkfstools -e target.vmdk -d vmfs source.vmdk

Par exemple, pour copier le fichier /vmfs/data/vm1.disk0.vmdk en /vmfs/data/vm2.disk0.vmdk, la commande sera la suivante :

vmkfstools -e /vmfs/data/vm2.disk0.vmdk -d vmfs /vmfs/data/vm1.disk0.vmdk
Fil RSS des articles de cette catégorie