Мой первый опыт использования Proxmox VE

22 июня 2016

Proxmox Virtual Environment — это система, предоставляющая простой и удобный веб-интерфейс для управления виртуальными машинами (используется KVM) и контейнерами (LXC) на вашем кластере физических машин. Фактически, при помощи Proxmox вы можете создать свой маленький Amazon Web Services на собственном железе. В общем и целом, система очень похожа на Parallels Virtual Automation, с которым мы знакомились ранее, только распространяется бесплатно и с открытыми исходными кодами. Также предоставляется и платная техническая поддержка. Как мы скоро убедимся, со своей задачей Proxmox справляется не хуже PVA, а в чем-то, возможно, и лучше.

Установка

Качаем ISO-образ отсюда, записываем на флешку как обычно при помощи dd:

sudo dd if=./proxmox-ve.iso of=/dev/sdb bs=1M

Флешку втыкаем в будущую хост-машину. Помним, что для работы KVM требуется, чтобы CPU умел технологию Intel VT-x или AMD-V. Насколько я понимаю, все процессоры семейства Intel Core i5 и Intel Core i7 поддерживают аппаратную виртуализацию, но на всякий случай сверьтесь с информацией в BIOS и описанием вашей конкретной модели CPU на сайте производителя. Также на время установки нам понадобятся монитор и клавиатура.

Сама установка ничем не примечательна, по сути просто жмем Next → Next → Next. После перезагрузки вводим в веб-браузере https://192.168.0.105:8006, где 192.168.0.105 нужно заменить на IP вашего сервера. Обратите внимание, что нужно обязательно ввести https! Для входа используем имя пользователя root и пароль, указанный при установке.

Важно! Примите во внимание что по умолчанию на сервер также можно зайти пользователем root по SSH, используя тот же пароль.

Использование

Админка выглядит приблизительно таким образом:

Веб-интерфейс Proxmox VE

Для создания виртуалки сначала нужно залить установочный ISO-образ системы. Я лично экспериментировал на FreeBSD. В дереве слева выбираем Datacenter → proxmox → local, открываем вкладку Content, жмем Upload. Затем в правом верхнем углу жмем Create VM. Диалог создания новой виртуальной машины ничем не примечателен, все просто и понятно. После создания говорим виртуалке Start. Затем жмем Console → noVNC. В результате подключаемся к виртуалке по VNC прямо через браузер. Все это работает в самом обычном Chromium без Flash’а и Java-апплетов. Крутяк!

Чтобы создать контейнер, идем в Datacenter → proxmox → local, во вкладке Content жмем Templates. Скачиваем интересующие нас шаблоны. Я лично выбрал Ubuntu 14.04. Затем жмем Create CT, и там в диалоге по сути просто говорим Next → Next → Next. Чтобы зайти в контейнер, заходим по SSH на хост-систему, говорим pct list, смотрим id контейнера. У меня он был равен 101. Затем говорим pct enter 101. Там можно создать пользователя, добавить его в sudoers и вот это все:

adduser eax
usermod -a -G sudo eax

Теперь под только что созданным пользователем можно зайти напрямую в контейнер по SSH, sshd в контейнере уже был поднят.

Proxmox VE поддерживает клонирование виртуальных машин. Клонирование контейнеров, насколько я смог разобраться, пока почему-то не реализовано. В дереве справа жмем ПКМ по виртуалке, говорим Convert to Template. Снова жмем ПКМ, жмем Clone. В результате получаем кучу копий одной и той же виртуальной машины, удобно.

Для создания бэкапов нам понадобится настроить NFS сервер. В принципе, ничто не мешает поднять его прямо на одной из виртуалок. Затем в дереве слева кликаем на Datacenter, открываем вкладку Storage, жмем Add → NFS. В поле Server вводим IP-адрес NFS-сервера, в выпадающем списке Export выбираем экспортируемый им каталог. В выпадающем списке Content кликаем по очереди на все пункты, чтобы они добавились к списку. Нигде больше не видел такого нестандартного элемента управления!

Теперь проверяем, что резервное копирование и восстановление из резервных копий работает как для виртуальных машин, так и для контейнеров. Заметьте, что можно настроить автоматическое создание резервных копий по расписанию. Помимо резервного копирования для KVM также есть механизм снапшотов, позволяющий запоминать состояние виратуалок и откатываться к ранее запомненному состоянию. Очень интересно выглядит в действии, обязательно попробуйте.

Проверить работу Proxmox VE с несколькими хост-машинами я, за неимением такого количества лишних машин, к сожалению, не смог. Однако согласно этой статье в официальной wiki, объединение машин в кластер производится одной командой, после чего все работает точно так же. Правда, остается открытым вопрос, не разваливается ли все при сетевых проблемах. Надеюсь, кто-то из читателей, активно использующих Proxmox, сможет пролить свет на этот вопрос в комментариях.

Заключение

Напоследок хочется отметить несколько вещей, которые мне не очень понравились в Proxmox:

  • Через веб-интерфейс не видно, какие IP имеют виртуальные машины. Впрочем, в реальной системе вы, скорее всего, все равно захотите использовать Consul или какое-то иное service discovery решение. Так что, пожалуй, это не такая уж большая проблема;
  • Для NFS не поддерживается авторизация. Доступ к NFS-серверу можно ограничить только по IP;
  • Нельзя так просто взять и переименовать шаблон виртуалки. Нужно создать новый шаблон с другими именем, потом удалить старый. К счастью, это вполне работает, даже если у шаблона были linked (то есть, не full) клоны;

Несмотря на озвученные проблемы, я все равно решительно одобряю Proxmox. Помня боль и унижение при использовании AWS, сейчас я бы предпочел ему (как и Google Cloud, как и Azure, потому что по многочисленным отзывам там все те же проблемы) арендовать физические машины и сделать на них собственный IaaS при помощи Proxmox.

Дополнение: Управление VirtualBox из консоли с помощью vboxmanage

Метки: , , .


Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.