Chapitre 23. Virtualisation

This translation may be out of date. To help with the translations please access the FreeBSD translations instance.

23.1. Synopsis

Un logiciel de virtualisation permet l’exécution simultanée de plusieurs systèmes d’exploitation sur la même machine. De tels logiciels pour PCs impliquent l’utilisation d’un système d’exploitation hôte qui exécute le logiciel de virtualisation et qui supporte un certain nombre de systèmes d’exploitation invités.

Après avoir lu ce chapitre, vous connaîtrez:

  • La différence entre un système d’exploitation hôte et un système d’exploitation invité.

  • Comment installer FreeBSD sur un ordinateur Apple® Macintosh® à base Intel®.

  • Comment installer FreeBSD sur Linux® avec Xen™.

  • Comment installer FreeBSD sur Microsoft® Windows® avec Virtual PC.

  • Comment optimiser un système FreeBSD pour obtenir les meilleures performances en virtualisation.

Avant de lire ce chapitre, vous devrez

23.2. FreeBSD comme système d’exploitation invité

23.2.1. Parallels sur Mac OS®

Parallels Desktop pour Mac® est un logiciel commercial pour les ordinateurs Apple® Mac® à base Intel® tournant sous Mac OS® 10.4.6 our versions supérieures. FreeBSD est totalement supporté en tant que système d’exploitation invité. Une fois que Parallels a été installé sur Mac OS® X, l’utilisateur doit configurer une machine virtuelle et installer le système d’exploitation invité qu’il désire.

23.2.1.1. Installer FreeBSD sur Parallels/Mac OS® X

La première étape pour installer FreeBSD sur Mac OS® X/Parallels est de créer une machine virtuelle pour l’installation de FreeBSD. Sélectionnez FreeBSD comme Système d’exploitation invité quand on vous le demandera:

parallels freebsd1

Et choisissez une taille de disque dur et de mémoire vive en fonction de l’utilisation que vous projetez pour votre FreeBSD virtuel. 4Go de disque et 512Mo de RAM conviennent pour la plupart des utilisations de FreeBSD sous Parallels:

parallels freebsd2
parallels freebsd3
parallels freebsd4
parallels freebsd5

Sélectionnez le type de réseau et une carte réseau:

parallels freebsd6
parallels freebsd7

Sauvegardez et achevez la configuration:

parallels freebsd8
parallels freebsd9

Une fois votre machine virtuelle créée, vous devrez y installer FreeBSD. Le meilleur moyen est d’utiliser un CDROM FreeBSD officiel ou une image ISO récupérée sur un site FTP officiel. Quand vous avez l’image ISO adéquate sur votre système de fichiers Mac® ou un CDROM dans le lecteur de CD du Mac®, cliquez sur l’icône disque située dans le coin droit en bas de votre fenêtre Parallels. Une fenêtre s’ouvrira pour vous permettre d’associer le lecteur de CDROM de votre machine virtuelle avec un fichier ISO ou le véritable lecteur de CDROM de votre ordinateur.

parallels freebsd11

Dès que vous avez effectué cette association, redémarrez votre machine virtuelle FreeBSD en cliquant sur l’icône de redémarrage. Parallels redémarrera avec un BIOS particulier qui vérifiera si vous disposez d’un CDROM tout comme le ferait un BIOS classique.

parallels freebsd10

Dans notre cas il trouvera le disque d’installation de FreeBSD et lancera une installation normale avec sysinstall comme décrit dans le Installer FreeBSD. Vous pouvez installer X11 mais ne tentez pas de le configurer pour le moment.

parallels freebsd12

Quand l’installation est terminée, redémarrez votre machine virtuelle FreeBSD.

parallels freebsd13

23.2.1.2. Configurer FreeBSD sur Mac OS® X/Parallels

Après avoir installé avec succès FreeBSD sur Mac OS® X avec Parallels, il reste plusieurs points à configurer pour optimiser le système virtuel.

  1. Paramétrer les variables du chargeur

    L’étape la plus importante est la diminution du paramètre kern.hz afin de réduire l’utilisation du CPU de FreeBSD sous l’environnement Parallels. Pour cela, il faut ajouter la ligne suivante au fichier /boot/loader.conf:

    kern.hz=100

    Sans ce paramétrage, un système d’exploitation invité FreeBSD inactif sous Parallels utilisera environ 15% du CPU sur un iMac® à mono-processeur. Après ce changement l’utilisation du processeur sera plus proche d’un petit 5%.

  2. Créer un nouveau fichier de configuration du noyau

    Vous pouvez retirer tous les pilotes de périphériques SCSI, FireWire et USB. Parallels fournit une carte réseau virtuelle utilisant le pilote ed(4), aussi tous les autres pilotes réseau exceptés ed(4) et miibus(4) peuvent être retirés du noyau.

  3. Configuration du réseau

    La configuration réseau la plus simple utilise DHCP pour connecter votre machine virtuelle sur le même réseau local que votre machine Mac® hôte. Cette configuration se fait en ajoutant la ligne ifconfig_ed0="DHCP" au fichier /etc/rc.conf. Des configurations réseau plus avancées sont décrites dans le Administration réseau avancée.

23.2.2. FreeBSD avec Xen™ sur Linux

L’hyperviseur Xen™ est un logiciel libre de para-virtualisation qui est supporté par l’entreprise commerciale XenSource. Les systèmes d’exploitation invités sont appelés domaines domU, et le système d’exploitation hôte est appelé dom0. La première étape pour faire tourner un FreeBSD virtuel sous Linux® est d’installer Xen™ pour le domaine dom0 Linux®. Le système d’exploitation hôte sera une distribution Linux® Slackware.

23.2.2.1. Configuration de Xen™ 3 sur un dom0 Linux®

  1. Télécharger Xen™ 3.0 auprès de XenSource

    Récupérez l’archive xen-3.0.4_1-src.tgz auprès de http://www.xensource.com/.

  2. Extraire l’archive

    # cd xen-3.0.4_1-src
    # KERNELS="linux-2.6-xen0 linux-2.6-xenU" make world
    # make install

    Pour recompiler le noyau pour le domaine dom0:

    # cd xen-3.0.4_1-src/linux-2.6.16.33-xen0
      # make menuconfig
      # make
      # make install

    D’anciennes versions de Xen™ peuvent nécessiter l’utilisation de la commande make ARCH=xen menuconfig

  3. Ajouter une entrée au menu de Grub (menu.lst)

    Editez /boot/grub/menu.lst et ajoutez les lignes suivantes:

    title Xen-3.0.4
    root (hd0,0)
    kernel /boot/xen-3.0.4-1.gz dom0_mem=262144
    module /boot/vmlinuz-2.6.16.33-xen0 root=/dev/hda1 ro
  4. Redémarrer votre ordinateur sous Xen™

    Tout d’abord, éditez /etc/xen/xend-config.sxp, et ajoutez la ligne suivante:

    (network-script 'network-bridge netdev=eth0')

    Nous pouvons maintenant lancer Xen™:

    # /etc/init.d/xend start
    # /etc/init.d/xendomains start

    Notre domaine dom0 fonctionne:

    # xm list
    Name                                      ID   Mem VCPUs      State   Time(s)
    Domain-0                                   0   256     1     r-----  54452.9

23.2.2.2. Domaine domU FreeBSD 7-CURRENT

Téléchargez le noyau pour domU FreeBSD pour Xen™ 3.0 et l’image disque auprès de http://www.fsmware.com/

Placez le fichier de configuration xmexample1.bsd dans le répertoire /etc/xen/ et modifiez les entrées relatives à l’emplacement du noyau et de l’image disque. Cela devrait donner quelque chose comme:

kernel = "/opt/kernel-current"
memory = 256
name = "freebsd"
vif = [ '' ]
disk = [ 'file:/opt/mdroot-7.0,hda1,w' ]
#on_crash    = 'preserve'
extra = "boot_verbose"
extra += ",boot_single"
extra += ",kern.hz=100"
extra += ",vfs.root.mountfrom=ufs:/dev/xbd769a"

Le fichier mdroot-7.0.bz2 doit être décompressé.

Ensuite, la section __xen_guest du fichier kernel-current doit être modifiée pour y ajouter le paramètre VIRT_BASE dont a besoin Xen™ 3.0.3:

# objcopy kernel-current -R __xen_guest
# perl -e 'print "LOADER=generic,GUEST_OS=freebsd,GUEST_VER=7.0,XEN_VER=xen-3.0,BSD_SYMTAB,VIRT_BASE=0xC0000000\x00"' > tmp
# objcopy kernel-current --add-section __xen_guest=tmp
# objdump -j __xen_guest -s kernel-current

kernel-current:     file format elf32-i386

Contents of section __xen_guest:
 0000 4c4f4144 45523d67 656e6572 69632c47  LOADER=generic,G
 0010 55455354 5f4f533d 66726565 6273642c  UEST_OS=freebsd,
 0020 47554553 545f5645 523d372e 302c5845  GUEST_VER=7.0,XE
 0030 4e5f5645 523d7865 6e2d332e 302c4253  N_VER=xen-3.0,BS
 0040 445f5359 4d544142 2c564952 545f4241  D_SYMTAB,VIRT_BA
 0050 53453d30 78433030 30303030 3000      SE=0xC0000000.

Nous sommes maintenant prêt à créer et lancer notre domU:

# xm create /etc/xen/xmexample1.bsd -c
Using config file "/etc/xen/xmexample1.bsd".
Started domain freebsd
WARNING: loader(8) metadata is missing!
Copyright (c) 1992-2006 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 7.0-CURRENT #113: Wed Jan  4 06:25:43 UTC 2006
    kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF
WARNING: DIAGNOSTIC option enabled, expect reduced performance.
Xen reported: 1796.927 MHz processor.
Timecounter "ixen" frequency 1796927000 Hz quality 0
CPU: Intel(R) Pentium(R) 4 CPU 1.80GHz (1796.93-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf29  Stepping = 9
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,
  DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x4400<CNTX-ID,<b14>>
real memory  = 265244672 (252 MB)
avail memory = 255963136 (244 MB)
xc0: <Xen Console> on motherboard
cpu0 on motherboard
Timecounters tick every 10.000 msec
[XEN] Initialising virtual ethernet driver.
xn0: Ethernet address: 00:16:3e:6b:de:3a
[XEN]
Trying to mount root from ufs:/dev/xbd769a
WARNING: / was not properly dismounted
Loading configuration files.
No suitable dump device was found.
Entropy harvesting: interrupts ethernet point_to_point kickstart.
Starting file system checks:
/dev/xbd769a: 18859 files, 140370 used, 113473 free (10769 frags, 12838 blocks, 4.2% fragmentation)
Setting hostname: demo.freebsd.org.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
	  inet6 ::1 prefixlen 128
	  inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
	  inet 127.0.0.1 netmask 0xff000000
Additional routing options:.
Mounting NFS file systems:.
Starting syslogd.
/etc/rc: WARNING: Dump device does not exist.  Savecore not run.
ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib
a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout
Starting usbd.
usb: Kernel module not available: No such file or directory
Starting local daemons:.
Updating motd.
Starting sshd.
Initial i386 initialization:.
Additional ABI support: linux.
Starting cron.
Local package initialization:.
Additional TCP options:.
Starting background file system checks in 60 seconds.

Sun Apr  1 02:11:43 UTC 2007

FreeBSD/i386 (demo.freebsd.org) (xc0)

login:

Le domaine domU devrait exécuter le noyau FreeBSD 7.0-CURRENT:

# uname -a
FreeBSD demo.freebsd.org 7.0-CURRENT FreeBSD 7.0-CURRENT #113: Wed Jan  4 06:25:43 UTC 2006
kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF  i386

Le réseau peut maintenant être configuré sur le domaine domU. Le domaine domU FreeBSD utilisera une interface spécifique appelée xn0:

# ifconfig xn0 10.10.10.200 netmask 255.0.0.0
# ifconfig
xn0: flags=843<UP,BROADCAST,RUNNING,SIMPLEX> mtu 1500
    inet 10.10.10.200 netmask 0xff000000 broadcast 10.255.255.255
    ether 00:16:3e:6b:de:3a
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
      inet6 ::1 prefixlen 128
      inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
      inet 127.0.0.1 netmask 0xff000000

Sur le domaine dom0 Slackware, des interfaces réseaux relatives à Xen™ devraient apparaître:

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:07:E9:A0:02:C2
          inet addr:10.10.10.130  Bcast:0.0.0.0  Mask:255.0.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:815 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1400 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:204857 (200.0 KiB)  TX bytes:129915 (126.8 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:99 errors:0 dropped:0 overruns:0 frame:0
          TX packets:99 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:9744 (9.5 KiB)  TX bytes:9744 (9.5 KiB)

peth0     Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
          RX packets:1853349 errors:0 dropped:0 overruns:0 frame:0
          TX packets:952923 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2432115831 (2.2 GiB)  TX bytes:86528526 (82.5 MiB)
          Base address:0xc000 Memory:ef020000-ef040000

vif0.1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
          RX packets:1400 errors:0 dropped:0 overruns:0 frame:0
          TX packets:815 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:129915 (126.8 KiB)  TX bytes:204857 (200.0 KiB)

vif1.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
          RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:157 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:140 (140.0 b)  TX bytes:158 (158.0 b)

xenbr1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:112 (112.0 b)  TX bytes:0 (0.0 b)
# brctl show
bridge name     bridge id           STP enabled         interfaces
xenbr1          8000.feffffffffff   no                  vif0.1
                                                        peth0
                                                        vif1.0

23.2.3. Virtual PC sur Windows®

Virtual PC pour Windows® est un logiciel Microsoft® librement téléchargeable. Consultez la page concernant la configuration minimale requise. Une fois Virtual PC installé sous Microsoft® Windows®, l’utilisateur doit configurer une machine virtuelle puis installer le système d’exploitation invité désiré.

23.2.3.1. Installer FreeBSD sous Virtual PC/Microsoft® Windows®

La première étape de l’installation de FreeBSD sous Microsoft® Windows®/Virtual PC est la création d’une nouvelle machine virtuelle pour permettre l’installation de FreeBSD. Sélectionnez Create a virtual machine:

virtualpc freebsd1
virtualpc freebsd2

Puis sélectionnez Other pour Operating system:

virtualpc freebsd3

Choisissez ensuite une quantité raisonnable d’espace disque et de mémoire en fonction de vos projets pour cette installation de FreeBSD. 4Go d’espace de disque et 512Mo de mémoire vive conviennent pour la plupart des utilisateurs de FreeBSD sous Virtual PC:

virtualpc freebsd4
virtualpc freebsd5

Sauvegardez et poursuivez la configuration:

virtualpc freebsd6

Sélectionnez votre machine virtuelle FreeBSD, cliquez sur Settings, puis précisez le type de réseau et l’interface réseau:

virtualpc freebsd7
virtualpc freebsd8

Une fois votre machine virtuelle FreeBSD créée, vous devrez y installer FreeBSD. La meilleure manière étant d’utiliser un CDROM FreeBSD officiel ou une image ISO téléchargée depuis un site FTP officiel. Quand vous avez l’image ISO appropriée sur votre système de fichiers Windows® ou sur un CDROM dans votre lecteur de CD, double-cliquez sur votre machine virtuelle FreeBSD pour démarrer. Puis cliquez sur CD et sélectionnez Capture ISO Image…​ dans la fenêtre Virtual PC. Une fenêtre apparaîtra et vous permettra d’associer le lecteur de CDROM de votre machine virtuelle avec une image ISO ou votre lecteur de CDROM réel.

virtualpc freebsd9
virtualpc freebsd10

L’association avec votre CDROM source effectuée, redémarrez votre machine virtuelle FreeBSD en cliquant sur Action puis sur Reset. Virtual PC redémarrera, son BIOS vérifiera tout d’abord que vous disposez d’un CDROM comme le ferait n’importe quel BIOS normal.

virtualpc freebsd11

Dans ce cas, le support d’installation FreeBSD sera trouvé et une installation classique basée sur sysinstall débutera comme décrit dans le Installer FreeBSD. Vous pouvez installez X11 mais ne tentez pas pour le moment de le configurer.

virtualpc freebsd12

Quand vous avez achevé l’installation, pensez à éjecter le CDROM ou l’image ISO. Enfin, redémarrez dans votre machine virtuelle FreeBSD fraîchement installée.

virtualpc freebsd13

23.2.3.2. Configuration de FreeBSD sous Microsoft® Windows®/Virtual PC

Après avoir installé avec succès FreeBSD sur Microsoft® Windows® avec Virtual PC, il reste plusieurs points à configurer pour optimiser le système virtuel.

  1. Paramétrer les variables du chargeur

    L’étape la plus importante est la diminution du paramètre kern.hz afin de réduire l’utilisation du CPU de FreeBSD sous l’environnement Virtual PC. Pour cela, il faut ajouter la ligne suivante au fichier /boot/loader.conf:

    kern.hz=100

    Sans ce paramétrage, un système d’exploitation invité FreeBSD inactif sous Virtual PC utilisera environ 40% du CPU pour un micro-ordinateur monoprocesseur. Après ce changement l’utilisation du processeur sera plus proche d’un petit 3%.

  2. Créer un nouveau fichier de configuration du noyau

    Vous pouvez retirer tous les pilotes de périphériques SCSI, FireWire, et USB. Virtual PC fournit une interface réseau virtuelle utilisant le pilote de(4), aussi tous les autres pilotes réseau en dehors de de(4) et miibus(4) peuvent être supprimés du noyau.

  3. Configuration du réseau

    La configuration réseau la plus simple utilise DHCP pour connecter votre machine virtuelle sur le même réseau local que votre machine Mac® hôte. Cette configuration se fait en ajoutant la ligne ifconfig_de0="DHCP" au fichier /etc/rc.conf. Des configurations réseau plus avancées sont présentées dans le Administration réseau avancée.

23.2.4. VMware sur Windows®/Mac®/Linux®

Cette section n’est pas encore écrite.

23.3. FreeBSD comme système d’exploitation hôte

Actuellement, FreeBSD en tant que système d’exploitation hôte n’est officiellement supporté par aucun logiciel de virtualisation, de nombreuses personnes utilisent d’anciennes versions de VMware pour cela. Des efforts sont actuellement déployés pour faire fonctionner Xen™ en tant qu’environnement hôte sur FreeBSD.


Last modified on: 9 mars 2024 by Danilo G. Baio