Управление виртуальными машинами KVM из Windows

11 Mar 2016 | Автор: anchous |

Как я писал ранее, на стадии установки и создания сервера виртуальных машин KVM, основной проблемой управления виртуалкой, является полное отсутствие каких либо вменяемых решений для управления виртуальной структурой в случае если сервер KVM установлен на *nix без GUI, а администраторская машина работает под Windows.

Если на сервере установлен X Windows, то можно стартовать встроенную управлялку в линь, на основе Xming инкапсулированного в ssh. Но вот без гуя, такой экзерсис не проходит и все что я смог найти из доступных тулзятин под Windows – это KVM Remote Viewer, который стучится по указанному протоколу, и через адрес vnc://VNC_IP:port можно залогиниться на виртуальную на машину KVM

Собственно к самой машине можно получить доступ через VNС, который по дефолту запускается для каждой новой виртуальной машины на локальной IP 127.0.0.1 на портах начиная с 5900. То есть можно играться с инкапсулированием VNC в ssh сессию, но проще запаролить доступ к VNC сессии на момент установки и задать серверу слушать подключение на внешнем IP.

Делается это следующим образом.
Изначально при создании виртуальной машины можно было прописать в параметры её создания --graphics vnc,listen=0.0.0.0 --noautoconsole что открывало бы VNС для подключения с любого хоста.

Но предположим, что у нас была создана дефолтная машина, к которой нам необходимо подключиться.

Для начала нам необходимо изменить профиль этой машины, добавив в него VNC. Файлы профилей хранятся в папке /etc/libvirt/qemu/ но у KVM есть специальная прилада для редактирования файлов машин:
# virsh edit %vm-name%
открываем нужную нам машину и ищем строки graphics
<graphics type=’vnc’ port=’-1′ autoport=’yes’/>
куда добавляем несколько строк с паролем и прослушиванием всех внешних подключений:
<graphics type=’vnc’ port=’-1′ autoport=’yes’ listen=’0.0.0.0′ passwd=’QWERTY’>

сохраняем файл как в обычном vi и перегружаем libvirtd и нашу машину
# /etc/init.d/libvirtd restart
# virsh shutdown  %vm-name%
# virsh start  %vm-name%

После этого можем конеектится к нашей машине по внешнему IP и с заданным паролем. Порт при этом берем либо по порядковому номеру виртуальной машины исходя из того что у первой он 5900, т.е если это первая машина в системе, то 5900; если вторая то 5901 и т.д. Либо же, если машин в нашей системе много, то смотрим через утилиты:
# virsh list
Id    Name                           State
—————————————————-
2     win7                           running
4     win7N2                         running
# virsh vncdisplay win7N2
:1
полученное число прибавляем к 5900 и получаем порт к которому нам необходимо подключаться.

Единственно, что для подключения нам необходимо или отключить фаервол или открыть порты для VNC доступа, для чего в файл /etc/sysconfig/iptables добавляем следующие строки
-A INPUT -m state –state NEW -m tcp -p tcp –dport 5901 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 5900 -j ACCEPT
и перегружаем фаервол
# service iptables restart

Все это конечно здорово, но подразумевает копание в консоли, а хотелось бы более вменяемую управлялку машинами, виртуальными сетями, резервированием и прочее.

Под винду для этого можно использовать веб-клиенты:

Первый – это внешний сервис webvirtmgr.net, куда вы можете подключить свой KVM сервер и через их утилиту управления рулить своей виртуальной инфраструктурой. Функционал, не смотря на минимализм, достаточно богатый и позволяет создавать новые машины, управлять имеющимися, настраивать виртуальную сеть, делать снапшоты, рулить виртуалкой через webbased-VNC. Но, это сторонний сервис и не известно как в нем обстоит дело с сохранностью данных, тем более что при подключении через виртуальную VNC, которая работает через Java (т.ч для корректной работы плагина, адрес сайта придется добавлять в исключения безопасности) запрашивается пароль доступа к серверу, который естественно может быть перехвачен третьими лицами. Вообщем, не смотря на хорошую работу, сервис вызывает легкую такую ночную паранойю. Но можно взять исходники у разраба и поставить их на свой сервер, хотя обновление оных – вопрос отдельный, т.к актуальная версия от середины прошлого года.

Поэтому есть второй вариант управлялки через надстройку к консоли управления Webmin, которая называется Cloudmin GPL. Ставится она элементарно (как обычно прикручиваю к центосине):
#wget http://cloudmin.virtualmin.com/gpl/scripts/cloudmin-kvm-redhat-install.sh
# chmod +x cloudmin-kvm-redhat-install.sh
# ./cloudmin-kvm-redhat-install.sh

Скрипт ставится довольно пневматично, после чего система автоматом гасит виртуалки, что для меня было небольшим сюрпризом, т.к у меня на одной из машин был запущен процесс.

После подъема к панели управления можно будет подключиться через https на порт 10000, по адресу https://SERVER_IP:10000

Если вы ставили Cloudmin на голую машину, то просто начинаете создавать с нуля систему. Если же у вас были работающие машины, то их придется проинициализировать, после перезагрузки системы: System Operations -> Find KVM Instances где ввести параметры доступа к серверу.

После инициализации машины появятся в консоли управления, но функционал их управления, надо заметить, будет сильно хуже чем у webvirtmgr. Тем более, что в моем случае, машинки почему то начали дурковать после установки Cloudmin и оказалось проще снести управлялку, чем разбираться из-за чего возникли конфликты.

VN:F [1.9.21_1169]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.21_1169]
Rating: 0 (from 0 votes)

Теги: ,

Ваш отзыв