Sunday, January 30, 2011

KVM i LXC

Tydzień temu testowałem wirtualizację, którą mógłbym wprowadzić na serwerze. Poświęciłem na to dosłownie cały weekend, a robiłem to tak namiętnie, że prawie cały miniony tydzień spędziłem w łóżku!
Przynajmniej nauczyłem się dwóch nowych rzeczy ;) Pierwsza to pełna wirtualizacja sprzętowa na KVM, a druga to wirtualizacja LXC, tak zwana system-level.

Celem wirtualizacji było oddzielenie usług zewnętrznych od wewnętrznych. Czyli np. instalujemy nowy system na wirtualnej maszynie i tam stawiamy usługę WWW. Na macierzystej maszynie tylko przekierowujemy pakiety z portu 80. Wirtualna maszyna nie posiada publicznego adresu, tylko prywatny.

KVM sprawdziło się świetne, bardzo małe zużycie zasobów i możliwość odpalenie takiej maszyny bez trybu graficznego. Niestety VirtualBox w domu nie zastąpi, ponieważ nie wiem czemu ale nawet jak system Windows nic nie robi to jeden rdzeń ciągle jest wykorzystywany na 100% - jakby jakaś pętla w kółko chodziła. Niemniej jednak KVM na serwer byłby świetny, gdyby nie mały szkopuł, na moim serwerze procesor nie wspiera Intel VT, a KVM działa na zasadzie pełnej wirtualizacji oferowanej przez procesor.
Nic tylko czekać na lepszy serwer, a póki co KVM jest świetny w domowych testach jeżeli chodzi o Linuksa.

Tak więc zawiedziony moim prockiem na serwerze musiałem szukać dalej i znalazłem LXC. LXC to też wirtualizacja ale oferowana przez mechanizmy systemowe, rzekłbym nawet, że to nic innego jak odpowiednik BSD Jail na Linux. Też działa świetne, a nawet lepiej. Mniejsze zużycie procesora i nie wymaga procesora z technologią wirtualizacji. Jedyne co może się nie spodobać to to, że taki system w klatce nie jest kompletną kopią normalnego systemu, wielu rzeczy nie trzeba na nim uruchamiać, gdyż są one realizowane przez system gospodarza. Najważniejsze w tym systemie to same programy i ich środowisko, a nie mechanizmy systemowe.
Fajne jest to, że nie tak jak w KVM wszystkie dane znajdują się w jednym pliku jakim jest dysk wirtualnej maszyny tylko w nowej strukturze katalogów, która rozpoczyna się we wskazanym miejscu. Dzięki temu bez problemu możemy w każdej chwili sięgnąć po jakieś dane z wirtualnego systemu, co bardzo ułatwia tworzenie kopii danych.
Co do Debiana, to po raz kolejny okazał on się dobrym wyborem, ponieważ posiada potrzebne narzędzie zwane debootstrap do budowania struktury systemu bazowego. Ułatwia to tworzenie kontenera LXC.
Niedobrą informacją może być to, że w Debian Lenny LXC jeszcze nie ma, trzeba samemu je kompilować. Mi się udało dopiero wersję 6.0 LXC skompilować na tym systemie, ale ponieważ Squeeze tuż tuż to chyba poczekam i nie będę dalej w to się bawił.

KVM:
http://www.weilnetz.de/qemu-doc.html
http://wiki.debian.org/KVM
http://wiki.debian.org/QEMU#GuestsonNATedinternalnetwork
http://wiki.qemu.org/Qemu-doc.html

LXC:
http://www.ibm.com/developerworks/linux/library/l-lxc-containers/#running-lxc-tools
http://blog.foaa.de/2010/05/lxc-on-debian-squeeze/
http://blog.bodhizazen.net/linux/lxc-configure-ubuntu-lucid-containers/
http://wiki.debian.org/LXC

No comments:

Post a Comment