Hemen zaude: Hasiera Dokumentazio Irekia Manualak Birtualizazioa: XEN teknologia erabiliz zerbitzuak birtualizatu
Dokumentu Akzioak

Birtualizazioa: XEN teknologia erabiliz zerbitzuak birtualizatu

Note: Return to reference manual view.

Eskuliburu honetan XEN zerbitzari bat nola instalatu eta makina birtualak nola sortu ikusiko dugu

1. Sarrera

Zergatik eta zertarako birtualizazioa ?

1.1. Esku liburu honi buruz

Esku liburu honen helburuak zeintzuk diren

Lehenengo eta behin argi utzi nahi dudan zerbait: esku liburu hau irakurtzerakoan, argi izan behar duzu ni ez naizela XEN eta birtualizazioan aditua. Aspaldian honen beharra genuen, eta halako baten animatu eta birtualizazioarekin hasi ginen.

Software librearekin aukera ezberdinak daude, batzuentzako batzuk besteak baino hobeagoak izango dira, adibidez lagun batzuek KVM nahiago dute. Nik neuk ere lehenago VMWare instalatu izan dut, eta egia esateko, ondo dabil.

Zentzu horretan ez gara talibanak. Gustukoa baduzu ondo, bestela ere bai.  :-)

Seguru gauza asko hobetu daitezkeela, agian beste batzuk falta izango dira, baina esan bezala, guk gure instalazioa egin ondoren sortu dugun manuala publikatzen ari gara, besterik ez.

Akatsen bat, aldatu beharreko zerbait edo beste edozer esan nahi badidazu, gure blogeko  post honen erantzun moduan jarri dezakezu, eta saiatuko gara erantzuten.

1.2. Zertarako da birtualizazioa ?

Birtualizazioak gaur egun dauzkagun baliabide informatikoak hobeto erabiltzen lagunduko digu

Birtualizazioaren definizio asko daude, eta oso onak gainera. Wikipedian (gazteleraz) definizio hau daukazu birtualizazioa zer den azaltzeko, eta hau XEN zer den azaltzeko. Nik adibide batzuk jarriko ditut birtualizazioa zergatik erabili nahi dugun azaltzeko.

Zerbitzari berri bat erosten duzu

Gaur egun erosten ditugun makinak oso potenteak dira, bai CPU aldetik, bai memoria aldetik. Zerbitzu berri bat jarri behar, eta beldurra izaten dugu produkzioan ditugun zerbitzarietan jartzeko. Beldurra, ez bait dakizu zein izango den beste zerbitzuetan izango dituen eragina.

Kasu hauetan (ahal denean behintzat) inbertsio berri bat egin, eta zerbitzari berria erosten dugu zerbitzu berriarentzat, nahiz eta orain arte genuen zerbitzariak baliabide fisikoak izan zerbitzu berriari ere ondo erantzuteko. Askotan hobe beste makina baten instalatzea, badaezpada ere.

Birtualizazioarekin hau konponduko dugu. Zerbitzari fisiko berdinean zerbitzari birtual desberdinak izango ditugu, eta fisikoki makina berdinean egon arren, logikoki zerbitzari desberdinak izango dira, eta baten konfigurazioak ez du bestean eraginik izango.

Arazoak dituzu zerbitzari gelan fisikoki makina gehiago sartzeko

Agian zerbitzari gelan zerbitzariak instalatzeko daukazun lekua bete egin zaizu, edo zerbitzarien elikadura elektrikoa ematen dizun UPSak ez du nahiko indar zerbitzari guztiei argi indarra ziurtatzeko.

Guri hau gertatu izan zaigu. Lehen bagenituen zerbitzu ez oso astunak emateko zerbitzari lanak egiten zituzten PC batzuk, adibidez:
  • Fax zerbitzaria Hylafax sistemarekin dugu, eta horretarako PC zahar bat genuen modem batekin. PC zaharra zen, ez zuen beste ezertarako balio, lekua kentzen zigun eta berak ere argi indarra jaten zuen.
  • Software lizentzien kontrola eramateko programa berezi bat genuen beste PC batean. Programa honek  beste zerbitzu batzuekin arazoak ematen zigunez, PC xinple batean genuen instalatuta. PC honek ez zuen beste lanik egiten, baina berak ere argi indarra eta lekua behar zituen.
  • Sistemak gero eta konplexuagoak dira, eta guzti hauen jarraipena egitea ez da batere erraza, beraz nagios bat instalatu genuen beste PC zahar batean.
  • eta abar ...

Honelako kasuetan, zerbitzari berri batek potentzia nahikoa izan dezake makina birtual desberdinak sortu eta zerbitzu guzti hauek makina fisiko batean izateko.

Erabilgarritasun handiko sistema bat ezarri nahi duzu

Sistema informatikoak gero eta kritikoagoak dira. Zerbitzu bat ezartzen duzu, eta aurrerantzean ezin da geratu, bestela erabiltzaile/bezero guztiak atzetik dituzu.

Birtualizazioak hemen ere laguntzen digu. Bi XEN zerbitzari (edo gehiago) dauzkazunean, posible duzu makina birtual bat zerbitzari fisiko batetik bestera mugitzea, beraz hardware-ekiko duzun dependentzia ez da hain handia. Zerbitzari fisiko bat apurtzen bada, bestea duzu zerbitzari birtualak martxan jartzeko.

Sistema kritikoen eguneraketak egin behar dituzu, eta ez zara ausartzen


Koldarra ? Ez, koldarra ez, esperientziaduna (batez ere Windows sistemak badira). Ez al zaizu gertatu sistema edo aplikazio bat eguneratzen hasi, arazoren bat izan, eta sistema hankaz gora geratzea ? Ez eguneratu eta ezta ere lehen zegoen moduan, ez bata eta ez bestea, hil egin zaizu.

Honelakotan birtualizazioak produkzioan duzun sistema birtualaren kopia bat egin, eta kopia horrekin jolasteko aukera ematen dizu. Egin beldurrik gabe egin behar dituzun eguneraketak, probatu ea nola dabilen sistema berria, eta dena ondo dagoela ziurtatu duzunean, kopia hau jarri produkzioan. Arazoren bat izan duzula ? Lasai, ez da ezer gertatzen, produkzioan dagoen sistemaren kopia bat zen. Ezabatu kopia hori, egin beste bat, eta saiatu berriro lortu arte.

2. Gure instalazioko adibide batzuk

Guk zer eta nola egin dugun azaltzen dugu

2.1. Gure zerbitzari fisikoa

Gure zerbitzari fisikoaren ezaugarriak

Birtualizaziorako erosi dugun zerbitzariak garrantzi berezia du, bere gainean zerbitzari birtual guztiak izango ditugulako. Hau dela eta, hardware ona erostea merezi du. Gure kasuan Supermicro etxeko zerbitzaria erosi dugu, debian linux-ekin bateragarria den hardwarearekin. Ezaugarri nagusiak hauek dira:

  • Bi prozesadore ditu
  • 4 Gb RAM (8 jartzea ez litzateke txarra izango)
  • 3Ware kontrolatzailea Raid5 egiteko. 4 disko SATA ditu, bakoitza 500 Gb-ekoa. 3 disko erabiliz Raid5a egiten dugu, eta laugarren diskoa HotSpare moduan konfiguratu dugu. Raid5eko disko bat izorratuko balitz, zuzenean laugarren disko hau Raid-ean sartuko litzateke. Kontrolatzaileak gainera posta elektronikoz abisatzen dizu zerbait gertatzen bada.


Guzti hau, 2.500€-gatik lortu dugu (BEZ barne). Dirua da bai, baina zerbitzari ona da, eta lana egin beharko du.

2.2. Zerbitzariaren instalazioa

Zerbitzariaren instalazioa nola egin dugun azaltzen dugu

Debian zerbitzaria instalatzen


XEN instalatu aurretik, zerbitzari fisikoa instalatu behar da. Guk Ubuntu Server eta Debian Lenny distribuzioetan instalatu dugu (64 bit-ekoa). Lehenengo egin beharra partizioak sortzea da, guk honela jarri ditugu:

  • /boot partizioa:Giga 1 eta arrankatzeko moduan.
  • Swap partizioa
  • / partizioa: 8 Giga
  • Geratzen den guztia LVM partizio moduan


Gogoan izan Windows zerbitzariak bitualizatu nahi badira, zerbitzari fisikoan X-Window instalatu behar dela, beraz hobe instalazioan aukeratzea. Ez dugu hemen sakonduko. Suposatzen da XEN instalatzera bazoaz, debian nola instalatzen den badakizula.

Oinarrizko instalazio egin ondoren, beste pakete hauek instalatuko ditugu:

apt-get update 
apt-get upgrade
apt-get install openssh-server

XEN zerbitzaria instalatzen


Debian barruan XEN paketea instalatuko dugu. Hau egitean, kernel berezi bat instalatuko du.

Ubuntu Server baten instalatzen badezu:

apt-get instal ubuntu-xen-server

Debian Lenny baten (32 bit):

apt-get install xen-linux-system-2.6.26-2-xen-686

Debian Lenny baten (64 bit):

apt-get install xen-linux-system-2.6.26-2-xen-amd64

Gero xen-tools paketea instalatu:

apt-get install xen-tools

Ondoren “/etc/modules” editatu eta “loop” aukera hau gehitzen diogu:

loop max_loop=64 

Orain zerbitzaria berrabiarazi behar dugu. Martxan jartzen denean Xen kernel bat jarri diola ikus dezakegu:

root@IMH01XEN01:~# uname -a 
Linux IMH01XEN01 2.6.24-21-xen #1 SMP Mon Aug 25 18:56:44 UTC 2008 x86_64 GNU/Linux


Bolumen logikoak


Makina birtual bakoitzerako bolumen logiko bat sortuko dugu. Hau horrela egitean, gero aukera gehiago izango ditugu bolumenak kudeatzeko: neurriz handitu, eta abar.

Paketea instalatuko dugu:

apt-get install lvm2


 /etc/modules editatu eta hau gehitu behar da: dm-mod

Orain bolumen logikoak konfiguratu behar dira. LVM partizioa zein den jakin behar dugu (fdisk komandoa erabiliz ), gure kasuan  /dev/sda4 da.

pvcreate /dev/sda4


Orain “Grupo de volumen”  edo Bolumen taldea deritzona sortu behar da:

vgcreate volgroupxen /dev/sda4

Orain "Bolumen logikoa“ deritzona sortu behar da. Hemen bi kasu desberdintzen dugu:

  1. Linux sistema bat birtualizatu nahi badugu, hau da, zerbitzari fisikoak berak duen antzerako linux bat jarri nahi badugu (debian etch, ubuntu, ..) "parabirtualizatua" izateko.
  2. lvmcreate: edozein sistema birtualizatzeko
Kasu desberdin hauek ondoren datozen adibideetan ikusiko ditugu.

2.3. Debian Linux birtualizazioa

Linux sistemarekin zerbitzari birtualak sortzeko

Kasu honetan, parabirtualizazioa erabiliko dugu.

Zerbitzari fisikoak duen kernela jakin behar dugu makina birtual berria sortu ahal izateko. Horretarako uname komandoa erabiliko dugu

root@IMH01XEN01:~# uname -r
2.6.24-21-xen


Demagun datu baseak izango dituen linux zerbitzari birtual bat sortu nahi dugula. Hauek dira zerbitzari berriaren ezaugarriak:

  • Izena: XenDB
  • Linux distribuzioa: etch
  • Disko gogorraren neurria: 10 Gb
  • Swap neurria: Gb bakarra.


Ondorengo komando honekin makina birtuala sortuko litzateke. Berak sortuko luke bolumen birtuala guk eman diogun balioekin.

root@IMH01XEN01:~# xen-create-image install-method=debootstrap --hostname=XenDB
--dist=etch --lvm=volgroupxen --fs=ext3 --dhcp --kernel=/2.6.24-21-xen
--force --initrd=/boot/initrd.img-2.6.24-21-xen --arch=amd64 --size=10G
--swap=1G


Aukera (kontuz ibili honekin): "--force" parametroa erabiltzen badugu, aurrez izen bereko makina birtuala sortuta egongo balitz, gainidatzi egingo luke.


Orain Xen-eko konfigurazio fitxategi nagusia ukitu behar dugu. Hobe beraz lehenago kopia bat egitea.

cp /etc/xen/xend-config.sxp /etc/xen/xend-config.sxp.backup
nano /etc/xen/xend-config.sxp

Interfazeen kudeaketan, lerro hau aktibatuko dugu:

(network-script network-bridge)  

eta ondoren zerbitzua berrabiarazi:

/etc/init.d/xend restart

Orain konfigurazio fitxategia editatzen dugu:

nano /etc/xen/XenDB.cfg

Hor aldatuko ditugu nahi ditugun parametroak (adibidez swap ...). Ziurtatu kernel parametroan path-a ondo dagoela, gure kasuan:

kernel      = '/boot/vmlinuz-2.6.24-21-xen'

Bukaeran hau sartu, bestela xm console egiterakoan kontsolak ez du funtzionatzen:

extra="console=tty xencons=tty"

Xen kudeatzeko komandoa xm da. Adibidez:

Zerbitzari birtuala kargatzeko:

xm create XenDB.cfg 
xm console XenDB

Zerbitzari birtuala itzaltzeko: 

xm shutdown XenDB

Ez badu erantzuten:

xm destroy XenDB 

Zerbitzari fisikoak arrankatzen duenean zerbitzari birtualak arrankatzea nahi badugu, esteka sinbolikoa egin behar diogu:

ln -s /etc/xen/XenDB.cfg /etc/xen/auto/host.cfg


2.4. Ubuntu desktop birtualizatzen

Hemen ubuntu desktop makina birtual bat sortuko dugu

Adibide honetan Ubuntu Intrepid Hearon bertsioa instalatu nahi dugu, eta parabirtualizatua egotea nahi dugunez, aurrerago debian zerbitzari birtuala sortzeko erabili dugun teknika berbera erabili nahi dugu: debootstrap.

Hau egin ahal izateko, ezinbestekoa da linux zerbitzari fisikoan /usr/lib/xen-tools/  karpetan intrepid.d izeneko "soft link" edo esteka egotea. Hau ez balego, ez luke jakingo nola instalatu.


root@IMH01XEN01:~# cd /usr/lib/xen-tools/ 

root@IMH01XEN01:/usr/lib/xen-tools# ls -la

total 72

drwxr-xr-x  9 root root  4096 2008-10-24 10:37 .

drwxr-xr-x 87 root root 32768 2008-12-10 17:46 ..

drwxr-xr-x  2 root root  4096 2008-10-24 10:37 centos-4.d

drwxr-xr-x  2 root root  4096 2008-10-24 10:37 centos-5.d

-rwxr-xr-x  1 root root  4409 2008-04-06 03:12 common.sh

drwxr-xr-x  2 root root  4096 2008-10-24 10:37 dapper.d

drwxr-xr-x  2 root root  4096 2008-10-24 10:37 debian.d

drwxr-xr-x  2 root root  4096 2008-12-10 17:53 edgy.d

lrwxrwxrwx  1 root root     8 2008-10-24 10:37 etch.d -> debian.d

lrwxrwxrwx  1 root root    15 2008-10-24 10:37 fedora-core-4.d -> fedora-core-6.d

lrwxrwxrwx  1 root root    15 2008-10-24 10:37 fedora-core-5.d -> fedora-core-6.d

drwxr-xr-x  2 root root  4096 2008-10-24 10:37 fedora-core-6.d

lrwxrwxrwx  1 root root    15 2008-10-24 10:37 fedora-core-7.d -> fedora-core-6.d

lrwxrwxrwx  1 root root     6 2008-10-24 10:37 feisty.d -> edgy.d

drwxr-xr-x  2 root root  4096 2008-10-24 10:37 gentoo.d

lrwxrwxrwx  1 root root     6 2008-10-24 10:37 gutsy.d -> edgy.d

lrwxrwxrwx  1 root root     6 2008-10-24 10:37 hardy.d -> edgy.d

lrwxrwxrwx  1 root root     8 2008-10-24 10:37 lenny.d -> debian.d

lrwxrwxrwx  1 root root     8 2008-10-24 10:37 sarge.d -> debian.d

lrwxrwxrwx  1 root root     8 2008-10-24 10:37 sid.d -> debian.d

Ez dagoenez, guk sortuko dugu:

root@IMH01XEN01:/usr/lib/xen-tools# ln -s  edgy.d intrepid.d

Antzerako zerbait egin behar dugu debootstrap-erako:

cd /usr/share/debootstrap/scripts/  
ln -s edgy intrepid

Orain komando hau exekutatuko dugu:

root@IMH01XEN01:/usr/lib/xen-tools# xen-create-image install-method=deboottstrap --hostname=XenUbuntuDesktop01 --dist=intrepid --mirror=http://es.archive.ubuntu.com/ubuntu/ --lvm=volgroupxen --fs=ext3 --dhcp --kernel=/2.6.24-21-xen --force --initrd=/boot/initrd.img-2.6.24-21-xen --arch=amd64 --size=10G –swap=1G

Emaitza hau da:

General Information 
--------------------
Hostname       :  XenUbuntuDesktop01
Distribution   :  intrepid
Partitions     :  swap            1G    (swap)
                  /               10G   (ext3)
Image type     :  full
Memory size    :  128Mb
Kernel path    :  /2.6.24-21-xen
Initrd path    :  /boot/initrd.img-2.6.24-21-xen
Networking Information
----------------------
IP Address     : DHCP [MAC: 00:16:3E:84:99:66]
Removing /dev/volgroupxen/XenUbuntuDesktop01-swap - since we're forcing the install
Removing /dev/volgroupxen/XenUbuntuDesktop01-disk - since we're forcing the install
Creating swap on /dev/volgroupxen/XenUbuntuDesktop01-swap
Done
Creating ext3 filesystem on /dev/volgroupxen/XenUbuntuDesktop01-disk
Done
Installation method: debootstrap
Done
Running hooks
Done
No role scripts were specified.  Skipping
Creating Xen configuration file
Done
All done
Logfile produced at:
     /var/log/xen-tools/XenUbuntuDesktop01.log


Instalazioa nola joan den ikusi nahi badegu, bukaeran jartzen digun log fitxategian begiratzea besterik ez dugu:

/var/log/xen-tools/XenUbuntuDesktop01.log

Arrankatu aurretik, konfigurazioa birpasatu. Editatu konfigurazio fitxategia:

cd /etc/xen 
nano XenUbuntuDesktop01.cfg

Eta begiratu nola dagoen kernel parametroa. Nik hau neukan:

kernel      = '/2.6.24-21-xen' 

Eta honela jarri dut:

kernel      = '/boot/vmlinuz-2.6.24-21-xen' 

Orain makina birtuala martxan jartzeko:

xm create XenUbuntuDesktop01.cfg ; xm console XenUbuntuDesktop01

Emaitza moduan login kontsola bat emango digu, eta root moduan sartzeko aukera izango dugu (pasahitz gabe).

IP helbidea DHCP bidez hartzen duenez, ifconfig exekutatu beharko dugu lortu duen IP helbidea zein den jakiteko.

Berez ez du gnome instalatzen. Guk behar dugunez, honela instalatuko genuke:

apt-get install xorg gnome-core

VNC bitartez konektatu ahal izateko, lehenengo VNC zerbitzaria instalatu egin behar dugu ubuntu birtual berrian:

sudo apt-get install vnc4server

Orain konfiguratu egin behar da, bestela konektatzen geranean ez digu Gnome erabiltzeko aukerarik emango. Editatuko dugu (aurrez nano instalatuta)

apt-get install nano
nano .vnc/xstartup

Hau da berez dakarrena:

#!/bin/sh 
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

Eta honela utziko dugu ubuntu birtualean:

#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
unset SESSION_MANAGER
gnome-session &


Orain vncserver arrankatuko dugu:

vncserver :1

Pasahitza eskatuko digu. Ondo apuntatu behar dugu, pasahitz hori erabili beharko dugu beste leku batetik ubuntu birtualera konektatu nahi dugunean.

Aurrerantzean VNC erabiliz, sortu dugun Ubuntu makina birtualera konektatu gaitezke.

2.5. Windows birtualizazioa

Windows sistemak birtualizatzeko

Kasu honetan, XEN barruan Windows makina bat instalatu nahi dugu. Ikusiko dugunez ez da Linux makina birtual bat sortzea bezain azkarra, baina egin daiteke. Bestalde, kontutan izan hau ez dela "parabirtualizazioa" izango, beraz ez da hain efizientea izango.

Bolumena sortu behar da

Horretarako lvcreate komandoa erabiliko dugu. Bere sintaxia hau da
lvcreate -L 40G -n BolumenLogikoarenIzena BolumenTaldearenIzena

Gure kasuan, Windows makinak ezaugarri hauek izango ditu:

  • Izena: XenWinServer01
  • Disko gogorraren neurria: 40 Gb
Beraz, hau izango da bolumena sortzeko erabiliko dugun komandoa:
lv create -L 40G -n xenwiserver01 volgroupxen

Hau egin ondoren, bolumen logikoa formateatu behar dugu. VFAT bezala formateatuko dugu.

mkfs -t vfat /dev/volgroupxen/xenwinserver01


Linux zerbitzari fisikoan X-Window instalatuta izan behar dugu windows zerbitzari birtualak instalatu ahal izateko, ezinbestekoa da Windows instalazioko leihoak ikusi ahal izateko. Hau kontutan izan behar da hasieran Linux zerbitzari fisikoa instalatzen dugunean.

Demagun zerbitzari birtualaren txantiloia hau dela: /etc/xen/xenwinserver01.cfg


Editatu egin beharko genuke eta aldatu: izena, memoria, prozesadoreak.

  • Boot atalean  'd' jarri beharko genuke CDtik arrankatu eta Windows instalazioa egin ahal izateko. Behin instalatu ondoren, 'c' jarriko genuke disko gogorretik arrankatzeko.
  • Disk parametroan dagokion bolumen logikoa jarri behar zaio.

Adibidez:
kernel = '/usr/lib/xen/boot/hvmloader'
builder = 'hvm'
memory = 1024
name = 'xenwinserver01'
vcpus = 1
vif = [ 'type=ioemu, bridge=xenbr0' ]
cdrom = '/dev/sdc0'
boot = 'c'
sdl = 1
vnc = 0
nographic = 1
disk = [ 'phy:/dev/volgroupxen/xenwinserver01,hda,w', 'phy:/dev/loop1,ioemu:hdc:cdrom,r' ]
device_model = '/usr/lib/xen/bin/qemu-dm'


Instalazioarekin jarraituz, Windows instalatzeko CDak behar ditugu. Guk instalazio CDa ISO irudi bihurtu eta windows zerbitzari birtualeko CD irakurgailu birtualean kargatzen dugu. Hau egin ahal izateko libre dagoen loop bat aurkitu behar dugu:

Hau adibidez, okupatuta dago:

root@IMH01XEN01:/etc/xen# losetup /dev/loop1 
/dev/loop1: [0803]:4472839 (/root/InstalazioIrudiak/win2kserver/w2kserver.iso)

Hau aldiz, libre dago:

root@IMH01XEN01:/etc/xen# losetup /dev/loop2 
loop: can't get info on device /dev/loop2: No such device or address

Orain ISO irudia muntatu egin behar dugu zerbitzari birtualak ikusi ahal izateko:

root@IMH01XEN01:/etc/xen# losetup -r /dev/loop2 /root/InstalazioIrudiak/win2003server/SW_CD_Win.iso


Loop hau zerbitzariko txantiloi dokumentuan konfiguratu behar dugu disk parametroan:

disk = [ 'phy:/dev/volgroupxen/xenwinserver2003_01,hda,w', 'phy:/dev/loop2,ioemu:hdc:cdrom,r' ]

Orain Windows instalazioa egin beharko genuke. Barkaidazue, baina zati hori hurrengo adibidean daukat dokumentatuta, Windows XP adibidean, beraz jarraitu hurrengo adibidea irakurtzen   ;-)

2.6. Windows XP birtualizatzen

Windows XP nola birtualizatu ikusiko dugu

Lehenengo ISO irudi bat sortuko dugu WXP-ren instalazio CDakin, adibidez K3B erabiliz. ISOa sortu denean scp erabiliz xen zerbitzari fisikoan kopiatuko dugu.

root@IMH01XEN01:~# ls -l  /root/InstalazioIrudiak/wxpsp3/ 
total 669712
-rw-r--r-- 1 root root 685105152 2008-12-11 16:30 WXPSP3.iso


Orain Bolumen Logikoa sortuko dugu. 10 Gigako diskoa jarriko diogu, adibide honetako XP honek ez baitu du datu askorik izango.

root@IMH01XEN01:~# lvcreate -L 10G -n xenwinxp01 volgroupxen 
  Logical volume "xenwinxp01" created

Orain sortu dugun diskoa formateatu egin behar dugu

root@IMH01XEN01:~# mkfs -t vfat /dev/volgroupxen/xenwinxp01 

Aurrez esan bezala, instalazioa egiteko ISO bat erabiliko dugu. ISO hau muntatu egin behar dugu sistemak ikus dezan. ISO bat muntatzeko libre dagoen loop bat erabiliko dugu.

root@IMH01XEN01:/etc/xen# losetup /dev/loop1 
loop: can't get info on device /dev/loop1: No such device or address

Hau libre dago, beraz erabiliz dezakegu.

root@IMH01XEN01:/etc/xen# losetup -r /dev/loop1 /root/InstalazioIrudiak/wxpsp3/WXPSP3.iso

Ondo muntatu duen ikus dezakegu:

root@IMH01XEN01:/etc/xen# losetup /dev/loop1 
/dev/loop1: [0803]:4472848 (/root/InstalazioIrudiak/wxpsp3/WXPSP3.iso)

Orain xen konfigurazio karpetara joan, eta hoberena lehendik daukagun windows-erako konfigurazio fitxategi bat oinarri bezala hartzea da. Horretarako, konfigurazio fitxategia kopiatuko dugu:

root@IMH01XEN01:~# cd /etc/xen 
root@IMH01XEN01:/etc/xen# cp xenwinserver01.cfg xenwinxp01.cfg


Hau egin ondoren, konfigurazio fitxategi berria editatuko dugu.

kernel = '/usr/lib/xen/boot/hvmloader' 
builder = 'hvm'
memory = 512
name = 'xenwinxp01'
vcpus = 1
vif = [ 'type=ioemu, bridge=xenbr0' ]
# cdrom = '/dev/sdc0'
# boot on floppy (a), hard disk (c) or CD-ROM (d)
# default: hard disk, cd-rom, floppy
boot='d'
sdl = 1
vnc = 0
nographic = 0
disk = [ 'phy:/dev/volgroupxen/xenwinxp01,hda,w','phy:/dev/loop1,ioemu:hdc:cdrom,r']
device_model = '/usr/lib/xen/bin/qemu-dm'
usbdevice='tablet'

Aldatu ditugun parametroak hauek dira:

memory = 512 
name = 'xenwinxp01'
boot = 'd'
sdl = 1
vnc = 0
nographic = 0
disk = [ 'phy:/dev/volgroupxen/xenwinxp01,hda,w', 'phy:/dev/loop1,ioemu:hdc:cdrom,r' ]
usbdevice='tablet' (xaguak arazorik ez emateko)


Honekin suposatzen da dena prest dugula. Instalazioa martxan jartzeko linux zerbitzari fisikoan leihoak kargatuta izan behar ditugu, bestela ezin izango ditugu Windows instalatzailearen mezuak ikusi. Gure kasuan linux zerbitzari fisikora VNC bitartez konektatuko gara.

XEN zerbitzari fisikoak X-Window (Gnome) martxan izan behar ditu, eta Remote Desktop erabiltzeko konfiguratua, irudian ikusten den bezala:

XEN instalazioko irudia

Gauzak ondo egin baditugu, VNC erabiliz zerbitzari fisikora konektatu ahal izango gara. Hemen gure zerbitzari fisikoko GNOME mahaigaina (garbia ezta ?)

XEN instalazioko irudia













Orain VNC saio barruan gaudela kontsola bat zabalduko dugu Xen zerbitzarian eta makina birtuala abiaraziz, Windows instalazioa abiaraziko dugu:

XEN instalazioko irudia

Hau egin ondoren, ikusiko dugu nola beste leiho bat zabaltzen den Windows berria konfiguratzeko

XEN instalazioko irudia

Orain Windows-en instalazio normala egitea besterik ez dugu. Instalazioa bukatzen denean makina birtualaren konfigurazio fitxategian nographic=1 parametroa komentatu egingo dugu.

#nographic=1

Honela, makina hau automatikoki arrankatu ahal izango dugu, nahiz eta zerbitzari fisikoak Gnome arrankatu ez. Beste era batera esanda, zerbitzari fisikoan X-Window ez da martxan egon behar Windows makina birtuala martxan jarri ahal izateko.

3. Aukera aurreratuak

Makina birtualekin lan egiteko trikimailu batzuk

3.1. Makina birtualen kopiak egin

Instalatuta dituzun makina birtualak berrerabiltzeko aukera

Lan ederra egin dugu Makina birtualaren instalazioa egiten. Demagun orain sortu dugunaren antzerako beste makina birtual bat behar dugula beste zerbaiterako. Prozesu guztia errepikatu beharko dugu ? Ez horixe, orain arte egindako lana aprobetxatuko dugu.

Aurrez egindako instalazioaren kopia bat egingo dugu, eta aurrerantzean antzerako makina birtual bat behar dugunean, aurrez egindako instalazioan oinarrituko gara.

LVM-ak erabiltzen ari garenez, lehenengo makina birtualak erabiltzen duen bolumen logikoaren shapshot (argazkia) bat sortuko dugu.

Klonatu nahi dugun bolumenak duen neurria jakin behar dugu. Gure kasuan 10 GB.

root@IMH01XEN01:~# lvdisplay 
  --- Logical volume ---
  LV Name                /dev/volgroupxen/xenwinxp01
  VG Name                volgroupxen
  LV UUID                9U95Sb-SjSS-28cw-0wUG-3rCe-eX81-xHEppQ
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                10,00 GB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           254:8


Tarteko bolumen bat sortuko dugu kopia egin ahal izateko. Bukaeran bolumen hau ezabatu egingo dugu. Bolumenari WindowsArgazkia deituko diogu.

root@IMH01XEN01:~# lvcreate -L  10G -s -n WindowsArgazkia /dev/volgroupxen/xenwinxp01 
  Logical volume "WindowsArgazkia" created

Makina birtual berriak xenwinxp02 izena izango du, beraz bere bolumen logikoak izango duen izena hau da:  /dev/volgroupxen/xenwinxp02

root@IMH01XEN01:~# lvcreate -L 10G -n xenwinxp02 volgroupxen 
  Logical volume "xenwinxp02" created 

Orain snapshot-en dugun argazkia, sortu berri dugun bolumenean kopiatuko dugu. Denbora behar du, baina bukatzen denean dena kopiatuta izango dugu.

root@IMH01XEN01:~# dd if=/dev/volgroupxen/WindowsArgazkia  of=/dev/volgroupxen/xenwinxp02
20971520+0 records in
20971520+0 records out
10737418240 bytes (11 GB) copied, 1070,87 s, 10,0 MB/s

Snapshot-etik beste LVM batera kopiatu beharrean irudia ISO fitxategi batera kopiatu nahi badugu, komandoa hau izango litzateke.

root@IMH01XEN01:~# dd if=/dev/volgroupxen/WindowsArgazkia of=/home/pedro/xenwinxp02.img 
20971520+0 records in
20971520+0 records out
10737418240 bytes (11 GB) copied, 387,568 s, 27,7 MB/s

Hau egin ondoren gogoan izan bitartean erabili dugun snapshot hori ezabatzea:

root@IMH01XEN01:~# lvremove /dev/volgroupxen/WindowsArgazkia 
Do you really want to remove active logical volume "WindowsArgazkia"? [y/n]: y
  Logical volume "WindowsArgazkia" successfully removed


Egin dugunarekin makina birtual berriaren diskoa klonatu dugu. Zer falta zaigu ? Ba makina birtual berrirako XEN konfigurazio fitxategia sortzea. Horretarako, jatorrizko makinaren konfigurazio fitxategiaren kopia bat egingo dugu:

root@IMH01XEN01:/etc/xen# cp xenwinxp01.cfg xenwinxp02.cfg

Ondoren fitxategia editatu, eta erreferentziak ondo jarri:

root@IMH01XEN01:/etc/xen# cat xenwinxp02.cfg 
kernel = '/usr/lib/xen/boot/hvmloader'
builder = 'hvm'
memory = 512
name = 'xenwinxp02'
vcpus = 1
vif = [ 'type=ioemu, bridge=xenbr0' ]
# cdrom = '/dev/sdc0'
# boot on floppy (a), hard disk (c) or CD-ROM (d)
# default: hard disk, cd-rom, floppy
boot='d'
sdl = 1
vnc = 0
# nographic=1 Makina martxan jartzerakoan leihoak ez abiarazteko
# eta horrela kontsolatik abiarazi ahal izango dugu
nographic = 1
disk = [ 'phy:/dev/volgroupxen/xenwinxp02,hda,w','phy:/dev/loop1,ioemu:hdc:cdrom,r']
device_model = '/usr/lib/xen/bin/qemu-dm'
usbdevice='tablet'

Orain makina birtuala martxan jarriko dugu:

root@IMH01XEN01:/etc/xen# xm create xenwinxp02.cfg 
Using config file "./xenwinxp02.cfg".
Started domain xenwinxp02

Kontutan izan makina honek DHCP bidez hartuko duela IP helbidea, beraz DCHP zerbitzuak zein IP ematen dion begiratu, eta bere MAC helbidea erabiliz IP finko bat konfiguratuko diogu.

Azkenik, kontutan izan Windows birtual hau beste baten klona dela, beraz Windows birtual barruan PCaren izena aldatu egin behar dugu, jatorrizkoaren izen berdina baitauka, eta honek arazoak emango lituzke Windows sarean.

Hau ondo egiteko:

  • PCaren Izena aldatu eta Dominiotik atera (Workgroup taldean sartuz).
  • Berrabiarazi eta PCaren administratzaile lokalarekin sartu.
  • Berriro dominioan sartu eta berrabiarazi (berriro ere).
Ordenagailuaren izena aldatzeko hainbeste aldiz berrabiarazten nazkatuta ? Zer nahi duzu ba, Windows da !!   :-( 

Arazorik egon ez bada, Windows birtualaren klon birtuala erabiltzeko moduan zaude.



3.2. VMWARE-tik XEN-era makina birtuala migratu

VMWAREtik XENera

Hasieran esan dugu VMWare-kin ere zerbait egina dugula. Orain dela ia bi urte Linux Debian baten gainean doako VMWare Server produktua instalatu genuen, eta instalazio horretan makina birtual batzuk genituen lanean. Makina hauek XEN-era migratzea erraza da.

Egin beharreko lehenengo gauza VMWare zerbitzarian (linux debian makina fisikoa) qemu instalatzea da:

vmware01:~# apt-get install qemu

Hau egin ondoren karpeta bat sortuko dugu bertan lan egiteko:

vmware01:/home/vmware# mkdir vmwaretoxen 
vmware01:/home/vmware# cd vmwaretoxen/
vmware01:/home/vmware/vmwaretoxen#

Klonatzera goazen makina birtuala itzalita egon behar da, beraz lehenengo bertan sartu eta halt bat egin behar da. Ez badezu egiten, errorea emango du.

Ondoren klonatzen hasiko gera:

# vmware-vdiskmanager -r /home/vmware/VirtualMachines/DebianEtch/DebianEtch.vmdk -t 0 temporary_image.vmdk 
Using log file /tmp/vmware-root/vdiskmanager.log
Creating a monolithic growable disk 'temporary_image.vmdk'
  Convert: 100% done.
Virtual disk conversion successful.

Orain XEN-ekin bateragarria den IMG irudia sortuko dugu:

vmware01:/home/vmware/vmwaretoxen# qemu-img convert -f vmdk temporary_image.vmdk -O raw xen_bateragarria.img

Hau egin ondoren, lortu dugun xen_bateragarria.img klona Xen zerbitzari fisikora kopiatuko dugu scp bidez, eta XEN zerbitzarian erabili ahal izango dugu.

3.3. Linux zerbitzari fisiko bat birtual bihurtu

Linuxekin duzun zerbitzari zahar hori birtualizatzeko

Demagun aspalditik instalatuta eta martxan duzun linux zerbitzari bat birtualizatu nahi duzula, baina arazoak dituzu zerbitzari horrek duen guztia berriro eskuz instalatzeko.

Aukera bat zerbitzari fisikoa birtualizatzea izan daiteke. Nik horretarako Virt-P2V tresna erabili dut, eta bat ere arazorik gabe hiru zerbitzari zahar XEN-era klonatu ditut.

Virt-P2V "Live CD" bat da, eta hau da egin beharreko guztia:

  • Klonatu nahi duzun zerbitzarian CD-a sartu eta berrabiarazi.
  • aterako zaizun menuan zure XEN zerbitzariaren IP helbidea sartu, ssh konexioa konfiguratu (erabiltzailea eta pasahitza) eta sortuko duen irudia XEN zerbitzarian non utzi behar duen esan (karpeta),
  • kafetxo bat hartuz zain egon ssh bidez sistema klonatu arte. Bueno, denbora dexente beharko duenez, hobe kafe hori hartu eta lanean jarraitzea, seguru baduzula eta beste zereginik.   ;-)

Ikusten duzuen moduan, oso erraza da.

Prozesu osoa bukatu ondoren, konfiguratu diozun XEN zerbitzariko karpetan bi fitxategi utziko dizkizu:

  • Irudi bat IMG formatuan
  • Konfigurazio xml bat.

Nik IMG irudia bakarrik erabiltzen det, eta sortu duen konfigurazio xml-a ezabatu egiten det. Lehen ikusi ditugun adibideak erabiliz, nik neuk sortzen det konfigurazio berri bat irudi hori XEN barruan erabiltzeko.

3.4. Zerbitzari birtual bat IMG formatutik LVM formatura bihurtu

...

Demagun zerbitzari birtual bat IMG irudi formatuan dugula eta nahiago dugula LVM formatuan izan. Hau da gure Hylafax fax zerbitzariaren kasua. Bere konfigurazio fitxategian begiratzen badegu, hau ikusiko dugu:

disk = [ 'tap:aio:/etc/xen/irudiak/XenHylafax20090126.img,hda,w']

Lehenengo bolumen logiko berri bat sortu IMG irudiak duen neurriarekin, gure kasuan 4,1 Gb:

#lvcreate -L 4,1G -n XenHylafax volgroupxen


Gero IMG horretan dagoen zerbitzari birtuala geratu kopia egiten jarri aurretik. Behin geratu dugunean, dd komandoa erabiliz kopiatu:

dd if= /etc/xen/irudiak/XenHylafax20090126.img   of=/dev/volgroupxen/XenHylafax bs=16M

Kopia bukatzen denean, konfigurazio fitxategia aldatu eta lehen IMG irudia konfiguratuta zegoen lekuan, LVM bolumena jarri:

disk = [ 'phy:/dev/volgroupxen/XenHylafax,hda,w']

eta berriro makina birtuala arrankatu.

Erraza, ezta ?

3.5. Azkeneko ikutuak

...
XEN zerbitzari fiskoa abiatzerakoan zerbitzari birtualak abiatzea nahi badugu, link bat jarri behar da zerbitzari birtual bakoitzeko, adibidez:

root@IMH01XEN01:/etc/xen# ln -s /etc/xen/XenNagios.cfg /etc/xen/auto/
Hau ez badugu jartzen, eskuz abiatu beharko ditugu makina birtualak

4. Kreditua, baimenak eta inkesta

...

4.1. Kreditua eta baimenak

...

Egilea: Pedro Arreitunandia
Data: 2009ko ekainaren 1a (2009ko abenduaren 9an publikatua)
Baimena: Creative Commons by-sa/2.0

Eskerrak eman nahi dizkiot IBEX enpresako Iñigo Losada-ri irakatsi dizkigun guztiengatik.

Honi buruzko edozein iruzkin edo galdera egiteko, erantzun post honi.

 

4.2. inkesta

Lagundu gure manualak hobetzen

Gomendatu IMH

Google iragarkiak
Zerikasi
Zerikasi: Bizitza osoan zeharreko ikaskuntza
Eusko Jaurlaritza - Hezkuntza, Unibertsitate eta Ikerketa saila. Joan bere webera
Gure Proiektua CAN-en
can-logo-derecho-eusk.gif
Kontaktua

IMH Sare Sozialetan
Jarraitu guri Twitter-en Jarraitu guri Facebook-en Jarraitu guri Tuenti-n Jarraitu guri Linkedin-en Jarraitu guri YouTube-ko kanalean Jarraitu guri Flickr-en Jarraitu guri SlideShare-n
Txandakako Ingeniaritza Sare Sozialetan
Jarraitu guri Twitter-en Jarraitu guri Facebook-en Jarraitu gure Youtube kanala Jarraitu guri Tuenti-n Follow us on Flickr Follow us on Picasa