Vmware server 2.0 sur hôte OpenSuse 11.1 64 bits
Dans cet article, j’explique la mise en place d’une configuration puissante afin d’héberger des serveurs virtuels sous Vmware server 2.0. Les points abordés sont :
- Choix d’un système d’exploitation pour le serveur Vmware
- Installation de Linux sur le serveur vmware
- Installation de Vmware server 2.0
- Installation des Vmware tools dans les machines invités (guest)
- Sauvegardes des machines virtuelles
- Réduction de la taille (shrink) des disques virtuels vmdk
Choix d’un système d’exploitation
Pour ce serveur hôte Vmware, j’ai choisi d’utiliser openSUSE 11.1 64 bits comme système d’exploitation.
Pourquoi Linux ?
Tous mes serveurs Vmware précédents utilisaient Windows XP ou Windows 2003. J’ai remarqué que les performances des serveurs virtuels avaient tendance a se dégrader tres vite. Je mets ce phénomène sur le compte des systèmes de fichiers NTFS ou Fat32 qui ne sont sans doute pas idéals pour héberger les fichiers vmdk (disques virtuels) de Vmware. De son coté, les systèmes de fichiers Linux ne nécessitent pas de défragmentations régulières d’où moins d’opérations de maintenance futures.
Pourquoi openSUSE ?
J’utilise généralement Debian comme serveur Linux. Malheureusement, il m’a été impossible d’installer la derniere version stable (Lenny) avec le processeur core i7 et la carte mère ASUS P6T DELUXE V2 qui équipe mon serveur Vmware. J’ai donc essayé avec une distribution openSUSE 11.1 et là, aucun problème !
Je ne regrette pas du tout car je trouve cette distribution très agréable à utiliser avec un environnement graphique KDE.
Pourquoi une distribution 64 bits ?
Pour les performances bien sur, mais surtout pour la possibilité de disposer de plus de 3,5 Go de Ram et ainsi faire tourner un grand nombre de serveurs virtuels simultanément.
Installation de Linux
Je ne vais pas décrire l’installation de openSUSE car une fois la distribution au format DVD récupérée ici et gravée, il suffit de démarrer le serveur avec le DVD dans le lecteur et d’enchainer les écrans de la procédure d’installation. Les seuls points délicats peuvent être le partitionnement du ou des disques durs et le choix entre utiliser une interface graphique (KDE ou GNOME) ou ne pas utiliser d’interface graphique. Personnellement, j’ai installé l’interface KDE, mais afin de rendre cet article indépendant des outils disponibles avec les interfaces graphiques, je ferai tout dans un terminal (ou console) en mode texte. Pour faciliter les futures installations de certains packages, j’installe l’outil zypper.
Installation de Vmware server 2.0
Il faut tout d’abord récupérer ici le fichier rpm d’installation pour un Linux 64 bits et la clé d’installation.
L’installation se déroule en 3 étapes :
- L’installation des prérequis
- L’installation du package rpm
- La configuration de Vmware
Pour la configuration, c’est un peu plus compliquer car il est nécessaire d’installer certains pré-requis comme entre autres un compilateur, l’outil make et les sources du kernel Linux. Voici la commande qui installe un ensemble minimale d’outils de développement :
zypper install autoconf automake binutils cpp gcc gcc-c++ linux-headers-$(uname -r) make psmisc kernel-source kernel-sym
Avec Debian, on ferait juste :
apt-get install build-essential linux-headers-$(uname -r)
L’installation du package rpm est tout ce qu’il y a de plus simple. Il suffit d’exécuter la commande suivante :
rpm -ivh VMware-server-2.0.1-156745.x86_64.rpm
Lancer la configuration de Vmware et répondez aux questions :
/usr/bin/vmware-config.pl
On répond toujours avec la réponse par défaut sauf pour :
Your kernel was built with “gcc” version “4.3.2″, while you are trying to use
“/usr/bin/gcc” version “4.3″. This configuration is not recommended and VMware
Server may crash if you’ll continue. Please try to use exactly same compiler as
one used for building your kernel. Do you want to go with compiler
“/usr/bin/gcc” version “4.3″ anyway? [no]
=> répondre “yes” !
Pour terminer l’installation, il faut éditer le fichier “/etc/sysconfig/boot” et modifier la ligne
RUN_PARALLEL=”yes”
en
RUN_PARALLEL=”no”
Pour démarrer le démon Vmware, la commande est :
/etc/init.d/vmware start
La console d’administration de Vmware est disponible à l’adresse : https://:8333/
Avec Internet Explorer, il faut penser à ajouter cette url dans la zone intranet locale.
Voici quelques liens vers des articles qui m’ont bien aidés :
- How To: Install VMware Server 2 in an openSUSE Host [plus enabling USB support]
- How To Install VMware Server On OpenSUSE Linux 10.3
- Setting up VMware on SUSE Linux
Installation des Vmware tools dans les machines virtuelles (guest)
L’installation des Vmware tools dans les machines virtuelles est indispensable. Mise à part les performances qui seront optimisées, l’intérêt est de pouvoir utiliser l’outils vmrun depuis le serveur hôte afin de stopper proprement en mode “soft” les machines virtuelles. Sans les Vmware tools, les machines virtuelles ne pourront être stoppées que brutalement sans arrêts préalables de leurs services (guest Windows) ou démons (guest Linux).
L’installation des Vmware tools se fait depuis la console d’administration Vmware, puis se termine dans la machine virtuelle. Si la machine virtuelle est sous Windows, il s’agit d’un setup standard et il faut juste enchainer les écrans. Si la machine virtuelle est sous Linux, la procédure est un peu plus complexe. Voici 2 articles qui expliquent la procédure :
Voici dans mon cas, la procédure suivie pour installer les VMware Tools dans une distribution Debian Lenny.
1. Dans VMware Infrastructure Web Access, lancer l’installation des VMware Tools
2. Dans un terminal dans le serveur invité, lancer les commandes suivantes:
sudo apt-get install autoconf automake binutils cpp gcc linux-headers-$(uname -r) make psmisc mount /media/cdrom cp /media/cdrom/VMwareTools-7.7.5-156745.tar.gz /tmp/. cd /tmp/ tar xvfz VMwareTools-7.7.5-156745.tar.gz cd vmware-tools-distrib/ ./vmware-install.pl
Note : Parfois la commande mount /media/cdrom retourne l’erreur “mount: special device /dev/hda does not exist”. Dans ce cas, essayer la commande suivante :
mount /dev/cdrom /media/cdrom/
Sauvegardes des machines virtuelles
Il s’agit du point qui a été le plus compliqué à mettre en place. En Effet, je dispose de plusieurs datastores avec chacun plusieurs machines virtuelles démarrées ou non. Je voulais donc mettre en place une procédure de sauvegarde automatique de toutes les machines virtuelles par copie complète des fichiers (vmx, vmdk, …).
Il ne s’agit pas de sauvegarde à chaud pour les machines virtuelles démarrées mais la procédure de sauvegarde se charge de les éteindre avant la copie des fichiers et de les redémarrer après.
Il existe des scripts pour la sauvegarde à chaud par création de snapshot ou par exploitation de la technologie de gestion de volume LVM, mais trop compliqués pour que je les adapte à mon besoin. Je suis donc parti d’un script disponible dans les forums de discussion de la communauté Vmware. Ce script montre comment utiliser la commande vmrun pour stopper et démarrer une machine virtuelle. Le problème de ce script est qu’il aurait redémarré toutes les machines virtuelles même celles qui étaient éteintes avant la procédure de sauvegarde. Mon script ne redémarre que les machines virtuelles qui étaient démarrées.
Le script principal : backup-vmware-datastore.sh
#!/bin/sh VMDS=$1 VMDS_PATH=$2 BACKUPDIR=$3 USER=$4 PASSWD=$5 CURRENT_DIR=$(pwd) cd $VMDS_PATH find . -type f -name *.vmx -printf '%pn' | sed 's/.// /' | while read VMX do echo ====================================== echo date echo ====================================== echo VMX=$VMX VMDIR=$(echo $VMX | sed 's/[^/..]*..*$//') echo VMDIR=$VMDIR VMNAME=$(echo $VMDIR | sed 's/^[^/.]*///' | sed 's//$//') echo VMNAME=$VMNAME VMEM=$(find $VMDS_PATH/$VMDIR -type f -name *.vmem -printf '%pn') echo VMEM=$VMEM # Stop guest if started if [ "$VMEM" != "" ]; then echo Stoping $VMDS $VMX ... vmrun -T server -u $USER -p $PASSWD -h https://127.0.0.1:8333/sdk stop "$VMDS $VMX" soft > /dev/null 2>&1 vmrun -T server -u $USER -p $PASSWD -h https://127.0.0.1:8333/sdk stop "$VMDS $VMX" hard > /dev/null 2>&1 fi # Backup guest echo taring $BACKUPDIR/$VMDIR/$VMNAME.tar $VMDIR ... mkdir -p $BACKUPDIR/$VMDIR rm $BACKUPDIR/$VMDIR/$VMNAME-save.tar > /dev/null 2>&1 mv $BACKUPDIR/$VMDIR/$VMNAME.tar $BACKUPDIR/$VMDIR/$VMNAME-save.tar > /dev/null 2>&1 tar cf $BACKUPDIR/$VMDIR/$VMNAME.tar $VMDIR # Start guest if previously started if [ "$VMEM" != "" ]; then echo Starting $VMDS $VMX ... vmrun -T server -u $USER -p $PASSWD -h https://127.0.0.1:8333/sdk start "$VMDS $VMX" > /dev/null 2>&1 fi done cd $CURRENT_DIR
L’appel du script : dobackup.sh
#!/bin/sh cd /vmware ./backup-vmware-datastore.sh [Datastore_1] /vmware/datastore_1 /backup/vmware/datastore_1 xxxx yyyy
où “xxxx” est a remplacer par le login d’accès à la console Vmware et “yyyy” par son mot de passe.
Dans cet exemple,
“Datastore_1″ est le nom du datastore
“/vmware/datastore_1″ est la localisation du datastore
“/backup/vmware/datastore_1″ est la destination de sauvegarde
Note : Ce script ne supporte pas les espaces dans les noms de répertoire et de fichier, il faut se limiter à l’alphabet, des chiffres et des “-” ou “_” (bien sur, je suis preneur de toutes améliorations dans ce domaine)
Voici quelques liens vers des articles qui m’ont bien aidés :
Réduction de la taille (shrink) des disques virtuels vmdk
Les disques durs des machines virtuelles sont les fichiers vmdk. Si lors de la création d’un disque dur on indique que le fichier vmdk ne doit pas être pré-dimensionné à la taille totale du disque dur alors le fichier vmdk grossit au fur et à mesure de son utilisation et de la quantité de données qui y est stockée. Lorsque la quantité de données diminue la taille du fichier vmdk ne diminue pas.
Il est cependant possible grâce à l’utilitaire vmshrink disponible sur le site VM Back de réduire la taille du fichier vmdk à la taille des données qui y sont stockées. Cela peut permettre de réduire considérablement la taille des fichiers vmdk et donc de gagner de l’espace disque et du temps lors des sauvegardes. Cet utilitaire s’exécute dans la machine virtuelle et est disponible sous forme de code source et également pre-compilé pour un certain nombre de système d’exploitation (Windows, Linux, FreeBSD, NetBSD, OpenBSD, Solaris et Minix). La version pour Linux a été compilée sur une distribution Fedora Core 4 mais a très bien fonctionnée pour moi avec un serveur virtuel Debian.
juil 27, 2009
Bonsoir. Merci pour le tuto. Juste que je rencontre des serieux problèmes au niveau de la configuration de vmware server 2.01.
- J’ai téléchargé l’OS (opensuse 11.1) et l’application (vmware server 2.0.1) à partir des liens indiqués dans le tuto
- Lors de la configuration de vmware server un message selon lequel le fichier source (programme c) du kernel est introuvable.
- J’ai un Ordinateur Intel Pentium 4 (x86 model 15). J’aimerai savoir si c’est un PB de compatibilité car j’ai téléchargé la version 32bit de vmware server
- Veuillez m’aider s’il vous plait.
J’y travaille depuis 2 semaines et je ne trouve rien de bon.
Merci d’avance
juil 27, 2009
C’est toujours Tinez KAMGA. Au cas où j’ai d’autres infos je vous les envoie
Merci de m’aider
août 03, 2009
Pour le source introuvable du kernel, la commande suivante a bien été exécutée ?
zypper install autoconf automake binutils cpp gcc gcc-c++ linux-headers-$(uname -r) make psmisc kernel-source kernel-sym
août 03, 2009
Bjour. Merci de réagir.
cette commande a bien été exécutéé. C’était un problème d’incompatibilité entre la version du kernel et les modules vmmon. J’ai donc fais une mise à jour de ma version de vmware. Il se trouve que j’ai un autre problème.
Après avoir installé vmware server. Lorsque je veux installer une machine virtuelle. Un message apparait m’informant que mon serveur vmware est très occupé et ne peut être join. Or j’ai un PIV 2.6 GHz 1Go de RAM pour 20 Go d’espace libre sur la partition d’OpenSUSE. Je ne comprends pas pourquoi.
J’ai reinstallé ma distribution d’OpenSuSE et cette fois même après mise à jour de vmware server Le precedent message donc j’ai parlé la première fois reviens.
Je ne sais donc plus si décidement ma distribution d’openSUSE est instable.
Aidez moi s’il vous plait.
août 20, 2009
je n’arrive pas à faire communiquer les addresse ip entre la machine virtuelle vmware et la machine réelle je veux sqvoir ce qu’il faut faire
merci de me repondre
déc 25, 2011
Merci pour le tuto !
En complément:
http://syskb.com/creer-une-machine-virtuelle-sur-vmware-server/
@+