Недавно я искал небольшую маломощную машину, которую можно было бы использовать в качестве небольшого медиа-сервера. В настоящее время я нахожусь за границей, поэтому я искал легкую машину, которую я мог бы легко передвигать, но при этом был бы достаточно мощным, чтобы управлять домом и распространять медиа. Beelink были достаточно любезны, чтобы прислать мне одно из своих устройств для игры. Я также хотел сделать полный учебник по настройке домашнего сервера, так что это идеально совпало. В этом посте я расскажу о Beelink GK Mini, который они мне прислали, а затем мы настроим его в качестве домашнего сервера. К концу этого поста у вас будет небольшой эффективный маленький сервер, proxmox, home-assistant, docker и portainer. Давайте начнем.
В данной инструкции мы сначала соберем кластер Proxmox для управления всеми хостами виртуализации из единой консоли, а затем кластер — высокой доступности (HA или отказоустойчивой). В нашем понимании мы будем работать с 3 серверами — pve1, pve2 и pve3.
.
Подготовка узлов для настройки кластера
Работа с кластером
Создание
Присоединение нод
настройка отказоустойчивости
Подготовка
настройка общего хранилища
настройка отказоустойчивости
Проверка
Ручное медленное движение машины между часами
настройка репликации
ЗФС
настройка репликации
Удаление нод
Удаление кластера
Используемые термины: Proxmox VE, Linux.
В данной инструкции мы пошагово разберемся установки Proxmox VE, базовую ситуацию и создание машины. Proxmox, основанный на Debian — поэтому запускаем будем на данном дистрибутиве Linux. В данной инструкции работа ведется по Proxmox версии 6.
Системные требования
Установка Proxmox
Из готового образа
Установка на Debian
Проверка установки
Базовая настройка
Как загрузить ISO-образ
Создание сетей
Мост
NAT
Сеть между виртуалками
Создание естественной машины
настройка машины
Базовые настройки
Добавление диска
Добавлен сетевой адаптер
Установка гостевого агента
Удаление естественной машины
Тюнинг Proxmox
Предупреждения об отсутствии подписки
Правильный сертификат
Создание нового пользователя
Ubuntu и CentOS
Решение возможных проблем
Дополнительная информация
- Начальная настройка
- Загрузка образов
- Создание сети для виртуальных машин
- Мост
- NAT
- Сеть между виртуалками
- Настройка виртуальной машины
- Полезные настройки
- Добавление дискового накопителя
- Добавление сетевого адаптера
- Установка гостевого агента
- Installing Docker
- Installing Portainer
- Summary
- Ubuntu и CentOS
- DIY HOME SERVER — PROXMOX Configuration
- Подготовка нод кластера
- Удаление ноды из кластера
- Удаление кластера
- Creating a Container
- Системные требования
- Удаление виртуальной машины
- Установка готового образа ISO
- Установка на Debian
- Проверка установки
- Тюнинг сервера PVE
- Отключение предупреждения об отсутствии подписки
- Сертификаты
- А) Установка сертификата с помощью графического интерфейса
- Б) Установка сертификата из командной строки
- Возможные ошибки
- Falling back to a fallback locale
- Гостевая служба помечена как masked
- DIY HOME SERVER — PROXMOX Installation
- Установка Home-Assistant
- Настройка кластера
- Создание кластера
- Присоединение ноды к кластеру
- Beelink GK Mini
- Репликация виртуальных машин
- Настройка ZFS
- Настройка репликации
- Ручное перемещение виртуальной машины
- DIY HOME SERVER — PROXMOX PCIe Pass-through
- DIY HOME SERVER — PROXMOX Prepare upgrades
- DIY HOME SERVER — PROXMOX Log in
- Создание виртуальной машины
- DIY HOME SERVER — PROXMOX Boot problem
- Создание нового пользователя
- Отказоустойчивый кластер
- Добавление хранилища
- Настройка отказоустойчивости
- Настраиваем отказоустойчивость для виртуальной машины
- Проверка отказоустойчивости
Начальная настройка
Чтобы начать Proxmox и создать первую виртуальную машину, внести небольшой вклад и подготовим гипервизор к работе.
Загрузка образов
Кликаем по Датацентру — и в Европе по хранению:
* мы создаем отдельное хранилище для образа ISO. Для этого переходим в раздел Датацентр — Хранилище — Создать — Каталог.
Переходим в раздел Содержимое и кликаем по Загрузить:
В открывшемся окне выбираем ISO-образ системы, который будем ощущаться в качестве гостя и кликаем по Загрузить. Ждем окончания срока ожидания файла на сервере.
Создание сети для виртуальных машин
Мы рассмотрели примеры создания 2-х режимов сети — Bridge и NAT.
Независимо от успешной установки Proxmox, необходимо подключиться к хосту по SSH и установить пакет ifupdown2 командой:
* ifupdown2 — утилита для конфигурации глобальной конференции (по сути, аналоги ifupdown, написанная на языке Python).
Мост
Сеть, работающая в стандартном режиме позволяет комфортно управлять локальной сетью, как будто это отдельно стоящее устройство. Данный режим лучше всего подходит для серверов, стоящих в ожидании сети компании.
Работать с режимом Bridge нужно очень осторожно. Любое неправильное действие и удаленный доступ к серверу будет потерян. Если проводится работа на удаленном сервере, рекомендуется сначала потренироваться на какой-нибудь машине.
Также стоит отметить, что при установке PVE из установочного ISO-образа один мост уже будет создан.
Для создания бриджа в панели управления кликаем по нашему серверу Proxmox — переходим в раздел Система — Сеть — обратите внимание, чтобы в системе не было bridge-интерфейсов:
Открываем настройки сетевого интерфейса, через который будет работать наш мост и удаляем шлюз:
* если мы не сделаем этого, то при настройке Bridge мы получим ошибку Parameter verification failed. (400). gateway: Default gateway already exists on interface ‘ens160’.
Нажимаем Создать и выбираем Linux Bridge:
В открывшемся окне заполняем поля IPv4/CIDR, Шлюз (IPv4), Порты сетевого моста:
Кликаем по Apply Configuration, чтобы применить сетевые настройки:
NAT
Сам интерфейс мы делаем из панели управления. Но чтобы виртуальные машины могли выходить в Интернет через сеть NAT, необходимо на самом хосте включить редирект и маскарадинг.
Создание нового bridge-интерфеса
Итак, кликаем по нашему серверу Proxmox — переходим в раздел Система — Сеть — нажимаем Создать и выбираем Linux Bridge:
Нажимаем Создать. Применяем настройки:
Настройка ядра и брандмауэра
Подключаемся к серверу по SSH. Открываем на редактирование файл настройки ядра:
После применяем настройки:
sysctl -p /etc/sysctl.d/99-sysctl.conf
Добавляем правило в брандмауэр:
iptables -t nat -I POSTROUTING -s ‘192.168.122.0/24’ -o vmbr0 -j MASQUERADE
* в данном примере мы создали правило для маскарадинга всех пакетов из подсети 192.168.122.0/24 и для исходящего интерфейса vmbr0. Обратите внимание, что если у нас будет другая подсеть и исходящий интерфейс для сети Интернет, то нужно будет задать другие значения.
Ставим утилиту для сохранения правил iptables:
Наш NAT настроен.
Сеть между виртуалками
Данная сеть — частный случай NAT без выхода в Интернет. Мы должны создать бридж с отдельной подсетью без шлюза. При добавлении виртуальным машинам данного сетевого адаптера мы сможем настроить их взаимодействие по внутренней сети.
Создаем бридж, как делали это ранее:
Создаем интерфейс. Готово — при создании или редактировании виртуалок, мы можем указывать с качестве интерфейса созданный бридж (в данном примере, vmbr2) для изоляции их в отдельную подсеть 192.168.150.0/24.
Настройка виртуальной машины
После создания виртуальной машины нам может понадобиться ее изменить. Рассмотрим процесс настройки на примере изменения некоторых параметром, а также добавления диска и сетевого адаптера.
Полезные настройки
Для начала, переходим к виртуальной машине — Параметры:
На мой взгляд, чаще всего могут понадобиться следующие настройки:
Для изменения параметра, просто кликаем по нему дважды, меняем значение и нажимаем OK.
Добавление дискового накопителя
Переходим в подраздел Оборудование — кликаем по Добавить и выбираем Жесткий диск:
В открывшемся окне задаем размер диска и нажимаем OK.
Для увеличения размера имеющегося диска устанавливаем на него курсов и кликаем по Изменить размер диска:
В открывшемся окне задаем объем, на который нужно увеличить дисковое пространство.
Добавление сетевого адаптера
Переходим в подраздел Оборудование — кликаем по Добавить и выбираем Сетевое устройство:
Как при создании ВМ, выбираем тип сетевого адаптера (бридж или нат) и нажимаем Добавить.
Установка гостевого агента
Обязательная процедура для повышения производительности и возможностей работы с виртуальной машиной. Настройка выполняется как на гипервизоре, так и в самой виртуальной машине. Рассмотрим пример установки агента на базе системы Linux.
В гипервизоре переходим в Параметры, находим пункт QEMU Guest Agent и кликаем по нему:
Ставим галочку Use QEMU Guest Agent и нажимаем OK:
Для применения настройки нужно выключить и включить виртуальную машину.
Теперь подключаемся к виртуальной машине и устанавливаем утилиту. В зависимости от типа Linux команды будут отличаться.
yum install qemu-guest-agent
Для запуска сервиса выполняем:
systemctl enable qemu-guest-agent —now
Подробнее процесс описан на странице https://pve.proxmox.com/wiki/Qemu-guest-agent.
Installing Docker
apt-get install
apt-transport-https
ca-certificates
curl
gnupg
lsb-release
apt-get install docker-ce docker-ce-cli containerd.io
This should have added and installed docker to your container. To check it’s running, paste in the final command:
systemctl status docker
If all is well, you should be met with a screenshot similar to the below (to return to the command line, hit ctrl + c):
Installing Portainer
docker volume create portainer_data
This creates a place where we can place our data. Next we need to pull down the Portainer image from the cloud and install it.
docker run -d -p 8000:8000 -p 9000:9000 –name=portainer –restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
Portainer Installed on Proxmox
you can then reserve that container’s ip address in your router’s settings. I prefer to do it this way so the router (in my case my pfsense setup) has full oversight on what IP address is given to what machine, container, vm etc. If you’d prefer to manually specify the IP address in the container, then you can just click on the network tab and double click the DHCP option we set earlier and amend as needed.
I immediately made a snapshot of the container with just Portainer and Docker installed to use as a base should something go wrong with the installation in the future. This was as simple as selecting Snapshots in the Container menu and pressing Take Snapshot!
Taking a Container Snapshot
So to summarise, you can now create LXC containers, download templates, create docker containers and manage them via Portainer. Let’s have a look at Home-Assistant.
Summary
Current Server Utilisation
As you can see plenty of overhead on the Celeron there. I plan to add a 1TB ssd to it in the coming weeks and to build up a complete docker stack allowing me to distribute media around the home and whilst out and about. I will be adding Tailscale to the server to allow me to access it when away, without the need to use any portforwards.
A huge thank you to Beelink for providing me with the unit itself. They have a range of AMD and Intel products that would cover most of your needs. Check out the full range here.
If you’re considering a renovation and looking at the structured wiring side of things, or maybe you just want to support the blog, have a look below at my smarthome book, it’s available in all the usual places (including paperback)!
The Smarthome Book
Ubuntu и CentOS
Возможно, кому-то захочется установить Proxmox именно на Ubuntu или CentOS. К сожалению, разработчики остановились на Debian. Возможно, есть неофициальные обходные пути установки Proxmox на другие дистрибутивы Linux, однако такой путь не является приемлемым для продуктивной среды. Для настройка виртуализации на Ubuntu и CentOS предлагаю инструкции:
1. Установка и настройка KVM на CentOS 7
2. Настройка KVM на Ubuntu Server
DIY HOME SERVER — PROXMOX Configuration
a. Enabling applying network configuration without reboot
Log in to Proxmox and browse to your PVE. Then select Shell.
Enther the command :
apt install ifupdown2 -y
b. Activating network interfaces
In case your motherboard has multiple NICs, not all network interfaces will be activated by default. The primary network interface, the one specified during installation, will of course be activated. All other NICs will stay deactivated in case the do’nt recieve an IP address during boot time.
c. Configuring E-mail alerts using GMail
d. Configuring E-mail alerts using another e-mail provider
Install the required packages :
apt update && apt install -y libsasl2-modules
Configure a relay account :
Create a hash from the sasl_passwd file :
Secure your sasl_passwd files :
chown root:root /etc/postfix/sasl_passwd*
chmod 0600 /etc/postfix/sasl_passwd*
Configure postfix to use the relay account :
Delete the line :
Add the lines :
Restart the postfix service :
systemctl restart postfix
Test your new configuration :
Подготовка нод кластера
Серверы должны иметь возможность обращения друг к другу по их серверным именам. В продуктивной среде лучше всего для этого создать соответствующие записи в DNS. В тестовой можно отредактировать файлы hosts. В Proxmox это можно сделать в консоли управления — устанавливаем курсор на сервере — переходим в Система — Hosts — добавляем все серверы, которые будут включены в состав кластера:
* в данном примере у нас в hosts занесены наши два сервера Proxmox, из которых мы будем собирать кластер.
Удаление ноды из кластера
Удаление узла из рабочего кластера выполняется из командной строки. Список всех нод можно увидеть командой:
Мы увидим, примерно, следующее:
* где pve1, pve2, pve3 — узлы кластера; local указываем на ноду, с которой мы выполняем команду pvecm.
Для удаления узла, например, pve2 вводим:
pvecm delnode pve2
Ждем немного времени, пока не пройдет репликация. В консоли управления Proxmox удаленный сервер должен пропасть
Удаление кластера
Рассмотрим процесс удаления нод из кластера и самого кластера. Данные действия не могут быть выполнены из веб-консоли — все операции делаем в командной строке.
Подключаемся по SSH к одной из нод кластера. Смотрим все узлы, которые присоединены к нему:
Мы получим список нод — удалим все, кроме локальной, например:
pvecm delnode pve3
* в данном примере мы удалили ноды pve2 и pve3.
Необходимо подождать, минут 5, чтобы прошла репликация между нодами. После останавливаем следующие службы:
systemctl stop pvestatd pvedaemon pve-cluster corosync
Подключаемся к базе sqlite для кластера PVE:
Удаляем из таблицы tree все записи, поле name в которых равно corosync.conf:
Отключаемся от базы:
Удаляем файл блокировки:
rm -f /var/lib/pve-cluster/.pmxcfs.lockfile
Удаляем файлы, имеющие отношение к настройке кластера:
Запускаем ранее погашенные службы:
systemctl start pvestatd pvedaemon pve-cluster corosync
Creating a Container
This command essentially updates the list of templates that we can choose from when creating a container. We need a template to base our container on. Click on local storage on the left, then CT Templates on the right.
Navigating to the Template Area
You’ll see a button above saying templates. Click on that.
Selection of Templates
For our Template, we are going to use turnkey-core, which is basically a very lightweight version of Linux which should help keep the container quick and relatively light. Search for core and download it. It will be downloaded into your server’s template database. Remember, if you find you only have a few templates to choose from, make sure you carried out the pveam update command in the shell previously.
Searching for Turnkey Core
Now that we have our turnkey template downloaded, let’s move on.
Click on Create CT (container) on the top right.
You need to give your container an ID. Your node (server) should be pre-filled. Add credentials as necessary.
Select the template that we’d previously downloaded.
Choosing your template
For the next few tabs, I selected 100gb, 1 cpu, 2048gb memory.
For network I set it to DHCP, and for DNS I left it as standard (handled by the host).
My confirmation screen looked like this:
Create Container Confirm Screen
Hit finish and you’re almost done. Next we need to click on the container options tab and double click on features. We need to make sure “Nesting” and “keyctl” are enabled.
Switching on Nesting and Keyctl
Depending on the number of updates needed, it might be a good idea to reboot the container before we proceed with installing docker.
Системные требования
Требования разделены на минимальные и рекомендованные:
Поддержка виртуализации 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:
Удаление виртуальной машины
Для удаления виртуальной машины, сначала ее отключаем — это можно сделать из операционной системы или из панели управления, нажав на стрелку вниз рядом с Выключить — Остановка:
После кликаем по Дополнительно — Удалить:
В открывшемся окне мы должны подтвердить свои намерения удалить виртуальную машину, вписав ее идентификатор:
* если мы поставим галочку Purge, то виртуальная машина будет удалена полностью вместе с виртуальным диском.
Кликаем по Удалить — готово.
Есть два варианта установки 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. Прописываем сетевые настройки:
9. В окне «Summary» проверяем введенные данные и кликаем по Install. Начнется процесс установки, который займет не более 10 минут.
10. После установки мы должны увидеть «Installation Successful» — перезагружаем сервер, кликнув по кнопке Reboot.
После переходим к проверке установки.
Установка на Debian
Если мы решили установить Proxmox на уже установленный Debian, выполняем следующую инструкцию.
При установке среды виртуализации меняется ядро Linux. Это может привести к потери работоспособности уже установленных сервисов. Таким образом, установку Proxmox следует выполнять на чистый сервер, а не тот, который уже используется для каких-либо задач.
192.168.1.55 proxmox.dmosk.local proxmox
2. Добавляем репозитории, которые будем устанавливать для установки Proxmox PE и дополнительных компонентов:
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
Обновляем список пакетов:
3. Устанавливаем Proxmox PE и компоненты:
* где proxmox-ve — собственно, сам гипервизор; open-iscsi — iSCSI-клиент для подключения iSCSI-target-ов.
4. Перезагружаем сервер:
Проверка установки
Должно открыться окно управления.
Тюнинг сервера PVE
Внесем несколько изменений, которые сделают работу с Proxmox VE удобнее.
Отключение предупреждения об отсутствии подписки
Каждый раз при заходе в панель управления мы будем видеть такое предупреждение:
Оно говорит нам о том, что мы используем бесплатную версию программного продукта. Чтобы сообщение нас не беспокоило, выполним 2 действия:
И так, в SSH открываем на редактирование репозиторий proxmox:
Приводим его к виду:
#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 и создать новый — кому как будет удобнее.
Добавляем gpg-ключ для репозитория:
apt-key adv —keyserver keyserver.ubuntu.com —recv-keys 0D9A1950E2EF0603
После обновим список пакетов:
Закрываем окно браузера с Proxmox, если оно было открыто и запускаем его снова. Входим в систему — сообщение не должно появиться.
Сертификаты
Сервер PVE устанавливается с самоподписанным сертификатом. Это означает, что при подключении к панели управления мы будем видеть предупреждение от системы безопасности. Чтобы браузер принимал сертификат, он должен соответствовать следующим требованиям:
И так, сам сертификат можно купить, запросить бесплатно у Let’s Encrypt или создать с использованием локального центра сертификации, например, по данной инструкции. После у нас есть, как минимум, два способа загрузить его.
А) Установка сертификата с помощью графического интерфейса
Получив сертификат, открываем панель управления PVE и переходим к серверу — Система — Сертификаты — кликаем по Загрузить пользовательский сертификат:
В открывшемся окне заполняем поля для закрытого и открытого ключей:
Б) Установка сертификата из командной строки
Сначала создадим их копию:
mkdir -p /backup/proxmox/ssl
Предположим, что мы получили сертификаты с помощью Let’s Encrypt и они находятся по пути /etc/letsencrypt/live/pve.dmosk.ru. Тогда копируем нужны ключи:
cp /etc/letsencrypt/live/pve.dmosk.ru/fullchain.pem /etc/pve/nodes/pve/pve-ssl.pem
cp /etc/letsencrypt/live/pve.dmosk.ru/privkey.pem /etc/pve/nodes/pve/pve-ssl.key
Возможно, вы подумаете, что для сертификатов Let’s Encrypt лучше создавать симлинки, вместо копирования файлов. Однако, для каталога /etc/pve создается FUSE файловая система, которая не поддерживает симлинки.
systemctl restart pvestatd pvedaemon pve-cluster corosync
Возможные ошибки
Рассмотрим некоторые ошибки, с которыми столкнулся я.
Falling back to a fallback locale
Ошибка появляется при установке гостевой утилиты на компьютер с Linux, а также выполнении некоторых других команд.
Причина: это связано с настройками локали в вашей системе. Скорее всего, среди вариантов языковых настроек не перечислен en_US. UTF-8.
Решение: исходя из причины, нам нужно правильно настроить локаль. Это можно сделать в интерактивном режиме командой:
После выбираем нужные локали, например: en_US. UTF-8 и ru_RU. UTF-8.
Также можно просто отредактировать файл:
Настраиваем формат времени и определяем язык интерфейса:
Гостевая служба помечена как masked
Мы можем заметить, что служба qemu-guest-agent не запускается со статусом masked:
qemu-guest-agent.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)
Причина: в некоторых операционных системах (я столкнулся в Astra Linux) по умолчанию сервис qemu-guest-agent маскируется.
Решение: маскировку можно снять простой командой:
systemctl unmask qemu-guest-agent
После перечитываем конфигурацию daemon-reload:
Можно разрешить запуск сервиса и стартовать его:
systemctl enable qemu-guest-agent —now
DIY HOME SERVER — PROXMOX Installation
I choose to install Proxmox in ZFS Raid 1 mirror on the 2 Crucial MX500 500 GB SATA SSD drives connected directly to the SUPERMICRO X10SRi-F motherboard. I did not want to occupy the whole drives but only use a 64 GB partition. Остальные SSD-накопители будут использоваться для запуска виртуальных машин.
Я загрузил последний установщик ISO и записал его на USB-накопитель с помощью Etcher.
Загрузив сервер с USB-накопителя, вы увидите экран приветствия. Выберите первый вариант.
На следующем экране выберите zfs (Raid 1). Затем нажмите «Отменить выбор всех» и выберите «Жесткий диск 0» и «Жесткий диск 1» для обоих внутренних установленных твердотельных накопителей.
Нажмите «Дополнительные параметры».
Установите сжатие на lz4. Затем уменьшите hdsize примерно до 80% от размера SSD. Таким образом, вы включаете избыточное выделение ресурсов. В моем случае я использую 400 ГБ из доступных 500 ГБ.
Нажмите «ОК», а затем «Далее».
Выберите страну, часовой пояс и раскладку клавиатуры.
Затем нажмите Далее.
Введите надежный пароль и подтвердите его.
Нажмите Далее.
Выберите NIC, который будет использоваться Proxmox VE, установите имя хоста и дайте вашей системе фиксированный IP-адрес в пределах диапазона IP-адресов вашей локальной сети.
Проверьте настройки на сводном экране.
Либо вернитесь и исправьте некоторые настройки, либо нажмите «Установить», чтобы продолжить.
Proxmox VE будет установлен на оба SSD.
Обратите внимание на указанный URL. Это URL-адрес, который вы будете использовать для удаленного управления вашей новой установкой Proxmox VE.
Извлеките USB-накопитель во время перезагрузки.
Когда все пойдет хорошо, система перезагрузится и запустит Proxmox VE. Если нет, см. раздел Проблема с загрузкой PROXMOX ниже.
Следующие инструкции также доступны всем пользователям комментариев:
1.Настройка кластера Proxmox VE.
2. Преобразование физического диска Proxmox в диск VMware.
3. Включение вложенной виртуализации в Proxmox.
Установка Home-Assistant
Существует много способов установить Home-Assistant. Некоторые из наиболее популярных включают в себя запуск его в Docker в качестве контейнера, создание виртуальной машины и ее установку в качестве приложения, или вы также можете использовать Home-Assistant в качестве полноценной ОС (устройства) и запускать то, что известно как «контролируемый». Мы собираемся пойти с последним вариантом. Вам не нужно запускать под наблюдением, вы можете достичь большей части этого, используя отдельные контейнеры и установки, но для целей этого руководства мы собираемся использовать наиболее удобный для начинающих.
Поскольку сегодня мы работаем с Proxmox, нам нужно скачать и разархивировать образ .qcow2, найденный здесь:
Нам нужен .qcow2
Перейдите в Proxmox и нажмите кнопку «Создать виртуальную машину» в правом верхнем углу, вы уже должны быть знакомы с макетом, учитывая, что мы уже создали контейнер выше. Убедитесь, что у контейнера есть уникальный идентификатор, и дайте ему имя.
Создание виртуальной машины
Далее давайте пройдемся по остальным шагам:
Пока не выбирайте ОС
Сменить биос на OVMF
Укажите свой жесткий диск
Выберите свой процессор
Выбери свою память
Настройки сети
Подтверждение ВМ
Готово, но пока не начинайте. Нам нужно заменить диск .qcow2, который мы ранее загрузили. Используйте свой любимый SFTP-клиент, чтобы переместить разархивированный файл .qcow2 в корневой каталог proxmox. Учетные данные должны быть root/password, proxmox ip и порт 22.
Перенос файла в Root
qm importdisk 100 /root/hasos_ova-6.4.qcow2 local-lvm –format qcow2
Несколько вещей, о которых следует помнить. В приведенной выше команде вам может потребоваться изменить его в соответствии с вашими настройками. Моя виртуальная машина имеет идентификатор 100, следовательно, qm importdisk 100. Кроме того, на момент написания этой статьи ОС HA была 6.4. Если вы загружаете файл с Home-Assistant, и файл имеет версию 6.5 и т. д., вам необходимо соответствующим образом изменить приведенную выше команду.
Как только вы перешлете диск, вы можете удалить файл в корневом каталоге (я сделал это в filezilla). Теперь нам нужно изменить конфигурацию виртуальной машины, чтобы использовать этот диск вместо существующих. Отсоедините оригинальный жесткий диск с помощью кнопки выше.
После отключения вы увидите два неиспользуемых диска. Disk 0 which is the one that we have added already but not incorporated, and Disk 1 which is the disk we just detached but it’s still part of the machine. Click on Disk 1 and remove it using the button above. Once removed and erased, you’ll be left with Unused Disk 0. Click on it and press add.
Adding the HA disk to your VM
Now we need to amend the boot order to ensure the VM starts off it (remember to enable also).
Changing the Boot Order
Change your Boot Order
Also whilst you’re there in the Options panel, enable the QEMU Guest Agent. If you don’t enable it, Home-Assistant will still run perfectly well, but it will flag an error on boot, so for my own piece of mind, I enabled it to remove the error.
And that’s it. We’re done. Start the machine and wait a few minutes for Home-Assistant to load. If all’s gone well, once you log in, you should be greeted with this familiar screen. You can highlight the console icon on the VM at any time and you’ll be shown the IP address etc.
Home-Assistant: Blank Canvas
I immediately took a snapshot like before:
And there you have it. You have Supervised Home-Assistant running on Proxmox, with instant snapshots you can roll back to. You can use the add-ons in the VM, or you can choose to use containers in docker as you see fit. Candidates for either would be things like:
Настройка кластера
Построение кластерной системы выполняется в 2 этапа — сначала мы создаем кластер на любой из нод, затем присоединяем к данному кластеру остальные узлы.
Создание кластера
Переходим в панель управления Proxmox на любой их нод кластера. Устанавливаем курсов на Датацентр — кликаем по Кластер — Создать кластер:
Присоединение ноды к кластеру
На первой ноде, где создали кластер, в том же окне станет активна кнопка Данные присоединения — кликаем по ней:
В открывшемся окне копируем данные присоединения:
Теперь переходим в панель управления нодой, которую хотим присоединить к кластеру. Переходим в Датацентр — Кластер — кликаем по Присоединить к кластеру:
В поле «Данные» вставляем данные присоединения, которые мы скопировали с первой ноды — поля «Адрес сервера» и «Отпечаток заполняться автоматически». Заполняем пароль пользователя root первой ноды и кликаем Присоединение:
Присоединение также не должно занять много времени. Ждем несколько минут для завершения репликации всех настроек. Кластер готов к работе — при подключении к любой из нод мы будем подключаться к кластеру:
Готово. Данный кластер можно использовать для централизованного управления хостами Proxmox.
Посмотреть статус работы кластера можно командой в SSH:
Beelink GK Mini
Initial Packaging Impressions were good
Beelink sent me this unit directly and it seems to fit the bill. It came well wrapped in the post and the packaging felt high end, almost apple-esque if you will. My unit had 8GBs of Ram and a 256GB m.2 drive. It has two full size hdmi ports (Intel HD Graphics 600 GPU) and both will support h.265 and VP9 video playback up to 4K resolutions. The specs can be found below, and the product page is here.
Contents of the Box
When you first pick up the unit, it’s hard to describe how light it feels. It’s made from plastic, but it doesn’t feel cheap. I’ve taken a couple of shots of it alongside my 6th Generation Intel Nuc. Whilst they’re both small form factor, the beelink is smaller and significantly lighter.
Beelink GK Mini v Intel 6th Gen NUC
I did take a quick look under the hood so to speak. In the base of the unit you can add an SSD. I was pleasantly surprised to see a heatsink had been used on the m.2 sata drive.
Room for an SSD
I plugged the machine in and powered her up. The power button gave a satisfying click when pressed. Within a few moments I was met with the Windows 10 set up page. A couple of minutes of declining to be tracked and refusing to use Cortana and we were in business. The GK mini was up and running and connected to my WIfi. The machine came with Windows 10 Pro, although this wasn’t the OS I wanted to use with it. Я использовал быстрый скрипт для извлечения лицензионного ключа Windows (для добавления в мою коллекцию) из установки и выключения машины. Пришло время дать этому маленькому устройству новую ОС.
Я решил использовать Proxmox для этой сборки, так как я чувствовал, что Unraid не будет так хорошо работать на оборудовании и будет немного пустой тратой времени. Я хотел использовать гипервизор на «голом железе» и хотел простоту Docker и Portainer, а также возможность запускать виртуальную машину для Home-Assistant (под наблюдением). Чтобы установить Proxmox, нам нужно было загрузить ISO-образ и записать его на USB-накопитель.
Я скачал последнюю версию Proxmox отсюда. Я выбрал установщик Proxmox VE 7.0 ISO.
Затем пришло время загрузить Etcher, чтобы записать приведенный выше ISO на USB-накопитель. Я использовал Chocolatey для этого (это экономит мне много времени).
Установка Etcher с Choco
За несколько коротких мгновений мы закончили. Выберите свой ISO и целевой диск (убедитесь, что вы выбрали правильный диск!) И начните прошивку.
Прошивка USB-накопителя с помощью Proxmox
USB успешно прошит
Затем пришло время зайти в BIOS Beelink GK Mini, чтобы убедиться, что USB был первым вариантом в порядке загрузки. После ее включения я неоднократно нажимал DEL, пока не столкнулся с BIOS. Здесь нет пафоса и граций. Ничего особенного, как BIOS NUC, но я был удивлен огромным количеством доступных настроек. Вариант был абсолютно для всего. К счастью, виртуализация уже была включена. Однажды порядок загрузки был изменен. Я подключил флешку и перезагрузил машину.
Я решил установить Proxmox v7.
Я согласился с лицензионным соглашением, выбрал диск на 256 ГБ в качестве целевого жесткого диска и заполнил свои региональные данные (страна, время, клавиатура и т. д.). Введите свою электронную почту и настройте безопасный пароль (он будет использоваться для доступа к машине). Далее мне нужно было назвать машину. Благодаря dhcp были предварительно заполнены ip адрес, шлюз и DNS. Не забудьте зарезервировать этот IP-адрес на странице вашего маршрутизатора, чтобы он оставался постоянным. Если на вашем компьютере несколько сетевых портов, убедитесь, что вы выбрали правильный порт вверху. Для именования я просто оставил его как есть.
Настройка деталей машины
Следующее, что мы хотим сделать, это обновить его до последней версии. Я нашел самый простой и легкий способ сделать это с помощью команд оболочки.
Использование команд оболочки в Proxmox
Я скопировал и вставил существующий контент следующим образом:
Ctrl O и Ctrl X, когда закончите. Следующая команда:
Я изменил свой файл, чтобы он выглядел так (обратите внимание на # в начале).
Ctrl O и Ctrl X для сохранения и выхода.
Теперь ваша машина должна быть полностью обновлена. Вы по-прежнему будете видеть заявление об отказе от подписки, но можете его игнорировать.
Чтобы проверить, нажмите «Обновления» и нажмите на окно обновления.
Обновления успешно запущены
Когда закончите, закройте его. Вы должны увидеть, что в списке нет ничего для обновления. Если там что-то есть, просто нажмите «Обновить», и все будет хорошо.
На данный момент у вас есть полностью обновленная и работающая установка proxmox. Что еще мы можем с ним сделать?
Репликация виртуальных машин
Если у нас нет общего дискового хранилища, мы можем настроить репликацию виртуальных машин между нодами. В таких случаях мы рассматриваем, относительно, отказоустойчивую среду — в случае сбоя, у нас будет второй сервер, на котором есть аналоговый набор виртуальных машин.
Настройка ZFS
Репликация может выполняться только на томе ZFS. Подробная работа с данной файловой системой выходит за рамки данной инструкции, однако, мы разрабатываем основные команды, с помощью которых можно создать необходимый том.
Пул ZFS необходимо создать из командной строки, например:
zpool create -f zpool1 /dev/sdc
Теперь открываем панель управления Proxmox. Переходим в Датацентр — Хранилище — ZFS:
Задаем настройки для создания хранилища из созданного ранее пула ZFS:
* в данном примере мы создаем хранилище из пула zpool1; название для хранилище задаем zfs-pool, также ставим галочку Дисковое резервирование. Остальные настройки оставляем по умолчанию.
После этого мы должны либо перенести виртуальную машину на хранилище ZFS, либо создать в нем новую машину.
Настройка репликации
Переходим к хосту, где находится виртуальная машина, для которой мы хотим настроить клонирование (она должна также находится на хранилище ZFS) — Репликация:
Задаем настройки для репликации виртуальной машины:
* в данном примере мы указываем системе проверять и реплицировать изменения каждые 15 минут для виртуальной машины с идентификатором 100. Репликация должна проводиться на сервер pve2.
Нажимаем Создать — теперь ждем репликации по расписанию или форсируем событие, кликнув по Запустить сейчас:
Ручное перемещение виртуальной машины
Представим ситуацию, что у нас произошел сбой одного из узлов кластера, но при этом виртуальная машина не переехала на рабочую ноду. Например, если сервер был отправлен в перезагрузку, но не смог корректно загрузиться. В консоли управления нет возможности мигрировать виртуалку с неработающего сервера. Поэтому нам понадобиться командная строка.
И так, открываем SSH-консоль сервера, на любой работающем сервере Proxmox. Переходим в каталог qemu-server той ноды, которая не работает:
* мы предполагаем, что у нас вышел из строя сервер pve1.
Смотрим содержимое каталога:
Мы должны увидеть конфигурационные файлы запущенных виртуальных машин, например:
* в нашем примере у нас запущена только одна виртуальная машина с идентификатором 100.
mv 100.conf ././pve2/qemu-server/
* где pve2 — имя второй ноды, на которой мы запустим виртуальный сервер.
systemctl restart pvedaemon
systemctl restart pve-cluster
Сбрасываем состояние для HA:
ha-manager set vm:100 —state disabled
ha-manager set vm:100 —state started
* в данном примере мы сбросили состояние для виртуальной машины с идентификатором 100. Если это не сделать, то при запуске виртуалки ничего не будет происходить.
После виртуальную машину можно запустить:
qm start 100
DIY HOME SERVER — PROXMOX PCIe Pass-through
In the next episode, we’ll install TRUENAS CORE as a virtual machine and passthrough the PCie HBA controller to it.
DIY HOME SERVER — PROXMOX Prepare upgrades
Let’s prepare Proxmox VE for upgrading.
Open up a ssh session to the server, either from your computers terminal
or use Putty.
First we will remove the Enterprise Repository and replace it with the Community Repository.
cd /etc/apt/sources.list.d/
ls
rm pve-enterprise.list
cd .
Remove all content by pressing CTRL + K to delete each line.
Paste into the editor :
deb http://ftp.debian.org/debian buster main contrib
deb http://ftp.debian.org/debian buster-updates main contrib
# PVE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve buster pve-no-subscription
# security updates
deb http://security.debian.org buster/updates main contrib
Then press CTRL + O to save. Confirm. Then press CTRL + X to exit.
After that, we get use apt update the latest information and install it using apt dist-upgrade.
apt update && apt dist-upgrade -y
reboot
After reboot, Proxmox VE is up-to-date and future updates will be possible from the GUI.
DIY HOME SERVER — PROXMOX Log in
Open a browser and go to the URL mentioned during the installation process.
You’ll get a security warning. Accept it and continue.
You’ll see your datacenter welcome screen showing the installed Proxmox VE node.
Click on your Proxmox VE node to check its current status.
Создание виртуальной машины
Базовая настройка закончена — можно опробовать наш гипервизор в деле.
В правой верхней части панели управления кликаем по Создать VM:
В открывшемся окне снизу сразу ставим галочку Расширенный:
Задаем имя виртуальной машине и ставим галочку Запуск при загрузке (если хотим, чтобы виртуалка запускалась автоматически с сервером PVE):
* в данном примере мы задали имя FS. При желании, также можно изменить VM ID, но он проставляется автоматически и имеет правильное значение.
Выбираем загруженный нами ISO-образ, с которого будем ставить операционную систему, задаем тип гостевой операционной системы и ее версию:
* в данном примере мы будем устанавливать Linux Ubuntu. Среди списка операционных систем также доступны Microsoft Windows, Solaris и Other.
На вкладке Система можно оставить все значения по умолчанию:
* в некоторых случаях, необходимо выбрать другую видеокарту (при установке систем с GUI), а также особый вариант БИОС.
Задаем размер жесткого диска:
* 16 Гб для Ubuntu достаточно, однако, для наших задач расчет должен быть индивидуальным для каждой создаваемой виртуальной машины.
Мы можем задать количество процессоров и ядер:
* в данном примере мы создаем виртуалку с 2 процессорами, каждый из который с 2 ядрами, итого, 4. Для ненагруженных систем можно оставить значение по умолчанию.
* наша Ubuntu будет работать с 2 Гб оперативной памяти.
Выбираем созданный нами бридж — либо для получения прямого адреса из сети, либо для NAT:
* в данном примере, мы указали vmbr0 для подключения к сети напрямую.
Ставим галочку, чтобы виртуальная машина сразу запустилась после создания:
Мы должны увидеть загрузку с ISO-образа.
DIY HOME SERVER — PROXMOX Boot problem
After installing Proxmox VE on a ZFS (SSD) mirror, there may be a problem importing the ZFS Mirror Pool at boot time. It seems like the boot process is halted half way down the process.
In such cases you get into the busybox shell of initramfs by pressing the Enter key.
zpool import -N rpool
exit
The pool is now imported. The boot process continues until it reaches the login prompt.
This article shows how to fix the problem by inserting a short wait (SLEEP parameter).
Scroll down to the bottom and add :
# ZFS sleep parameters are set to 5 seconds
ZFS_INITRD_PRE_MOUNTROOT_SLEEP=’5′
ZFS_INITRD_POST_MODPROBE_SLEEP=’5′
The system will reboot and the problem should be solved.
Depending on the number of harddisks your system is using, it’s possible you’ll have to set de delay to a larger value (10, 20 or even 30 seconds).
Создание нового пользователя
При установке PVE создается пользователь root. Рассмотрим процесс добавления еще одного через командную строку.
Подключаемся по SSH или открываем консоль из панели управления. Создаем пользователя в системе:
После создаем нового пользователя в Proxmox:
Задаем роль для созданного пользователя, например, административную:
* весь список ролей можно посмотреть в панели администрирования в разделе Датацентр — Разрешения — Роли.
Отказоустойчивый кластер
Настроим автоматический перезапуск виртуальных машин на рабочих нодах, если выйдет из строя сервер.
Для настройки отказоустойчивости (High Availability или HA) нам нужно:
Подготовка кластера
Процесс добавления 3-о узла аналогичен процессу, описанному выше — на одной из нод, уже работающей в кластере, мы копируем данные присоединения; в панели управления третьего сервера переходим к настройке кластера и присоединяем узел.
Добавление хранилища
Подробное описание процесса настройки самого хранилища выходит за рамки данной инструкции. В данном примере мы разберем пример и использованием СХД, подключенное по iSCSI.
Если наша СХД настроена на проверку инициаторов, на каждой ноде смотрим командой:
* где iqn.1993-08.org.debian:01:4640b8a1c6f — IQN, который нужно добавить в настройках СХД.
После настройки СХД, в панели управления Proxmox переходим в Датацентр — Хранилище. Кликаем Добавить и выбираем тип (в нашем случае, iSCSI):
В открывшемся окне указываем настройки для подключения к хранилке:
* где ID — произвольный идентификатор для удобства; Portal — адрес, по которому iSCSI отдает диски; Target — идентификатор таргета, по которому СХД отдает нужный нам LUN.
Нажимаем добавить, немного ждем — на всех хостах кластера должно появиться хранилище с указанным идентификатором. Чтобы использовать его для хранения виртуальных машин, еще раз добавляем хранилище, только выбираем LVM:
Задаем настройки для тома LVM:
* где было настроено:
Нажимаем Добавить — мы должны увидеть новое устройство для хранения виртуальных машин.
Для продолжения настройки отказоустойчивого кластера создаем виртуальную машину на общем хранилище.
Настройка отказоустойчивости
Для начала, определяется с необходимостью групп. Они нужны в случае, если у нас в кластере много серверов, но мы хотим перемещать виртуальную машину между определенными нодами. Если нам нужны группы, переходим в Датацентр — HA — Группы. Кликаем по кнопке Создать:
Вносим настройки для группы и выбираем галочками участников группы:
Также мы можем задать приоритеты для серверов, если отдаем каким-то из них предпочтение.
Нажимаем OK — группа должна появиться в общем списке.
Настраиваем отказоустойчивость для виртуальной машины
Переходим в Датацентр — HA. Кликаем по кнопке Добавить:
В открывшемся окне выбираем виртуальную машину и группу:
Проверка отказоустойчивости
После выполнения всех действий, необходимо проверить, что наша отказоустойчивость работает. Для чистоты эксперимента, можно выключиться сервер, на котором создана виртуальная машина, добавленная в HA.
Важно учесть, что перезагрузка ноды не приведет к перемещению виртуальной машины. В данном случае кластер отправляет сигнал, что он скоро будет доступен, а ресурсы, добавленные в HA останутся на своих местах.
Для выключения ноды можно ввести команду:
Виртуальная машина должна переместиться в течение 1 — 2 минут.