Po świątecznych zakupach doszedłem do wniosku, że w końcu nadszedł czas na migrację serwisów ze starego serwera na nowy. A nowy to w końcu środowisko wirtualne oparte na KVMie – do widzenia użeranie się między użytkownikami i wspólne podbieranie zasobów. KVM + cgroups zabijają system pod tym względem :)
Ale do rzeczy. Mam czystego hosta z oprogramowaniem KVMowym. SELinux jest w trybie Permissive (choć wystarczyłoby nam do instalacji guesta “chcon –reference /var/lib/libvirt/images /nowy/dir/dla/vmek“, jednak szkoda mi tutaj trochę zasobów a SELinux na hoście to imo troszkę paranoja – tu przecież wystarczy surowa polityka bezpieczeństwa).
Wróćmy do tematu.. jest więc host, jest tryb Permissive, są paczki KVMowe i host gotowy do instalacji VPSów czy też guestów. Dla leniwych mamy “Virtual Managera” w Fedorze (virt-manager) – wystarczy go podpiąć pod naszego hosta (leniwie wyłączając na moment iptables albo otwierając co trzeba). Ale virt-manager nie jest koszerny, więc piszemy:
1 2 3 4 5 6 7 8 9 |
[root@cubryna iso]# virt-install -r 2048 --accelerate -n VM-docent --disk path=/vm/VM-docent/VM-docent.img,size=50 --cdrom CentOS-6.3-x86_64-minimal.iso --vcpus=2 --vnc --os-type linux --hvm --vncport=65322 Starting install... Creating storage file VM-docent.img | 50 GB 00:00 Creating domain... | 0 B 00:00 Cannot open display: Run 'virt-viewer --help' to see a full list of available command line options Domain installation still in progress. You can reconnect to the console to complete the installation process. |
Instalacja uruchomiona. Teraz chcielibyśmy się pod nią podłączyć i coś podziałać. VNC FTW – ale, że jak widać:
1 2 |
[root@cubryna iso]# netstat -nlp | grep 65322 tcp 0 0 127.0.0.1:65322 0.0.0.0:* LISTEN 12768/qemu-kvm |
Demon VNC jest bezpiecznie podbindowany pod localhosta, tak też z zewnątrz się tutaj nie dobijemy. Nie bawiąc się w zmuszanie VNC do słuchania na zewnętrznym interfejsie (co nie jest ani koszerne ani bezpieczne) po prostu tworzymy tunel SSH:
1 2 3 4 5 6 7 8 9 10 |
[docent@docent-toshiba ~]$ ssh -p 65234 docent@cubryna.makaronzserem.eu -L 65322:127.0.0.1:65322 RSA host key for IP address '5.135.178.98' not in list of known hosts. Last login: Thu Jan 3 20:26:48 2013 from neostradaaa CentOS release 6.3 (Final) Linux cubryna.makaronzserem.eu 2.6.32-279.19.1.el6.x86_64 #1 SMP Wed Dec 19 07:05:20 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux ip : 5.135.178.98 hostname : cubryna.makaronzserem.eu [docent@cubryna ~]$ |
I w ten oto piękny sposób mamy tunelowane połączenie z naszym serwerem VNC. Uruchamiamy już tylko klienta VNC typu Tiger-VNC, łączymy się z hostem 127.0.0.1:65322 i jesteśmy w domu – powinniśmy ujrzeć okienko instalacji :)
Oczywiście instalację taką jak powyżej robimy rzadko. Z lenistwa i oszczędności czasu polecam utworzyć z niej obraz i później już virt-clone. Następnym razem napiszę jakie cudo trzeba zmontować aby taki guest potrafił się komunikować za pomocą konsoli serialowej z hostem – to też przydatne bo przecież nie będziemy utrzymywać VNC dla każdego guesta… chyba, że lubisz ;)