Erinevus lehekülje "OpenVZ" redaktsioonide vahel
(→Openvz install) |
(→VZ template tegemine gentoole) |
||
172. rida: | 172. rida: | ||
Ja testime enda kätetööd | Ja testime enda kätetööd | ||
− | # vzctl create | + | # vzctl create 807 --ostemplate gentoo --ipadd 193.40.0.193 --hostname testvps |
− | Creating VE private area (gentoo) | + | Creating VE private area (gentoo) |
− | Performing postcreate actions | + | Performing postcreate actions |
− | VE private area was created | + | 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 | Valmis, oleme töötava virtuaalserveri omanik | ||
194. rida: | 190. rida: | ||
Testime ka seda | Testime ka seda | ||
− | # vzctl enter | + | # vzctl enter 807 |
− | entered into VE | + | entered into VE 807 |
# ifconfig | # ifconfig | ||
202. rida: | 198. rida: | ||
inet6 addr: ::1/128 Scope:Host | inet6 addr: ::1/128 Scope:Host | ||
UP LOOPBACK RUNNING MTU:16436 Metric:1 | UP LOOPBACK RUNNING MTU:16436 Metric:1 | ||
− | RX packets: | + | RX packets:0 errors:0 dropped:0 overruns:0 frame:0 |
− | TX packets: | + | TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 |
collisions:0 txqueuelen:0 | collisions:0 txqueuelen:0 | ||
− | RX bytes: | + | 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 | 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. | + | 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 | UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 | ||
− | RX packets: | + | RX packets:17 errors:0 dropped:0 overruns:0 frame:0 |
− | TX packets: | + | TX packets:16 errors:0 dropped:0 overruns:0 carrier:0 |
collisions:0 txqueuelen:0 | collisions:0 txqueuelen:0 | ||
− | RX bytes: | + | RX bytes:1428 (1.3 Kb) TX bytes:1344 (1.3 Kb) |
+ | |||
Redaktsioon: 14. mai 2009, kell 14:18
Sisukord
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.18.tar.bz2 # cd linux-2.6.18 # gzip -dc patch-ovz028stab056.1-combined.gz | patch -p1 # cp kernel-2.6.18-i686-smp.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
kaks moodulit. failisüsteemiks ja interneti kasutamiseks
modprobe simfs modprobe vzethdev
need võib lisada ka faili /etc/modules.autoload.d/kernel-2.6 ,et reboodil automaatselt moodulit laetaks
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 template tegemine gentoole
Tõmbame stage
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 *
Ja testime enda kätetööd
# 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
Testime ka seda
# vzctl enter 807 entered into VE 807
# 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)
Kasutatud manuali mis pärineb siit http://wiki.openvz.org/Gentoo_template_creation
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
Virtuaalse serveri suuruseks tuleb umbes 400Mb
stardime virtuaalse serveri
vzctl start 800
ja ronime selle sisse
vzctl enter 800
protsessitabel, nagu näha on pilt väga minimaalne
# 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
Veel üks tähtis asi ,et /dev kaustas töötaksid deviced tuleb teha muudatus faili
/vz/private/800/etc/conf.d/rc
kus tuleb muuta RC_DEVICES selliseks
RC_DEVICES="static"
Probleem seisneb selles ,et udev ei taha millegipärast korrektselt töötada koos vz'iga
Töötavaid virtuaalmasinaid näeme käsuga vzlist
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
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)
Edasine häälestus
Portide ühendamine vz masina külge
mkdir /vz/private/800/usr/portage mount -o bind /usr/portage /vz/private/800/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
Jooksev migreerimine
http://www.howtoforge.com/how-to-do-live-migration-of-openvz-containers