Hoofdstuk 22. Virtualisatie

22.1. Overzicht

Virtualisatiesoftware maakt het mogelijk om meerdere besturingssystemen gelijktijdig op dezelfde computer te draaien. Zulke softwaresystemen voor PC’s gebruiken vaak een gastheer-besturingssysteem dat de virtualisatiesoftware draait en dat elk aantal gast-besturingssystemen ondersteunt.

Aan het einde van dit hoofdstuk weet de lezer:

  • Het verschil tussen een gastheer-besturingssysteem en een gast-besturingssysteem.

  • Hoe FreeBSD op een Intel®-gebaseerde Apple® Macintosh® computer te installeren.

  • Hoe FreeBSD op Microsoft® Windows® te installeren met Virtual PC.

  • Hoe een FreeBSD-systeem in te stellen voor de beste prestaties tijdens virtualisatie.

Voor het lezen van dit hoofdstuk, dient de lezer:

22.2. FreeBSD als een gast-besturingssysteem

22.2.1. Parallels op Mac OS®

Parallels Desktop voor Mac OS® is een commercieel softwareprodukt voor Intel®-gebaseerde Apple® Mac® computers die Mac OS® 10.4.6 of nieuwer draaien. FreeBSD is een volledig ondersteund gast-besturingssysteem. Nadat Parallels is geïnstalleerd op Mac OS® X dient de gebruiker een virtuele machine in te stellen en daarna het gewenste gast-besturingssysteem te installeren.

22.2.1.1. FreeBSD installeren op Parallels/Mac OS® X

De eerste stap in het installeren van FreeBSD op Mac OS® X Parallels is het aanmaken van een nieuwe virtuele machine voor het installeren van FreeBSD. Selecteer FreeBSD als het Guest OS Type wanneer dit gevraagd wordt:

parallels freebsd1

Kies verder een hoeveelheid aan schijf- en geheugenruimte afhankelijk van de plannen voor deze virtuele instantie van FreeBSD. 4GB aan schijfruimte en 512MB aan RAM werken goed voor de meeste gebruikers van FreeBSD onder Parallels:

parallels freebsd2
parallels freebsd3
parallels freebsd4
parallels freebsd5

Selecteer het type netwerk en een netwerkinterface:

parallels freebsd6
parallels freebsd7

Bewaar de instellingen en sluit af:

parallels freebsd8
parallels freebsd9

Nadat de virtuele FreeBSD-machine is aangemaakt, dient er FreeBSD op geïnstalleerd te worden. Dit gaat het beste met een officiële FreeBSD CDROM of met een ISO-beeld dat is gedownload van een officiële FTP-site. Wanneer het juiste ISO-beeld op het plaatselijke Mac®-bestandssysteem of een CDROM in de CD-drive van de Mac® aanwezig is, dient op het schijfikoon in de rechteronderhoek van het FreeBSD Parallels-scherm geklikt te worden. Dit zal een scherm tonen dat het mogelijk maakt om de CDROM-drive in de virtuele machine te associëren met een ISO-bestand op schijf of met een echte CDROM-drive.

parallels freebsd11

Nadat deze associatie met de CDROM-bron is gemaakt, dient de virtuele FreeBSD-machine herstart te worden door op het herstart-icoon te klikken. Parallels zal herstarten met een speciale BIOS dat eerst controleert of er een CDROM aanwezig is, net zoals een normale BIOS zou doen.

parallels freebsd10

In dit geval zal het de installatiemedia van FreeBSD vinden en een normale installatie gebaseerd op sysinstall beginnen zoals beschreven in FreeBSD installeren op FreeBSD 8.X en eerder. X11 kan nu geïnstalleerd, maar nog niet ingesteld, worden.

parallels freebsd12

Nadat de installatie is voltooid, kan naar de nieuw geïnstalleerde virtuele FreeBSD-machine herstart worden.

parallels freebsd13

22.2.1.2. FreeBSD instellen op Mac OS® X/Parallels

Nadat FreeBSD succesvol op Mac OS® X met Parallels is geïnstalleerd, zijn er een aantal instellingen die gewijzigd kunnen worden om het systeem voor virtuele werking te optimaliseren.

  1. De variabelen voor de bootloader instellen

    De belangrijkste stap is om de tunable kern.hz te verlagen om het CPU-gebruik van FreeBSD onder de Parallels-omgeving te verminderen. Dit kan bereikt worden door de volgende regel aan /boot/loader.conf toe te voegen:

    kern.hz=100

    Zonder deze instelling zal een rustend FreeBSD Parallels gast-besturingssysteem ongeveer 15% van de CPU van een enkele iMac®-processor gebruiken. Na deze wijziging zal het gebruik slechts ongeveer 5% zijn.

  2. Een nieuw instellingenbestand voor de kernel aanmaken

    Alle stuurprogramma’s voor SCSI, FireWire, en USB kunnen verwijderd worden. Parallels biedt een virtuele netwerkadapter die door het stuurpogramma ed(4) wordt gebruikt, dus kunnen alle andere netwerkapparaten behalve ed(4) en miibus(4) uit de kernel verwijderd worden.

  3. Het netwerk instellen

    De eenvoudigste netwerkinstallatie omvat het gebruik van DHCP om de virtuele machine met hetzelfde LAN te verbinden als het Mac®-gastheer. Dit kan bereikt worden door ifconfig_ed0="DHCP" aan /etc/rc.conf toe te voegen. Meer geavanceerde netwerkinstallaties staan beschreven in Netwerken voor gevorderden.

22.2.2. Virtual PC op Windows®

Virtual PC voor Windows® is een softwareprodukt van Microsoft® dat gratis gedownload kan worden . Zie systeemeisen. Nadat Virtual PC is geïnstalleerd op Microsoft® Windows®, dient de gebruiker een virtuele machine in te stellen en daarna het gewenste gast-besturingssysteem te installeren.

22.2.2.1. FreeBSD installeren op Virtual PC/Microsoft® Windows®

De eerste stap in het installeren van FreeBSD op Microsoft® Windows®/Virtual PC is het aanmaken van een nieuwe virtuele machine voor het installeren van FreeBSD. Kies Create a virtual machine wanneer daarom wordt gevraagd:

virtualpc freebsd1
virtualpc freebsd2

Selecteer Other als het Operating system wanneer dat gevraagd wordt:

virtualpc freebsd3

Kies vervolgens een gepaste hoeveelheid aan schijf- en geheugenruimte afhankelijk van de plannen voor deze virtuele instantie van FreeBSD. 4GB aan schijfruimte en 512MB aan RAM werken goed voor de meeste gebruikers van FreeBSD onder Virtual PC:

virtualpc freebsd4
virtualpc freebsd5

Bewaar de instellingen en sluit ze af:

virtualpc freebsd6

Selecteer de virtuele FreeBSD-machine en klik op Settings, stel daarna het type netwerk en een netwerkinterface in:

virtualpc freebsd7
virtualpc freebsd8

Nadat de virtuele FreeBSD-machine is aangemaakt, dient FreeBSD erop geïnstalleerd te worden. Dit gaat het beste met een officiële FreeBSD-CDROM of met een ISO-beeld dat van een officiële FTP-site is gedownload. Wanneer het juiste ISO-beeld op het lokale bestandssysteem van Windows® staat of er een CDROM in de CD-drive zit, dubbelklik dan op de virtuele FreeBSD-machine om op te starten. Klik daarna op CD en kies menu:Capture ISO Image…​ [] in het venster van Virtual PC . Dit toont een scherm dat het mogelijk maakt om de CDROM-drive in de virtuele machine te associëren met een ISO-bestand op schijf of met een echte CDROM-drive.

virtualpc freebsd9
virtualpc freebsd10

Start, nadat deze associatie met de CDROM-bron is gemaakt, de virtuele FreeBSD-machine opnieuw op zoals gewoonlijk door op Action en Reset te klikken. Virtual PC zal herstarten met een speciale BIOS dat eerst controleert of er een CDROM aanwezig is, net zoals eeen normale BIOS dat zou doen.

virtualpc freebsd11

In dit geval zal het de installatiemedia van FreeBSD vinden en een normale installatie gebaseerd op sysinstall beginnen zoals beschreven in FreeBSD installeren op FreeBSD 8.X en eerder. X11 kan nu geïnstalleerd, maar nog niet ingesteld, worden.

virtualpc freebsd12

Denk eraan om de CDROM of het ISO-beeld te verwijderen nadat de installatie voltooid is. Start als laatste op naar de nieuw geïnstalleerde virtuele FreeBSD-machine.

virtualpc freebsd13

22.2.2.2. FreeBSD instellen op Microsoft® Windows®/Virtual PC

Nadat FreeBSD succesvol is geïnstalleerd op Microsoft® Windows® met Virtual PC zijn er een aantal instellingen die aangepast kunnen worden om het system te optimaliseren voor virtueel gebruik.

  1. De variabelen voor de bootloader instellen

    De belangrijkste stap is om de tunable kern.hz te verlagen om zo het CPU-gebruik van FreeBSD in de omgeving van Virtual PC te verminderen. Dit kan bereikt worden door de volgende regel aan /boot/loader.conf toe te voegen:

    kern.hz=100

    Zonder deze instelling zal een FreeBSD als gast-besturingssysteem voor Virtual PC in rust ongeveer 40% van de CPU van een computer met een enkele processor gebruiken. Na deze verandering zal het gebruik slechts rond de 3% liggen.

  2. Een nieuw instellingenbestand voor de kernel aanmaken

    Alle stuurprogramma’s voor SCSI, FireWire, en USB kunnen verwijderd worden. Virtual PC beidt een virtuele netwerkadapter dat door het stuurprogramma de(4) gebruikt wordt, dus kunnen alle netwerkapparaten behalve de(4) en miibus(4) uit de kernel verwijderd worden.

  3. Het netwerk instellen

    De eenvoudigste netwerkinstallatie omvat het gebruik van DHCP om de virtuele machine met het zelfde LAN te verbinden als de Microsoft® Windows®-gastheer. Dit kan bereikt worden door ifconfig_de0="DHCP" toe te voegen aan /etc/rc.conf. Geavanceerdere netwerkinstallaties staan beschreven in Netwerken voor gevorderden.

22.2.3. VMware op Mac OS®

VMware Fusion voor Mac® is een comercieel softwareprodukt beschikbaar voor op Intel® gebaseeerde Mac®-computers die Mac OS® 10.4.9 of nieuwer draaien. FreeBSD is een volledig ondersteund gast-besturingssysteem. Nadat VMware Fusion is geïnstalleerd op Mac OS® X dient de gebruiker een virtuele machine in te stellen en daarna het gewenste gast-besturingssysteem te installeren.

22.2.3.1. FreeBSD installeren op VMware/Mac OS® X

De eerste stap is om VMware Fusion te laden, de Virtual Machine Library zal geladen worden. Klik op "New" om de VM aan te maken:

vmware freebsd01

Dit laadt de New Virtual Machine Assistant dat helpt om de VM aan te maken, klik op Continue om verder te gaan:

vmware freebsd02

Selecteer Other als het Operating System en FreeBSD of FreeBSD 64-bit, afhankelijk van de wens voor ondersteuning voor 64-bit, als de Version wanneer dat gevraagd wordt:

vmware freebsd03

Kies de naam van het VM-beeld en de map waarin het bewaard dient te worden:

vmware freebsd04

Kies de grootte van de virtuele harde schijf voor de VM:

vmware freebsd05

Kies de manier om de VM te installeren, van een ISO-beeld of van een CD:

vmware freebsd06

Nadat op Finish is geklikt, zal de VM opstarten:

vmware freebsd07

Installeer FreeBSD zoals gewoonlijk, of door de aanwijzingen in FreeBSD installeren op FreeBSD 8.X en eerder op te volgen:

vmware freebsd08

Nadat de installatie voltooid is kunnen de instellingen van de VM aangepast worden, zoals het geheugengebruik:

De instellingen van de systeemhardware van de VM kunnen niet veranderd worden zolang de VM draait.

vmware freebsd09

Het aantal CPU’s waartoe de VM toegang heeft:

vmware freebsd10

De status van het CD-ROM-apparaat. Gewoonlijk kan de CD-ROM of het ISO-beeld van de VM worden losgekoppeld wanneer het niet meer nodig is.

vmware freebsd11

Het laatste om te veranderen is de manier waarop de VM verbinding met het netwerk maakt. Indien verbindingen naar de VM van andere machines naast de gastheer gewenst zijn, dient Connect directly to the physical network (Bridged) gekozen te worden. In andere situaties is Share the host’s internet connection (NAT) te verkiezen, zodat de VM toegang kan hebben tot het Internet, maar dat het netwerk geen toegang heeft tot de VM.

vmware freebsd12

Herstart de nieuw geïnstalleerde virtuele FreeBSD-machine nadat alle instellingen zijn aangepast.

22.2.3.2. FreeBSD instellen op Mac OS® X/VMware

Nadat FreeBSD succesvol is geïnstalleerd op Mac OS® X met VMware, zijn er een aantal instellingen die gewijzigd kunnen worden op het systeem te optimaliseren voor virtueel gebruik.

  1. De variabelen voor de bootloader instellen

    De belangrijkste stap is het verlagen van de tunable kern.hz om het CPU-gebruik van FreeBSD in de omgeving van VMware te verminderen. Dit kan bereikt worden door de volgende regel aan /boot/loader.conf toe te voegen:

    kern.hz=100

    Zonder deze instelling gebruikt FreeBSD als VMware gast-besturingssysteem ongeveer 15% van de CPU van een enkele iMac®-processor. Na deze verandering zal het gebruik dichter bij 5% liggen.

  2. Een nieuw instellingenbestand voor de kernel aanmaken

    Alle stuurprogramma’s voor FireWire en USB kunnen verwijderd worden. VMware biedt een virtuele netwerkadapter dat door het stuurpogramma em(4) gebruikt wordt, dus alle netwerkapparaten behalve em(4) kunnen uit de kernel verwijderd worden.

  3. Het netwerk instellen

    De eenvoudigste netwerkinstallatie omvat het gebruik van DHCP om de virtuele machine met hetzelfde LAN te verbinden als de Mac®-gastheer. Dit kan bereikt worden door ifconfig_em0="DHCP" toe te voegen aan /etc/rc.conf. Geavanceerdere netwerkinstallaties staan beschreven in Netwerken voor gevorderden.

22.2.4. VirtualBox™ gasttoevoegingen op een FreeBSD-gast

De gasttoevoegingen van VirtualBox™ bieden ondersteuning voor:

  • Het delen van het prikbord

  • Integratie van de muiscursor

  • Synchronisatie met de tijd van de gastheer

  • Het schalen van vensters

  • Naadloze modus

De volgende commando’s worden gedraaid in de FreeBSD-gast.

Installeer ten eerste het pakket emulators/virtualbox-ose-additions in de FreeBSD-gast.

# cd /usr/ports/emulators/virtualbox-ose-additions && make install clean

Voeg deze regels toe aan /etc/rc.conf:

vboxguest_enable="YES"
vboxservice_enable="YES"

Als ntpd(8) of ntpdate(8) gebruikt, dient de synchronisatie met de tijd van de gastheer te worden uitgeschakeld:

vboxservice_flags="--disable-timesync"

De vboxvideo_drv zou herkend moeten worden door Xorg -configure. Als dit niet zo is, dient xorg.conf gewijzigd te worden voor de videokaart van VirtualBox™:

Section "Device"
	### Available Driver options are:-
	### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
	### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
	### [arg]: arg optional
	Identifier "Card0"
	Driver "vboxvideo"
	VendorName "InnoTek Systemberatung GmbH"
	BoardName "VirtualBox Graphics Adapter"
	BusID "PCI:0:2:0"
EndSection

Pas het gedeelte over de muis in xorg.conf aan om vboxmouse_drv te gebruiken:

Section "InputDevice"
	Identifier "Mouse0"
	Driver "vboxmouse"
EndSection

Gebruikers van HAL dienen dit bestand aan te maken als /usr/local/etc/hal/fdi/policy/90-vboxguest.fdi of het te kopiëren van /usr/local/hal/fdi/policy/10osvendor/90-vboxguest.fdi:

<?xml version="1.0" encoding="utf-8"?>
<!--
# Sun VirtualBox
# Hal driver description for the vboxmouse driver
# $Id$

       Copyright (C) 2008-2009 Sun Microsystems, Inc.

       This file is part of VirtualBox Open Source Edition (OSE, as
       available from http://www.virtualbox.org. This file is free software;
       you can redistribute it and/or modify it under the terms of the GNU
       General Public License (GPL) as published by the Free Software
       Foundation, in version 2 as it comes in the "COPYING" file of the
       VirtualBox OSE distribution. VirtualBox OSE is distributed in the
       hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.

       Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
       Clara, CA 95054 USA or visit http://www.sun.com if you need
       additional information or have any questions.
-->
<deviceinfo version="0.2">
  <device>
    <match key="info.subsystem" string="pci">
      <match key="info.product" string="VirtualBox guest Service">
	<append key="info.capabilities" type="strlist">input</append>
	<append key="info.capabilities" type="strlist">input.mouse</append>
	<merge key="input.x11_driver" type="string">vboxmouse</merge>
	<merge key="input.device" type="string">/dev/vboxguest</merge>
      </match>
    </match>
  </device>
</deviceinfo>

22.3. FreeBSD als een gastheer-besturingssysteem

Voor een aantal jaren werd FreeBSD niet officieel ondersteund als een gastheer-besturingssysteem door de beschikbare virtualisatiepakketten. Sommige mensen gebruikten oudere en meestal overbodige versies van VMware (zoals emulators/vmware3), die gebruik maakten van de Linux® binaire compatibiliteitslaag. Kort na de uitgave van FreeBSD 7.2 verscheen Suns VirtualBox™ in de Ports; Collectie als een programma dat voor FreeBSD zelf bedoeld is.

VirtualBox™ is een actief ontwikkeld en compleet virtualisatiepakket dat beschikbaar is voor de meeste besturingssystemen waaronder Windows®, Mac OS®, Linux® en FreeBSD. Het kan evengoed Windows® of UNIX® als gast draaien. Het is gerealiseerd als een open-source pakket met gesloten-source componenten beschikbaar in een apart uitbreidingspakket. Deze componenten bevatten onder andere ondersteuning voor USB-2.0-apparaten. Meer informatie kan gevonden worden op de pagina "Downloads" van de VirtualBox™-wiki op http://www.virtualbox.org/wiki/Downloads. Momenteel zijn deze uitbreidingen niet beschikbaar voor FreeBSD.

22.3.1. VirtualBox™ installeren

VirtualBox™ is beschikbaar als een FreeBSD-port in emulators/virtualbox-ose. Zorg ervoor, aangezien VirtualBox™ erg actief ontwikkeld wordt, dat uw ports bijgewerkt is voordat u met de installatie begint. Installeer het met deze commando’s:

# cd /usr/ports/emulators/virtualbox-ose
# make install clean

Een nuttige optie in het configuratiescherm is de verzameling GuestAdditions programma’s. Deze bieden een aantal nuttige mogelijkheden in gastbesturingssystemen, zoals integratie van de muiscursor (wat het mogelijk maakt om de muis te delen tussen de gast en de gastheer zonder dat er een speciale toetsencombinatie hoeft te worden gebruikt voor het omwisselen) en snellere video-rendering, met name in Windows®-gasten. De gastaanvullingen zijn beschikbaar in het menu Devices, nadat de installatie van het gastbesturingssysteem is voltooid.

Er zijn enkele aanpassingen aan de instellingen nodig voordat VirtualBox™ voor het eerst wordt gestart. De port installeert een kernelmodule in /boot/modules welke in de draaiende kernel geladen moet worden:

# kldload vboxdrv

Voeg de volgende regel toe aan /boot/loader.conf om er zeker van te zijn dat de module altijd na een herstart wordt geladen:

vboxdrv_load="YES"

Voeg het volgende aan /etc/rc.conf toe en herstart de computer om de kernelmodules te gebruiken die in gebridgede of gastheer-only netwerken voorzien:

vboxnet_enable="YES"

De groep vboxusers wordt tijdens de installatie van VirtualBox™ aangemaakt. Alle gebruikers die toegang tot VirtualBox™ nodig hebben moeten als lid van deze groep worden toegevoegd. Met het commando pw kunnen nieuwe leden worden toegevoegd:

# pw groupmod vboxusers -m uwgebruikersnaam

De standaardpermissies voor /dev/vboxnetctl zijn restrictief en moeten veranderd worden voor gebridged netwerken.

Om het tijdelijk te testen:

# chown root:vboxusers /dev/vboxnetctl
# chmod 0660 /dev/vboxnetctl

Voeg deze regels toe aan /etc/devfs.conf om de permissiewijziging permanent te maken:

own	vboxnetctl root:vboxusers
perm	vboxnetctl 0660

Gebruik de optie Sun VirtualBox van het menu van de grafische omgeving of typ het volgende in een terminal om VirtualBox™ te starten:

% VirtualBox

Bezoek de officiële website op http://www.virtualbox.org voor meer informatie over het configureren en gebruiken van VirtualBox™. Aangezien de FreeBSD-port erg nieuw is, wordt het nog volop ontwikkeld. Kijk voor de laatste informatie en instructies om problemen op te lossen op de relevantie pagina in de FreeBSD-wiki op http://wiki.FreeBSD.org/VirtualBox.

22.3.2. USB-ondersteuning in VirtualBox™

Voor deze stappen is VirtualBox 4.0.0 of nieuwer nodig.

Om van UBS-apparaten te kunnen lezen en ernaar te kunnen schrijven dienen gebruikers lid te zijn van de groep operator:

# pw groupmod operator -m jerry

Voeg vervolgens het volgende toe aan /etc/devfs.rules (maak het aan als het nog niet bestaat):

[system=10]
add path 'usb/*' mode 0660 group operator

Voeg het volgende aan toe aan /etc/rc.conf om deze nieuwe regels te laden:

devfs_system_ruleset="system

Herstart vervolgens devfs:

# service devfs restart

USB kan nu in het gast-besturingssysteem worden aangezet. USB-apparaten zouden zichtbaar moeten zijn in de voorkeuren van VirtualBox™.

22.3.3. DVD/CD-toegang van de gastheer in VirtualBox™

Toegang tot de CD/DVD-stations van de gastheer wordt bereikt door het delen van de fysieke stations. In de GUI kan dit vanuit het scherm Opslag in de Instellingen van de virtuele machine worden ingesteld. Maak eerst een leeg IDE CD-/DVD-apparaat aan. Kies daarna het Gastheerstation van het popup-menu voor het kiezen van het virtuele CD-/DVD-station. Later zal er een checkbox genaamd Passthrough verschijnen. Dit stelt de virtuele machine in staat om de hardware direct te gebruiken. Audio-CDs en branders bijvoorbeeld werken alleen als deze optie is aangezet.

HAL moet draaien om de DVD/CD-functies van VirtualBox™ te laten werken, zet het dus aan in /etc/rc.conf en start het (als het niet reeds draait):

hald_enable="YES"
# service hald start

Om gebruikers de DVD/CD-functionaliteit van VirtualBox™ te laten gebruiken, dienen ze toegang te hebben tot /dev/xpt0, /dev/cdN en /dev/passN. Dit wordt normaliter gedaan door de gebruiker van VirtualBox™ lid te maken van de groep operator, wat ook de standaardgroep is voor bovengenoemde apparaten. De rechten van deze apparaten dienen gecorrigeerd te worden door de volgende regels aan /etc/devfs.conf toe te voegen:

perm cd* 0600
perm xpt0 0660
perm pass* 0660
# service devfs restart

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.