VMware Server v. 1 kasutamine Debian Etchiga

Allikas: Kuutõrvaja
(Ümber suunatud leheküljelt Virtualiseerimine tarkvaraga VMware Server)

Sissejuhatus

Praktiliselt ei ole VMware guest täiesti modifitseerimata operatsioonisüsteem, nt Linuxi guestis soovitatakse kasutada paremaks ressursikasutuseks spetsiaalseid vmware tuumamooduleid.

Käesolev tekst on ühe kasutaja kogemuse kirjeldus, mis ei esinda tarkvara autorite seisukohti ja mis on tehtud heas usus, et sellest võiks olla kasu erinevate virtualiseerimislahendustega tutvumisel. Tähelepanu all on üks konkreetne toode nimega VMware Server v. 1, mille huviline saab VMware veebikohast aadressilt http://www.vmware.com/ omale tutvumiseks kopeerida, kusjuures ei pretendeerita selle toote kõigi võimaluste esitusele. Üksikasjalikumat infot kogu VMware tooteperekonna kohta üldiselt ning ning kõnealuse toote kasutustingimuste kohta konkreetselt leiab samuti sellelt aadressilt.

VMware hosti ettevalmistamine

Seda operatsioonisüsteemi eksemplari (arvutit), millel hakkavad asuma virtuaalsed arvutid, nimetatakse host'iks (ingl. k. majutaja). Virtuaalseid operatsioonisüsteemide eksemplare nimetatakse guestideks (ingl. k. külaline).

VMware Serveri host töötab eelnevalt paigaldatud operatsioonisüsteemi keskkonnas, mis võib olla näiteks Debian GNU/Linux v. 4.0 (Etch) 64bit ja koosneb sellistest komponentidest

  • vmware tuuma moodulid
  • vmware deemon ja abiprotsessid
  • vmware seadistusutiliit
  • virtuaalsed võrguseadmed

Lisaks on vajalik vmware virtuaalarvutite haldustarkvara (VMware Server Console), mis reeglina töötab mõnes muus arvutis ja peab ühendust hostiga üle võrgu, aga erijuhul võib töötada ka samas arvuti vmware deemoniga.

Tundub, et oluline on 32 bit tugi, st võib kasutada 32 bit keskkonda võin siis 64 bit keskkonda, millesse on lisatud 32 bit tuge pakkuvad teegid. Ja kuivõrd VMware installeri kasutamise käigus kompileeritakse mõni tuuma moodul, siis on mõistlik paigaldada sellised Debiani paketid

 bash# apt-get build-dep linux-image-2.6-amd64
 bash# apt-get install ia32-libs libx11-6 libxtst6 libxext6 libxt6 libice6 libxrender1 linux-headers-2.6.18-6-amd64 psmisc

VMware guestide võimalused võrgu kasutamiseks

Eeldusel, et VMware hostil on füüsiline võrguseade on põhimõtteliselt guestidel kolm võimalust võrguühenduseks

  • bridged network (eesti k. sillatud võrk) - guesti virtuaalne võrguseade seadistatakse kasutama ip aadressi samast subnetist, mida kasutab host (aga hostist erinevat aadressi)
  • nat network - host teeb guesti jaoks nn NAT teisendust, st guesti võrguseadmele on seadistatud privaatsest segmendist ip aadress ning pöördudes võrku paistab ta välja host'i ip aadressiga
  • host-only network - sellise võrguseadmega ei saa guest otseselt välja võrku pöörduda, küll aga saavad nt mitu guesti omavahel suhelda

Ettekujutust VMware võrgu võimalustest lihtsustab ettekujutus virtuaalsetest lülititest, mille külge on guestide võrguseadmed ühendatud. Lisaks, ühel guestil võib olla samaaegselt kasutada mitu erinevat võrguseadet, sedasi saab konstrueerida ka keerukamaid võrgutopoloogiaid, nt tekitada ühest guestist ülejäänute jaoks virtuaalse tulemüüri.

VMware Server tarkvara kopeerimine

VMware Server tarkvara saab kopeerida aadressilt http://www.vmware.com/ vastavalt seal esitatud tingimustele, 2008 aasta keskel on viimane stabiilne versioon 1.0.6 ning olulised kaks faili

  • vmware hostis töötav server - VMware-server-1.0.6-91891.tar.gz
  • vmware haldustarvkara - VMware-server-linux-client-1.0.6-91891.zip

Lisaks usaldatakse registreeritud kasutajale võti, mis tuleb tarkvara paigaldamise ajal sisestada. Võti esineb sarnase järgnevuse kujul

 xxxxx-xxxxx-xxxxx-xxxxx

VMware Server tarkvara paigaldamine

Sõltuvalt kasutaja eelistustest võib paigaldada VMware tarkvara süsteemsetesse kataloogidesse, st /usr/bin, /usr/lib jms või kasutaja omal äranägemisel moodustatud kataloogi, nt /usr/local/vmware-server. Järgnevas eelistame viimast varianti, et saada parem ettekujutus, milliseid faile VMware Server tarkvara sisaldab. Lisaks paigutab VMware Serveri installer käivitusskriptid kataloogi /etc/init.d ning seadistusfailid kataloogi /etc/vmware ning tuleb näidata kus hosti failisüsteemis asuvad guestide failisüsteemidele vastavad nn image failid.

Tarkvara paigaldamiseks võiks nt olla kataloogis /usr/src ning seal serveri arhiiv lahti pakkida

 # cd /usr/src
 # tar zxf VMware-server-1.0.6-91891.tar.gz
 # cd vmware-server-distrib

Installeri käivitamiseks tuleb öelda

 # ./vmware-install.pl

Installeri kasutamine algab küsimusega kuhu kataloogi tarkvara programmifailid paigutatakse, kui vastata näiteks nii, siis edasised küsimused kataloogide kohta omavad sobivat vaikeväärtust

 Creating a new installer database using the tar3 format.
 Installing the content of the package.
 In which directory do you want to install the binary files? 
 [/usr/bin] /usr/local/vmware-server/bin
 
 The path "/usr/local/vmware-server/bin" does not exist currently. This program 
 is going to create it, including needed parent directories. Is this what you 
 want? [yes] 
 
 What is the directory that contains the init directories (rc0.d/ to rc6.d/)? 
 [/etc]
 ...
 The installation of VMware Server 1.0.6 build-91891 for Linux completed 
 successfully. You can decide to remove this software from your system at any 
 time by invoking the following command: 
 "/usr/local/vmware-server/bin/vmware-uninstall.pl".
 

Seejärel jõutakse küsimuseni vmware seadistusprogrammi käivitamise kohta, millele vastata jaatavalt

 Before running VMware Server for the first time, you need to configure it by 
 invoking the following command: 
 "/usr/local/vmware-server/bin/vmware-config.pl". Do you want this program to 
 invoke the command for you now? [yes]

Edasi proovib installer ettevalmistatud binaarseid tuuma mooduleid kasutada, kuid Debiani puhul tuleb need lokaalselt kompileerida, vastata jaatavalt kompilaatori osas

 Trying to find a suitable vmmon module for your running kernel.
   
 None of the pre-built vmmon modules for VMware Server is suitable for your 
 running kernel.  Do you want this program to try to build the vmmon module for 
 your system (you need to have a C compiler installed on your system)? [yes]
 
 Using compiler "/usr/bin/gcc". Use environment variable CC to override.

Seejärel küsitakse header failide kohta, kui vastav Debiani pakett on paigaldatud, siis pakutakse sobivat vastust automaatselt

 What is the location of the directory of C header files that match your running
 kernel? [/lib/modules/2.6.18-6-amd64/build/include

Jätkub vmmon tuuma mooduli kompileerimine ning laadimine

 Extracting the sources of the vmmon module.
 
 Building the vmmon module.
 
 Using 2.6.x kernel build system.
 make: Entering directory `/tmp/vmware-config0/vmmon-only'
 make -C /lib/modules/2.6.18-6-amd64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
 make[1]: Entering directory `/usr/src/linux-headers-2.6.18-6-amd64'
   CC [M]  /tmp/vmware-config0/vmmon-only/linux/driver.o
   CC [M]  /tmp/vmware-config0/vmmon-only/linux/hostif.o
   CC [M]  /tmp/vmware-config0/vmmon-only/common/cpuid.o
   CC [M]  /tmp/vmware-config0/vmmon-only/common/hash.o
   CC [M]  /tmp/vmware-config0/vmmon-only/common/memtrack.o
   CC [M]  /tmp/vmware-config0/vmmon-only/common/phystrack.o
   CC [M]  /tmp/vmware-config0/vmmon-only/common/task.o
   CC [M]  /tmp/vmware-config0/vmmon-only/common/vmx86.o
   CC [M]  /tmp/vmware-config0/vmmon-only/vmcore/moduleloop.o
   LD [M]  /tmp/vmware-config0/vmmon-only/vmmon.o
   Building modules, stage 2.
   MODPOST
   CC      /tmp/vmware-config0/vmmon-only/vmmon.mod.o
   LD [M]  /tmp/vmware-config0/vmmon-only/vmmon.ko
 make[1]: Leaving directory `/usr/src/linux-headers-2.6.18-6-amd64'
 cp -f vmmon.ko ./../vmmon.o
 make: Leaving directory `/tmp/vmware-config0/vmmon-only'
 The module loads perfectly in the running kernel.

Seejärel installer võimaldab ettevalmistada, milliseid võrguga ühendamise võimalused saavad sellel hostil töötavatel guestidel olema, olgu need sellised

  • bridged network võrguseadmel eth0
  • nat network võrguseadmel eth0, guestid asuvad kasutama subnetti 10.42.0.0/24
  • host-only network, guestid asuvad kasutma subnetti 172.16.101.0/24
 Do you want networking for your virtual machines? (yes/no/help) [yes] 
 
 Configuring a bridged network for vmnet0.
 
 Your computer has multiple ethernet network interfaces available: eth0, eth1, 
 eth2, eth3. Which one do you want to bridge to vmnet0? [eth0] eth0
 
 The following bridged networks have been defined:
 
 . vmnet0 is bridged to eth0

Seejärel pakutakse võimalust seadistada veel bridged võrke, vastame eitavalt

 Do you wish to configure another bridged network? (yes/no) [no]

Edasi pakub installer võimaluse seadistada NAT võrk, vastame jaatavalt

 Do you want to be able to use NAT networking in your virtual machines? (yes/no)
 [yes] 
 
 Configuring a NAT network for vmnet8.

Pakutakse võimalust avatada automaatelt vaba ip subnet, aga kuna me teame täpselt, mida me soovime saavutada, vastame eitavalt

 Do you want this program to probe for an unused private subnet? (yes/no/help) 
 [yes] no

Seejärel küsib installer, milline on selles NAT võrgus hosti enda ip aadress, valime .1 aadressi

 What will be the IP address of your host on the private 
 network? 10.42.0.1

Seejärel sisestame NAT võrgu maski

 What will be the netmask of your private network? 255.255.255.0

Tulemusena teatab installer, et NAT võrk on seadistatud ja vastame, et rohkem NAT võrke ettevalmistada ei ole tarvis

 The following NAT networks have been defined:
 
 . vmnet8 is a NAT network on private subnet 10.42.0.0.
 
 Do you wish to configure another NAT network? (yes/no) [no]
 

Seejärel pakub installer ettevalmistada host-only võrgu, vastame jaatavalt

 Do you want to be able to use host-only networking in your virtual machines? 
 [yes] 
 
 Configuring a host-only network for vmnet1.
 

Kuna me teame täpselt, mida me soovime, vastame eitavalt probe'imise ettepanekule ja näitame host-only subneti võrgus hosti enda ip aadress, valime .1 aadressi

 Do you want this program to probe for an unused private subnet? (yes/no/help) 
 [yes] no
 
 What will be the IP address of your host on the private 
 network? 172.16.101.1
 
 What will be the netmask of your private network? 255.255.255.0
 
 The following host-only networks have been defined:
 
 . vmnet1 is a host-only network on private subnet 172.16.101.0.

Ning vastame, et rohkem host-only network'sid me tekitada ei soovi

 Do you wish to configure another host-only network? (yes/no) [no] 

Edasi installer tekitab ja laadib vmnet tuuma mooduli

 Extracting the sources of the vmnet module.
 
 Building the vmnet module.
 
 Using 2.6.x kernel build system.
 make: Entering directory `/tmp/vmware-config0/vmnet-only'
 make -C /lib/modules/2.6.18-6-amd64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
 make[1]: Entering directory `/usr/src/linux-headers-2.6.18-6-amd64'
   CC [M]  /tmp/vmware-config0/vmnet-only/driver.o
   CC [M]  /tmp/vmware-config0/vmnet-only/hub.o
   CC [M]  /tmp/vmware-config0/vmnet-only/userif.o
   CC [M]  /tmp/vmware-config0/vmnet-only/netif.o
   CC [M]  /tmp/vmware-config0/vmnet-only/bridge.o
   CC [M]  /tmp/vmware-config0/vmnet-only/procfs.o
   CC [M]  /tmp/vmware-config0/vmnet-only/smac_compat.o
   SHIPPED /tmp/vmware-config0/vmnet-only/smac_linux.x86_64.o
   LD [M]  /tmp/vmware-config0/vmnet-only/vmnet.o
   Building modules, stage 2.
   MODPOST
   CC      /tmp/vmware-config0/vmnet-only/vmnet.mod.o
   LD [M]  /tmp/vmware-config0/vmnet-only/vmnet.ko
 make[1]: Leaving directory `/usr/src/linux-headers-2.6.18-6-amd64'
 cp -f vmnet.ko ./../vmnet.o
 make: Leaving directory `/tmp/vmware-config0/vmnet-only'
 The module loads perfectly in the running kernel.

Seejärel küsitakse haldusliidese pöördumise jaoks pordi numbrit, jääme vaikeväärtuse juurde

 Please specify a port for remote console connections to use [902]

Edasi küsitakse failisüsteemi piirangute kohta, võiks valida vaikeväärtuse ning kus kataloogis hakkavad asuma guestide failisüsteemidele vastavad andmed, ütleme, et /data/vmware

 In which directory do you want to keep your virtual machine files? 
 [/var/lib/vmware/Virtual Machines] /data/vmware

Seejärel pakub installer serial numbri sisestamist

 Do you want to enter a serial number now? (yes/no/help) [no] yes
 
 Please enter your 20-character serial number
 
 Type XXXXX-XXXXX-XXXXX-XXXXX or 'Enter' to cancel: 

Ja peal registreerimisel omandatud serial numbri sisestamist käivitab installer vmware serveri ning paigaldamine on lõppenud.

 Starting VMware services:
    Virtual machine monitor                                             done
    Virtual ethernet                                                    done
    Bridged networking on /dev/vmnet0                                   done
    Host-only networking on /dev/vmnet1 (background)                    done
    Host-only networking on /dev/vmnet8 (background)                    done
    NAT service on /dev/vmnet8                                          done
    Starting VMware virtual machines...                                 done
 
 The configuration of VMware Server 1.0.6 build-91891 for Linux for this running
 kernel completed successfully.

VMware Server tarkvara eemaldamiseks tuleb öelda

 bash# /usr/local/vmware-server/bin/vmware-uninstall.pl
 ...
 The removal of VMware Server 1.0.6 build-91891 for Linux completed 
 successfully. Thank you for having tried this software.

VMware Serveri käivitamine ja seiskamine

Peale paigaldamist VMware Serveri deemon töötab, selles saab veenduda vaadates protsessitabelit

 bash# ps -eo args | grep vm | grep -v grep
 /usr/local/vmware-server/bin/vmnet-bridge -d /var/run/vmnet-bridge-0.pid /dev/vmnet0 eth1
 /usr/local/vmware-server/bin/vmnet-natd -d /var/run/vmnet-natd-8.pid -m /var/run/vmnet-natd-8.mac -c /etc/vmware/vmnet8/nat/nat.conf
 /usr/local/vmware-server/sbin/vmware-serverd -s -d
 /usr/local/vmware-server/bin/vmnet-netifup -d /var/run/vmnet-netifup-vmnet1.pid /dev/vmnet1 vmnet1
 /usr/local/vmware-server/bin/vmnet-netifup -d /var/run/vmnet-netifup-vmnet8.pid /dev/vmnet8 vmnet8
 /usr/local/vmware-server/bin/vmnet-dhcpd -cf /etc/vmware/vmnet8/dhcpd/dhcpd.conf -lf /etc/vmware/vmnet8/dhcpd/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet8.pid vmnet8
 /usr/local/vmware-server/bin/vmnet-dhcpd -cf /etc/vmware/vmnet1/dhcpd/dhcpd.conf -lf /etc/vmware/vmnet1/dhcpd/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet1.pid vmnet1

Lisaks töötavad NAT ning host-only võrkude jaoks dhcp serverid.

Käivitamiseks ja seiskamiseks sobib kasutata käivitusskripti tavalisel moel

 bash# /etc/init.d/vmware start|stop

Vahetult paigaldusjärgselt ei ole see asjakohane, aga põhimõtteliselt võiks virtuaalsed arvutid seisma panna ennem vmware deemoni seiskamist.

Töötava VMware hosti peal on NAT ja host-only võrkudega seotud vmnet* võrguseadmed selliselt

 bash# ifconfig 
 eth0    Link encap:Ethernet  HWaddr 00:1B:78:CE:85:44  
         inet addr:10.0.13.104  Bcast:10.0.13.255  Mask:255.255.255.0
         ..
 lo      Link encap:Local Loopback  
         inet addr:127.0.0.1  Mask:255.0.0.0
         ..
 vmnet1  Link encap:Ethernet  HWaddr 00:50:56:C0:00:01  
         inet addr:172.16.101.1  Bcast:172.16.101.255  Mask:255.255.255.0
         ..
 vmnet8  Link encap:Ethernet  HWaddr 00:50:56:C0:00:08  
         inet addr:10.42.0.1  Bcast:10.42.0.255  Mask:255.255.255.0

Hostist saab ka nende võrkude arvutitesse pöörduda.

VMware haldusprogrammi paigaldamine

Haldusprogrammi paigaldamiseks tuleb eelnevalt kopeeritud arhiiv VMware-server-linux-client-1.0.6-91891.zip lahti pakkida, nt kataloogis /usr/src

 bash# unzip VMware-server-linux-client-1.0.6-91891.zip

mis sisaldab faile

  • VMware-server-console-1.0.6-91891.i386.rpm OK
  • VMware-server-console-1.0.6-91891.tar.gz OK
  • VMware-vix-1.0.6-91891.tar.gz OK
  • VMware-VmPerlAPI-1.0.6-91891.tar.gz

Nendest omakorda tuleb lahti pakkida fail VMware-server-console-1.0.6-91891.tar.gz

 bash# tar zxf VMware-server-console-1.0.6-91891.tar.gz

ning seejärel siseneda kataloogi vmware-server-console-distrib ja käivitada installer käsuga ./vmware-install.pl

 # cd vmware-server-console-distrib
 # ./vmware-install.pl

Sarnaselt serveri installeri kasutamisele tuleks esimesele küsimusel binaaride tee kohta vastata

 /usr/local/vmware-sc/bin

Sedasi on järgnevad vaiketeed sobiva väärtusega.

VMware haldusprogrammi kasutamine ja guesti moodustamine

VMware haldusprogrammi on ettenähtud VMware hostil töötavate guestide moodustamiseks ja nende haldamiseks. Guestide haldamine tähendab vastavate operatsioonisüsteemi eksemplaride käivitamist ja seiskamist ning guestidele ressursside eraldamist.

Vaikimisi toimub haldusprogrammi kasutaja autentimine vastu hosti operatsioonisüsteemi nn /etc/passwd faili, juurkasutajana root sisselogides on kõige suuremad privileegid.

Haldusprogrammi kasutamiseks tuleb programm käivitada graafilises keskkonnas, nt X Window System, öeldes

 bash$ /usr/local/vmware-sc/bin/vmware-server-console

ja avaneb sarnane aken

Vmware-server-console-1.gif

Guesti moodustamiseks tuleb valida 'Create a new virtual machine', läbida sobivaid valikuid tehes dialoogid kusjuures valides muu seas sobivalt võrgu kuhu guest ühendatakse.

Virtuaalse arvuti tekitamine tähendab riistvara komplekteerimist, mida tähistatakse guesti nimega, juba tekitatud virtuaalse arvuti puhul saab valida 'Edit virtual machine settings' ning muuta virtuaalse arvuti komponente

Vmware-server-console-2.gif

Selliselt moodustatud vastse guesti kasutamisel oleks järgmine samm nö tühja virtuaalse arvuti, millel on ka BIOS, bootimine ning operatsioonisüsteemi paigaldamine.

Guesti sisse operatsioonisüsteemi paigaldamine

Operatsioonisüsteemi paigaldamise üks võimalus on

  • kopeerida paigaldusmeedia .iso image vmware hosti failisüsteem
  • ühendada haldusprogrammi abil guestile CD seadmena paigaldusmeedia külge
  • alglaadida guest meedialt

Alternatiivne võimalus oleks näiteks alglaadida võrgust.

VMware hosti võrgu paigaldusjärgne seadistamine

Võrguomaduste seadistamine on üheks olulisemaks ülesandeks, mida programmiga vmware-config.pl tehakse. See programm kutsutakse välja installeri poolt tarkvara paigaldamisel ja seda võib kasutada ka juba paigaldatud vmware tarkvaraga hostis virtuaalsete arvutite võrgukasutamise võimaluste muutmiseks.

 bash# /usr/local/vmware-server/bin/vmware-config.pl 

Valides wizardi asemel editor režiimi on mõnevõrra otsekohesem seadistusi muuta.

Selleks, et mitme guesti teatud võrguseadmed satuks samasse virtuaalsesse subnetti, tuleb neis kasutada samu vmnet* seadmeid, vaikimisi on seadmete kasutusotstarve selline

  • vmnet0 - brigded network
  • vmnet8 - NAT network
  • vmnet1-7 - host-only network

VMware toolide kasutamine guestis

VMware toolid (ingl. k. tööriistad) esinevad nt Linuxi guestis laaditud tuuma moodulite ja mõne deemoni kujul. Toole jagatakse kompileeritud kujul ning vajadusel saab nad kompileerida. Toolide paigaldamiseks tuleb esmalt haldusliideses siis kui guest töötab öelda

 VM -> Install VMware Tools Install

mille tulemusena lisatakse guestile külge virtuaalne CD seade, mis sisaldab VMware Toolse. See seade tuleks guestis külge ühendada, nt öeldes

 bash# mount /dev/hda /media/cdrom

CD sisaldab kahte faili

  • VMwareTools-1.0.6-91891.i386.rpm
  • VMwareTools-1.0.6-91891.tar.gz

Kui guesti on Debian GNU/Linux, siis sobib kompileerida toolid sarnaselt hosti kompileerimisele, peavad olema täidetud enam-vähem samad eeldused.

Kui guestina kasutada operatsioonisüsteemi, millele toole ei ole, nt OpenBSD, annab vaatamata sellele siiski guesti kasutada.

Guesti snapshot

TODO

Pordi suunamine NATitud võrgu arvutile

TODO

Märkused

  • Miskipärast peale /etc/init.d/vmware stop ütlemist jääb vahel käima üks protsess, seda saab kill abil siiski tappa
 root     30789  0.0  0.1  16472 13604 ?        Ss   17:36   0:00 /usr/local/vmware-server/sbin/vmware-serverd -s -d
  • Vaikimisi ja tundub, et suhteliselt paratamatult on NAT ja host-only võrkudele vastav hosti poolse võrguseadme ip aadress x.x.x.1.
  • Vahel on abi aadressil http://knihovny.cvut.cz/ftp/pub/vmware/ jagatavatest nn any-to-any paikadest, kasutaja peab ise otsustama, kas neid kasutada või leida mõni muu võimalus

Kasulikud lisamaterjalid