vServerin käyttöönotto

Linuxin on Linuxin kernel-pohjainen virtualiointiratkaisu, aiheestä voit lukea vServerin wikistä: http://linux-vserver.org/

vServer löytyy Debianin omina paketteina versioon 6.X asti, uudemmissa sen asennus on vähän hankalempi.

vServerin saat Debianissa käyttöön seuraavasti, jos käytössäsi on x86 asennus korvaa amd64 686:lla (linux-image-vserver-686). Voit ajaa x64 versiossa myös 32-bittisiä koneita.

sudo apt-get install linux-image-vserver-amd64 util-vserver ssh

Asennuksen jälkeen käynnistä kone uudelleen, jonka jälkeen voit katsoa menikö asennus oikein.

uname -r

tarkista että kernel versio sisältää vserver esim. 2.6.32-5-vserver-amd64, jos näin on asennus on valmis.

Vaikka itse asennus on helppo, sen kunnollinen käyttö vaatii vähän opettelua ja muutoksia. Seuraavana muutama olennainen asia.

Virtuaalikoneen luonti (Debian – squeeze):

vserver <guest> build -m debootstrap --context 1001 --hostname <guest>.domain.net --interface eth0:192.168.0.21/24 -- -d squeeze -m http://ftp.fi.debian.org/debian
  • <guest> = virtuaalikoneen nimi (esim. server1)
  • 1001 = virtuaalikoneen uniikki numero
  • eth0 = verkkokortti jonka verkossa liikennöinti tapahtuu, tarkista tämä jos koneessa on useampi verkkokortti
  • squeeze = kertoo että asennetaan Debianin squeeze-versio (6.x)

Viimeisellä rivillä pitäisi näkyä: I: Base system installed successfully.
Tämän jälkeen voit käynnistää virtuaalikoneen

vserver <guest> start

Virtuaalikoneeseen asentuu vain perus-järjestelmä, edes OpenSSH-server ei siis asennu. Pääset virtuaalikoneeseen niitä asentelmaan seuraavasti.

vserver <guest> enter

Virtuaalikone sammutetaan seuraavasti

vserver <guest> stop

Virtuaalikoneen uudelleenkäynnistys

vserver <guest> restart

Kaikkien käynnissä olevien virtuaalikoneiden listaus

vserver-stat

Virtuaalikoneen ohjelmien käyttö ilman koneelle kirjautumista (top on esimerkki, muutkin toimivat)

vserver <guest> exec top

Virtuaalikoneen poistaminen

vserver <guest> delete

vServer ei periaatteessa asenna erillisiä koneita, vaan käyttää kernel-pohjaista chroot tyylistä asennnusta. Tämä asettaa pieniä rajoituksia IP-osoitteisiin ja niiden käyttäytymiseen, tässä lisäksi muutama muu huomioitava seikka:

  1. Isäntäkoneen (se mihin vServer on asennettu) asennetut palvelut (services)  käyttävät oletuksena kaikkien koneiden IP-osoitteita
  2. Virtuaalikoneiden resurssien rajoitus ei oletuksena käytössä
  3. Virtuaalikoneiden tmp-kansio on oletuksena vain 16MB
  4. Virtuaalikoneissa ei voi oletuksena ajaa tiettyjä palveluita esim. iptables, näidenkin ohjelmien käyttö on mahdollista jollakin muulla tavalla mutta vaativat pientä säätöä

Rajoita isäntäkoneen palveluita käyttämään vai omaa IP-osoitettansa, tässä pari oleellista:

openSSH-server: muokkaa tiedostoa: /etc/ssh/sshd_config

#ListenAddress 0.0.0.0
ListenAddress 192.168.0.1:80 #Vaihda IP-osoitteen tilalle oikea IP

Apache2: muokkaa tiedostoa: /etc/apache2/ports.conf

Listen :80

<IfModule mod_ssl.c>
    Listen :443
</IfModule>
Listen 192.168.0.1:80 #Vaihda IP-osoitteen tilalle oikea isäntäkoneen-IP

<IfModule mod_ssl.c>
    Listen  192.168.0.1:443 #Vaihda IP-osoitteen tilalle oikea IP
</IfModule>

vServeriin saat virtuaalikoneille useita erilaisia rajoituksia, levytilan rajoitus vaatii tag option levyn käyttöön isäntäkoneella, tämä optio ei toimi esimerkiksi NFS levyillä.

Muokkaa /etc/fstab tiedostoa

/dev/sdb1      /vservers       ext3    defaults        0       2
/dev/sdb1      /vservers       ext3    defaults,tag        0       2

Liitä (mounttaa) levy uudelleen

umount /vservers && mount /vservers

Tämän jälkeen voit ottaa levyrajoituksen käyttöön virtuaalikoneilla.

Sammutetun koneen rajoituksen asettaminen (kun kone käynnistetään tai uudelleenkäynnistetään tulevat rajoitukset voimaan):

mkdir -p /etc/vservers/<guest>/dlimits/root
echo "/var/lib/vservers/<guest>" > /etc/vservers/<guest>/dlimits/root/directory
echo 1024000 > /etc/vservers/<guest>/dlimits/root/space_total
echo 200000 > /etc/vservers/<guest>/dlimits/root/inodes_total
echo 5 > /etc/vservers/<guest>/dlimits/root/reserved
  • <guest> = virtuaalikoneen nimi
  • 1024000 = ~1GB levytilaa
  • 200000 = inodes määrä (eg. tiedostojen maksimimäärä)
  • 5 = rootille varattu levytila prosentteina
  • /etc/vservers = virtuaalikoneiden konfiksien sijainti (ei siis sama kuin itse virtuaalikoneet)

Käynnissä olevan koneen levytilan rajoitus (tee muutos myös space_total-tiedostoon niin muutos on pysyvä):

vdlimit --xid <guest> -s space_total=1024000 /vservers

 

HUOM! Jos haluat asettaa oletusrajat koneille jotka tulevat voimaan koneiden luonnin yhteydessä, tee asetukset valmiiksi oletustiedostoihin, jotka löytyvät /etc/vservers/.defaults/ -kansiosta.


RAM-muistin rajoitus tehdään seuraavasti (virtuaalikoneen uudelleen käynnistys resetoi rajan).

vlimit --xid <guest> --rss 128000

RAM-muistin rajoitus sammutetulle koneelle (raja tulee voimaan koneen käynnistyksessä/uudellenkäynnistyksessä)

mkdir  /etc/vservers/<guest>/rlimits
echo 128000 > /etc/vservers/<guest>/rlimits/rss
  •  128000 = ~512MB
  • <guest> = virtuaalikoneen nimi
  • /etc/vservers = virtuaalikoneiden konfiksien sijainti (ei siis sama kuin itse virtuaalikoneet)

Oletuksena RAM-muistin määrä ei näy virtuaalikoneilla rajoituksen mukaisesti, vaan koneelle näkyy isäntäkoneen muistin määrät. Saat muistin määrät näkymään oikein seuraavasti.

echo "VIRT_MEM" >> /etc/vservers/<guest>/flags

Tiedoston sisältö tulee voimaan vasta virtuaalikoneen uudellenkäynnistyksen jälkeen.

HUOM! Jos haluat asettaa oletusrajat koneille jotka tulevat voimaan koneiden luonnin yhteydessä, tee asetukset valmiiksi oletustiedostoihin, jotka löytyvät /etc/vservers/.defaults/ -kansiosta.


Oletuksena virtuaalikoneille luodaan vain 16MB kokoinen tmp kansio, tämä ei useinkaan riitä esimerkiksi tomcat ohjelmien käyttöön. Sammutetun koneen tmp-kansion koon muuttaminen (asetus tulee voimaan koneen käynnistyksessä/uudellenkäynnistyksessä)

Muokkaa tiedostoa: /etc/vservers/<guest>/fstab

none    /tmp            tmpfs   size=16m,mode=1777     0 0
none    /tmp            tmpfs   size=128m,mode=1777     0 0

HUOM! Jos haluat asettaa oletusrajat koneille jotka tulevat voimaan koneiden luonnin yhteydessä, tee asetukset valmiiksi oletustiedostoihin, jotka löytyvät /etc/vservers/.defaults/ -kansiosta.


Iptables ei toimi virtuaalikoneissa itsessään, jos haluat käyttää sitä niin asetukset pitää tehdä isäntäkoneen palomuuriin. Yleensä koko palvelin on rautapalomuurin takana, jolloin Linuxin omaa palomuuria ei välttämättä tarvita ellei haluta rajoittaa palvelimella olevien virtuaalikoneiden pääsyä toistensa palveluihin.

Jos haluat käyttää jotakin syvempää verkon rajapintaa käyttävää ohjelmaa/palvelua joudut antamaan virtuaalikoneelle/-koneille erilaisia optioita, näihin löytyy ohjeet vServerin wiki-sivuilta: http://linux-vserver.org/Capabilities_and_Flags


Tällä sivulla olevilla tiedoilla pystyy rakentaa myös hieman automaattisemman hallintajärjestelmän. Hallintajärjestelmän tekeminen vaatii enemmän osaamista ja tietoa, tekemäni PROTO-palvelimen hallinta on tehtyä tällä sivulla kerrotuilla tavoilla ja erilaisilla scripteillä (PHP, Perl ja bash).

2 thoughts on “vServerin käyttöönotto

  1. Pingback: vServerin käyttöönotto | Jiri Sariola

  2. Pingback: Students Get Root to Haaga-Helia Servers | Tero Karvinen

Leave a Reply

Your email address will not be published. Required fields are marked *