Pereiti prie turinio

Linux-VServer

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.

Linux-VServer yra atvirojo kodo sistema skirta Linux branduoliui. Naudojama kurti virtualius, serverius, veikiančius viename fiziniame kompiuteryje (serveryje).

Linux-VServer leidžia kurti virtualius privačius serverius (VPS), kurie veikia kaip normalūs Linux serveriai, tačiau jų gali būti daug. Visi virtualūs serveriai veikia vienoje sistemoje, tačiau galima įjungti arba išjungti atskirus servisus (ssh, mail, web, duomenų bazes) kiekvienam virtualiam serveriui taip pat, kaip ir administruojant realius serverius. Kiekvienas virtualus serveris turi savo atskirus vartotojų duomenų bazę ir administratorių. Tarpusavyje jie yra nepriklausomi ir negali turėti įtakos kitų virtualių serverių veikimui.

Linux branduolio diegimas

Linux-VServer naudojimui reikalingas Linux branduolys palaikantis VServer, t.y. galintis izoliuoti atskirus virtualių serverių branduolius, kurie veiktų nepriklausomai vienas nuo kito. Linux branduoliai su pataisymais tinkantys VServer nurodyti čia: http://linux-vserver.org/Welcome_to_Linux-VServer.org. Savo branduolio versiją galima sužinoti terminalo lange įvedus:

uname -r

Aš naudojau Ubuntu 8.04, todėl branduolio versija yra 2.6.24-16-generic, kuri nėra tinkama VServer naudojimui. Taigi kompiliuosime Linux branduolį Ubuntu sistemai. Iš lentelės pasirenkame branduolį.

Pirmiausia įsitikinam, kad visi branduolio atnaujinimui reikalingi paketai yra įdiegti:

apt-get install build-essential gcc make g++ libncurses5-dev ssh ncurses-base patch libc6-dev

Toliau sukuriame naują direktoriją ir pereiname į ją, kur bus reikalingas branduolys:

cd /usr/src/
mkdir kernel
cd kernel

Parsiunčiame Linux branduolį bei pataisų paketus:

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.19.tar.bz2
wget http://people.linux-vserver.org/~harry/patch-2.6.22.19-vs2.2.0.7-grsec2.1.11-20080317.diff

Išskleidžiame archyvą ir pereiname į sukurtą direktoriją:

tar xfjv linux-2.6.22.19.tar.bz2
cd linux-2.6.22.19.tar.bz2

Atnaujiname branduolio failus:

cat ../patch-2.6.22.19-vs2.2.0.7-grsec2.1.11-20080317.diff | patch -p1

Galime palikti tuos pačius nustatymus, kokie buvo mūsų pradinėje sistemoje, nukopijavę esamą failą:

cp /boot/vmlinuz-2.6.24-16-generic /usr/src/kernel/linux-2.6.22.19.tar.bz2

Sukuriame konfigūracinį failą pagal dabartinės sistemos konfigūravimo nustatymus. Jums lieps pasirinkti tik tuos nustatymus, kurių nebuvo anksčiau. Beveik visus nustatymus galite palikti pagal nutylėjimą (jei nepatyrę vartotojai), išskyrus šiuos:

  • Enable Legacy kernel API
  • Enable Proc Security
  • Enable Hard CPU Limits

Jie turėtų būti įjungti (pasirenkame Y). Kuriant naujus nustatymus naudotumėm make config

make oldconfig

Įvykdome dar vieną komandą, kuri atveria meniu pasirinkimo langą (galima nieko nekeisti):

make menuconfig

Kompiliuojame ir instaliuojame naują branduolį (komandos make vykdymas gali užtrukti 30-60 min.).:

make
make install
make modules_install

Sukuriame branduolio paleidimo failą:

mkinitramfs -o /boot/initrd.img-2.6.22.19-grsec2.1.11-vs2.2.0.7 2.6.22.19-grsec2.1.11-vs2.2.0.7

Paskutinis žingsnis - užtikrinti, kad branduolio paleidimo sąraše būtų įrašas, leidžiantis užkrauti naująjį branduolį. Reikia patikrinti ir paredaguoti /boot/grub/menu.lst failą:

vi /boot/grub/menu.lst

Ir prieš visus esančius įrašus įrašyti:

title           Ubuntu, 2.6.22.19-grsec2.1.11-vs2.2.0.7 (VServer)
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.22.19-grsec2.1.11-vs2.2.0.7 root=/dev/sda1 ro quiet splash
initrd          /boot/initrd.img-2.6.22.19-grsec2.1.11-vs2.2.0.7
savedefault
boot

Išsaugojam papildytą failą ir perkrauname sistemą su nauju branduoliu (shutdown -r now). Patikrinus užkrautą branduolį (uname -r) turime pamatyti:

2.6.22.19-grsec2.1.11-vs2.2.0.7

Perkrovus sistemą man atsirado baltas langas ir prie grafinės aplinkos nepavyko prieiti, bet per terminalo langą (Ctrl+Alt+F[1-12]) viskas veikia.