Gå til innhold

Erfaringer med "OS-level virtualisering" i Linux?


Anbefalte innlegg

Noen som har erfaring med "OS-level virtualisering" i GNU/Linux? Tenker da på Linux-VServer, OpenVZ/Virtuozzo™ o.l ?

 

Jeg føler at andre virtualiseringsteknologier som Xen, VMWare, kvm, qemu osv. får det meste av oppmerksomheten. Alle disse er hardware-emulatorer, i motsetning til virtualisering på OS-nivå. Selv om teknologiene er totalt forskjellig, er det jo en del overlapping i bruksområdene mellom disse måtene å virtualisere på. Skal man kjøre fremmede OS (*BSD, Solaris, Windows osv.) må man såklart bruke en maskinemulator, men hvis man isteden ønsker å "partisjonere" OSet for å lage flere virtuelle maskiner kan det være interessant å bruke f.eks. OpenVZ. Spesielt nyttig er det til hosting-tjenster fordi hver av de virtuelle maskinene har én eller flere egne IP-adresser, og kjører fullstendig adskilt fra host-OSet med egen root-konto og hele sulamitten. Det er selvsagt mye mindre overhead ved å bruke denne teknologien, fordi man slipper å emulere hardware, og i tillegg blir kernelen delt mellom host og gjester.

 

Har lekt meg litt med OpenVZ og må si det er ganske sexy, men er såklart nysgjerring på andres erfaringer, og hvilke løsninger som er best osv.

 

En ulempe med OpenVZ er at de er veldig orientert mot RHEL/CentOS, så det kan være mer stress å installere hvis man bruker andre distroer. Dvs. mer manuelt arbeid, pluss at ikke alle kernelversjoner er støttet. Jeg har riktignok god erfaring med å bruke det på Debian stable. Teknologien er uansett mest aktuell på servere, og da kjører jo folk ofte Debian, CentOS osv.

 

Et bitelite kodeeksempel til slutt, som viser hvordan man starter en VE (gjest), og entrer denne:

(Host-maskinen heter etch, og gjesten heter etch101 - dvs. har flere guests da men viser bare én i eksempelet)

Klikk for å se/fjerne innholdet nedenfor
etch:~# vzctl start 101
Starting VPS ...
VPS is mounted
Adding IP address(es): 192.168.1.6
Setting CPU units: 1000
Set hostname: etch101.upc.no
File resolv.conf was modified
VPS start in progress...

etch:~# vzlist
    VPSID      NPROC STATUS  IP_ADDR         HOSTNAME
      100          6 running 192.168.1.5     etch100.upc.no
      101          4 running 192.168.1.6     etch101.upc.no

etch:~# vzctl enter 101
entered into VPS 101
root@etch101:/# 

root@etch101:/# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1   1952   644 ?        Ss   20:48   0:00 init [2]
root     18385  0.0  0.1   1628   568 ?        Ss   20:48   0:00 /sbin/syslogd
root     18401  0.0  0.2   4932  1064 ?        Ss   20:48   0:00 /usr/sbin/sshd
root     18413  0.0  0.1   2196   748 ?        Ss   20:48   0:00 /usr/sbin/cron
root     19461  0.0  0.0   1972   448 ?        Ss   20:49   0:00 vzctl: pts/0
root     19462  0.0  0.2   2728  1524 pts/0    Ss   20:49   0:00 -bash
root     19465  0.0  0.1   2224   892 pts/0    R+   20:49   0:00 ps aux

root@etch101:/# uname -a
Linux etch101.upc.no 2.6.18-openvz-686 #1 SMP Tue Apr 10 20:28:40 CEST 2007 i686 GNU/Linux

root@etch101:/# exit
logout
exited from VPS 101

etch:~# vzctl stop 101
Stopping VPS ...
VPS was stopped
VPS is unmounted

 

Inni gjesten kan man gjøre praktisk talt alt man kan i et "virkelig" OS. Man kan konfigurere og installere software som vil, og kjøre webservere, databaser eller hva man måtte drømme om :)

Lenke til kommentar
Videoannonse
Annonse

Interessant. Har ikke prøvd, men det hadde vært moro å prøve. Kjører pr. idag en server som er filserver, mailserver, webserver, databaseserver og router. Det blir jo litt "rotete", og hadde kanskje vært en fordel å skille ut de forskjellige tjenestene i virtuelle maskiner.

 

Hvordan er det med hardware-krav o.l? Spiser en virtuell maskin mye minne etc?

Lenke til kommentar
Interessant. Har ikke prøvd, men det hadde vært moro å prøve. Kjører pr. idag en server som er filserver, mailserver, webserver, databaseserver og router. Det blir jo litt "rotete", og hadde kanskje vært en fordel å skille ut de forskjellige tjenestene i virtuelle maskiner.

Det er særlig spennende hvis du vil tilby noen slags form for hosting for tredjepart, nettopp fordi VE'ene fungerer som selvstendige maskiner med egne IP-adresser og kontoer. Hver VE har altså sin egen root-konto, og du kan dermed gi ut slike "virtuelle" root-kontoer til andre folk - noe du såklart aldri ville gjort med den ordinære root-kontoen din ;) Dette åpner for muligheter man ikke har uten virtualisering, fordi webserver, SQL og alt kan installeres og konfigureres fritt av brukerne.

 

Men anvendelsesområdene er såklart ikke begrenset bare til hosting-tjenester, og du kan bl.a. bruke det for å øke sikkerheten vha. isolering av tjenester, eller du kan bruke det til testing av software fordi du dermed slipper å "tukle" med host-maskinen din. Kort og godt - bare fantasien setter grenser :)

Hvordan er det med hardware-krav o.l? Spiser en virtuell maskin mye minne etc?

8981007[/snapback]

Veldig lite overhead :thumbup:

 

Den ekstra CPU-bruken skal være minimal, og hver VE krever heller ikke mye RAM.

 

I mitt eksempel, som riktignok er en minimal Debian-installasjon (Etch) uten så mye annet enn openssh-server gående, så øker RAM-bruken med under 2MB etter jeg starter en ny VE:

 

(RAM-bruk øker fra 11,5 MB til 13,3 MB - ser bort fra buffers/cache)

post-6040-1183403457_thumb.png

Endret av Langbein
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...