OpenVZ: erinevus redaktsioonide vahel

Allikas: Kuutõrvaja
Mine navigeerimisribaleMine otsikasti
Jj (arutelu | kaastöö)
Resümee puudub
Jj (arutelu | kaastöö)
 
(ei näidata sama kasutaja 61 vahepealset redaktsiooni)
5. rida: 5. rida:
vaid sama os põhiseid eraldatud masinaid. OpenVZ ideaalne lahendus.
vaid sama os põhiseid eraldatud masinaid. OpenVZ ideaalne lahendus.


OpenVZ kasutab Operating system-level virtualiseerimist


===Install===
virtualizing a physical server at the operating system level, enabling multiple isolated and secure virtualized servers to run on a single physical server. The "guest" OS environments share the same OS as the host system – i.e. the same OS kernel is used to implement the "guest" environments. Applications running in a given "guest" environment view it as a stand-alone system. Examples are Linux-VServer, Virtuozzo (for Windows or Linux), OpenVZ, Solaris Containers, and FreeBSD Jails.
 
OpenVZ is an open source container-based virtualization solution built on Linux. OpenVZ creates isolated, secure containers (otherwise known as VEs or VPSs) on a single physical server enabling better server utilization and ensuring that applications do not conflict. Each container performs and executes exactly like a stand-alone server; containers can be rebooted independently and have root access, users, IP addresses, memory, processes, files,
 
As OpenVZ employs a single kernel model, it is as scalable as the 2.6 Linux kernel; that is, it supports up to 64 CPUs and up to 64 GiB of RAM.[citation needed] A single container can scale up to the whole physical box, i.e. use all the CPUs and all the RAM.
The OpenVZ is divided into a custom kernel and user-level tools.
 
Antud pala keskendub OpenVz kasutamisele Gentoo all.
 
===Openvz install===


Süsteemi aluseks on valitud gentoo ning antud õpetus
Süsteemi aluseks on valitud gentoo ning antud õpetus
15. rida: 25. rida:


  emerge openvz-sources
  emerge openvz-sources
Kuna aga millegipärast hetkel on gentoo vahenditega saadav ja eelseadistatud kernel pisut vana versioon
ja keeldub uuemal gentool kompileerumast saab seda paigaldada ka käsitsi
Tuleb esmalt tõmmata linuxi kernel ja patch ning seadistusfail
tar vjxf linux-2.6.27.tar.bz2
gzip -dc patch-briullov.1-combined.gz | patch -p1
cp kernel-2.6.27-i686.config.ovz .config


edasi siis järgnevad käsud ei hakka peatuma pikemalt
edasi siis järgnevad käsud ei hakka peatuma pikemalt
21. rida: 40. rida:
  cd /usr/src/linux
  cd /usr/src/linux
  make menuconfig
  make menuconfig
  make && make modules_install
  ...
make install


Seejärel paigaldame openvz utiliidid
Seejärel paigaldame openvz utiliidid. Seadistame
selle peale rebooti startima ning käivitame.


  emerge vzctl
  emerge vzctl
30. rida: 49. rida:
  /etc/init.d/vz start
  /etc/init.d/vz start


kaks moodulit. failisüsteemiks ja interneti kasutamiseks
Viimasena täiendame sysctl.conf faili ,et võrk töötaks
 
# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.ip_forward=1
# Enables source route verification
net.ipv4.conf.all.rp_filter = 1
# Enables the magic-sysrq key
kernel.sysrq = 1
# TCP Explict Congestion Notification
#net.ipv4.tcp_ecn = 0
# we do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
 
Ja ongi server valmis ning võime asuda virtuaalserveri template tegemise juurde
 
===VZ virtualserveri template loomine===
 
Tõmbame gentoo stage, loome virtuaalserveri tarbeks kausta ja pakime selle lahti
 
mkdir /vz/private/777
tar -xjf /root/stage3-i686-2008.0_beta2.tar.bz2 -C /vz/private/777
 
Nüüd loome seadistatava template konfi mis sisaldab mitmeid viise virtuaalmasinat piirata ja puua
 
vzctl set 777 --applyconfig vps.basic --save
 
Lisame templatele ka nime gentoo
 
avame faili /etc/vz/conf/777.conf


  modprobe simfs
  OSTEMPLATE="gentoo"
  modprobe vzethdev
 
Järgmisena /etc/mtab sümlingiks /proc/mounts peale selleks ,et df käsk töötaks ja oleks alati
mtabis mounditud info korrektne
 
rm -f /vz/private/777/etc/mtab
ln -s /proc/mounts /vz/private/777/etc/mtab
 
Vajalik veel fstabi lisada
 
echo "proc /proc proc defaults 0 0" > /vz/private/777/etc/fstab
 
 
Aba  /vz/private/777/etc/inittab ja kommenteeri välja kõik read
c?:1235:respawn:/sbin/agetty 38400 tty? linux
 
Selleks ,et getty ja login ei stardiks tty'sid mis ei eksisteeri
 
 
järgmisena avame /vz/private/777/etc/shadow ja asendame seal eksisteeriva root rea järgmisega
 
root:!:10071:0:::::
 
see lülitab välja root kasutajana logimise kuni pole seadistatud järgneva käsuga vzctl set CTID --userpasswd root:password. parooli
 
Lülitame välja veel mõned ebavajalikud init skriptid
 
rm /vz/private/777/etc/runlevels/boot/checkroot
rm /vz/private/777/etc/runlevels/boot/consolefont
 
Keelame ka /sys mountimise üritused
 
avame  /vz/private/777/sbin/rc ja kommenteerime seal välja rea
# try mount -n ${mntcmd:--t sysfs sysfs /sys -o noexec,nosuid,nodev}
 
Et see update masinat uuendades üle ei kirjutatataks tuleb lisada/vz/private/777/etc/make.conf faili
 
CONFIG_PROTECT = /sbin/rc
 
Pisut keeruline on kasutada udev'i kuna mõned seadmed on alguses vaikimisi puudu. Näiteks sshd keeldub käima minemast
kuna /dev/random ja /dev/urandom on puudu. Sellepärast on soovitatav udev väljalülitada Selleks tuleb avad fail '''/vz/private/777/etc/conf.d/rc''' ja
muuta seal leiduvad rida RC_DEVICES järgnevaks
 
RC_DEVICES="static"
 
Seejärel loome mõned deviced mis vajalikud virtualserverile
 
Nüüd tuleb järgnevalt cd käsuga liikuda kaustast kus hetkel asume välja muidu võib järgnevaid käske andes veateate
 
You have to leave the directory you are in for the next step to be OK, otherwise you will get this error message:
vzquota : (error) Quota on syscall for 777: Device or resource busy
vzquota on failed [3]
 
Seega kirjutame
 
cd /
 
Ja anname käsud
 
vzctl start 777
vzctl enter 777
 
seadistame ka resolv.conf'i nimeserveri paika
 
Nüüd peaks valmis olema, tekitame enda loodust uue template
 
cd /vz/private/777/
tar czf /vz/template/cache/gentoo.tar.gz *
 
 
Kasutatud manuali mis pärineb siit http://wiki.openvz.org/Gentoo_template_creation
 
===Template abil virtuaalmasina tekitamine===
 
'''# vzctl create 807 --ostemplate gentoo --ipadd 193.40.0.193 --hostname testvps'''
Creating VE private area (gentoo)                                                       
Performing postcreate actions                                                           
VE private area was created               
 
'''# vzctl start 807'''
Starting VE ...             
VE is mounted               
Adding IP address(es): 193.40.0.193
Setting CPU units: 1000           
Configure meminfo: 65536         
Set hostname: testvps             
VE start in progress...           
 
Valmis, oleme töötava virtuaalserveri omanik
 
===Virtuaalmasina kasutamine===
 
Testime ka seda
 
# vzctl enter 807
entered into VE 807
 
Kontrollime võrguseadistust
 
'''# ifconfig'''
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 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:0 (0.0 b)  TX bytes:0 (0.0 b)
venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:193.40.0.193  P-t-P:193.40.0.193  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:17 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1428 (1.3 Kb)  TX bytes:1344 (1.3 Kb)
 
Muudame näiteks virtuaalse serveri ip aadressi
 
'''# vzctl set 807 --ipadd 193.40.0.59 --save'''
Adding IP address(es): 193.40.0.59
  * Caching service dependencies ...                                      [ ok ]
  * Unmounting network filesystems ...                                    [ ok ]
  * Stopping sshd ...                                                      [ ok ]
  * Stopping venet0
  *  Bringing down venet0
  *    Shutting down venet0 ...                                          [ ok ]
  * Starting venet0
  *  Bringing up venet0
  *    193.40.0.193/32
                                                                          [ ok ]
  *    193.40.0.59/32
                                                                          [ ok ]
  *  Adding routes
  *    -net 192.0.2.0/24 ...                                              [ ok ]
  *    default via 192.0.2.1 ...                                          [ ok ]
  * Mounting network filesystems ...                                      [ ok ]
  * Starting sshd ...                                                      [ ok ]
Saved parameters for VE 807
 
Eelmise ip aadress säilub ja see oleks otstarbekas kustutada käsuga
 
'''# vzctl set 807 --ipdel 193.40.0.59 --save'''
Deleting IP address(es): 193.40.0.59
Saved parameters for VE 807
 
 
Vaatame protsessitabel, nagu näha on pilt väga minimaalne, vaid init ja bash, vzctl protsess
näitab ,et kasutame vz käsurea utiliiti
 
'''# ps aux'''
USER      PID %CPU %MEM    VSZ  RSS TTY      STAT START  TIME COMMAND
root        1  0.0  0.2  1564  544 ?        Ss  18:47  0:00 init [3]
root    29955  0.0  0.2  1928  452 ?        Ss  19:16  0:00 vzctl: pts/0
root    29956  0.0  0.7  2664  1544 pts/0    Ss  19:16  0:00 -bash
root    24172  0.0  0.4  2192  888 pts/0    R+  19:37  0:00 ps -aux
 
Kõiki serveris töötavaid virtuaalmasinaid koos ip'dega näeme käsuabil vzlist
 
Serveri kustutamiseks tuleb ta kõigepealt stopida vzctl stop 800
Ja seejärel
 
# vzctl destroy 800
  Destroying VE private area: /vz/private/800
VE private area was destroyed
 
 
Virtuaalse serveri suuruseks tuleb umbes 400Mb
 
===VZ virtuaalmasina loomine kiirelt ja mustalt===


Tõmbame gentoo stage alla näiteks saame selle aadressilt
Tõmbame gentoo stage alla näiteks saame selle aadressilt
40. rida: 266. rida:


  mv stage3-x86-2007.0.tar.bz2 /vz/template/cache
  mv stage3-x86-2007.0.tar.bz2 /vz/template/cache
cd /vz/template/cache
  bunzip2 stage3-x86-2007.0.tar.bz2
  bunzip2 stage3-x86-2007.0.tar.bz2
  mv stage3-x86-2007.0.tar stage3.tar
  mv stage3-x86-2007.0.tar stage3.tar
49. rida: 276. rida:
  vzctl create 800 --ostemplate stage3
  vzctl create 800 --ostemplate stage3


stardime masina
===Võrgu alternatiivne seadistus veth===


vzctl start 800
Vaikimisi kasutab openvz veth seadmeid võrguühenduse loomiseks, on siiski olemas pisut keerukam kuid võimalusterohkem seadistusviis
Mõned erinevused venet ja veth vahel on toodud tabelina http://wiki.openvz.org/Differences_between_venet_and_veth


ja siseneme sellesse
ip mille annan virtuaalsele masinale 800 on 193.40.0.193 netmaskiga 255.255.255.128
ruuteriks on 193.40.0.129


vzctl enter 800
Esimese asjana vajalik laadida moodul


protsessitabel, nagu näha on pilt väga minimaalne
modprobe vzethdev


# ps aux
Selle võib lisada ka faili '''/etc/modules.autoload.d/kernel-2.6''' ,et reboodil automaatselt
USER      PID %CPU %MEM    VSZ  RSS TTY      STAT START  TIME COMMAND
juba laetaks
root        1  0.0  0.2  1564  544 ?        Ss  18:47  0:00 init [3]
root    29955  0.0  0.2  1928  452 ?        Ss  19:16  0:00 vzctl: pts/0
root    29956  0.0  0.7  2664  1544 pts/0    Ss  19:16  0:00 -bash
root    24172  0.0  0.4  2192  888 pts/0    R+  19:37  0:00 ps -aux


===Võrgu seadistus===
echo 1 > /proc/sys/net/ipv4/conf/eth0/forwarding
 
echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
Võrgu seadistamine peaks töötama ka lihtsamalt
kohe vz masinat luues kuid millegipärast tõrkus see süsteem


  vzctl set 900 --veth_add veth900.0,00:12:34:56:78:9A,eth0,00:12:34:56:78:9B --save
  vzctl set 900 --veth_add veth900.0,00:12:34:56:78:9A,eth0,00:12:34:56:78:9B --save
81. rida: 304. rida:
  echo 1 > /proc/sys/net/ipv4/conf/veth900.0/forwarding
  echo 1 > /proc/sys/net/ipv4/conf/veth900.0/forwarding
  echo 1 > /proc/sys/net/ipv4/conf/veth900.0/proxy_arp
  echo 1 > /proc/sys/net/ipv4/conf/veth900.0/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/eth0/forwarding
 
echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
  vzctl exec 900 ifconfig eth0 0
  vzctl exec 900 ifconfig eth0 0
  vzctl exec 900 ifconfig eth0 193.40.0.193 netmask 255.255.255.128
  vzctl exec 900 ifconfig eth0 193.40.0.193 netmask 255.255.255.128
98. rida: 320. rida:
           RX bytes:1011288 (987.5 Kb)  TX bytes:7733410 (7.3 Mb)
           RX bytes:1011288 (987.5 Kb)  TX bytes:7733410 (7.3 Mb)


===Virtuaalmasinate mitme serveri vahel liigutamine===


===Edasine häälestus===
Esmalt tuleb tekitada ssh paroolita logimiseks keyfailid serverite vahel seejärel võib anda käsu vzmigrate --online sihtpunkt virtuaalse masina number


Portide ühendamine vz masina külge
'''# vzmigrate --online 193.40.0.183 807'''
OPT:--online
OPT:193.40.0.183
Starting online migration of VE 807 on 193.40.0.183
Preparing remote node
/usr/sbin/vzmigrate: line 382: [: missing `]'
Initializing remote quota
Syncing private
Live migrating VE
Syncing 2nd level quota
Cleanup


mkdir /vz/root/800/usr/portage
Migreerimise hetkel võib korra konsool hanguda kuid siis jätkub töö endistviisi poolelijäänud kohast
mount -o bind /usr/portage /vz/root/800/usr/portage


In order for VE to work, some nodes should be present in VE's /dev. For
===Edasine häälestus===
modern distributions, udev is taking care of it. For a variety of
reasons udev doesn't make much sense in a VE, so the best thing to do is
to disable udev and create needed device nodes manually.
 
Note that in some distributions /dev is mounted on tmpfs — this will not
work in case of static /dev. So what you need to do is find out where
/dev is being mounted on tmpfs and remove this. This is highly
distribution-dependent; please add info for your distro here.


nano /etc/conf.d/rc
Kuna on ebaotstarbekas ja ruumi võttev sünkroniseerida portse igale virtuaalserverile eraldi
RC_DEVICES="static"
tuleks need ühendada põhiserverist virtuaalserveri külge


mount -o bind /usr/portage /vz/root/807/usr/portage


===Lingid===
===Lingid===
127. rida: 352. rida:


http://wiki.openvz.org/Gentoo_template_creation
http://wiki.openvz.org/Gentoo_template_creation
http://wiki.openvz.org/Getting_started_with_OpenVZ_live_CD
Võrdlustabel operatsioonisüsteemi virtualiseerimisest
http://en.wikipedia.org/wiki/Operating_system-level_virtualization
Veebihaldus
http://webvz.sourceforge.net/
Jooksev migreerimine
http://www.howtoforge.com/how-to-do-live-migration-of-openvz-containers

Viimane redaktsioon: 22. mai 2009, kell 14:39

Sissejuhatus

XEN tehnoloogia pole alati sobiv eriti kui pole soovi kasutada erinevaid operatsoonisüstemee vaid sama os põhiseid eraldatud masinaid. OpenVZ ideaalne lahendus.

OpenVZ kasutab Operating system-level virtualiseerimist

virtualizing a physical server at the operating system level, enabling multiple isolated and secure virtualized servers to run on a single physical server. The "guest" OS environments share the same OS as the host system – i.e. the same OS kernel is used to implement the "guest" environments. Applications running in a given "guest" environment view it as a stand-alone system. Examples are Linux-VServer, Virtuozzo (for Windows or Linux), OpenVZ, Solaris Containers, and FreeBSD Jails.

OpenVZ is an open source container-based virtualization solution built on Linux. OpenVZ creates isolated, secure containers (otherwise known as VEs or VPSs) on a single physical server enabling better server utilization and ensuring that applications do not conflict. Each container performs and executes exactly like a stand-alone server; containers can be rebooted independently and have root access, users, IP addresses, memory, processes, files,

As OpenVZ employs a single kernel model, it is as scalable as the 2.6 Linux kernel; that is, it supports up to 64 CPUs and up to 64 GiB of RAM.[citation needed] A single container can scale up to the whole physical box, i.e. use all the CPUs and all the RAM. The OpenVZ is divided into a custom kernel and user-level tools.

Antud pala keskendub OpenVz kasutamisele Gentoo all.

Openvz install

Süsteemi aluseks on valitud gentoo ning antud õpetus sobib vaid sellele operatsioonisüsteemile

Esimesena tuleb teha openvz toega kernel selleleks emergeda openvz patchiga kerneli kood

emerge openvz-sources

Kuna aga millegipärast hetkel on gentoo vahenditega saadav ja eelseadistatud kernel pisut vana versioon ja keeldub uuemal gentool kompileerumast saab seda paigaldada ka käsitsi

Tuleb esmalt tõmmata linuxi kernel ja patch ning seadistusfail

tar vjxf linux-2.6.27.tar.bz2
gzip -dc patch-briullov.1-combined.gz | patch -p1
cp kernel-2.6.27-i686.config.ovz .config

edasi siis järgnevad käsud ei hakka peatuma pikemalt linuxi kerneli tegemisel kuna pikem pala

cd /usr/src/linux
make menuconfig
...

Seejärel paigaldame openvz utiliidid. Seadistame selle peale rebooti startima ning käivitame.

emerge vzctl
rc-update add vz default
/etc/init.d/vz start

Viimasena täiendame sysctl.conf faili ,et võrk töötaks

# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled

net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.ip_forward=1

# Enables source route verification
net.ipv4.conf.all.rp_filter = 1

# Enables the magic-sysrq key
kernel.sysrq = 1

# TCP Explict Congestion Notification
#net.ipv4.tcp_ecn = 0

# we do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

Ja ongi server valmis ning võime asuda virtuaalserveri template tegemise juurde

VZ virtualserveri template loomine

Tõmbame gentoo stage, loome virtuaalserveri tarbeks kausta ja pakime selle lahti

mkdir /vz/private/777
tar -xjf /root/stage3-i686-2008.0_beta2.tar.bz2 -C /vz/private/777

Nüüd loome seadistatava template konfi mis sisaldab mitmeid viise virtuaalmasinat piirata ja puua

vzctl set 777 --applyconfig vps.basic --save

Lisame templatele ka nime gentoo

avame faili /etc/vz/conf/777.conf

OSTEMPLATE="gentoo"

Järgmisena /etc/mtab sümlingiks /proc/mounts peale selleks ,et df käsk töötaks ja oleks alati mtabis mounditud info korrektne

rm -f /vz/private/777/etc/mtab
ln -s /proc/mounts /vz/private/777/etc/mtab

Vajalik veel fstabi lisada

echo "proc /proc proc defaults 0 0" > /vz/private/777/etc/fstab


Aba /vz/private/777/etc/inittab ja kommenteeri välja kõik read

c?:1235:respawn:/sbin/agetty 38400 tty? linux

Selleks ,et getty ja login ei stardiks tty'sid mis ei eksisteeri


järgmisena avame /vz/private/777/etc/shadow ja asendame seal eksisteeriva root rea järgmisega

root:!:10071:0:::::

see lülitab välja root kasutajana logimise kuni pole seadistatud järgneva käsuga vzctl set CTID --userpasswd root:password. parooli

Lülitame välja veel mõned ebavajalikud init skriptid

rm /vz/private/777/etc/runlevels/boot/checkroot
rm /vz/private/777/etc/runlevels/boot/consolefont

Keelame ka /sys mountimise üritused

avame /vz/private/777/sbin/rc ja kommenteerime seal välja rea

# try mount -n ${mntcmd:--t sysfs sysfs /sys -o noexec,nosuid,nodev}

Et see update masinat uuendades üle ei kirjutatataks tuleb lisada/vz/private/777/etc/make.conf faili

CONFIG_PROTECT = /sbin/rc

Pisut keeruline on kasutada udev'i kuna mõned seadmed on alguses vaikimisi puudu. Näiteks sshd keeldub käima minemast kuna /dev/random ja /dev/urandom on puudu. Sellepärast on soovitatav udev väljalülitada Selleks tuleb avad fail /vz/private/777/etc/conf.d/rc ja muuta seal leiduvad rida RC_DEVICES järgnevaks

RC_DEVICES="static"

Seejärel loome mõned deviced mis vajalikud virtualserverile

Nüüd tuleb järgnevalt cd käsuga liikuda kaustast kus hetkel asume välja muidu võib järgnevaid käske andes veateate

You have to leave the directory you are in for the next step to be OK, otherwise you will get this error message: 
vzquota : (error) Quota on syscall for 777: Device or resource busy
vzquota on failed [3]

Seega kirjutame

cd /

Ja anname käsud

vzctl start 777 vzctl enter 777

seadistame ka resolv.conf'i nimeserveri paika

Nüüd peaks valmis olema, tekitame enda loodust uue template

cd /vz/private/777/
tar czf /vz/template/cache/gentoo.tar.gz *


Kasutatud manuali mis pärineb siit http://wiki.openvz.org/Gentoo_template_creation

Template abil virtuaalmasina tekitamine

# vzctl create 807 --ostemplate gentoo --ipadd 193.40.0.193 --hostname testvps
Creating VE private area (gentoo)                                                         
Performing postcreate actions                                                             
VE private area was created                
# vzctl start 807
Starting VE ...              
VE is mounted                
Adding IP address(es): 193.40.0.193
Setting CPU units: 1000            
Configure meminfo: 65536           
Set hostname: testvps              
VE start in progress...            

Valmis, oleme töötava virtuaalserveri omanik

Virtuaalmasina kasutamine

Testime ka seda

# vzctl enter 807
entered into VE 807

Kontrollime võrguseadistust

# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 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:0 (0.0 b)  TX bytes:0 (0.0 b)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:193.40.0.193  P-t-P:193.40.0.193  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:17 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1428 (1.3 Kb)  TX bytes:1344 (1.3 Kb)

Muudame näiteks virtuaalse serveri ip aadressi

# vzctl set 807 --ipadd 193.40.0.59 --save
Adding IP address(es): 193.40.0.59
 * Caching service dependencies ...                                       [ ok ]
 * Unmounting network filesystems ...                                     [ ok ]
 * Stopping sshd ...                                                      [ ok ]
 * Stopping venet0
 *   Bringing down venet0
 *     Shutting down venet0 ...                                           [ ok ]
 * Starting venet0
 *   Bringing up venet0
 *     193.40.0.193/32
                                                                          [ ok ]
 *     193.40.0.59/32
                                                                          [ ok ]
 *   Adding routes
 *     -net 192.0.2.0/24 ...                                              [ ok ]
 *     default via 192.0.2.1 ...                                          [ ok ]
 * Mounting network filesystems ...                                       [ ok ]
 * Starting sshd ...                                                      [ ok ]
Saved parameters for VE 807

Eelmise ip aadress säilub ja see oleks otstarbekas kustutada käsuga

# vzctl set 807 --ipdel 193.40.0.59 --save
Deleting IP address(es): 193.40.0.59
Saved parameters for VE 807


Vaatame protsessitabel, nagu näha on pilt väga minimaalne, vaid init ja bash, vzctl protsess näitab ,et kasutame vz käsurea utiliiti

# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2   1564   544 ?        Ss   18:47   0:00 init [3]
root     29955  0.0  0.2   1928   452 ?        Ss   19:16   0:00 vzctl: pts/0
root     29956  0.0  0.7   2664  1544 pts/0    Ss   19:16   0:00 -bash
root     24172  0.0  0.4   2192   888 pts/0    R+   19:37   0:00 ps -aux

Kõiki serveris töötavaid virtuaalmasinaid koos ip'dega näeme käsuabil vzlist

Serveri kustutamiseks tuleb ta kõigepealt stopida vzctl stop 800 Ja seejärel

# vzctl destroy 800
Destroying VE private area: /vz/private/800
VE private area was destroyed


Virtuaalse serveri suuruseks tuleb umbes 400Mb

VZ virtuaalmasina loomine kiirelt ja mustalt

Tõmbame gentoo stage alla näiteks saame selle aadressilt

ftp://ftp.eenet.ee/pub/gentoo/releases/x86/2007.0/stages/

mv stage3-x86-2007.0.tar.bz2 /vz/template/cache
cd /vz/template/cache
bunzip2 stage3-x86-2007.0.tar.bz2
mv stage3-x86-2007.0.tar stage3.tar
gzip stage3.tar

Loome openvz masina mille id'ks 800 id alusel käib kogu virtuaalse masinaga töö. Allapoole 100 on id'd reserveeritud

vzctl create 800 --ostemplate stage3

Võrgu alternatiivne seadistus veth

Vaikimisi kasutab openvz veth seadmeid võrguühenduse loomiseks, on siiski olemas pisut keerukam kuid võimalusterohkem seadistusviis Mõned erinevused venet ja veth vahel on toodud tabelina http://wiki.openvz.org/Differences_between_venet_and_veth

ip mille annan virtuaalsele masinale 800 on 193.40.0.193 netmaskiga 255.255.255.128 ruuteriks on 193.40.0.129

Esimese asjana vajalik laadida moodul

modprobe vzethdev

Selle võib lisada ka faili /etc/modules.autoload.d/kernel-2.6 ,et reboodil automaatselt juba laetaks

echo 1 > /proc/sys/net/ipv4/conf/eth0/forwarding
echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
vzctl set 900 --veth_add veth900.0,00:12:34:56:78:9A,eth0,00:12:34:56:78:9B --save
ifconfig veth900.0 0
Warning: --veth_add option is outdated use --netif_add instead
Configure meminfo: 49152
Configure veth devices: veth101.0
Saved parameters for VE 800
echo 1 > /proc/sys/net/ipv4/conf/veth900.0/forwarding
echo 1 > /proc/sys/net/ipv4/conf/veth900.0/proxy_arp
vzctl exec 900 ifconfig eth0 0
vzctl exec 900 ifconfig eth0 193.40.0.193 netmask 255.255.255.128
vzctl exec 900 route add default dev eth0
route add 193.40.0.193 dev veth900.0

serveripoolt peaksime nägema

# ifconfig veth900.0
veth900.0 Link encap:Ethernet  HWaddr 00:12:34:56:78:9A
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6569 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7785 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1011288 (987.5 Kb)  TX bytes:7733410 (7.3 Mb)

Virtuaalmasinate mitme serveri vahel liigutamine

Esmalt tuleb tekitada ssh paroolita logimiseks keyfailid serverite vahel seejärel võib anda käsu vzmigrate --online sihtpunkt virtuaalse masina number

# vzmigrate --online 193.40.0.183 807
OPT:--online
OPT:193.40.0.183
Starting online migration of VE 807 on 193.40.0.183
Preparing remote node
/usr/sbin/vzmigrate: line 382: [: missing `]'
Initializing remote quota
Syncing private 
Live migrating VE
Syncing 2nd level quota 
Cleanup

Migreerimise hetkel võib korra konsool hanguda kuid siis jätkub töö endistviisi poolelijäänud kohast

Edasine häälestus

Kuna on ebaotstarbekas ja ruumi võttev sünkroniseerida portse igale virtuaalserverile eraldi tuleks need ühendada põhiserverist virtuaalserveri külge

mount -o bind /usr/portage /vz/root/807/usr/portage

Lingid

http://www.gentoo.org/proj/en/vps/openvz-howto.xml

http://wiki.openvz.org/Virtual_Ethernet_device

http://wiki.openvz.org/Gentoo_template_creation

http://wiki.openvz.org/Getting_started_with_OpenVZ_live_CD

Võrdlustabel operatsioonisüsteemi virtualiseerimisest

http://en.wikipedia.org/wiki/Operating_system-level_virtualization

Veebihaldus

http://webvz.sourceforge.net/

Jooksev migreerimine

http://www.howtoforge.com/how-to-do-live-migration-of-openvz-containers