Anmelden


Passwort vergessen?
prijatelji LUGoNSa
gnu.gif
linuxzasve.jpg
hulk.jpg
zextras_logo.png
 
Sie sind hier: Startseite / Uputstva / Gentoo/Exherbo / Kako podesiti OpenVZ

Kako podesiti OpenVZ

erstellt von Goran Mekić zuletzt verändert: 02.03.2010 08:34
Ako na Linux-u treba da imate više Linux virtuelnih mašina, ovo je ubedljivo najbrža virtuelizacija koja postoji

Uvod

Razlog što ovo jeste najbrža virtuelizacija je što, ustvari, OpenVZ i nije virtuelizacija. Naime, OpenVZ je ništa drugo nego napredan chroot, tako da virtuelne mašine (zapravo, kontejneri) trče na pravom hardveru, a ne na virtuelizovanom. Možda Vam se ovo ne čini mnogo, ali se unutar OpenVZ mašina ponaša na isti način kao da je unutar, na primer, VirtualBox-a (sopstveni mrežni adapter, dodeljivanje memorije, količine procesorskog vremena, ...)

Šta je potrebno od paketa

  • openvz-sources
  • vzctl
  • vzquota
  • (opciono) vzdump

Konfiguracija

Po instalaciji potrebnih paketa, potrebno je iskonfigurisati kernel. Generička konfiguracija kernela koja stiže uz openvz-sources je dovoljno dobra za Vaš sistem, osim ako ne želite da dodate neki dodatni drajver za neki od Vaših uređaja ili fajl sistema. Ono što je potrebno je da ubacite servis vz u default run nivo i pokrenete vz:

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

Pošto verovatno želite da svaka virtuelna mašina ima sopstvenu IP adresu, treba da koristite vethdev a ne vnetdev. U prevodu, u /etc/conf.d/vz dodajte sledeće:

NET_MODULES="vzethdev vznetdev"

Ovime je sama konfiguracija OpenVZ-a završena.

Kontejneri

Za početak, OpenVZ sve predstavlja kao kontejnere. Tačnije, svaka mašina, virtuelna ili hardverska, je kontejner. To znači da kad se sistem podigne, on je samo još jedan kontejner koji ima najveći prioritet, i najčešće se označava sa CT0 (skraćeno od ConTainer 0). Svaki sledeći kontejner pravite tako što skinete mustru te distribucije i sa vzctl ga kreirate. Mustre za različite distribucije su ovde. Prepostavimo da želite 64bitni Debian 5.0. Ono što ćete uraditi je:

# cd /vz/template/cache
# wget -c http://download.openvz.org/template/precreated/debian-5.0-x86_64.tar.gz
# vzctl create 101 --ostemplate debian-5.0-x86_64
# vzctl set 101 --netif_add eth0 --save

Ovim komandama ste napravili virtuelnu mašinu sa identifikatorom 101. Identifikatori manji od 101 su rezervisani i ne biste trebali da ih koristite. Ovo znači da kad god treba da identifikujete mašinu, "zvaćete" je 101.

Mašinu pokrećete sa:

# vzctl start 101

Nakon što je mašina pokrenuta, ne možete nešto puno raditi sa njom, jer mreža nije startovana. Da biste ušli u kontejner 101, treba da pokrenete:

# vzctl enter 101

Videćete da je okruženje isto kao da je Debian sam na mašini. Nakon što podesite mrežu onako kako Vam odgovara, kontejner 101 još uvek neće imati mrežu jer je potrebno izvršiti dodatna podešavanja kontejnera CT0. Pretpostavimo da ste odabrali IP adresu 192.168.0.50 za kontejner 101 i da je gateway 192.168.0.1. Ono što treba da izvršite iz kontejnera 101 da biste ručno podigli mrežu je:

# ifconfig eth0 192.168.0.50/24
# route add default gw 192.168.0.1

Ova podešavanja će raditi samo do sledećeg restarta kontejnera (bilo 101, bilo CT0). Zapišite ove informacije u odgovarajuće konfiguracione fajlove ako želite da se po podizanju kontejnera CT0, podigne i 101 zajedno sa mrežom. Ukratko, u fajl /etc/network/interfaces upišite:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
 address 192.168.0.50
 gateway 192.168.0.1
 netmask 255.255.255.0
 network 192.168.0.0
 broadcast 192.168.0.255

Da biste lakše identifikovali koji interfejs pripada kom kontejneru, najbolje je da kontejneru 101, za početak date ime:

# vzctl set 101 --name openvz --save

Ovo omogućava da kad god pozivate kontejner 101, zovete ga openvz. Bilo koje drugo ime je validno. Sledeće, potrebno je promeniti ime mrežnog interfejsa. Pronađite fajl /etc/vz/names/openvz i izmenite liniju koja počinje sa "NETIF="ifname=eth0" tako da glasi:

NETIF="ifname=eth0,mac=00:18:51:F6:AF:DB,host_ifname=openvz,host_mac=00:18:51:89:EF:33"

Pri ovome, mac adresu ostavite istu kao što je bila. Jedino što se menja je host_ifname. Restartujte kontejner 101 koristeći ime, i novi interfejs će se takođe zvati openvz. Na ovaj način po imenu tačno znate koji interfejs pripada kom kontejneru:

# vzctl restart openvz

Potrebno je izmeniti neke od konfiguracionih fajlova kako bi mreža bila izrutirana. Prvi je /etc/sysctl.conf:

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

Sledeće, potrebno je iskonfigurisati init skriptu za mrežni interfejs kontejnera 101. Prvo, potrebno je izmeniti fajl /etc/conf.d/net:

config_openvz="null"
routes_openvz="192.168.209.200 dev openvz"
depend_openvz()
{
        need vz
}

Potpom, potrebno je napraviti init skriptu:

# cd /etc/init.d
# ln -s net.lo net.openvz
# rc-update add net.openvz default

Nakon restarta mašine (kontejner CT0), OpenVZ bi trebao da se podigne automatski, podižući i kontejner 101.

Dodeljivanje resursa

Najverovatnije ne želite da svi konejneri imaju isti prioritet. Pretpostavimo da ste napravili još 2 kontejnera, 102 i 103. Pretpostavimo da želite da kontejner 103 ima najveći prioritet nad procesorom, 102 srednji i 101 najmanji. To ćete postići sledećim komandama:

# vzctl set 101 --cpuunits 1000
# vzctl set 102 --cpuunits 2000
# vzctl set 103 --cpuunits 3000

Ove oznake su relativne u odnosu na druge kontejnere, pa ako svi kontejneri veoma intenzivno koriste procesor, kontejner 103 će dobiti 50% procesora, kontejner 102 33%, a kontejner 101 17%. Računica ide na ovaj način. Ukupan prioritet dodeljen je 1000 + 2000 + 3000 = 6000. Kako kontejner 103 ima prioritet 3000, onda je procenat procesora koji on koristi 3000/6000 = 50%, 102 dobija 2000/6000 = 33% a 101 dobija 1000/6000 = 17%.

Da biste videli koliko koji kontejner ima prioriteta nad procesorom pokrenite:

# vzcpucheck -v

Da biste povećali količinu memorije dodeljenu kontejneru 101 na 512MB, koristite sledeće:

# vzctl set 101 --privvmpages 512m --save

Ova izmena će se videti momentalno, čak i ako je kontejner 101 pokrenut.

Da biste povećali količinu diska koja je dodeljena kontejneru 101, pokrenite:

# vzctl set 101 --diskspace 10g:10g --save

Kao i prethodna komanda, i ova ima uticaj na mašinu bez restarta, a izmena je vidljiva odmah. Ovom komandom ste postavili ograničenje kontejnera na prostor na disku od 10GB.

Artikelaktionen