В этой статье я покажу тонкости установки Windows 10 в среде виртуализации от ProxMox. Основное внимание будет уделено Virtio драйверам.
Создание виртуальной машины
Про ProxMox VE я уже писал:
- Что такое Proxmox VE?
- Установка Proxmox VE 6.3
Для того чтобы создать новую виртуальную машины для Windows 10, заходим в Web-интерфейс управления ProxMox VE и нажимаем кнопку “Create VM“:
Во-первых придумаем имя для виртуальной машины:
Выберем хранилище на котором лежит нужный образ (iso). Затем выбираем сам образ. Меняем тип гостевой ОС и её подтип:
Настроим систему, а именно поставим галочку Qemu Agent (дальше нужно будет установить агента в ОС). А для контролера выбирайте VirtIO SCSI, хотя он и так используется по умолчанию:
А потом настроим жёсткий диск для виртуальном машины – я использую SCSI (по умолчанию используется IDE). А также нужно выбрать хранилище для жесткого диска и его размер:
Настроим процессор для виртуальной машины (укажите количество виртуальных ядер):
Выделим необходимое количество оперативной памяти:
Настроим сетевую карту, я снова использую VirtIO устройство:
В итоге, после всех настроек, нажмём кнопку “Finish“:
После того, как мы создали виртуальную машину, добавим ей ещё один привод (CD/DVD Drive). Его будем использовать для того, чтобы подключить ещё один образа с VirtIO драйверами:
И подключим в новый привод образ с VirtIO драйверами:
Если у вас ещё нет образа с VirtIO драйверами, то вы можете скачать их от сюда.
А также, почитать про VirtIO драйверы можно в wiki от ProxMox – здесь.
Прежде чем двигаться дальше посмотрим ещё раз на виртуальное оборудование нашей виртуальной машины:
Установка гостевой ОС
Чтобы запустить виртуальную машину, нажмите кнопку “Start“. Затем, чтобы открыть консоль, нажмите кнопку “Console“:
Начнётся процесс установки Windows 10:
Весь процесс показывать не буду, покажу лишь те места, которые связаны с виртуализацией. Вначале вам нужно будет выбрать диск для установки системы, но для этого необходимо загрузить VirtIO драйвера:
Нажимаем кнопку “Загрузить“:
На диске с VirtIO драйверами ищем каталог /amd64/w10/:
И устанавливаем найденный драйвер:
После установки диск в системе должен определиться:
Дальше на найденный диск устанавливаем систему как обычно.
После установки, когда система начнет первоначальную настройку, нажимаем кнопку “У меня нет Интернета“. Это необходимо, так как драйвер VirtIO для сетевого интерфейса мы сможем установить только после первоначальной настройки:
Установка дополнительных VirtIO драйверов
После установки системы, для многих виртуальных устройств не будет найдено драйверов. Чтобы это исправить запускаем “Диспетчер устройств“:
Видим неизвестные устройства:
Нужно для каждого такого устройства установить драйвер с образа диска для VirtIO драйверов. Для этого нажимаем правой кнопкой мышки по устройству и выбираем “Обновить драйвер“:
Затем выбираем пункт меню “Выполнить поиск драйверов на этом компьютере“:
Дальше нажимаем кнопку “Обзор“:
И указываем диск с VirtIO драйверами:
Здесь уже искать драйвера не обязательно, главное указать диск.
Таким образом устанавливаете все остальные драйвера:
И в самом конце установим VirtIO Агента с этого же образа диска. Для этого на диске ищем каталог guest-agent а в нем запускаем установщик:
После проделанного вы можете выполнять дополнительные настройки, например:
- настроить сеть;
- изменить имя компьютера или ввести систему в домен;
- обновить систему;
- установить дополнительное ПО;
- и другое.
Итог
В этой статье я показал что в среде виртуализации ProxMox используется специальное VirtIO оборудование и для его использования в Windows нужно устанавливать специальные VirtIO драйвера. Дополнительно в систему можно установить агента (Qemu-guest-agent), чтобы гипервизор получал некоторые сведенья о гостевой системе, например ip-адреса.
Ну а в Linux поддержка VirtIO оборудования уже встроена в ядро. Хотя агента всё-таки придется установить, например таким способом:
# apt-get install qemu-guest-agent Или #yum install qemu-guest-agent
Спасибо за внимание!
Сводка
Имя статьи
Установка Windows 10 на ProxMox VE 6
Описание
В этой статье я покажу тонкости установки Windows 10 в среде виртуализации от ProxMox. Основное внимание будет уделено Virtio драйверам
Introduction
This is a set of best practices to follow when installing a Windows 10 guest on a Proxmox VE server 6.x. Right now it’s a work in progress.
Install
Prepare
To obtain a good level of performance, we will install the Windows VirtIO Drivers during the Windows installation.
- Create a new VM, select «Microsoft Windows 10/2016/2019» as Guest OS and enable the «Qemu Agent» in the System tab. Continue and mount your Windows 10 ISO in the CDROM drive
- For your virtual hard disk select «SCSI» as bus with «VirtIO SCSI» as controller. Set «Write back» as cache option for best performance (the «No cache» default is safer, but slower) and tick «Discard» to optimally use disk space (TRIM).
- Configure your memory settings as needed, continue and set «VirtIO (paravirtualized)» as network device, finish your VM creation.
- For the VirtIO drivers, upload the driver ISO (use the stable VirtIO ISO, download it from here) to your storage, create a new CDROM drive (use «Add -> CD/DVD drive» in the hardware tab) with Bus «IDE» and number 0. Load the Virtio Drivers ISO in the new virtual CDROM drive.
- Now your ready to start the VM, just follow the Windows installer.
Launch Windows install
- After starting your VM launch the noVNC console
- Follow the installer steps until you reach the installation type selection where you need to select «Custom (advanced)»
- Now click «Load driver» to install the VirtIO drivers for hard disk and the network.
- Hard disk: Browse to the CD drive where you mounted the VirtIO driver and select folder «vioscsiw10amd64» and confirm. Select the «Red Hat VirtIO SCSI pass-through controller» and click next to install it. Now you should see your drive.
- Network: Repeat the steps from above (click again «Load driver», etc.) and select the folder «NetKVMw10amd64», confirm it and select «Redhat VirtIO Ethernet Adapter» and click next.
- Memory Ballooning: Again, repeat the steps but this time select the «Balloonw10amd64» folder, then the «VirtIO Balloon Driver» and install it by clicking next. With these three drivers you should be good covered to run a fast virtualized Windows 10 system.
- Choose the drive and continue the Windows installer steps.
HINT: There is a video showing the process for a Windows Server 2016 installation which is the same as for Windows 10.
Install Guest Agent and Services
Guest Agent
If you enabled the Qemu Agent option for the VM the mouse pointer will probably be off after the first boot.
To remedy this install the «Qemu Guest Agent». The installer is located on the driver CD under guest-agentqemu-ga-x86_64.msi.
Drivers and Services
VirtIO guest tools installer
The easiest way to install missing drivers and services is to use the provided MSI installer. It is available on the driver CD since version «virtio-win-0.1.173-2».
Run the «virtio-win-gt-x64.msi» file located directly on the CD. If you do not plan to use SPICE you can deselect the «Qxl» and «Spice» features. Restart the VM after the installer is done.
After all this the RAM usage and IP configuration should be shown correctly in the summary page of the VM.
For more information and configuration about ballooning, see Dynamic Memory Management
Check for missing drivers
- See also: Paravirtualized Block Drivers for Windows
Unknown device in device manager
Make sure to include subfolders
Go to the Device Manager to see if there are any drivers missing.
For any unknown device:
- Right click an select «Update driver».
- Select «Browse my computer for driver software».
- Select the Driver CD. Make sure that «Include subfolders» is checked.
- Once a driver has been found you might be prompted with a security warning asking if you «Would like to install this device software». Click «Install».
Further information
Disk-Image Format: raw vs qcow2
Raw file format provides slightly better performance while qcow2 offers advanced features such as copy on write and Live_Snapshots.
Since V2.3, qcow2 is the default format.
VirtIO drivers
Make it really easy: Build your ISO with drivers already included:
Windows guests — build ISOs including VirtIO drivers
Latest iso with VirtIO drivers :
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/
See also
Windows 2012 guest best practices
Windows 8 guest best practices
Обновлено: 25.05.2022
Опубликовано: 30.01.2020
Используемые термины: Proxmox VE, Linux.
В данной инструкции мы пошагово разберем способы установки Proxmox VE, базовую настройку и создание виртуальной машины. Proxmox основан на Debian — поэтому установку будем выполнять на данный дистрибутив Linux. В данной инструкции работа ведется на Proxmox версии 6.
Системные требования
Установка Proxmox
Из готового образа
Установка на Debian
Проверка установки
Базовая настройка
Как загрузить ISO-образ
Создание сетей
Bridge
NAT
Сеть между виртуалками
Создание виртуальной машины
Настройка виртуальной машины
Базовые настройки
Добавление диска
Добавление сетевого адаптера
Установка гостевого агента
Удаление виртуальной машины
Тюнинг Proxmox
Предупреждения об отсутствии подписки
Правильный сертификат
Создание нового пользователя
Ubuntu и CentOS
Системные требования
Требования разделены на минимальные и рекомендованные:
Минимальные | Рекомендованные | |
---|---|---|
Процессор | 64bit с поддержкой технологии виртуализации Intel VT или AMD-V | |
Память | 1 Гб | 2 Гб для системы + для виртуальных машин. Дополнительно, если используется хранилище Ceph или ZFS, 1 Гб на наждый ТБ данных. |
Накопитель | HDD | SSD или NVMe |
Сеть | Сетевой адаптер | Минимум, 2 сетевых адаптера на 10 Гбит/сек. |
Поддержка виртуализации Intel VT или AMD-V может быть отключена на материнской плате. Для проверки заходим в БИОС — находим раздел настройки процессора (как правило, в пункте меню Advanced) — проверяем, что технология виртуализации (Intel VT, AMD-V, Virtualization Technology, VMX) включена (Enabled). Если мы хотим протестировать платформу и устанавливаем ее на виртуальную машину, то в ее настройках включаем поддержку технологии виртуализации. Например, в VMware ESX 6 в настройке виртуальной машины на вкладке Virtual Hardware раскрываем CPU и ставим галочку Expose hardware assisted virtualization to the guest OS:
Установка
Есть два варианта установки Proxmox VE — использовать готовый образ или установка на Debian. Мы рассмотрим оба.
Установка готового образа ISO
1. Переходим на страницу загрузки Proxmox официального сайта. Загружаем дистрибутив, например, Proxmox VE 6.1:
2. Если установка выполняется на виртуальную машину, монтируем образ. Если нет — создаем установочную флешку, например, с помощью WinSetupFromUsb или загрузочный диск с помощью InfraRecorder.
3. Загружаем сервер с установочного ISO — мы увидим окно приветствия Proxmox — выбираем пункт меню Install Proxmox VE:
4. Принимаем лицензионное соглашения, кликнув по I agree.
5. Выбираем диск, на который будет установлена система:
* при необходимости, кликаем по Options и задаем настройки файловой системы и размера раздела.
6. Пишем страну, временную зону, язык раскладки клавиатуры по умолчанию:
7. Вводим дважды пароль, который будет использоваться для пользователя root:
8. Прописываем сетевые настройки:
* где:
- Management Interface: сетевой интерфейс для управления сервером виртуальных машин.
- Hostname (FQDN): имя хоста для сервера.
- IP Address: IP-адрес нашего сервера.
- Netmask: маска подсети для сервера.
- Gateway: шлюз по умолчанию.
- DNS Server: сервер DNS.
9. В окне «Summary» проверяем введенные данные и кликаем по Install. Начнется процесс установки, который займет не более 10 минут.
10. После установки мы должны увидеть «Installation Successful» — перезагружаем сервер, кликнув по кнопке Reboot.
После переходим к проверке установки.
Установка на Debian
Если мы решили установить Proxmox на уже установленный Debian, выполняем следующую инструкцию.
При установке среды виртуализации меняется ядро Linux. Это может привести к потери работоспособности уже установленных сервисов. Таким образом, установку Proxmox следует выполнять на чистый сервер, а не тот, который уже используется для каких-либо задач.
1. Имя сервера должно разрешаться по его IP-адресу. Для этого либо добавляем А-запись в DNS, либо настраиваем на сервере файл hosts:
nano /etc/hosts
… и добавляем:
192.168.1.55 proxmox.dmosk.local proxmox
* где 192.168.1.55 — IP-адрес нашего сервера; proxmox — имя сервера; dmosk.local — наш домен, если используется.
2. Добавляем репозитории, которые будем устанавливать для установки Proxmox PE и дополнительных компонентов:
nano /etc/apt/sources.list
deb http://mirror.yandex.ru/debian/ buster main non-free contrib
deb-src http://mirror.yandex.ru/debian/ buster main non-free contrib
deb http://download.proxmox.com/debian/pve buster pve-no-subscription
Чтобы мы могли работать с репозиторием proxmox добавляем в систему цифровую подпись:
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-get update
3. Устанавливаем Proxmox PE и компоненты:
apt-get install proxmox-ve open-iscsi
* где proxmox-ve — собственно, сам гипервизор; open-iscsi — iSCSI-клиент для подключения iSCSI-target-ов.
4. Перезагружаем сервер:
systemctl reboot
Проверка установки
В браузере открываем панель управления системой виртуализации по адресу https://<IP-адрес сервера>:8006. В открывшемся окне выбираем язык, вводим логин и пароль от пользователя root:
Должно открыться окно управления.
Начальная настройка
Чтобы начать использовать Proxmox и создать первую виртуальную машину, внесем небольшие настройки и подготовим гипервизор к работе.
1. Загрузка образов
Кликаем по Датацентр — и дважды по storage:
* мы можем создать отдельное хранилище для образов ISO. Для этого переходим в раздел Датацентр — Хранилище — Создать — Каталог.
Переходим в раздел Содержимое и кликаем по Загрузить:
В открывшемся окне выбираем ISO-образ системы, который будем устанавливать в качестве гостевой и кликаем по Загрузить. Ждем окончания копирования файла на сервер.
2. Создание сети для виртуальных машин
Мы рассмотрим примеры создания 2-х режимов сети — Bridge и NAT.
Независимо от способа установки Proxmox, необходимо подключиться к хосту по SSH и установить пакет ifupdown2 командой:
apt-get install ifupdown2
* ifupdown2 — утилита для конфигурации сетевого интерфейса (по сути, аналог ifupdown, написанный на языке Python).
… в противном случае, при попытке применить сетевые настройки мы получим ошибку you need ifupdown2 to reload networking (500).
Bridge
Сеть, работающая в данном режиме позволяет виртуальной машине видеть локальную сеть, как будто это отдельно стоящее устройство. Данный режим лучше всего подойдет для серверов, стоящих в локальной сети компании.
Работать с режимом Bridge нужно очень осторожно. Любое неправильное действие и удаленный доступ к серверу будет потерян. Если работы ведутся на удаленном сервере, рекомендуется сначала потренироваться на какой-нибудь локальной машине.
Также стоит отметить, что при установке PVE из установочного ISO-образа, один Bridge уже будет создан.
Для создания бриджа в панели управления кликаем по нашему серверу Proxmox — переходим в раздел Система — Сеть — обратите внимание, чтобы в системе не было bridge-интерфейсов:
… иначе, создавать его не обязательно.
Открываем настройки сетевого интерфейса, через который будет работать наш мост и удаляем шлюз:
* если мы не сделаем этого, то при настройке Bridge мы получим ошибку Parameter verification failed. (400). gateway: Default gateway already exists on interface ‘ens160’.
Нажимаем Создать и выбираем Linux Bridge:
В открывшемся окне заполняем поля IPv4/CIDR, Шлюз (IPv4), Порты сетевого моста:
* в данном примере мы задаем IP-адрес, на котором будет работать Proxmox (чтобы ничего не перепутать, можно задать IP-адрес физического интерфейса, который будет задействован под Bridge); маска указывается в нотации CIDR и в нашем примере это 24 или 255.255.255.0; в качестве физического интерфейса наш bridge будет использовать ens160.
… нажимаем Создать.
Кликаем по Apply Configuration, чтобы применить сетевые настройки:
Подтверждаем действия.
NAT
Данный режим сети активно применяется в случае аренды сервера, где количество IP-адресов лимитировано. В данном случае, все виртуальные машины будут находисться за NAT, в качестве которого выступает сам Proxmox.
Сам интерфейс мы делаем из панели управления. Но чтобы виртуальные машины могли выходить в Интернет через сеть NAT, необходимо на самом хосте включить редирект и маскарадинг.
Создание нового bridge-интерфеса
Итак, кликаем по нашему серверу Proxmox — переходим в раздел Система — Сеть — нажимаем Создать и выбираем Linux Bridge:
Оставляем имя vmbr1 или пишем любое другое, прописываем IP-адрес с маской сети, в которой будут находиться серверы за NAT:
Нажимаем Создать. Применяем настройки:
Сеть настроена.
Настройка ядра и брандмауэра
Подключаемся к серверу по SSH. Открываем на редактирование файл настройки ядра:
nano /etc/sysctl.d/99-sysctl.conf
… и добавляем разрешение на редирект:
net.ipv4.ip_forward=1
После применяем настройки:
sysctl -p /etc/sysctl.d/99-sysctl.conf
Добавляем правило в брандмауэр:
iptables -t nat -A POSTROUTING -s ‘192.168.122.0/24’ -o vmbr0 -j MASQUERADE
* в данном примере мы создали правило для маскарадинга всех пакетов из подсети 192.168.122.0/24 и для исходящего интерфейса vmbr0. Обратите внимание, что если у нас будет другая подсеть и исходящий интерфейс для сети Интернет, то нужно будет задать другие значения.
Ставим утилиту для сохранения правил iptables:
apt-get install iptables-persistent
… и сохраняем правила в процессе установки или командой:
netfilter-persistent save
Наш NAT настроен.
Сеть между виртуалками
Данная сеть — частный случай NAT без выхода в Интернет. Мы должны создать бридж с отдельной подсетью без шлюза. При добавлении виртуальным машинам данного сетевого адаптера мы сможем настроить их взаимодействие по внутренней сети.
Создаем бридж, как делали это ранее:
Настраиваем новый интерфейс — задаем имя или оставляем тот, что предложит система, а также указываем IP-адрес:
Создаем интерфейс. Готово — при создании или редактировании виртуалок, мы можем указывать с качестве интерфейса созданный бридж (в данном примере, vmbr2) для изоляции их в отдельную подсеть 192.168.150.0/24.
Создание виртуальной машины
Базовая настройка закончена — можно опробовать наш гипервизор в деле.
В правой верхней части панели управления кликаем по Создать VM:
В открывшемся окне снизу сразу ставим галочку Расширенный:
Задаем имя виртуальной машине и ставим галочку Запуск при загрузке (если хотим, чтобы виртуалка запускалась автоматически с сервером PVE):
* в данном примере мы задали имя FS. При желании, также можно изменить VM ID, но он проставляется автоматически и имеет правильное значение.
Выбираем загруженный нами ISO-образ, с которого будем ставить операционную систему, задаем тип гостевой операционной системы и ее версию:
* в данном примере мы будем устанавливать Linux Ubuntu. Среди списка операционных систем также доступны Microsoft Windows, Solaris и Other.
На вкладке Система можно оставить все значения по умолчанию:
* в некоторых случаях, необходимо выбрать другую видеокарту (при установке систем с GUI), а также особый вариант БИОС.
Задаем размер жесткого диска:
* 16 Гб для Ubuntu достаточно, однако, для наших задач расчет должен быть индивидуальным для каждой создаваемой виртуальной машины.
Мы можем задать количество процессоров и ядер:
* в данном примере мы создаем виртуалку с 2 процессорами, каждый из который с 2 ядрами, итого, 4. Для ненагруженных систем можно оставить значение по умолчанию.
Выделяем память:
* наша Ubuntu будет работать с 2 Гб оперативной памяти.
Выбираем созданный нами бридж — либо для получения прямого адреса из сети, либо для NAT:
* в данном примере, мы указали vmbr0 для подключения к сети напрямую.
Ставим галочку, чтобы виртуальная машина сразу запустилась после создания:
… и нажимаем Готово. Ждем окончания процесса и переходим к консоли:
Мы должны увидеть загрузку с ISO-образа.
Настройка виртуальной машины
После создания виртуальной машины нам может понадобиться ее изменить. Рассмотрим процесс настройки на примере изменения некоторых параметром, а также добавления диска и сетевого адаптера.
Полезные настройки
Для начала, переходим к виртуальной машине — Параметры:
На мой взгляд, чаще всего могут понадобиться следующие настройки:
- Имя — имя виртуальной машины.
- Запуск при загрузке — для серверов данный параметр должен быть активирован.
- Порядок загрузки — позволяет определить, с какого устройства должна запуститься виртуалка в первую очередь.
Для изменения параметра, просто кликаем по нему дважды, меняем значение и нажимаем OK.
Добавление дискового накопителя
Переходим в подраздел Оборудование — кликаем по Добавить и выбираем Жесткий диск:
В открывшемся окне задаем размер диска и нажимаем OK.
Для увеличения размера имеющегося диска устанавливаем на него курсов и кликаем по Изменить размер диска:
В открывшемся окне задаем объем, на который нужно увеличить дисковое пространство.
Добавление сетевого адаптера
Переходим в подраздел Оборудование — кликаем по Добавить и выбираем Сетевое устройство:
Как при создании ВМ, выбираем тип сетевого адаптера (бридж или нат) и нажимаем Добавить.
Установка гостевого агента
Обязательная процедура для повышения производительности и возможностей работы с виртуальной машиной. Настройка выполняется как на гипервизоре, так и в самой виртуальной машине. Рассмотрим пример установки агента на базе системы Linux.
В гипервизоре переходим в Параметры, находим пункт QEMU Guest Agent и кликаем по нему:
Ставим галочку Use QEMU Guest Agent и нажимаем OK:
Для применения настройки нужно выключить и включить виртуальную машину.
Теперь подключаемся к виртуальной машине и устанавливаем утилиту. В зависимости от типа Linux команды будут отличаться.
а) DEB-based:
apt install qemu-guest-agent
б) RPM-based:
yum install qemu-guest-agent
Установка завершена.
Для запуска сервиса выполняем:
systemctl enable qemu-guest-agent —now
В сводке виртуальной машины мы теперь можем увидеть информацию об IP-адресе, которая получена при помощи гостевого агента.
Подробнее процесс описан на странице https://pve.proxmox.com/wiki/Qemu-guest-agent.
Удаление виртуальной машины
Для удаления виртуальной машины, сначала ее отключаем — это можно сделать из операционной системы или из панели управления, нажав на стрелку вниз рядом с Выключить — Остановка:
После кликаем по Дополнительно — Удалить:
В открывшемся окне мы должны подтвердить свои намерения удалить виртуальную машину, вписав ее идентификатор:
* если мы поставим галочку Purge, то виртуальная машина будет удалена полностью вместе с виртуальным диском.
Кликаем по Удалить — готово.
Тюнинг сервера PVE
Внесем несколько изменений, которые сделают работу с Proxmox VE удобнее.
Отключение предупреждения об отсутствии подписки
Каждый раз при заходе в панель управления мы будем видеть такое предупреждение:
Оно говорит нам о том, что мы используем бесплатную версию программного продукта. Чтобы сообщение нас не беспокоило, выполним 2 действия:
- Отключим платный репозиторий для получения пакетов 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
* мы закомментировали репозиторий pve-enterprise и добавили pve-no-subscription.
* при большом желании, можно удалить файл репозитория с именем pve-enterprise.list и создать новый — кому как будет удобнее.
После обновим список пакетов:
apt-get update
Последнее — редактируем файл /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js:
sed -i «s/getNoSubKeyHtml:/getNoSubKeyHtml_:/» /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
* данной командой мы находим getNoSubKeyHtml в файле /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js и меняем на getNoSubKeyHtml_.
Закрываем окно браузера с Proxmox, если оно было открыто и запускаем его снова. Входим в систему — сообщение не должно появиться.
Сертификаты
Сервер PVE устанавливается с самоподписанным сертификатом. Это означает, что при подключении к панели управления мы будем видеть предупреждение от системы безопасности. Чтобы браузер принимал сертификат, он должен соответствовать следующим требованиям:
- Быть выдан доверенным центром сертификации или зарегистрированным в вашей локальной сети, например, локальный AD CS.
- Быть для доменного имени, по которому мы заходим в панель управления.
- Иметь актуальные даты начала действия и окончания.
При этом, мы не должны заходить в панель управления по IP-адресу — в противном случае, независимо от сертификата, мы все-равно, получим предупреждение.
И так, сам сертификат можно купить, запросить бесплатно у Let’s Encrypt или создать с использованием локального центра сертификации, например, по данной инструкции. Получив сертификат, открываем панель управления PVE и переходим к серверу — Система — Сертификаты — кликаем по Загрузить пользовательский сертификат:
В открывшемся окне заполняем поля для закрытого и открытого ключей:
… и нажимаем Загрузить. Система предупредит, что загрузится с новым сертификатом — необходимо закрыть вкладку в браузере и открыть консоль управления снова. Если сертификат загружен правильный, мы не увидим предупреждения.
Создание нового пользователя
При установке PVE создается пользователь root. Рассмотрим процесс добавления еще одного через командную строку.
Подключаемся по SSH или открываем консоль из панели управления. Создаем пользователя в системе:
useradd user
* где user — имя создаваемого пользователя.
После создаем нового пользователя в Proxmox:
pveum useradd user@pam
* в данном примере мы создали пользователя user в области pam.
Задаем пароль:
pveum passwd user@pam
Задаем роль для созданного пользователя, например, административную:
pveum aclmod / -user user@pam -role Administrator
* весь список ролей можно посмотреть в панели администрирования в разделе Датацентр — Разрешения — Роли.
Ubuntu и CentOS
Возможно, кому-то захочется установить Proxmox именно на Ubuntu или CentOS. К сожалению, разработчики остановились на Debian. Возможно, есть неофициальные обходные пути установки Proxmox на другие дистрибутивы Linux, однако такой путь не является приемлемым для продуктивной среды. Для настройка виртуализации на Ubuntu и CentOS предлагаю инструкции:
1. Установка и настройка KVM на CentOS 7
2. Настройка KVM на Ubuntu Server
В этом статье мы покажем, как развернуть виртуальную машину и устанавливать на нее Windows 10/11 на гипервизоре Proxmox Virtual Environment.
Сначала вам нужно:
- Скачать Windows Media Creation Tool (https://www.microsoft.com/en-us/software-download/windows10) и создать ISO файл с установочным образом Windows;
- Также скачайте ISO образ с драйверами VirtIO для WIndows (https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso). Это набор паравиртуализированных драйверов для KVM/Linux, который обеспечит более высокую производительность виртуальных устройств, чем встроенные эмулированные драйвера
Загрузите оба iso файла в хранилище PVE.
Теперь нужно создать новую виртуальную машину Proxmox для развертывания гостевой Windows.
- Откройте веб интерфейс управления Proxmox VE (WAC) и нажмите кнопку Create VM;
- Укажите имя ВМ;
- Затем перейдите на вкладку OS и ваш установочный ISO образ Windows 10, который вы загрузили ранее. Proxmox должен автоматически определить тип ОС в образе и указать тип гостевой ОС виртуальной машины (Microsoft Windows version 10/2016/2019);
- Перейдите на вкладку System и включите опцию Qemu Agent и выберите тип контроллера дисков VirtIO SCSI;
- Затем перейдите на кладку Hard Disk и настройте параметры диска виртуальной машины (Bus/Device: SCSI (по умолчанию используется IDE), Storage: выберите хранилище ProxMox где будет хранится виртуальный диск, укажите размер виртуального диска (не менее 25 Гб). Здесь можно выбрать один из двух типов виртуальный дисков raw (лучшая производительностью) или qcow2 (расширенный функционал и поддержка снапшотов). Также вы можете пробросить физический диск или USB флешку в виртуальную машину Proxmox VE. Здесь можно включить опцию кэширования Write back ->Discard. Это увеличит быстродействие, но есть некоторые риски потери данных;
- На вкладке CPU и Memory укажите количество ядер виртуальной машины вы хотите выделить (не менее 2 vCPu типа kvm64) и размер оперативной памяти (не менее 2Гб);
- Перейдите на вкладку network. Выберите тип виртуальной карты VirtIO (paravirtualized) вместо Intel E1000. Отключите опцию Firewall, если вы будете использовать встроенный Windows Defender Firewall в гостевой ОС;
- Проверьте настройки и нажмите Finish чтобы создать ВМ;
- После того, как вы создали новую виртуальную машину в Proxmox для Windows, откройте ее настройки и добавьте еще один CD/DVD привод. Подключите в него ISO файл с VirtIO драйверами;
- Запустите ВМ, нажав Start. Нажмите кнопку Console чтобы открыть экран виртуальной машины;
- Установка Windows должна запуститься автоматически;
- Windows Setup не сможет найти диски вашей ВМ. Поэтому вам нужно загрузить VirtIO драйвера контроллера;
- Нажмите кнопку Load Driver и укажите путь к каталогу amd64w10 на диске с драйверами VirtIO;
- Установите драйвер Red Hat VirtIO SCSI pass-throught controller (NetKVMw10amd6vioscsi.inf);
- После установки драйвера установщик Windows увидит ваш диск, и вы сможете продолжить установку;
- После окончания установки Windows 10 в виртуальную машину, нужно установить драйвера VirtIO для сетевой карты и других устройств. Для этого откройте диспетчер устройств Windows (devmgmt.msc). Найдите в списке неизвестные устройства. Щелкните по устройству и выберите Update Driver -> Browse my computer for driver software и укажите путь к диску с драйверами VirtIO. Вам нужно установить как минимум следующие драйвера Redhat VirtIO Ethernet Adapter (NetKVMw10amd64), VirtIO Balloon Driver (Balloonw10amd64) Подробнее это описано в статье Установка драйверов KVM VirtIO в виртуальной машине Windows;
- После установки всех драйверов установите VirtIO Агент (guest-agentquemu-ga-x86_64.msi)
- Запустите установку virtio-win-gt-x64.msi из корня диска. Укажите драйвера и службы, которые нужно установить дополнительно.
На этом настройка виртуальной машины Windows 10 на Proxmox закончена. Вы можете продолжить настройку параметров Windows в гостевой ОС (имя компьютера, параметры сетевого подключения, установить необходимые программы, добавить в домен Active Directory и т.д.)
Proxmox Virtual Environment (Proxmox VE) — система виртуализации с открытым исходным кодом на базе Debian, использующая в качестве гипервизора KVM для виртуальных машин и LXC для контейнеров. Это позволяет запускать в виртуальной среде Linux-системы без потери производительности и остальные, поддерживаемые KVM ОС с минимальными потерями. Кроме того, Proxmox VE позволяет создавать высокодоступные конфигурации с несколькими серверами и распределенными системами хранения.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Получить Proxmox VE можно на официальном сайте, сейчас доступна новая версия 6.0, которую мы и будем устанавливать. Да, это действительно open-source и это бесплатно, корпоративная подписка предоставляет доступ к закрытому репозиторию Proxmox VE Enterprise, который содержит стабильные обновления ПО и обновления безопасности, а также техническую помощь и поддержку. Никаких ограничений функциональности, если вы откажетесь от подписки, нет.
Для установки используется собственный инсталлятор и весь процесс предельно прост, от вас потребуется указать конфигурацию дисковой подсистемы:
А также пароль суперпользователя, настройки сети, страну и часовой пояс. Потом останется только откинуться в кресле и немного подождать, пока система установится на ваш компьютер. По завершении процесса установки вас встретит приглашение входа в систему, над которым будет указан адрес, который следует набрать в браузере для доступа к консоли управления.
Но не будем спешить. Прежде всего отключим корпоративный репозиторий, на который у нас все равно нет подписки, и подключим вместо него некоммерческий репозиторий Proxmox. Для отключения просто удалим файл репозитория из источников apt:
rm -f /etc/apt/sources.list.d/pve-enterprise.list
Затем создадим свой список:
touch /etc/apt/sources.list.d/pve-no-subscription.list
В который внесем следующие строки:
deb http://download.proxmox.com/debian/pve buster pve-no-subscription
Теперь можно переходить к консоли управления, откроем браузер и наберем предложенный адрес, консоль управления продуктами Proxmox работает на порту 8006, что следует помнить.
Структура Proxmox VE иерархична, высший уровень составляет Датацентр, здесь есть настройки, применяемые сразу ко всем узлам, например, управление пользователями или хранилищами, настройки резервного копирования и т.д.
Следующий уровень — настройки узла, здесь доступна подробная статистика и большое количество настроек, которые относятся именно к этому серверу. Мы не будем останавливаться на них подробно, для администратора с достаточным уровнем подготовки разобраться с ними не составит труда.
Но есть и «сложности перевода», так в разделе Обновления, нас ждут две одинаковые кнопки Обновить.
В английской версии это были Update и Upgrade, а вот здесь перевели как перевели. Первая из них запускает обновление списка пакетов, а вторая запускает само обновление, открывая в отдельном окне консоль сервера.
Если вам нужно просто попасть в консоль сервера, можно нажать кнопку Оболочка и перед вами в отдельном окне браузера откроется noVNC-сессия, при этом не требуется ни Flash, ни Java, что позволяет подключаться как к серверу, так и к виртуальным машинам с любого устройства, был бы браузер.
Перед тем, как создавать виртуальные машины и контейнеры, обратимся к Хранилищам, по умолчанию создается два хранилища: local и local-lvm.
Первое предназначено для хранения ISO-образов и шаблонов контейнеров, а во втором хранятся сами виртуальные машины. Поэтому перед тем, как создать виртуальную машину или контейнер, нам нужно загрузить в хранилище нужный образ диска или шаблон. С образами все просто, нажимаем кнопку Загрузить и указываем нужный нам ISO-образ.
Для получения шаблонов следует нажать кнопку Шаблоны и мы попадем в официальное хранилище шаблонов, здесь мы может сразу загрузить шаблон другого продукта Proxmox — Mail Gateway или шаблоны стандартных Linux-систем.
Прокрутив ниже, мы обнаружим шаблоны предварительно настроенных систем практически на все случаи жизни. Использовать их, либо настраивать все самостоятельно — решать вам, в ряде случаев такие шаблоны способны хорошо сэкономить время, особенно при развертывании большого количества однотипных систем.
Чтобы загрузить выбранный шаблон достаточно нажать кнопку Загрузка внизу окна.
Для создания виртуальной машины нажмем Создать VM. На первом экране укажем имя виртуальной машины:
Затем укажем тип и версию гостевой ОС и подключим нужный образ из хранилища.
После чего, последовательно перемещаясь по пунктам следует настроить все остальные параметры виртуалки, особых сложностей это составить не должно. Но создав виртуальную машину не спешите ее запускать. Прежде всего перейдем в раздел Оборудование. Здесь можно не только настроить уже подключенное оборудование, но и добавить новое. В отличие от Hyper-V, Proxmoх позволяет пробрасывать внутрь виртуальных машин USB-устройства, что может быть полезным, если вам нужно работать с ключами защиты или USB-токенами.
Также не забудьте заглянуть в Параметры, где стоит включить Запуск при загрузке и Агент QEMU. И если с первым пунктом все понятно, то Агент позволяет управлять системой со стороны гипервизора, без него вы, например, не сможете сделать резервную копию без остановки работы машины.
Итак, все настройки закончены, включаем виртуальную машину и переключаемся в консоль. Да, прямо в браузере вы увидите экран вашей виртуалки, при этом ничего не тормозит, работать с системой достаточно комфортно.
Пока идет установка системы создадим еще новый контейнер, для этого следует нажать кнопку Создать CT в правом верхнем углу консоли управления. В качестве контейнеров могут быть только Linux-системы, на первом экране укажите имя контейнера и задайте пароль root или загрузите публичный SSH-ключ.
Затем укажите шаблон и следующими шагами сконфигурируйте виртуальное железо.
Доступных настроек у контейнеров гораздо меньше, зато они гораздо более экономно расходуют ресурсы.
Обратите внимание, что запущенный контейнер с Debian 10 потребляет всего лишь 55,46 МБ оперативной памяти.
Тем временем, пока мы создавали контейнер, должна была установиться наша виртуальная машина. После установки ВМ потребуется установить в нее QEMU-агента для полноценного взаимодействия с гипервизором. Для Linux систем все просто, на deb-based системах достаточно выполнить:
apt install qemu-guest-agent
Для других дистрибутивов следует установить пакет qemu-guest-agent штатным пакетным менеджером.
С Windows все несколько сложнее, прежде всего скачаем и поместим в хранилище Proxmox ISO-образ с virtIO драйверами. Получить его можно со страницы Fedora Project. Затем подключим скачанный образ к виртуальной машине.
При включенном QEMU-агенте мы увидим три неустановленных устройства.
Начнем с последнего, для Драйвера прерываний кнопок HID перейдем в выбор из списка уже установленных драйверов и укажем драйвер Универсальной шины.
Для двух оставшихся выполним поиск драйверов на смонтированном диске и устанавливаем драйвер VirtIO Serial Driver, который отвечает за работу QEMU-агента:
И VirtIO Balloon Driver, который отвечает за динамическое управление памятью. При работающем QEMU-агенте внизу окошка со сведениями о виртуальной машине вы увидите ее IP-адрес, в противном случае там будет сообщение, что QEMU-агент не установлен.
Также вы можете теперь включить для виртуальной машины динамическую память, для этого установите флаг Раздувание памяти и укажите минимальный размер оперативки, с которой начнет работу виртуалка:
Но придерживайтесь при этом разумных пределов, так вы можете столкнуться с невозможностью запустить современные версии Windows если укажете минимальный размер памяти менее 1 ГБ.
Еще одна важная функция, которая доступна в Proxmox VE — это резервное копирование. Существует хорошая практика — хранить резервные копии за пределами хоста. Поэтому подключим к Proxmox сетевое хранилище, для этого перейдем в Датацентр — Хранилище. Выбор здесь достаточно богатый: iSCSI, NFS, CIFS и прочее.
В нашем случае мы подключим CIFS (SMB) хранилище.
Укажите имя хранилища, в нашем случае backup, его IP-адрес или FQDN-имя, доступные ресурсы будут просканированы автоматически и вам останется только выбрать их из списка, в поле Содержимое укажите Резервная копия , а также не забудьте указать максимальное количество резервных копий в хранилище.
Затем перейдем в раздел Резервная копия и создадим новый сценарий резервного копирования:
Особых сложностей там нет, выбираете нужные виртуальные машины или контейнеры и задаете расписание копирования. После чего вам только останется проверить, что резервные копии действительно создаются.
Как видим, Proxmox представляет собой вполне серьезный и самодостаточный продукт, способный стать основой вашей системы виртуализации, предоставляя возможности на уровне дорогих коммерческих гипервизоров.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Пошаговая установка Windows Server на гипервизор Proxmox с использованием VirtIO Drivers на примере Windows Server 2022
Подготовка к установке
Скачиваем Windows нужной версии, это может быть любой Windows от XP до Server 2022
Скачиваем ISO VirtIO Drivers — https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers#Using_the_ISO
Если не нашли — прямая ссылка https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
Подготовка к установке
Всегда выбирайте SCSI диск, он самый быстрый из всех. IDE упирается в 40Мб/сек, SATA в 600Мб/сек, а SCSI может выжать всю скорость дисковой системы сервера. Для Linux серверов всегда выбирается VirtIO Block, как полностью совместимый и самый быстрый.
Установка
D:vioscsi2k22amd64
На чтение 21 мин Просмотров 21.5к. Опубликовано 12.10.2019
Обновлено 04.02.2023
Приветствую вас дорогие читатели на второй части цикла статей про домашний сервер!
Список цикла статей:
- Домашний Сервер: Часть 1 – Предисловие, аппаратная и софтовая начинка
- Домашний Сервер: Часть 2 – Установка системы виртуализации Proxmox (вы тут)
- Домашний Сервер: Часть 3 – Внутренний DNS сервис на BIND9 или свои доменные имена в локальной сети
- Домашний Сервер: Часть 4 – Настройка Transmission daemon в контейнере LXC Proxmox-VE
- Домашний Сервер: Часть 5 – Установка и настройка Plex Media Server в контейнере LXC Proxmox-VE
В прошлой части я указал на используемый софт и центральным узлом всего домашнего сервера будет использование системы виртуализации Proxmox
Выбор в целом был очевиден т.к. она настраивается через WEB, у меня есть опыт работы с ней и было бы глупо выбирать что-то другое.
Логично задать вопрос: «А это бесплатное ПО?»
Да, это действительно бесплатное Open Source ПО, хотя есть корпоративная подписка.
Корпоративная подписка предоставляет доступ к закрытому репозиторию Proxmox VE Enterprise, который содержит более частые стабильные обновления ПО и обновления безопасности, а также техническую поддержку.
Если не использовать подписку никаких ограничений по функциональности не будет! И это по настоящему здорово!
Ну что, приступим к установке Proxmox Virtual Environment — далее PVE!
Установку я производил сначала на 2 SSD объемом по 256 Гб каждый. Другие 4 HDD я добавлял позже. Именно в таком ключе и предлагаю двигаться далее.
Содержание
- Подготовка Flash инсталлятора с образом системы
- Установка Proxmox VE на сервер
- Настройка Proxmox VE после установки
- Настраиваем репозиторий для обновлений
- Убираем всплывающее окно о подписке
- Настраиваем базовую отправку уведомлений на почту
- Подключение четырех дисков как ZFS массив RAID-5 (raidz1)
- Изменение размера ARC кэша
- Добавление L2ARC и ZIL(SLOG) с помощью отдельного NVME SSD накопителя
- Заключение
- UPD: 03.02.2023
- UPD: 10.11.2019
- UPD: 20.11.2019
Подготовка Flash инсталлятора с образом системы
Для скачивания образа системы необходимо перейти на официальный сайт www.proxmox.com и скачать необходимую версию. Особых отличий в заливке или установке не будет.
На момент написания статьи доступны версии 6 и 5.4
Берем какую либо флешку и пишем ISO образ на неё с помощью специальных программ. Их много (Rufus, balenaEtcher и др.).
Я предпочитаю balenaEtcher. Там все просто до безобразия. Запустили, выбрали образ, убедились, что выбрана нужная флешка и нажали запись. Подождали и вытащили флешку.
Есть Portable версия.
Подключаем флешку к серверу и продолжаем уже через монитор или IPMI/BMC интерфейс.
IPMI/BMC интерфейс для управления сервером по сети
Что такое IPMI?
Выдержка из Wikipedia:
IPMI (от англ. Intelligent Platform Management Interface) — интеллектуальный интерфейс управления платформой, предназначенный для автономного мониторинга и управления функциями, встроенными непосредственно в аппаратное и микропрограммное обеспечения серверных платформ. Ключевые характеристики IPMI — мониторинг, восстановление функций управления, журналирование и инвентаризация, которые доступны независимо от процессора, BIOS’a и операционной системы. Функции управления платформой могут быть доступны, даже если система находится в выключенном состоянии.
Что такое BMC?
Это «мозг» IPMI, отдельный микроконтроллер. BMC (Baseboard Management Controller). Через него как раз и происходит удаленное управление сервером. По сути, BMC ― это отдельный компьютер со своим программным обеспечением и сетевым интерфейсом, который распаивают на материнской плате или подключают как плату расширения по шине PCI management bus. В моем случае она уже есть на материнской плате.
На практике это выглядит так:
Для чего я это пишу тут?
А для того, чтобы вы понимали, как можно управлять сервером не подключая к нему никаких мониторов, клавиатур и мышей.
И в чем особенность серверных материнских плат. На обычных предназначенных для дома или игровых вы такого не увидите.
Установка Proxmox VE на сервер
Для демонстрации буду использовать версию 5.4-1, как более близкую к своей 5.3-11, хоть она и поновей, но существенных изменений там нет.
Все изображения спрятаны под спойлеры для вашего удобства!
После загрузки мы увидим такое окно…
Ожидаем окончания загрузки системы установки…
Соглашаемся с лицензионным соглашением…
Переходим к настройке места для установки…
Указываем страну, временную зону, а раскладку не трогаем…
Указываем пароль и наш email для оповещений…
Настраиваем сеть…
Тут хочется остановиться более подробно.
- Учтите сразу, у Proxmox сеть указывается вручную. Я несколько раз пробовал настраивать DHCP-Client для него, но почему-то он его не очень любит. Потому биндинг адреса в DHCP-Lease особого смысла не имеет, разве только, чтобы понимать какой девайс на нем сидит.
Hostname (FQDN): рекомендую задавать осмысленно с учетом того, какое доменное имя планируете использовать. Это необходимо для следующей статьи по DNS. Вы же планируете заходить по доменному имени, а не по IP адресу, правда? 🙂
Я задал свой pve1.gregory-gost.ru и по такому URL теперь захожу на WEB интерфейс Proxmox. Подумайте заранее! - Я указал в DNS IP контейнера в котором у меня работает DNS служба, но вам для начала необходимо указать свои стандартные DNS. Иначе PVE не будет иметь нормального выхода в интернет. Часто совпадает с Gateway.
Проверяем финальные данные…
Дожидаемся окончания процесса установки…
Проводим финальную перезагрузку…
И наконец, после непродолжительных процедур нам позволено войти в систему.
Как можно наблюдать нам вежливо сообщили о том, по какому адресу и порту работает WEB интерфейс PVE:
https://192.168.88.5:8006
Давайте зайдем и посмотрим, что там!
Обратите особое внимание на адрес по которому работает WEB интерфейс PVE!
Как можно не сразу заметить используется защищенный протокол https вместо http. Автоматического перенаправления в системе не предусмотрено! Будьте внимательны!
Настройка Proxmox VE после установки
После ввода в браузере нужного адреса перед нами предстает WEB интерфейс PVE
Логин для входа: root
Пароль тот, который вы указали при установке.
Далее я не буду производить обзор всей системы т.к. это еще не на одну статью. Знающие администраторы разберутся в ней без труда.
Система поддерживает Русский язык, который вы можете выбрать при входе.
Дополню только минимальными настройками для начала и покажу, как скачать шаблон для LXC контейнера. В следующей статье нам это пригодится.
Настраиваем репозиторий для обновлений
Перво наперво откроем консоль нашего сервера
Нас попросят ввести логин и пароль, вводим те же данные, которые вводили для входа в WEB.
Открываем Enterprise репозиторий…
nano /etc/apt/sources.list.d/pve-enterprise.list
и комментируем его (добавляем решетку в начало строки)
#deb https://enterprise.proxmox.com/debian/pve stretch pve-enterprise
Создаем отдельный лист для репозитория без подписки
touch /etc/apt/sources.list.d/pve-no-subscription.list
Открываем его
nano /etc/apt/sources.list.d/pve-no-subscription.list
И добавляем в него репозиторий
# proxmox no subscriptions repo
deb http://download.proxmox.com/debian/pve stretch pve-no-subscription
Если вы устанавливаете Proxmox другой версии, то версия базовой ОС Debian может отличаться от stretch. В этом случае вам необходимо указать аналогичный тому, что есть в pve-enterprise.list.
Также узнать имя дистрибутива можно командой:
cat /etc/*-release | grep VERSION_CODENAME
Ответ будет примерно такой:
VERSION_CODENAME=stretch
К примеру уже 6-я версия PVE – buster а не stretch
А 7-я версия PVE – bullseye
Для обновления списков подаем команду
apt update
Если вы хотите сразу проапгрейдить систему, то:
apt update && apt dist-upgrade -y
reboot
Убираем всплывающее окно о подписке
После входа вы могли заметить сообщение о подписке, которое со временем может надоесть.
В принципе его можно оставить если оно вам не мешает. А для тех кому мешает необходимо сделать следующее:
Сохраняем резервную копию файла:
cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak
Подаем команду:
sed -i "s/getNoSubKeyHtml:/getNoSubKeyHtml_:/" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
Команда заменяет нужную переменную getNoSubKeyHtml:
на ошибочную getNoSubKeyHtml_:
и окно более нам не мешает.
Все просто 🙂
Работает только для PVE версий выше 5.1
Для более старых необходим другой метод, который вы можете найти на просторах интернета.
Настраиваем базовую отправку уведомлений на почту
Безусловно мы хотим, чтобы сервер оповещал нас, если вдруг что-то происходит. Например, когда Бэкап виртуальной машины не выполнился.
За этот функционал в PVE отвечает сервис Postfix, его и будем настраивать.
Для примера я буду использовать придуманный почтовый адрес: ggost@yandex.ru. Вы конечно используете свой!
Будем отправлять сообщения от почтового ящика зарегистрированного на Yandex. Для Gmail отличий особых не будет.
Проверяем установлена ли библиотека libsasl2-modules
apt install libsasl2-modules
Делаем бекап основного файла конфигурации
cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
Вносим правки в файл. Я привел его к такому виду:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
myhostname = pve1.gregory-gost.ru
default_transport = smtp
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = $myhostname, localhost.$mydomain, localhost
relayhost = [smtp.yandex.ru]:587
mynetworks = 127.0.0.0/8
inet_interfaces = loopback-only
recipient_delimiter = +
header_checks = pcre:/etc/postfix/rewrite_subject
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relayhost.hash
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_auth.hash
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_generic_maps = hash:/etc/postfix/generic
Создаем хеш файл авторизации для доступа к почтовому ящику
echo [smtp.yandex.ru]:587 ggost@yandex.ru:yourpassword > /etc/postfix/sasl_auth.hash
Создаем хеш файл sender_relayhost
(он гарантирует, что мы всегда используем свой почтовый ящик в качестве отправителя)
echo ggost@yandex.ru [smtp.yandex.ru]:587 > /etc/postfix/sender_relayhost.hash
И скобки []
обязательны!
У Яндекса есть проблема, а именно для успешной отправки письма, Яндекс требует, чтобы адрес отправителя в письме совпадал с адресом для авторизации на сервере.
Если это не будет сделано, то мы получим ошибку во время отправки — Sender address rejected: not owned by auth user
Чтобы этого избежать мы добавили в конфиг файл /etc/postfix/main.cf пункт smtp_generic_maps = hash:/etc/postfix/generic
Происходит это потому, что отправка системных сообщений идет от локального пользователя root.
Имя отправителя в письме у меня такое — root@pve1.gregory-gost.ru
В данном случае pve1.gregory-gost.ru это локальное имя сервера. Мы его заменим на учетную запись Яндекса.
Откройте файл блокнотом
nano /etc/postfix/generic
Добавьте в файл generic одну строку:
root@pve1.gregory-gost.ru ggost@yandex.ru
Шифруем файлы с помощью postmap
postmap /etc/postfix/sender_relayhost.hash
postmap /etc/postfix/sasl_auth.hash
postmap /etc/postfix/generic
Устанавливаем уровень доступа 0600 на файлы sasl_auth
chmod 0600 /etc/postfix/sasl_auth.*
Дополнительно я ввел формирование специального заголовка для темы. За это отвечает параметр
header_checks = pcre:/etc/postfix/rewrite_subject
Давайте создадим этот файл:
nano /etc/postfix/rewrite_subject
Добавляем в него такую строку:
/^Subject: (.*)$/ REPLACE Subject: [PVE1]: $1
Это регулярное выражение, которое меняет заголовок письма, начинающийся с Subject. Оно добавляет в начало темы имя сервера с двоеточием — [PVE1]:
Вы можете добавлять свой вариант. А $1 это исходное содержание темы, которое будет без изменений оставлено далее, после добавки.
Но для того, чтобы это работало, просто создать файл и поправить конфиг мало. Необходимо доустановить специальную библиотеку postfix-pcre
Вы ведь помните, как выглядит строка с этой настройкой: pcre:/etc/postfix/rewrite_subject
Давайте поставим нужный сервис:
apt install postfix-pcre
Перезапускаем Postfix
service postfix restart
или
systemctl restart postfix.service
Пробуем отправить тестовое сообщение адресату:
echo "Test mail from proxmox" | mail -s test my-email@gmail.com
Проверяйте почту 😉
Проверка работы Postfix:
cat /var/log/mail.log | grep postfix
Подключение четырех дисков как ZFS массив RAID-5 (raidz1)
Не забудем и про дополнительные четыре диска, которые в моем случае будут использоваться для хранения медиа файлов (фильмы, сериалы и др.)
И да, я знаю про специфику работы с RAID-5 и что к нему есть много вопросов, я решил пойти именно таким путем, вы же можете использовать свои знания и выбрать то, что кажется вам наиболее правильным. Но у ZFS RAID-5 есть одно преимущество, он восстановит потерянные данные, хоть и не целиком. А т.к. у меня там медиа данные, их можно без особого труда скачать снова. Это выгодно отличает его от обычного RAID-5. В итоге я потеряю файл/часть файла, но не потеряю весь массив данных.
Для начала проверим, видны ли они в системе, в этом нам поможет команда lsblk:
root@pve1:~# lsblk
В ответ мы увидим, что-то такое…
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 236G 0 disk
├─sda1 8:1 0 1007K 0 part
├─sda2 8:2 0 512M 0 part
└─sda3 8:3 0 235.5G 0 part
sdb 8:16 0 236G 0 disk
├─sdb1 8:17 0 1007K 0 part
├─sdb2 8:18 0 512M 0 part
└─sdb3 8:19 0 235.5G 0 part
sdc 8:32 0 2.7T 0 disk
sdd 8:48 0 2.7T 0 disk
sde 8:64 0 2.7T 0 disk
sdf 8:80 0 2.7T 0 disk
Активные диски уже используются и на них можно наблюдать уже логические разделы, это два SSD диска: sda и sdb
А вот sdc, sdd, sde и sdf пока не задействованы, давайте это исправим!
Проверим созданный нами ранее RAID-1 из двух SSD
zpool list
Ответ
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
rpool 234G 8.07G 226G - 0% 0% 1.00x ONLINE -
Создадим RAID-5 из нужных нам дисков. Массив назовем rpoolz и пропишем полные пути к дискам (через /dev):
zpool create -f -o ashift=12 rpoolz raidz1 /dev/sdc /dev/sdd /dev/sde /dev/sdf
Не путайте с raidz2, это немного другое.
Проверяем более детально:
root@pve1:~# zpool list -v
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
rpool 234G 8.07G 226G - 0% 0% 1.00x ONLINE -
mirror 234G 8.07G 226G - 0% 0%
sda3 - - - - - -
sdb3 - - - - - -
rpoolz 10.9T 2.14T 8.73T - 0% 0% 1.00x ONLINE -
raidz1 10.9T 2.14T 8.73T - 0% 0%
sdc - - - - - -
sdd - - - - - -
sde - - - - - -
sdf - - - - - -
Папка массива в файловой системе доступна по пути, который мы прописали при создании: /rpoolz
В целом этого будет достаточно, но есть еще один момент, это вопрос «Как подключить данный массив как папку для хранения данных?»
Для начала необходимо отправиться в раздел Datacenter -> Storage
Например я добавил папку, куда сохраняю Backup архивы.
Тут нужно заполнить ID — это имя директории, Directory — это путь в файловой системе к нужной папке. Выбрать тип хранимых данных. При добавлении типа VZDump backup file появится дополнительная настройка, где нудно указать количество хранимых Backup архивов для каждой виртуальной машины. (Настройка архивации виртуальных машин выполняется отдельно!)
Подключение папки массива в контейнерах LXC будем рассматривать уже в отдельных статьях.
Изменение размера ARC кэша
Преимуществом и одновременно недостатком ZFS перед другими файловыми системами (хотя ZFS это не только файловая система) является её непомерное потребление оперативной памяти.
Этому способствует специальный функционал ZFS, а именно ARC(Adjustable Replacement Cache — кэш адаптивной замены) — это очень быстрый кэш, расположенный в оперативной памяти сервера (ОЗУ/DDR). Фактически все наиболее частые запросы и последние запросы на чтение, могут быть обслужены прямо из физической оперативной памяти. А как мы знаем оперативная память очень быстрая, не говоря уже про сравнение с обычными медленными HDD.
В большей степени в OpenZFS используется реализация запатентованного IBM adaptive replacement cache с некоторыми изменениями.
По умолчанию нашему серверу доступно 50% оперативной памяти хоста. Многовато вам не кажется? Особенно для домашнего использования, когда на компактных серверах всего-то от 8 до 16 Гб доступно. Ну или 32Гб.
У нас же будут еще контейнеры, виртуалки и бог его знает что еще, для чего оперативная память гораздо нужнее.
Соответственно мы можем уменьшить этот размер до приемлемого, от 4 до 6 Гб в моем случае.
Вы можете выбрать для себя свою психологическую планку, исходя из доступного вам, или оставить как есть, если вас устраивает, что ZFS для себя заберет (а она обязательно заберет) 50% оперативки.
Из рекомендаций Proxmox: 2Гб для хоста и далее по 1Гб на 1Тб данных хранилища (грабеж)
Если исходить из этих рекомендаций, у меня 4HDD по 3Тб, 2Гб на хост и 12Гб на хранилище, итого 14Гб из 16Гб доступных для ZFS. Что простите? Для контейнеров останется всего 2Гб … это шутка да?
Тем не менее я решил выделить до 6Гб для ZFS и оставить 10Гб для контейнеров и хоста.
Давайте установим лимиты. Делается это через конфигурирование.
nano /etc/modprobe.d/zfs.conf
options zfs zfs_arc_min=4294967296
options zfs zfs_arc_max=6442450944
Формула для расчёта: Кол-во гигабайт умноженное на 1024*1024*1024
6Гб = 6*1024*1024*1024 = 6442450944
Далее нам нужно обновить initramfs
update-initramfs -u -k all
Дожидаемся обновления и обязательно необходимо перезагрузить хост! Изменения применяться после перезагрузки. Сразу увидите уменьшенное потребление памяти.
Добавление L2ARC и ZIL(SLOG) с помощью отдельного NVME SSD накопителя
Итак. Размер потребляемой памяти для ZFS мы уменьшили, но при этом увеличили возможное кол-во обращений к медленным HDD для операций чтения. Но в действительности это еще не все прелести ZFS!
У ZFS есть еще одна возможность, от которой было бы глупо отказываться, особенно, когда у вас в материнской плате есть разъем для M.2 NVME накопителя.
Представляю вам L2ARC(Layer 2 Adaptive Replacement Cache) — он же кэш адаптивной замены второго уровня. По сути это тот же ARC только уже не в оперативной памяти, а на SSD. SSD конечно не такие быстрые как оперативная память, но гораздо быстрее обычных HDD.
1700 Мб/сек на чтение в NVME SSD против средних 200-250 Мб/сек для малообъемных HDD (до 6Тб)
Данный кэш сбрасывается при перезагрузке, как и кэш в оперативной памяти т.е. поведение ARC и L2ARC абсолютно идентичное.
Что касательно ZIL(ZFS Intent Log) — это механизм ведения журнала, в котором все данные для записи сохраняются, а затем сбрасываются как транзакционная запись. По функциям аналогичен журналу для журналируемых файловых систем, таких как ext3 или ext4. Обычно хранится на диске.
Т.к. данный функционал касается только записи, то лучше всего, чтобы это был SSD оптимизированный для записи, желательно SLC с алгоритмами выравнивания износа(wear-leveling algorithms). Также рекомендуют ставить ZIL в зеркало(RAID-1).
В моем случае нет еще одного M.2 разъема для подключения отдельного SSD и свободных SATA разъемов, поэтому попробуем использовать тот же SSD.
Взял для себя модель попроще, но от надежного производителя: Samsung PM991 128 ГБ M.2 MZALQ128HBHQ-000L2 (PCI-E 3.0, TLC 3D NAND)
L2ARC естественно буду применять для пула из обычных дисков т.к. системный пул и так на базе SSD, для него добавлять L2ARC не буду.
После установки нужно проверить определился ли диск. Все операции проводим естественно на хосте.
lsblk -a | grep nvme
nvme0n1 259:0 0 119.2G 0 disk
Нужно разделить SSD на разделы. Для этого будем использовать утилиту parted. Если не установлена, то ставим через APT.
ВАЖНО! Диск должен быть с GPT таблицей разделов. Перевести диск в этот формат возможно из интерфейса самого Proxmox -> Pve -> Disks
Выделим 4Гб для ZIL и все остальное под L2ARC (1Мб в начале оставил не размеченным)
parted /dev/nvme0n1 mkpart primary zfs 1 4G mkpart primary zfs 4G 100%
Проверяем
ls -l /dev/disk/by-id/ | grep nvme
lrwxrwxrwx 1 root root 13 Feb 3 21:12 nvme-SAMSUNG_MZALQ128HBHQ-000L2_S4UNNX0R196876 -> ../../nvme0n1
lrwxrwxrwx 1 root root 15 Feb 3 21:14 nvme-SAMSUNG_MZALQ128HBHQ-000L2_S4UNNX0R196876-part1 -> ../../nvme0n1p1
lrwxrwxrwx 1 root root 15 Feb 3 21:15 nvme-SAMSUNG_MZALQ128HBHQ-000L2_S4UNNX0R196876-part2 -> ../../nvme0n1p2
Некоторые материнские платы не будут последовательно представлять диски ядру Linux при перезагрузке. Таким образом, диск, идентифицированный как /dev/sda при одной загрузке, может быть /dev/sdb при следующей. Для основного пула, в котором хранятся ваши данные, это не проблема, поскольку ZFS может реконструировать VDEV на основе геометрии метаданных. Однако для ваших устройств L2ARC и SLOG таких метаданных не существует.
Добавляем ZIL к существующему пулу
zpool add <pool_name> log nvme-SAMSUNG_MZALQ128HBHQ-000L2_S4UNNX0R196876-part1
Добавляем L2ARC кэш к существующему пулу
zpool add <pool_name> cache nvme-SAMSUNG_MZALQ128HBHQ-000L2_S4UNNX0R196876-part2
Проверяем
zpool status -v
logs
nvme-SAMSUNG_MZALQ128HBHQ-000L2_S4UNNX0R196876-part1 ONLINE 0 0 0
cache
nvme-SAMSUNG_MZALQ128HBHQ-000L2_S4UNNX0R196876-part2 ONLINE 0 0 0
Через некоторое время можем проверить как используется ZIL и L2ARC в пуле
zpool iostat -v
logs - - - - - -
nvme-SAMSUNG_MZALQ128HBHQ-000L2_S4UNNX0R196876-part1 372K 3.50G 0 4 0 33.1K
cache - - - - - -
nvme-SAMSUNG_MZALQ128HBHQ-000L2_S4UNNX0R196876-part2 184M 115G 0 0 6 5.16K
Также вы можете задавать кэш и лог прямо при создании пула
zpool create -f -o ashift=12 <pool_name> raidz1 <device1> <device2> <device3> <device4> cache <cache_device> log <log_device>
Заключение
Ну вот мы и разобрались с базовой(и не только) установкой и подготовкой системы виртуализации Proxmox.
Как видно, ничего сложного в этом нет. Достаточно обычных знаний по работе с Linux системами. Для тех из вас, кто только начинает разбираться полагаю данный материал будет не плохим стартом!
Надеюсь данная статья оказалась для вас полезной. Возможно у кого-то уже используется данная система и вы не прочь поделиться с читателями своими мыслями, в этом случае прошу в комментарии 🙂
Ну а дальше… дальше будем ставить контейнеры и виртуалки с сервисами, продолжим с доменных имен в локальной сети с помощью DNS. Следите за обновлениями!
- DNS — доменные имена в локальной сети вместо IP адресов. Домашний Сервер: Часть 3 – Внутренний DNS сервис на BIND9 или свои доменные имена в локальной сети
- Torrent Transmission — качалка торрентов. Домашний Сервер: Часть 4 – Настройка Transmission daemon в контейнере LXC Proxmox-VE
- Plex Mediaserver — домашний медиа сервер. Домашний Сервер: Часть 5 – Установка и настройка Plex Media Server в контейнере LXC Proxmox-VE
- The Dude — мониторинг девайсов в домашней сети.
- Домашний IoT.
- IP телефония.
Делитесь в комментариях, чем пользуетесь вы для организации подобной системы. Готовый NAS, альтернативные системы виртуализации? В общем пишите 🙂
Благодарю за ваше время!
Всего хорошего на просторах Интернета 😉
UPD: 03.02.2023
В статью добавлена информация по:
- изменению размера ARC кэша
- использованию NVME SSD для L2ARC кэша и ZIL (логов записи)
UPD: 10.11.2019
Добавлен блок с подключением дополнительных дисков, как массива RAID-5
UPD: 20.11.2019
Добавлена заметка по редактированию источников обновления, для разных версий дистрибутивов. Спасибо Константину за подсказку в комментарии.
Выразить благодарность автору
Если Вам не безразлична судьба блога или Вы просто хотите отблагодарить Автора за его труд, смело переходите на страницу Поддержки, там описана вся информация, по тому, как это сделать. Заранее благодарен вам за данную инициативу!