✔ Proxmox Virtual Environment 6.2: Установка, настройка, тюнинг, организация резервного копирования.

Содержание:

1. Постановка задачи.
2. Описание программы.

2.1. О программе.
2.2. Ключевые возможности.
2.3. С чего начать?

3. Подготовка загрузочной флешки.
4. Подготовка сервера.

4.1. Включение виртуализации на сервере.
4.2. Процесс установки.

5. Загрузка образов ISO в web-интерфейсе.
6. Настройка системы хранения данных.

6.1. Настроить дисковые накопители.
6.2. Добавить новое хранилище в Proxmox.

7. Создание виртуальной машины.
8. Настройка виртуальной машины.

8.1. Полезные настройки.
8.2. Добавление дискового накопителя.
8.3. Добавление сетевого адаптера.
8.4. Удаление виртуальной машины.

9. Тюнинг сервера Proxmox VE.

9.1. Отключение предупреждения об отсутствии подписки.
9.2. Сертификаты.
9.3. Создание нового пользователя.
9.4. Удаление LVM-local-data.
9.5. Проксирование Proxmox VE через Nginx.
9.6. Добавление физического диска в виртуальную машину Proxmox.

9.6.1. Установка VirtIO драйвера в гостевой Windows.

9.7. Проброс USB устройств в Proxmox.
9.8. Установка полезных утилит и программ.

9.8.1. Установка Midnight Commander.
9.8.2. Установка Parted.
9.8.3. Установка Chrony.
9.8.4. Установка Net-tools.

10. Про бэкапы в Proxmox VE.

10.1. Алгоритмы резервного копирования.
10.2. Режимы архивирования.

11. Выполнение процедуры резервирования.
12. Восстановление из резервной копии.
13. Клонирование виртуальной машины.
14. Работа с образами дисков.
15. Изменение размера виртуального диска.
16. Автоматизация создания резервных копий.
17. Установка Proxmox VE на Ubuntu и CentOS.
18. Оригиналы источников информации.


1. Постановка задачи.

Требуется организовать простой и надёжный гипервизор для сервера среднего и малого офиса:

  • Чтобы на одном физическом сервере;
  • Чтобы всё работало прямо из коробочки;
  • Чтобы с web-интерфейсом и визуальными метриками;
  • Чтобы на Linux.

2. Описание программы.

2.1. О программе.

В сегодняшней статье мы опишем процесс установки Proxmox Virtual Environment (Proxmox VE) — систему управления виртуализации с открытым кодом, которая базируется на QEMU/KVM и LXC. Данное решение позволяет вам управлять виртуальными машинами, контейнерами, отказоустойчивыми кластерами, СХД и прочие — все это с помощью web-интерфейса или CLI. Чтобы было понятнее — Proxmox VE — это альтернатива c открытым программным кодом таким продуктам как VMware vSphere, Microsoft Hyper-V или Citrix XenServer.

Важное уточнение — согласно лицензии GNU AGPL v3 данное программное обеспечение является бесплатным, но, есть возможность купить подписку. Подписка дает следующие преимущества — поддержка от вендора/коммьюнити (в зависимости от выбранного плана), доступ к репозиторию и так далее.

Proxmox Virtual Environment (Proxmox VE) — система виртуализации с открытым исходным кодом, основанная на Debian GNU/Linux. Разрабатывается австрийской фирмой Proxmox Server Solutions GmbH, спонсируемой Internet Foundation Austria.

В качестве гипервизоров использует KVM и LXC. Соответственно, способна выполнять любые поддерживаемые KVM операционные системы с минимальными потерями производительности и Linux без потерь.

Управление виртуальными машинами и администрирование самого сервера производятся через web-интерфейс либо через стандартный интерфейс командной строки Linux.

Для создаваемых виртуальных машин доступно множество опций: используемый гипервизор, тип хранилища (файл образа или LVM), тип эмулируемой дисковой подсистемы (IDE, SCSI или VirtIO), тип эмулируемой сетевой карты, количество доступных процессоров и другие.

Немного о системных требованиях — в идеале, требуется железный сервер, предпочтительно многопроцессорный и 8 Гб памяти для самого Proxmox и остальное — для гостевых машин + 2 сетевых карты, работает и на 1 сетевой карте (всё зависит от трафика вашего файлообмена). 

Список поддерживаемых web-интерфейс Proxmox Virtual Environment (Proxmox VE) с браузеров включает Chrome, Mozilla Firefox, Safari и IE (актуальные версии).

2.2. Ключевые возможности.

  • Простое управление через web-интерфейс;
  • Мониторинг нагрузки в реальном времени;
  • Статистика и информативные графики нагрузки сервера виртуализации и каждой виртуальной машины в отдельности — по оперативной памяти, CPU, HDD, сети в разрезе последний час/день/неделя/месяц/год;
  • Библиотека установочных образов (в локальном или удаленном хранилище);
  • Подключение к «физической» консоли гостевых систем непосредственно из браузера (по VNC и посредством SPICE-клиента);
  • Объединение серверов в кластер с возможностью живой миграции виртуальных машин (без остановки гостевой системы);
  • Быстрое развертывание гостевых систем из шаблонов;
  • Сохранение образа состояния виртуальной машины (snapshot), формирование дерева состояний и возможность отката на любую из точек;
  • Автоматическое резервное копирование виртуальных машин.

С сайта разработчиков можно загрузить готовые шаблоны (как дистрибутивы общего назначения, так и настроенные под конкретную задачу, например запуск MediaWiki, Drupal или WordPress). Также можно создавать собственные шаблоны, воспользовавшись инструментом Debian Appliance Builder.

2.3. С чего начать?

Есть два варианта установки Proxmox VE — использовать готовый образ или установка на Debian. Мы будем использовать готовый образ!

При установке среды виртуализации меняется ядро Linux. Это может привести к потери работоспособности уже установленных сервисов. Таким образом, установку Proxmox следует выполнять на чистый сервер, а не тот, который уже используется для каких-либо задач.

Для начала установки нужно скачать образ установочного диска с официального сайта разработчиков Proxmox: https://www.proxmox.com/en/downloads.

Для тех, кому интересно почитать подробнее, есть даже Proxmox VE Wiki — это справочная библиотека от разработчиков этого гипервизора: https://pve.proxmox.com/wiki/Main_Page.

3. Подготовка загрузочной флешки.

Устанавливать Proxmox VE на сервер будем с помощью загрузочной флешки, которую следует предварительно подготовить с помощью специальной бесплатной утилиты — программы Rufus.

Rufus — Простое создание загрузочных USB-дисков.

Rufus — это утилита, которая помогает форматировать и создавать загрузочные Flash/Pen/Key диски, карты памяти и так далее.

Rufus будет особенно полезен в случаях, когда:

  • необходимо создать загрузочный USB-диск из загрузочного ISO-образа (Windows, Linux, UEFI и других операционных систем);
  • необходимо работать на системах, которые не имеют установленной операционных систем;
  • необходимо прошить BIOS или другую прошивку из-под DOS;
  • необходимо запустить низкоуровневую утилиту.

Несмотря на небольшой размер, Rufus умеет делать все, что вам нужно!

Скачиваем последнюю версию с сайта разработчиков Rufus: https://rufus.ie/ru_RU.html.

Подключаем флешку к компьютеру, выбираем ее в Rufus и выбираем файл-образ Proxmox VE, прожигаем его на флешку в режиме DD-образ.

После прожига флешки, можно её использовать для установки Proxmox VE.

4. Подготовка сервера.

4.1. Включение виртуализации на сервере.

Поддержка виртуализации Intel VT или AMD-V может быть отключена на материнской плате. Для проверки заходим в БИОС — находим раздел настройки процессора (как правило, в пункте меню Advanced) — проверяем, что технология виртуализации (Intel VT, AMD-V, Virtualization Technology, VMX) включена (Enabled).

4.2. Процесс установки.

Итак, вы скачали ISO-образ по ссылке выше, запустились с загрузочной флешки и должны увидеть следующее:

Кликаем на Install Proxmox VE. После этого появится окно с установкой и EULA:

Читаем, и соглашаемся с лицензионным соглашением и кликаем Agree:

Затем, нам предлагают выбрать диск для установки — выбираем и кликаем Next:

Выбираем страну и часовой пояс и кликаем Далее:

Затем придумываем сложный рутовый пароль и вводим действующий e-mail — на него в случае чего будут приходить письма с происшествиями на сервере:

Где:

  • Management Interface: сетевой интерфейс для управления сервером виртуальных машин.
  • Hostname (FQDN): имя хоста для сервера.
  • IP Address: IP-адрес нашего сервера.
  • Netmask: маска подсети для сервера.
  • Gateway: шлюз по умолчанию.
  • DNS Server: сервер DNS.

Указываем настройки сети — выбираем адаптер, указываем хостнейм и так далее. Кликаем Next:

Начинается процесс установки, который занимает не более 10 минут:

Установка заканчивается, и все, что нужно сделать — это нажать Reboot.

Внимание! Если после перезагрузки сразу извлечь установочную флешку из сервера, то по каким-то неясным причинам на сервере что-то пойдет не так! И прийдется вся монтировать руками и доделывать установку в ручном режиме. Чтобы этого не произошло, не вынимайте установочную флешку до тех пор, пока не войдете в web-интерфейс Proxmox VE.

После перезагрузки вы увидите адрес, по которому нужно зайти в браузере для завершения установки.

Внимание! Обратите особое внимание на адрес по которому работает web-интерфейс Proxmox VE! Как можно не сразу заметить используется защищенный протокол HTTPS вместо HTTP. Автоматического перенаправления в системе не предусмотрено! Будьте внимательны!

В данном случае это https://ваш-IP-адрес:8006:

# https://ваш-IP-адрес:8006

Нас поприветствует оно входа:

Появляется окно логина, с возможностью выбрать язык. Вводите логин root и пароль, который вы указывали при установке.

Выскочит надпись о том, что Proxmox VE хоть и бесплатный, но подписку на его регулярные обновления неплохо бы было прикупить… Жмём ОК… Потом настроим, чтобы и рыбку съесть и на люстре покачаться….

Далее должно открыться окно управления.

И, наконец, системой можно пользоваться! К примеру, можете кликнуть на вкладку Datacenter слева и увидеть сводку информации по системе:

5. Загрузка образов ISO в web-интерфейсе.

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

Кликаем по Datacenter — и дважды по storage:

Мы можем создать отдельное хранилище для образов ISO. Для этого переходим в раздел Datacenter —> Хранилище —> Создать —> Каталог.

Переходим в раздел Содержимое и кликаем по Загрузить:

В открывшемся окне выбираем ISO-образ системы, который будем устанавливать в качестве гостевой и кликаем по Загрузить. Ждем окончания копирования файла на сервер.

6. Настройка системы хранения данных.

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

6.1. Настроить дисковые накопители.

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

ВНИМАНИЕ! Приведенный ниже пример дисковой разметки можно использовать только для тестовых целей. Для эксплуатации в реальных условиях настоятельно рекомендуется использовать программный или аппаратный RAID-массив, чтобы исключить потерю данных при выходе дисков из строя.

Как подготовить и подключить диски можно прочитать в этих инструкциях:

6.2. Добавить новое хранилище в Proxmox.

Авторизуемся в панели управления и заходим в разделы Datacenter —> Хранилище —> Добавить —> Директория.

В открывшемся окне заполняем следующие поля:

  • ID — название будущего хранилища;
  • Директория — /mnt/storage;
  • Содержимое — выделяем все варианты (поочередно щелкая на каждом варианте).

После этого нажимаем кнопку Добавить. На этом настройка завершена.

7. Создание виртуальной машины.

Базовая настройка закончена — можно начать создавать виртуальные машины!

В правой верхней части панели управления кликаем по Создать VM:

В открывшемся окне снизу сразу ставим галочку Расширенный:

Задаем имя виртуальной машине и ставим галочку Запуск при загрузке (если хотим, чтобы виртуалка запускалась автоматически с сервером PVE):

В данном примере мы задали имя FS. При желании, также можно изменить VM ID, но он проставляется автоматически и имеет правильное значение.

Выбираем загруженный нами ISO-образ, с которого будем ставить операционную систему, задаем тип гостевой операционной системы и ее версию:

В данном примере мы будем устанавливать Linux Ubuntu. Среди списка операционных систем также доступны Microsoft Windows, Solaris и прочие.

На вкладке Система можно оставить все значения по умолчанию:

В некоторых случаях, необходимо выбрать другую видеокарту (при установке систем с GUI), а также особый вариант BIOS.

Задаем размер жесткого диска:

16 Гб для Ubuntu достаточно, однако, для наших задач расчет должен быть индивидуальным для каждой создаваемой виртуальной машины.

Подробнее об используемых в Proxmox форматах накопителей:

RAW. Самый понятный и простой формат. Это файл с данными жесткого диска «байт в байт» без сжатия или оптимизации. Это очень удобный формат, поскольку его легко смонтировать стандартной командой mount в любой linux-системе. Более того это самый быстрый «тип» накопителя, так как гипервизору не нужно его никак обрабатывать.

Серьезным недостатком этого формата является то, что сколько Вы выделили места для виртуальной машины, ровно столько места на жестком диске и будет занимать файл в формате RAW (вне зависимости от реально занятого места внутри виртуальной машины).

QEMU image format (qcow2). Пожалуй, самый универсальный формат для выполнения любых задач. Его преимущество в том, что файл с данными будет содержать только реально занятое место внутри виртуальной машины. Например, если было выделено 40 Гб места, а реально было занято только 2 Гб, то все остальное место будет доступно для других виртуальных машин. Это очень актуально в условиях экономии дискового пространства.

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

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

VMware image format (vmdk). Этот формат является «родным» для гипервизора VMware vSphere и был включен в Proxmox для совместимости. Он позволяет выполнить миграцию виртуальной машины VMware в инфраструктуру Proxmox.

Использование vmdk на постоянной основе не рекомендуется, данный формат самый медленный в Proxmox, поэтому он годится лишь для выполнения миграции, не более. Вероятно в обозримом будущем этот недостаток будет устранен.

Продолжим создавать виртуальную машину.

Мы можем задать количество процессоров и ядер:

В данном примере мы создаем виртуалку с 2 процессорами, каждый из который с 2 ядрами, итого, 4. Для ненагруженных систем можно оставить значение по умолчанию.

Выделяем память:

Наша Ubuntu будет работать с 2 Гб оперативной памяти.

Выбираем созданный бридж — либо для получения прямого адреса из сети, либо для NAT:

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

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

Нажимаем Готово. Ждем окончания процесса и переходим к консоли:

Мы должны увидеть загрузку с ISO-образа.

8. Настройка виртуальной машины.

После создания виртуальной машины нам может понадобиться ее изменить. Рассмотрим процесс настройки на примере изменения некоторых параметром, а также добавления диска и сетевого адаптера.

8.1. Полезные настройки.

Для начала, переходим к виртуальной машинеПараметры:

Чаще всего могут понадобиться следующие настройки:

  • Имя — имя виртуальной машины.
  • Запуск при загрузке — для серверов данный параметр должен быть активирован.
  • Порядок загрузки — позволяет определить, с какого устройства должна запуститься виртуалка в первую очередь.

Для изменения параметра, просто кликаем по нему дважды, меняем значение и нажимаем OK.

8.2. Добавление дискового накопителя.

Переходим в подраздел Оборудование — кликаем по Добавить и выбираем Жесткий диск:

В открывшемся окне задаем размер диска и нажимаем OK.

Для увеличения размера имеющегося диска устанавливаем на него курсов и кликаем по Изменить размер диска:

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

8.3. Добавление сетевого адаптера.

Переходим в подраздел Оборудование — кликаем по Добавить и выбираем Сетевое устройство:

Как при создании виртуальной машины, выбираем тип сетевого адаптера (бридж или нат) и нажимаем Добавить.

8.4. Удаление виртуальной машины.

Для удаления виртуальной машины, сначала ее отключаем — это можно сделать из операционной системы или из панели управления, нажав на стрелку вниз рядом с Выключить Остановка:

После кликаем по Дополнительно —> Удалить:

В открывшемся окне мы должны подтвердить свои намерения удалить виртуальную машину, вписав ее идентификатор:

Если поставить галочку Purge, то виртуальная машина будет удалена полностью вместе с виртуальным диском.

Кликаем по Удалить — готово.

9. Тюнинг сервера Proxmox VE.

Внесем несколько изменений, которые сделают работу с Proxmox VE удобнее.

9.1. Отключение предупреждения об отсутствии подписки.

Каждый раз при заходе в панель управления мы будем видеть такое предупреждение:

Оно говорит нам о том, что мы используем бесплатную версию программного продукта.

Внимание! К сожалению на версии Proxmox VE 6.2 многие способы отключения данного сообщения, представленные в интернете, перестали работать и я упростил данный раздел инструкции до получения 100% работающих способов отключения данного сообщения. Пока не форсировал эту тему, так как надпись меня не раздражает.

Алгоритм борьбы с окошком такой:

  • Отключим платный репозиторий для получения пакетов Proxmox.
  • Отредактируем файл js для отключения данного сообщения.

Для начала — удалим платный репозиторий. И так, в SSH открываем на редактирование репозиторий Proxmox:

# nano /etc/apt/sources.list.d/pve-enterprise.list

#deb https://enterprise.proxmox.com/debian/pve buster pve-enterprise
deb http://download.proxmox.com/debian/pve stretch pve-no-subscription

Чтобы выйти из nano, просто нажмите ^X (клавиши Ctrl + X). Если файл еще не был сохранен, вам будет предложено сохранить изменения с помощью Yes/No или отменить Выход.

Нажмите на клавиатуре Shift + Y и затем клавишу Enter.

Мы закомментировали репозиторий pve-enterprise и добавили pve-no-subscription.

При большом желании, можно удалить файл репозитория с именем pve-enterprise.list и создать новый — кому как будет удобнее.

# wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg

После обновим список пакетов:

# apt update && apt upgrade -y
# apt-get dist-upgrade

Перезагружаем сервер:

# shutdown -r now

9.2. Сертификаты.

Сервер Proxmox VE устанавливается с самоподписанным сертификатом. Это означает, что при подключении к панели управления мы будем видеть предупреждение от системы безопасности. Чтобы браузер принимал сертификат, он должен соответствовать следующим требованиям:

  • Быть выдан доверенным центром сертификации или зарегистрированным в вашей локальной сети, например, локальный AD CS.
  • Быть для доменного имени, по которому мы заходим в панель управления.
  • Иметь актуальные даты начала действия и окончания.

При этом, мы не должны заходить в панель управления по IP-адресу — в противном случае, независимо от сертификата, мы все-равно, получим предупреждение.

И так, сам сертификат можно купить, запросить бесплатно у Let’s Encrypt или создать с использованием локального центра сертификации, например, по данной инструкции.

Получив сертификат, открываем панель управления Proxmox VE и переходим к серверу — Система —> Сертификаты — кликаем по Загрузить пользовательский сертификат:

В открывшемся окне заполняем поля для закрытого и открытого ключей:

Нажимаем Загрузить. Система предупредит, что загрузится с новым сертификатом — необходимо закрыть вкладку в браузере и открыть консоль управления снова. Если сертификат загружен правильный, мы не увидим предупреждения.

9.3. Создание нового пользователя.

При установке Proxmox VE создается пользователь root. Рассмотрим процесс добавления еще одного через командную строку.

Подключаемся по SSH или открываем консоль из панели управления.

Создаем пользователя в системе:

# useradd user

Где user — имя создаваемого пользователя.

После создаем нового пользователя в Proxmox:

# pveum useradd user@pam

В данном примере мы создали пользователя user в области pam.

Задаем пароль:

# pveum passwd user@pam

Задаем роль для созданного пользователя, например, административную:

# pveum aclmod / -user user@pam -role Administrator

Весь список ролей можно посмотреть в панели администрирования в разделе Datacenter —> Разрешения —> Роли.

9.4. Удаление LVM-local-data.

Как реструктурировать LVM Volume \ root LVM раздел?

Смотрим какая ситуация на сервере вообще?

# lsblk

Удалим раздел /dev/pve/data:

# lvremove /dev/pve/data

Дадим согласие на продолжение операции удаления — y.

Добавим всё освободившееся пространство к root разделу:

# lvresize -l +100%FREE /dev/pve/root

Проиндексируем разделы:

# resize2fs /dev/mapper/pve-root

Контрольная проверка:

# lsblk

Итого: root раздел увеличился!

9.5. Проксирование Proxmox VE через Nginx.

Данная инструкция позволит вам получить доступ к Proxmox VE через 443 порт.

Как настроить Nginx и получить бесплатные сертификаты Let’s Encrypt на доменное имя описано в этой статье: «Nginx: Настройка web-сервера, php-fpm, php7.4 из актуальных репозиториев на 2020 год».

Создадим каталог для log-файлов:

# mkdir -p /web/proxmox_ve/log

Добавим на него права:

# chown -R nginx:nginx /web/proxmox_ve/log

# chmod -R 700 /web/proxmox_ve/log

Создадим новый конфигурационный файл для Nginx:

# mcedit /etc/nginx/conf.d/proxmox.conf

Ниже приведен пример конфигурации, которая работает для web-интерфейса, а также консоли noVNC:

# upstream proxmox {
#    server "FQDN HOSTNAME";
# }

server {
    listen 80;
    server_name proxmox.domen.ru;
    access_log /web/proxmox_ve/log/access.log;
    error_log /web/proxmox_ve/log/error.log;

    rewrite ^(.*) https://$host$1 permanent;
    }

server {
    listen 443 ssl http2;
    server_name proxmox.domen.ru;
    access_log /web/proxmox_ve/log/access.log;
    error_log /web/proxmox_ve/log/error.log;

    ssl on;
    ssl_certificate		/etc/letsencrypt/live/proxmox.domen.ru/fullchain.pem;
    ssl_certificate_key		/etc/letsencrypt/live/proxmox.domen.ru/privkey.pem;
    ssl_trusted_certificate	/etc/letsencrypt/live/proxmox.domen.ru/fullchain.pem;

    proxy_redirect off;

    location / {
#       auth_basic "Proxmox Virtual Environment authentication";
#       auth_basic_user_file /etc/nginx/htpasswd;     
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade"; 
        proxy_pass https://192.168.0.6:8006;
	proxy_buffering off;
	client_max_body_size 0;
	proxy_connect_timeout  3600s;
        proxy_read_timeout  3600s;
        proxy_send_timeout  3600s;
        send_timeout  3600s;
    }
}

Перезагрузим Nginx:

# systemctl restart nginx

Файлы, размещенные на веб-сервере Nginx, являются общедоступными по умолчанию. Если вы хотите защитить файлы от несанкционированного доступа, вы можете использовать базовую аутентификацию HTTP. Это простой метод аутентификации, при котором пользователям необходимо предоставить имя пользователя и пароль для доступа к файлам на вашем сервере.

Как это настроить описано в статье: «Nginx: Как поставить пароль на раздел, директорию или папку сайта. Утилита htaccess».

9.6. Добавление физического диска в виртуальную машину Proxmox.

Чтобы «прокинуть» физический диск целиком в виртуальную машину, нужно в файл конфигурации виртуальной машины и добавить в него одну строку по аналогии с другими строками.

Например:

# mcedit /etc/pve/qemu-server/100.conf

ide0: volume=/dev/sdd

или

sata1: volume=/dev/sdd

Открываем состав виртуальной машины:

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

Для того, чтобы не попасть в такую досадную ситуацию, гипервизору Proxmox VE требуется объяснить, что мы хотим использовать для наших целей конкретный жесткий диск с конкретным индексом в системе и никакой другой!

Посмотрим что у нас есть в системе вообще физически и найдем наше устройство:
# ls /dev/disk/by-id/

Ага, вот оно! Строки с -part1 и так далее, обозначают разделы /dev/sdd1 и так далее. Они нам не интересны, так как мы будем пробрасывать физическое устройство целиком.


Выключаем виртуальную машину полностью.

Используем следующий синтаксис вида:

# qm set id_виртуальной_машины -virtio2 /dev/disk/by-id/id_диска ,

где:

  • id_виртуальной_машины — ID вашей виртуальной машины;
  • -virtio2 — тип устройства для гостевой операционной системы, замените -virtio2 на -virtio3, -virtio4 и так далее для каждого отдельного диска;
  • id_диска — ID желаемого для проброса жесткого диска.

В итоге образец команды будет выглядеть так:

# qm set 100 -virtio2 /dev/disk/by-id/ata-WDC_WD7500BPVT-24HXZT1_WD-WX41AC0C5964

Открываем состав виртуальной машины:

Теперь виртуальная машина получила в свое распоряжение целый физический диск, управляемый виртуальным контроллером на основе технологии VirtIO. Если ваша гостевая операционная система умеет пользоваться подобным виртуальным устройством, то можно смело приступать к его использованию. Если не знает, как операционная система Windows, то потребуется дополнительная установка драйверов под контроллер такого типа.

9.6.1. Установка VirtIO драйвера в гостевой Windows.

Установка VirtIO драйвера весьма простая. 

  1. Переходим по ссылке нас страницу с VirtIO ISO. Прокручиваем страничку до раздела Direct downloads и скачиваем Stable VirtIO ISO версию.
  2. Загружаем Stable VirtIO ISO образ в хранилище образов и монтируем его в CD-ROM виртуальной машины Windows.
  3. Включаем виртуальную машину и открываем Диспетчер устройств.
  4. В Диспетчере устройства появятся пару записей с новыми компонентами, на которые не установлены драйвера.
  5. Нажимаем обычную установку драйверов для неизвестных устройств и указываем Windows, что бы она сама искала то, что ей надо на нашем виртуальном CD-ROM‘е
  6. Соглашаемся с установкой драйверов от неизвестного издателя.
  7. Ждем короткую установку.
  8. Проходим в Менеджер дисков и обычным способом настраиваем жесткий диск или назначаем ему букву. 
  9. PROFIT!

Диск можно использовать на свое усмотрение.

9.7. Проброс USB устройств в Proxmox.

Очень нужная вещь, когда в виртуальную машину Proxmox VE нужно пробросить какое-то USB устройство.

Делаем так:

# lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 003: ID 13fe:5100 Kingston Technology Company Inc.
Bus 002 Device 003: ID 1f75:0916

Прописываем в конфигурацию ID флешек:

# mcedit /etc/pve/qemu-server/101.conf

usb0: host=13fe:5100
usb1: host=1f75:0916

И всё!

Ещё один вариант:

# qm set 101 –usb0 host=XXXX:YYYY

где 101ID виртуальной машины куда будем пробрасывать порт. А XXXX:YYYYID USB устройства.

9.8. Установка полезных утилит и программ:

9.8.1. Установка Midnight Commander.

Один из файловых менеджеров с текстовым интерфейсом типа Norton Commander для UNIX-подобных операционных систем.

# apt-get install mc

9.8.2. Установка Parted.

Parted — известный инструмент командной строки, который позволяет вам легко управлять разделами жесткого диска. Это может помочь вам добавить, удалить, сжать и расширить разделы диска вместе с файловыми системами, расположенными на них.

# apt-get install parted

Данная утилита требуется для настройки устройств хранения информации по инструкции «CentOS 7: Как добавить новый диск».

9.8.3. Установка Crony.

Chrony — это гибкая реализация протокола сетевого времени — Network Time Protocol (NTP). Используется для синхронизации системных часов с различных NTP-серверов, эталонных часов или с помощью ручного ввода.

# apt-get install chrony

Данная утилита требуется для настройки устройств хранения информации по инструкции «CentOS 7: Настройка даты и времени, пояса, автоматическая синхронизация мирового времени (Network Time Protocol). Утилита chrony.».

9.8.4. Установка Net-tools.

NetTOOLS — набор сетевых онлайн инструментов и утилит для оптимизации и диагностики сетевых ресурсов, круглосуточный мониторинг сетевых ресурсов, сетевые онлайн утилиты для работы в сети, сетевые утилиты, онлайн пинг, whois, nslookup, ping, traceroute.

# apt-get install net-tools

10. Про бэкапы в Proxmox VE.

Штатные инструменты Proxmox позволяют не только выполнять резервное копирование данных, но и создавать наборы предварительно настроенных образов операционных систем для быстрого развертывания. Это не только помогает при необходимости создать новый сервер для любого сервиса за несколько секунд, но также и уменьшает время простоя до минимального.

10.1. Алгоритмы резервного копирования.

Начнем с того, что Proxmox имеет неплохой штатный инструментарий для создания резервных копий виртуальных машин. Он позволяет легко сохранить все данные виртуальной машины и поддерживает два механизма сжатия, а также три метода создания этих копий.

Разберем вначале механизмы сжатия:

  • Сжатие LZO. Алгоритм сжатия данных без потерь, придуманный еще в середине 90-х годов. Код был написан Маркусом Оберхеймером (реализуется в Proxmox утилитой lzop). Основной особенностью этого алгоритма является очень скоростная распаковка. Следовательно, любая резервная копия, созданная с помощью этого алгоритма, может при необходимости быть развернута за минимальное время.
  • Сжатие GZIP. При использовании этого алгоритма резервная копия будет «на лету» сжиматься утилитой GNU Zip, использующей мощный алгоритм Deflate, созданный Филом Кацем. Основной упор делается на максимальное сжатие данных, что позволяет сократить место на диске, занимаемое резервными копиями. Главным отличием от LZO является то, что процедуры компрессии/декомпрессии занимают достаточно большое количество времени.

10.2. Режимы архивирования.

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

  • Режим Snapshot (Снимок). Этот режим можно еще назвать как Live backup, поскольку для его использования не требуется останавливать работу виртуальной машины. Использование этого механизма не прерывает работу виртуальной машины, но имеет два очень серьезных недостатка — могут возникать проблемы из-за блокировок файлов операционной системой и самая низкая скорость создания. Резервные копии, созданные этим методом, надо всегда проверять в тестовой среде. В противном случае есть риск, что при необходимости экстренного восстановления, они могут дать сбой.
  • Режим Suspend (Приостановка). Виртуальная машина временно «замораживает» свое состояние, до окончания процесса резервного копирования. Содержимое оперативной памяти не стирается, что позволяет продолжить работу ровно с той точки, на которой работа была приостановлена. Разумеется, это вызывает простой сервера на время копирования информации, зато нет необходимости выключения/включения виртуальной машины, что достаточно критично для некоторых сервисов. Особенно, если запуск части сервисов не является автоматическим. Тем не менее такие резервные копии также следует разворачивать в тестовой среде для проверки.
  • Режим Stop (Остановка). Самый надежный способ резервного копирования, но требующий полного выключения виртуальной машины. Отправляется команда на штатное выключение, после остановки выполняется резервное копирование и затем отдается команда на включение виртуальной машины. Количество ошибок при таком подходе минимально и чаще всего сводится к нулю. Резервные копии, созданные таким способом, практически всегда разворачиваются корректно.

11. Выполнение процедуры резервирования.

Для создания резервной копии:

1. Переходим на нужную виртуальную машину.

2. Выбираем пункт Резервирование.

3. Нажимаем кнопку Резервировать сейчас. Откроется окно, в котором можно будет выбрать параметры будущей резервной копии.

 

4. В качестве хранилища указываем то, которое мы подключали выше по тексту инструкции.

5. После выбора параметров нажимаем кнопку Резервирование и ждем, пока резервная копия будет создана. Об этом будет говорить надпись TASK OK.

Теперь созданные архивы с резервными копиями виртуальных машин станут доступны для скачивания с сервера. Самым простым и банальным способом копирования является SFTP. Для этого воспользуйтесь популярным кроссплатформенным FTP-клиентом FileZilla, который умеет работать по SFTP-протоколу.

  1. В поле Хост вводим IP-адрес нашего сервера виртуализации, в поле Имя пользователя вводим root, в поле Пароль — тот, который был выбран при установке, а в поле Порт указываем «22» (либо любой другой порт, который был задан для SSH-подключений).
  2. Нажимаем кнопку Быстрое соединение и, если все данные были введены правильно, то в активной панели увидите все файлы, расположенные на сервере.
  3. Переходим в директорию /mnt/storage. Все создаваемые резервные копии будут лежать в поддиректории «dump». Они будут иметь вид:
  • vzdump-qemu-номер_машины-дата-время.vma.gz в случае выбора метода GZIP;
  • vzdump-qemu-номер_машины-дата-время.vma.lzo в случае выбора метода LZO.

Резервные копии рекомендуется сразу скачивать с сервера и сохранять в надежном месте, например, в нашем облачном хранилище. Если распаковать файл с разрешением vma, одноименной утилитой, идущей в комплекте с Proxmox, то внутри будут файлы с расширениями raw, conf и fw.

В этих файлах содержится следующее:

  • raw — образ диска;
  • conf — конфигурация виртуальной машины;
  • fw — настройки файервола.

12. Восстановление из резервной копии.

Рассмотрим ситуацию, когда виртуальную машину случайно удалили и требуется ее экстренное восстановление из резервной копии:

1. Открываем хранилище, на котором лежит резервная копия.

2. Переходим на вкладку Содержимое.

3. Выбираем нужную копию и нажимаем кнопку Восстановление.

4. Указываем целевое хранилище и ID, который будет присвоен виртуальной машине, после завершения процесса.

5. Нажимаем кнопку Восстановление. Как только восстановление завершится, виртуальная машина появится в списке доступных.

13. Клонирование виртуальной машины.

Для примера, предположим, что в компании требуется внести изменения в какой-либо критичный сервис. Такое изменение реализуется через внесение множества правок в конфигурационные файлы. Результат при этом непредсказуем и любая ошибка способна вызвать сбой сервиса. Чтобы подобный эксперимент не затронул работающий сервер, рекомендуется выполнить клонирование виртуальной машины.

Механизм клонирования создаст точную копию виртуального сервера, с которой допустимо проводить любые изменения, при этом не затрагивая работу основного сервиса. Затем, если изменения будут успешно применены, новая виртуальная машина запускается в работу, а старая выключается. В этом процессе есть особенность, о которой всегда следует помнить. На клонированной виртуальной машине IP-адрес будет точно таким же, как и у исходной виртуальной машины, то есть при ее запуске возникнет конфликт адресов.

Расскажем, как избежать такой ситуации. Непосредственно перед выполнением клонирования, следует внести изменения в конфигурацию сети. Для этого необходимо временно изменить IP-адрес, но не перезапускать сетевой сервис. После выполнения клонирования на основной виртуальной машине следует вернуть настройки обратно, а на клонированной виртуально машине задать любой другой IP-адрес. Тем самым мы получим две копии одного и того же сервера на разных адресах. Это позволит быстро ввести новый сервис в работу.

Если этим сервисом является веб-сервер, то достаточно только изменить А-запись у вашего DNS-провайдера, после чего запросы клиентов по этому доменному имени будут направляться уже на адрес клонированной виртуальной машины.

Клонирование виртуальной машины в Proxmox является очень простой задачей. Для ее выполнения необходимо выполнить следующие действия:

1. Перейти на нужную нам виртуальную машину.

2. Выбрать из меню More пункт Clone.

3. В открывшемся окне заполнить параметр Имя.

4.  Выполнить клонирование нажатием кнопки Clone.

Этот инструмент позволяет сделать копию виртуальной машины не только на локальном сервере. Если несколько серверов виртуализации объединить в кластер, то с помощью этого инструмента можно сразу переместить созданную копию на нужный физический сервер. Полезной функцией является выбор дискового хранилища (параметр Target Storage), что очень удобно при перемещении виртуальной машины с одного физического носителя на другой.

14. Работа с образами дисков.

В комплекте c Proxmox есть очень удобная утилита, под названием qemu-img. Одной из ее функций является конвертирование образов виртуальных дисков. Чтобы воспользоваться им, достаточно открыть консоль гипервизора и выполнить команду в формате:

# qemu-img convert -f vmdk test.vmdk -O qcow2 test.qcow2

В приведенном примере, vmdk-образ виртуального накопителя VMware под названием test будет преобразован в формат qcow2. Это очень полезная команда, когда требуется исправить ошибку при изначальном выборе формата.

Благодаря этой же команде можно принудительно создать нужный образ, используя аргумент create:

# qemu-img create -f raw test.raw 40G

Такая команда создаст образ test в формате RAW, размером 40 Гб. Теперь он годится для подключения к любой из виртуальных машин.

15. Изменение размера виртуального диска.

И в заключение покажем как увеличить размер образа диска, если по каким-то причинам места на нем перестало хватать. Для этого воспользуемся аргументом resize:

# qemu-img resize -f raw test.raw 80G

Теперь наш образ стал размером 80 Гб. Посмотреть подробную информацию об образе можно с помощью аргумента info:

# qemu-img info test.raw

Не стоит забывать, что само расширение образа не увеличит размер раздела автоматически — просто добавит доступное свободное пространство. Для увеличения раздела воспользуйтесь командой:

# resize2fs /dev/sda1

где /dev/sda1 — нужный раздел.

16. Автоматизация создания резервных копий.

Использование ручного способа создания резервных копий — задача весьма трудоемкая и занимает много времени. Поэтому Proxmox VE содержит в себе средство для автоматического резервного копирования по расписанию.

Рассмотрим, как это сделать:

1. Используя веб-интерфейс гипервизора, открываем пункт Datacenter.

2. Выбираем пункт Резервирование.

3. Нажимаем кнопку Добавить.

4. Задаем параметры для планировщика.

5. Отмечаем галочкой пункт Включить.

6. Сохраняем изменения, используя кнопку Создать.

Теперь планировщик будет автоматически запускать программу резервного копирования в точно указанное время, исходя из заданного расписания.

17. Установка Proxmox VE на Ubuntu и CentOS.

Возможно, кому-то захочется установить Proxmox VE именно на Ubuntu или CentOS. К сожалению, разработчики остановились на Debian. Возможно, есть неофициальные обходные пути установки Proxmox VE на другие дистрибутивы Linux, однако такой путь не является приемлемым для продуктивной среды.

18. Оригиналы источников информации.

  1. ru.wikipedia.org «Proxmox Virtual Environment».
  2. proxmox.com «Download Proxmox software, datasheets and documentation Files».
  3. wiki.merionet.ru «Proxmox: установка и использование».
  4. dmosk.ru «Установка и настройка Proxmox VE».
  5. linux.org.ru «Лицензионный вопрос Proxmox».
  6. habr.com «Магия виртуализации: вводный курс в Proxmox VE».
  7. dummylabs.com «Proxmox: настраиваем отправку важных сообщений по email».
  8. evoluso.com «Proxmox remove lvm local data».
  9. pve.proxmox.com «Web Interface Via Nginx Proxy».
  10. habr.com «Про бэкапы в Proxmox VE».
  11. unlix.ru «Добавление физического диска в виртуальную машину Proxmox».
  12. unlix.ru «Проброс USB устройств в Proxmox».
  13. johnkeen.tech «Proxmox Physical Disk to VM – Only 2 Commands!».
  14. docs.fedoraproject.org «Creating Windows virtual machines using virtIO drivers».