VMware – Best Practices « VSphere » Virtual Machines

fév 26, 2010 Posted Under: Virtualisation, Vmware - ESX, Vmware - Workstation

Lors de l’hébergement d’application sur un environnement virtualisé, de plus en plus souvent se pose le problème des ressources allouées aux machines virtuelles.
En effet, les chefs de projets ou développeurs s’attardent le plus souvent à augmenter le nombre de VCpu, et la RAM présent sur les Vms plutôt que d’optimiser leur code.
Chers Administrateurs, voici, donc les premières approches pour optimiser le système « Guest OS » et ainsi dédouaner tout dysfonctionnement lié à la distribution installée.


1/ Alignement des partitions

Lorsque vous créez des LUN sur votre SAN, les premiers octets sont réservés au Meta Données.
Ces Meta données dépendent du nombre de disque présents sur le RaidGroup et ne sont nécessaires que pour le SAN. En effet, elles permettent de retrouver les informations étalées à travers potentiellement tous les disques du RaidGroup. Pour éviter les I/O inutiles sur cette partie du SAN non utile pour les ESX, nous allons aligner la partition VMFS et les partitions de la machine virtuelle en faisant commencer la première partition à partir du block 128 ( recommandation pour les solutions EMC ).
D’après Vmware himself, il y aurait un gain en performance d’I/O entre 10% et 40%.

 

Alignement de la partition VMFS

Dans un premier temps, il faut récupérer l’identifiant de la partition VMFS.
Ps : Si vous effectuez la création du storage via le VIClient, la partition VMFS sera automatiquement alignée sur le block 128,

# fdisk -lu /dev/disks/vmhba2\:0\:0

Disk /dev/disks/vmhba2:0:0:0: 1999.8 GB, 1999839952896 bytes
255 heads, 63 sectors/track, 243133 cylinders, total 3905937408 sectors
Units = sectors of 1 * 512 = 512 bytes

Device Boot                           Start       End                                Blocks               Id  System
/dev/disks/vmhba2:0:0:1           128   18446744073320515964    18446744073515033727+  fb  VMFS

On peut donc constater que le premier secteur est à 128.
sinon, il va falloir changer le block de démarrage de la table des partitions en lui donnant comme valeur celle de l’element srtipe size.
Comment trouver cette valeur : il s’agit tout simplement du nombre de disque dans le raid group du SAN ( sans prendre en compte le disque de parité ), multiplié par 128 blocks ( par disque ).
Par exemple, si nous avons un raid group ( RAID5 ) constitué de 5 disques ( 4 disques de données + 1 disque de parité), nous obtenons un Element Stripe Size de : 4*128 = 512 blocks

# fdisk /dev/disks/vmhba2\:0\:0

n            to create a new partition.
p            to create a primary partition.
1            to create partition No. 1.

t            to set the partition’s system ID.
fb           to set the partition system ID to fb (VMware VMFS volume).
x            to go into expert mode.
b            to adjust the starting block number.
1            to choose partition 1.
512          to set it to 512 (the array’s stripe element size).
w            to write label and partition information to disk.

Il ne nous reste plus qu’à formater la partition créée en VMFS ( Système de fichiers de Vmware ), pour qu’elle puisse accueillir la future machine virtuelle.

# vmkfstools –C  vmfs3 –b 4m /dev/disks/vmhba2\:0\:0\:1

 

Alignement du disque virtuel « .vmdk » en préparation de la table des partitions du Guest OS

Pour ce faire, il faut préparer le disque virtuel « .vmdk » pour lui spécifier de commencer la table des partitions à partir du block 128.
Nous créons dans un premier temps la machine virtuelle sur le storage crée & aligné précédemment, puis, nous allons reproduire la procédure précédente :
La seule chose qui va changer cette fois-ci, c’est que nous lançons notre « fdisk » non pas sur un périphérique mais sur un fichier « ma_machine-flat.vmdk »

# fdisk ma_machine-flat.vmdk

n            to create a new partition.
p            to create a primary partition.
1            to create partition No. 1.
+100M        to prepare to create a boot partition (100MB)
t            to set the partition’s system ID.
83           to set the partition system ID to fb (VMware VMFS volume).
x            to go into expert mode.
b            to adjust the starting block number.
1            to choose partition 1.
128          to set it to 128 (the array’s stripe element size).
w            to write label and partition information to disk.

!! Surtout ne pas supprimer la partition créée précédemment lors de l’installation de l’OS, sinon l’alignement ne sera plus effectif.

 

 

2/ Installer les Vmware-Tools


Première Méthode — Officielle

# apt-get install linux-headers-`uname -r`  build-essential
# mount /dev/cdrom
# cp /media/cdrom/VMware-....tar.gz
# tar xvzf VMware-....tar.gz
# cd vmware/
# ./vmware-install.pl

Seconde Méthode — Projet Open-vm-tools

# apt-get update
# apt-get install open-vm-tools
# cd  /usr/src
# m-a prepare
# m-a a-i open-vm-source
# dpkg-reconfigure open-vm-tools

Après avoir suivi les directives lors de l’installation, nous allons vérifier que les modules sont bien chargés.

lsmod | grep vm

 

 

3/ Bien configurer son noyau pour le « timekeeping » :

Tout d’abord installer un client NTP, et le configurer pour mettre à jour l’heure du système assez régulièrement.

# apt-get install ntpdate
# vi /etc/crontab
*/15 *      * * *    root    ntpdate-debian
# /etc/init.d/cron restart

Puis, en fonction de la distribution et de la version installée, ajouter les options spécifiées par Vmware « himself » :
–Best-Practices-Noyau–

 

 

4/ Paramétrer le disque « scheduler » à noop

# vi /boot/grub/menu.lst

et ajouter dans les options du noyau, le paramètre suivant :

elevator=noop

 

 

5/ Système de Fichiers

Pour avoir de bonnes performances, il est recommandé de ne pas mettre à jour les dates/heures d’accès, de modification des fichiers.
Ceci est à effectuer en fonction de vos besoins.
Cette configuration est présente dans le fichier « /etc/fstab ».

# vi /etc/fstab

et modifier la ligne suivante par celle qui suit :

/dev/sda3    /tmp  ext3    defaults      1 1

en

/dev/sda3    /tmp  ext3    defaults,noatime      1 1


Pour que toutes ces recommandations soient prises en charge par le système, il doit être redémarré.
source : http://lonesysadmin.net/linux-virtual-machine-tuning-guide/
source : http://www.tcpdump.com/kb/virtualization/vmware-esx-server/vmware-disk-alignment/vmdk-windows.html
source : http://www.vmware.com/pdf/esx3_partition_align.pdf

Leave a Reply