Posts Tagged vCenter

Auditer les performances des machines virtuelles sous VMware vSphere 4 (première partie)

Déterminer des problèmes de performance en environnement virtualisé est nettement plus complexe qu’avec des serveurs physiques. Non seulement les ressources des machines virtuelles sont à corréler avec la couche de l’hyperviseur, mais également avec le serveur physique qui héberge les machines, le stockage centralisé et le réseau. Il convient donc de mettre en place un audit pas à pas afin d’avoir un cheminement cohérent.

Mesurer la charge courante d’une machine

Le préalable à toute modification structurelle d’un serveur consiste de prime abord à constater – principalement – la charge CPU, RAM, réseau ainsi que les I/O disque (téléchargez Iometer). A partir de cette observation, vous devrez être en mesure de déterminer un goulot d’étranglement et les moyens à mettre en oeuvre pour retrouver une situation acceptable.

Ici on a pris l’exemple d’un serveur pour lequel un service Java charge notablement le CPU. Le gestionnaire des tâches de Windows permet de confirmer des crètes à répétition qui peuvent durer plusieurs minutes d’affilée. Dès qu’on limite significativement les connexions, la charge revient à des valeurs très basses, ce qui étaye notre propos.

L’origine de la charge étant connue, on peut penser à la suite des opérations. Néanmoins, gardez toujours en tête que la mesure de performance que vous effectuez à l’intérieur d’une machine virtuelle n’est valable que dans une certaine mesure. En effet, cette machine étant justement virtuelle, il faudra mettre en perspective la mesure de performance du serveur ESX, de la machine virtuelle et des outils habituels dans le système d’exploitation de cette même VM. Pour prendre pleinement conscience de cet état de fait, dites-vous toujours qu’ une machine virtuelle qui montre une charge  CPU à 100% ne signifie pas nécessairement une charge à 100% dans l’ensemble des couches de la virtualisation.

Tirer parti de l’intégration des VMware Tools pour mesurer les performances

On ne le répétera jamais assez, les VMware Tools doivent être installés sur vos machines virtuelles. Voici encore un cas concret de leur utilité : une DLL Perfmon est installée et permet l’accès aux statistiques de performance mémoire et processeur directement depuis l’OS d’une machine virtuelle.

Pour lancer Perfmon, cliquez sur le menu Démarrer > Exécuter puis entrez perfmon. Dans la fenêtre du logiciel, les premières courbes de performances s’affichent. Cliquez droit > Propriétés

Dans la fenêtre des compteurs qui apparaît ensuite, sélectionnez soit l’objet VM Processor, soit VM Memory. Puisque dans notre exemple c’est le processeur qui pose problème, on choisi l’objet VM Processor avec son compteur % Processor Time et on clique Ajouter.

Nous avons désormais quatre compteurs. Puisque les courbes vont se marcher un petit peu dessus, on grossit volontairement la largeur du trait et on valide les modifications.

On peut maintenant tirer parti des compteurs spécifiques proposés par les VMware Tools et confronter les relevés de performances.

Pour lire la deuxième partie de cet article, rendez-vous ici.

, , ,

Laisser un commentaire

Renommer une machine virtuelle sous VMware vSphere 4

Il y a beaucoup de raisons qui peuvent vous amener à vouloir renommer une machine virtuelle. Hélas, la souplesse de la virtualisation ne va pas encore jusqu’à rendre triviale cette opération au-delà du nom affiché dans le vCenter. On espère donc que dans un futur proche, renommer une machine permettra également de renommer ses fichiers associés, ce qui serait quand même la moindre des choses.

Etat des lieux

Prenons une machine test nommée Exchangev1. Lorsque vous naviguez dans le Datastore qui héberge ses fichiers, vous observez que le dossier conteneur de la VM ainsi que tous ses fichiers correspondent au nom donné à la création.

Nous voulons simplement renommer cette machine en Exchange. Dans le vCenter, En faisant un clic droit > Rename sur la VM, on la renomme avec le nom désiré. Cette opération s’incrémente dans les tâches récentes et la VM prend le nouveau nom. En revanche, rien ne change au niveau des fichiers bruts. Il va donc falloir ruser…

Evaluer les options pour renommer une machine virtuelle

Plusieurs moyens d’arriver à vos fins existent et sont plus ou moins recommandables selon votre niveau d’expertise. Sans être exhaustif, cet article devrait vous permettre d’explorer la plupart des façons de faire. Aussi, nous balayerons trois possibilités, de la plus facile à la plus compliquée :

  1. Cloner la machine virtuelle
  2. Migrer la machine virtuelle vers un nouveau datastore
  3. Renommer manuellement les fichiers bruts

Quelle que soit la solution que vous adopterez, c’est une bonne pratique que de supprimer tout snapshot résiduel d’une VM. Cela va sans dire, mais pensez également à éteindre votre serveur pour ne pas provoquer un drame…

Enfin, gardez toujours en mémoire que le nom que vous donnez à une VM ne doit pas comporter d’espace, de parenthèses ou de caractère non compatible avec l’encodage UTF-8.

1. Cloner la machine virtuelle

Ce n’est clairement pas la vocation première de cette opération, mais probablement la façon de faire la moins complexe ! Si vous avez l’espace disque nécessaire sur votre espace de stockage et que vous ne voulez pas investir trop de temps ou risquer une mauvaise manipulation, préférez cette option.

Cloner une VM est enfantin. Cliquez droit sur votre machine puis choisissez l’option Clone… Vous aurez dès lors un assistant dont le premier écran consistera justement à vous demander…le nouveau nom de VM. S’en suivront les opérations habituelles de création de machine donc nous ne nous attarderons pas là-dessus ici.

Une fois la tâche terminée, vous pouvez constater le résultat en naviguant dans le Datastore qui reflètera la réussite de l’opération

2. Migrer la machine virtuelle vers un nouveau datastore

Deuxième possibilité tout aussi simple, la migration de VM vous permet de modifier le nom de votre machine. Pour cela, commencez par changer de nom à votre VM dans le vCenter puis cliquez droit > Migrate… sur la machine préalablement renommée (on a choisi Exchangev2)

L’assistant n’a rien de compliqué. Pensez juste à bien choisir l’option Change datastore quand elle se présentera à vous.

Une fois l’opération terminée, vous constaterez que les modifications ont été prises en compte dans le datastore.

Le clone et la migration sont deux opérations aisées. A vous de décider laquelle est la plus opportune selon vos contraintes de production et la performance de vos espaces de stockage sources et cibles.

3. Renommer manuellement les fichiers bruts

Cette opération est nettement plus délicate alors attention aux mauvaises manipulations !

Une fois la machine éteinte, supprimez-la de l’inventaire du vCenter. Attention, ne confondez pas l’option Remove from Inventory et Delete from Disk qui supprimerait purement et simplement votre serveur ! Pour supprimer la machine de l’inventaire, passez par le menu contextuel, donc, ou par la ligne de commande avec vmware-cmd -s unregister <path>

Voici une illustration :

[root@esx1 Exchange]# vmware-cmd -s unregister
/vmfs/volumes/vmfs-local1-esx1/Exchange/Exchange.vmx

Je privilégie toujours l’option graphique car en ligne de commandes, votre machine apparaît par la suite comme orpheline dans le vCenter. D’autres opérations inhérentes étant alors nécessaires, on s’en prémunira par avance…

Une fois votre machine desinventoriée, passez en ligne de commande pour renommer les fichiers .vmx et .vmdk (et son flat) avec le nouveau nom souhaité.

[root@esx1 vmfs-local1-esx1]# mv Exchange Exchangev3
[root@esx1 vmfs-local1-esx1]# cd Exchangev3/
[root@esx1 Exchangev3]# mv Exchange.vmx Exchangev3.vmx
[root@esx1 Exchangev3]# mv Exchange.vmdk Exchangev3.vmdk
[root@esx1 Exchangev3]# mv Exchange-flat.vmdk Exchangev3-flat.vmdk
[root@esx1 Exchangev3]# ll
total 20972992
-rw------- 1 root root        8684 Apr  2 10:29 Exchange.nvram
-rw------- 1 root root 21474836480 Apr  2 10:29 Exchangev3-flat.vmdk
-rw------- 1 root root         502 Apr  2 10:41 Exchangev3.vmdk
-rwxr-xr-x 1 root root        1919 Apr  2 10:32 Exchangev3.vmx
-rw------- 1 root root           0 Apr  2 10:32 Exchange.vmsd
-rw------- 1 root root         263 Apr  2 10:32 Exchange.vmxf
-rw-r--r-- 1 root root       74453 Apr  2 10:29 vmware-1.log
-rw-r--r-- 1 root root       29569 Apr  2 10:29 vmware-2.log
-rw-r--r-- 1 root root       28649 Apr  2 10:29 vmware-3.log
-rw-r--r-- 1 root root       55627 Apr  2 10:29 vmware.log

Editez à présent le fichier .vmx et repérez la ligne scsi:0.fileName de manière à modifier la valeur pour refléter le nouveau descripteur.

scsi0:0.fileName = "Exchangev3.vmdk"

Pensez à sauvegarder avant de quitter puis de la même manière, éditez le fichier .vmdk pour refléter le nouveau nom du fichier -flat en repérant la mention Extent description.

# Extent description
RW 41943040 VMFS "Exchangev3-flat.vmdk"

Vous pouvez à présent parcourir de nouveau le datastore et cliquer droit sur le fichier .vmx renommé. Sélectionnez Add to Inventory pour inventorier votre machine virtuelle.

Vous aurez peut-être remarqué que trois fichiers (.nvram, .vmsd et .vmxf) n’ont pas eu besoin d’être renommés via la ligne de commande et que malgré tout votre machine démarre. C’est tout simplement parce-que l’hyperviseur est capable de les régénérer au besoin pour refléter les nouveaux descripteurs mis en place comme l’atteste la capture écran ci-dessous :

Bien sûr cela fait des fichiers inutiles résidents du conteneur de votre VM et l’opération la plus propre aurait été de renommer tous les fichiers, sans oublier de modifier le fichier .vmx en conséquence. A vous de choisir, sachant que ce n’est qu’une histoire de rigueur de chacun…

Remarque : la commande vmkfstools permet aussi le renommage d’un fichier .vmdk et plus encore. La richesse de cette commande étant d’ailleurs telle, je tenterai carrément de lui consacrer un article dans un futur proche.

, , , ,

Laisser un commentaire

Utiliser vSphere PowerCLI pour interagir sur le vCenter

Voici une liste non exhaustive des opérations que vous pourrez réaliser en utilisant vSphere PowerCLI pour interagir sur le vCenter :

[table id=21 /]

Connexion au vCenter

Connect-VIServer -server <server> -user <user> -password <password> -port <port>

L’option -port n’est utile que si le serveur n’écoute pas sur le port par défaut (443)

Exemple de connexion réussie à un vCenter :

[vSphere PowerCLI] C:> Connect-VIServer -server vcenter.xitim.com
-user vcenter -password vCenter@123

Name                                 Port                     User
----                                 ----                     ----
vcenter.xitim.com                    443                      vcenter

Récupérer la liste des hôtes ESX

[vSphere PowerCLI] C:> Get-VMHost
Name                   State           Id
----                   -----           --
srv-esx1.xitim.com.... Connected       HostSys...
srv-esx2.xitim.com.... Connected       HostSys...
srv-esx3.xitim.com.... Connected       HostSys...

Récupérer la liste des machines virtuelles

[vSphere PowerCLI] C:> Get-VM

Name           PowerState Num CPUs Memory (MB)
----           ---------- -------- -----------
srv-sql        PoweredOn  1        1536
srv-lamp       PoweredOn  1        512
srv-windows    PoweredOn  1        512
srv-mail       PoweredOn  1        768

Récupérer les vSwitchs des hôtes ESX

[vSphere PowerCLI] C:> Get-VMHost | Get-VirtualSwitch

Name       Num Ports  Num Ports  Mtu   Key

Available
----       ---------  ---------- ---   ---
vSwitch0   32         17         9000  key-vim.host.VirtualSwitch-...
vSwitch1   64         59         9000  key-vim.host.VirtualSwitch-...

Récupérer les adaptateurs réseau des machines virtuelles

[vSphere PowerCLI] C:> Get-VM | Get-NetworkAdapter
MacAddress       : 00:50:56:b0:6a:97
WakeOnLanEnabled : True
NetworkName      : externe0
Type             : Flexible
ConnectionState  : VMware.VimAutomation.Client20.ConnectInfoImpl
Id               : VirtualMachine-208/4000
Name             : Network adapter 1

MacAddress       : 00:50:56:94:10:e1
WakeOnLanEnabled : True
NetworkName      : externe0
Type             : Flexible
ConnectionState  : VMware.VimAutomation.Client20.ConnectInfoImpl
Id               : VirtualMachine-176/4000
Name             : Network adapter 1

Je vous invite à régulièrement consulter cette page pour connaître les derniers ajouts de commandes !

, , ,

Laisser un commentaire

Suivre

Get every new post delivered to your Inbox.