Vmware server 2.0 sur hôte OpenSuse 11.1 64 bits

Publié le avril 26, 2009

 

vmwareDans 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 :

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.

Tags: , , , , , ,

6 Responses to “Vmware server 2.0 sur hôte OpenSuse 11.1 64 bits”

  1. Tinez KAMGA
    juil 27, 2009
    Reply

    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


  2. Tinez KAMGA
    juil 27, 2009
    Reply

    C’est toujours Tinez KAMGA. Au cas où j’ai d’autres infos je vous les envoie

    Merci de m’aider


  3. dominique
    août 03, 2009
    Reply

    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


  4. Tinez KAMGA
    août 03, 2009
    Reply

    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.


  5. philippe owona
    août 20, 2009
    Reply

    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


  6. hatmos
    déc 25, 2011
    Reply

    Merci pour le tuto !

    En complément:

    http://syskb.com/creer-une-machine-virtuelle-sur-vmware-server/

    @+



Laissez un commentaire

Navigation

Categories
  •  Technique (37)
  •  Lucene / Solr (22)
  •  Moteur de recherche (19)
  •  Sites à découvrir (12)
  •  Web 2.0 (12)
  •  Productivité (11)
  •  Debian (7)
  •  Web (7)
  •  Flux RSS (6)
  •  Wordpress (4)
  •  Hébergement (3)
  •  Non classé (3)
  •  Freelance (2)
  •  Mac OS (2)
  •  MongoDB (2)
  •  Référencement (2)
  •  vmware (2)
  •  PHP (1)
  •  Réseaux (1)
  •  ezPublish (1)
  • Tags
  •  Solr (15)
  •  Lucene / Solr (11)
  •  Wordpress (6)
  •  RSS (5)
  •  java (5)
  •  tomcat (5)
  •  Debian (4)
  •  vmware (4)
  •  Crawler (3)
  •  OPML (3)
  •  PHP (3)
  •  Plugins (3)
  •  git (3)
  •  mercurial (3)
  •  Crossfeeds (2)
  •  apt (2)
  •  mongodb (2)
  •  moteur de recherche (2)
  •  mysql (2)
  •  svn (2)
  •  Agrégateur (1)
  •  Bitbucket (1)
  •  CAS (1)
  •  Debugbar (1)
  •  ESXi (1)
  •  Emilie Ogez (1)
  •  Fast (1)
  •  Firebug (1)
  •  Firefox (1)
  •  Flux RSS (1)
  •  Freelance (1)
  •  Google Chrome (1)
  •  Huridocs (1)
  •  Hurisearch (1)
  •  IE (1)
  •  IETester (1)
  •  Migration Day 2008 (1)
  •  Ogez (1)
  •  Poll (1)
  •  Référencement (1)
  •  SEO (1)
  •  Savoirs en réseau (1)
  •  Sondage (1)
  •  SurveyGizmo (1)
  •  WP-Poll (1)
  •  aiderss (1)
  •  ant (1)
  •  apache (1)
  •  aptitude (1)
  •  backup (1)
  •  bande passante (1)
  •  base de registre (1)
  •  catégorie (1)
  •  configuration (1)
  •  curl (1)
  •  dell (1)
  •  detection langue (1)
  •  dojo (1)
  •  débit (1)
  •  etch (1)
  •  extjs (1)
  •  ezfind (1)
  •  ezpublish (1)
  •  framwork (1)
  •  gateway (1)
  •  google (1)
  •  hg (1)
  •  hosted (1)
  •  hosting (1)
  •  iis (1)
  •  indeed (1)
  •  javascript (1)
  •  jdk (1)
  •  jquery (1)
  •  log (1)
  •  magpie (1)
  •  mamp (1)
  •  mg4j (1)
  •  mod_auth_cas (1)
  •  mod_cas (1)
  •  mootools (1)
  •  morphologique (1)
  •  n-gram (1)
  •  ngp (1)
  •  ngram (1)
  •  ngramj (1)
  •  nightly build (1)
  •  nuage de tags (1)
  •  openSSL (1)
  •  openSUSE (1)
  •  optimisation (1)
  •  pagerank (1)
  •  patch (1)
  •  performances (1)
  •  perl (1)
  •  phpCAS (1)
  •  ping (1)
  •  pipeline (1)
  •  podcast (1)
  •  presse-papier (1)