Instalacja OpenVZ na systemie Debian GNULinux

By | 30 lipca 2010

OpenVZCzęsto spotykam się z komentarzami, iż instalacja OpenVZ pod systemem Debian to dość skomplikowana procedura. Nie dość, iż jest problem z uruchomieniem VE (Virtual Environment) to jeszcze VE nie mają dostępu do sieci zewnętrznej – a i czasem jest problem z podstaowym pingowaniem VE z poziomu HN (Hardware Node). Poniższy wpis poprowadzi step-by-step do instalacji oraz konfiguracji OpenVZ abyśmy mogli w łatwy sposób instalować nasze wirtualki. Wpis dotyczy wyłącznie instalacji na Debianie – aczkolwiek kroki konfiguracji wirtualek można wykonywać również na innych systemach.

Zaczniemy od instalacji specjalnie przygotowanej wersji kernela do obsługi OpenVZ:

# apt-get install linux-image-2.6.26-2-openvz-686

Zainstalowane zostaną dodatkowe pakiety: vzctl oraz vzquota.

Aby dalej kontynuować pracę przy tworzeniu własnych VE musimy ponownie uruchomić komputer/serwer oraz wystartować go z odpowiedniego kernela (2.6.26-2-openvz-686). Po ponownym uruchomieniu serwera, możemy się przekonać, czy uruchomiliśmy system z dobrego jądra wydając polecenie:

$ uname -aLinux local.localhost 2.6.26-2-openvz-686 #1 SMP Thu May 13 00:37:04 UTC 2010 i686 GNU/Linux

oraz sprawdzając czy uruchomił się demon usług OpenVZ:

#  /etc/init.d/vz statusOpenVZ is running...

sprawdzamy jeszcze, czy poprawnie utworzony jest interfejs sieciowy venet0

# ifconfig venet0venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1RX packets:11046725 errors:0 dropped:0 overruns:0 frame:0TX packets:8711413 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:3478892459 (3.2 GiB)  TX bytes:4016427174 (3.7 GiB)

Teraz możemy przejść do dalszej części konfigurowania serwera pod uruchomienie naszych wirtualnych środowskisk OpenVZ.

Krok pierwszy – konfiguracja sysctl  [sysctl.conf(5)]
Otwieramy plik /etc/sysctl.conf i dopisujemy na koniec kilka zmiennych jądra:

# nano /etc/sysctl.confnet.ipv4.conf.all.rp_filter=1net.ipv4.icmp_echo_ignore_broadcasts=1net.ipv4.conf.default.forwarding=1net.ipv4.conf.default.proxy_arp = 0net.ipv4.ip_forward=1kernel.sysrq = 1net.ipv4.conf.default.send_redirects = 1net.ipv4.conf.all.send_redirects = 0net.ipv4.conf.eth0.proxy_arp=1

(jeśli nie wiecie, do czego służą, nie rozumiecie ich działania, zapraszam na google)
Plik zapisujemy oraz wykonujemy komendę (która wprowadzi zmiany w jądrze w czasie rzeczywistym):

# sysctl -p

Następną czynnością którą bedziemy wykonywać, to pobranie templatek systemów operacyjnych Linux – my w celach testowych pobierzemy templatkę systemu debian w wersji 5 dla architektury 32 bitowej (debian-5.0-x86) – pełna lista dostępnych templatek znajduje się na stronie http://wiki.openvz.org/Download/template/precreated

# cd /var/lib/vz/template/cache/# wget http://download.openvz.org/template/precreated/debian-5.0-x86.tar.gz# mv debian-5.0-x86.tar.gz debian5-x86.tar.gz

Wszystkie templatki lądują w katalogu /var/lib/vz/template/cache. vzctl (8) podczas kreowania nowego VE rozpakowuje system plików do odpowiedniego katalogu, gdzie będą przechowywane wszystkie pliki związane z tym środowiskiem.

Tworzymy pierwsze VE!
No to zabieramy się do utworzenia naszego pierwszego wirtualnego środowiska.

Krok 1. Tworzymy system plików naszego środowiska:

# vzctl create 1 --ostemplate debian5-x86 --config vps.basic

To polecenie tworzy nasz wirtualny system z wykorzystaniem archiwum z plikami systemu debian5-x86.tar.gz z katalogu /var/lib/vz/template/cache/ oraz korzystając z szablonu ustawień vps.basic w którym zapisane są informacje dotyczące minimalnej, gwarantowanej oraz maksymalnej wielkości pamięci RAM dla wirtualki, wielkości „dysku” – czyli przestrzeni do wykorzystania, jednostki procesora do wykorzystania i parę innych przydatnych rzeczy.

Krok 2. Ustawiamy najpotrzebniejsze rzeczy:

Jeśli chcemy, aby nasza wirtualka uruchamiała się przy każdym starcie systemu, wydajemy komendę:

# vzctl set 1 --onboot yes --save

Ustawiamy hostname naszej wirtualki:

# vzctl set 1 --hostname laboratorium --save

Ustawiamy adres IP, który będzie należał do wirtualki:

# vzctl set 1 --ipadd 192.168.0.10 --save

Ustawiamy adres naszego serwera DNS (wybieramy adres 8.8.8.8 (google dns services) lub wyciągamy adres z naszego HN z pliku /etc/resolv.conf):

# vzctl set 1 --nameserver 8.8.8.8 --save

Powyższe kroki do podstawowe rzeczy, które powinniśmy wykonać przed uruchomieniem naszego VE.

Startujemy nasz VE!

Oto jak wystartować naszą wirtualkę:

# vzctl start 1Starting VE ...VE is mountedAdding IP address(es): 192.168.0.10Setting CPU units: 1000Configure meminfo: 256000Set hostname: laboratoriumFile resolv.conf was modifiedVE start in progress...

Jak dostać się do naszej wirtualki?

# vzctl enter 1entered into VE 1laboratorium:/#

Na samym początku, dobrze jest ustawić hasło root. W tym celu wykonujemy komendę:

laboratorium:/# passwd

Przy starcie czystej templatki (debiana) uruchamiane są takie procesy jak apache2 czy ssh.
Możemy dokonać testu naszej sieci, łącząc się via ssh do naszego VE:

# ssh 192.168.0.10

Akceptujemy klucz, podajemy hasło i jesteśmy w naszej wirtualce.

Poniżej przedstawiam kilka istotnych poleceń do zarządzania wirtualką:

– Zmiana rozmiaru dysku (przydzielamy 10GB miejsca, standardowo otrzymujemy 1GB):
# vzctl set 1 --diskspace 10G --save

– Restart / start / stop VE:

# vzctl restart 1# vzctl start 1# vzctl stop 1

– Usuwanie wirtualki:

# vzctl stop 1# vzctl destroy 1

– Wylistowanie aktualnie pracujących VE:

# vzlist

– Wylistowanie aktualnie pracujących VE z wyświetleniem VEID, hostname, IP, status, rozmiar dysku:

# vzlist -aHo veid,hostname,ip,status,diskspace

– Sprawdzenie ile jednostek mocy ma nasz procesor i ile jest już zarezerwowane przez VE:

# vzcpucheck

– Ustawienie większej ilości jednostek dla konkretnego VE:

# vzctl set 1 --cpulimit 2000 --save

W krótce postaram się dodać wpis o edytowaniu OSTemplate (czyli podstawowych konfiguracji rozmiaru pamięci czy dostępnej przestrzeni dyskowej) oraz jak rozwiązywać problemy związane z naszymi wirtualkami.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *