Создание кластера Proxmox для домашней лаборатории
Пошаговое руководство по настройке кластера Proxmox VE для домашнего использования с виртуальными машинами и контейнерами
Требования
- Минимум 2 сервера с поддержкой виртуализации (Intel VT-x/AMD-V)
- 64-битный процессор с минимум 4 ядрами
- Минимум 16 ГБ RAM на каждый узел
- SSD диск для установки Proxmox (минимум 120 ГБ)
- Сетевой коммутатор с поддержкой Gigabit Ethernet
- USB-флешка для установочного образа (минимум 4 ГБ)
- Доступ в интернет для загрузки ISO-образов
Скачивание и подготовка установочного образа Proxmox VE
Скачайте последнюю версию Proxmox VE с официального сайта. Запишите образ на USB-флешку с помощью Rufus (Windows) или dd (Linux).
# Скачивание последней версии Proxmox VE
wget https://enterprise.proxmox.com/iso/proxmox-ve_8.2-1.iso
# Запись на USB-флешку (Linux)
sudo dd if=proxmox-ve_8.2-1.iso of=/dev/sdX bs=4M status=progress
syncУстановка Proxmox VE на первый узел
Загрузитесь с USB-флешки и следуйте мастеру установки. Выберите целевой диск, настройте сеть (статический IP), укажите пароль root и email для уведомлений.
# После установки обновите систему
apt update && apt upgrade -y
# Установка необходимых пакетов
apt install -y vim htop net-toolsНастройка сети и статического IP
Настройте сетевой интерфейс с статическим IP-адресом. Отредактируйте файл конфигурации сети.
# Редактирование сетевой конфигурации
nano /etc/network/interfaces
# Пример конфигурации:
auto eno1
iface eno1 inet static
address 192.168.1.10/24
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
# Перезапуск сети
systemctl restart networkingСоздание кластера Proxmox
На первом узле создайте кластер. Это позволит управлять несколькими серверами из единой консоли.
# Создание кластера на первом узле
pvecm create homelab-cluster
# Проверка статуса кластера
pvecm statusУстановка Proxmox VE на второй узел
Повторите установку Proxmox на втором сервере. Используйте другой IP-адрес в той же подсети.
# На втором узле используйте IP 192.168.1.11
# После установки обновите систему
apt update && apt upgrade -yПрисоединение второго узла к кластеру
На втором узле подключитесь к существующему кластеру, используя IP-адрес первого узла.
# Получение информации о кластере с первого узла
pvecm status
# Присоединение к кластеру со второго узла
pvecm add 192.168.1.10
# Введите пароль root первого узла при запросеНастройка хранилища (Storage)
Настройте локальное хранилище для виртуальных машин и контейнеров. Добавьте дополнительные диски при необходимости.
# Просмотр доступных дисков
lsblk
# Создание LVM тома (если используется отдельный диск)
pvcreate /dev/sdb
vgcreate vmdata /dev/sdb
lvcreate -l 100%FREE -n vmstorage vmdata
mkfs.ext4 /dev/vmdata/vmstorage
# Монтирование и добавление в fstab
mkdir -p /mnt/vmstorage
mount /dev/vmdata/vmstorage /mnt/vmstorage
echo '/dev/vmdata/vmstorage /mnt/vmstorage ext4 defaults 0 0' >> /etc/fstabНастройка резервного копирования (Backup)
Настройте регулярное резервное копирование виртуальных машин и контейнеров на отдельный диск или NAS.
# Создание задачи резервного копирования через веб-интерфейс
# Datacenter -> Backup -> Add
# Или через командную строку:
# Резервное копирование всех VM
vzdump --all --mode snapshot --compress zstd --storage local-backup
# Добавление в cron для автоматического выполнения
crontab -e
# Добавить строку: 0 2 * * * vzdump --all --mode snapshot --compress zstd --storage local-backupСоздание виртуальной машины для Jellyfin
Создайте виртуальную машину для медиа-сервера Jellyfin. Рекомендуется выделить минимум 4 ГБ RAM и 2 CPU.
# Скачивание образа Ubuntu Server
wget https://releases.ubuntu.com/22.04/ubuntu-22.04.3-live-server-amd64.iso -P /var/lib/vz/template/iso/
# Создание VM через командную строку
qm create 100 --name jellyfin --memory 4096 --cores 2 --net0 virtio,bridge=vmbr0
qm importdisk 100 /var/lib/vz/template/iso/ubuntu-22.04.3-live-server-amd64.iso local-lvm
qm set 100 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-100-disk-0
qm set 100 --ide2 local-lvm:cloudinit
qm set 100 --boot order=scsi0
qm set 100 --serial0 socket --vga serial0
qm set 100 --agent enabled=1Установка Docker на VM
Установите Docker на виртуальную машину для запуска контейнеров.
# Обновление системы
sudo apt update && sudo apt upgrade -y
# Установка зависимостей
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# Добавление GPG ключа Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Добавление репозитория Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Установка Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Добавление пользователя в группу docker
sudo usermod -aG docker $USER
newgrp dockerЗапуск Jellyfin в Docker
Запустите медиа-сервер Jellyfin в Docker контейнере.
# Создание директорий для данных
mkdir -p ~/jellyfin/config ~/jellyfin/cache
# Запуск Jellyfin
docker run -d \
--name jellyfin \
--restart unless-stopped \
-p 8096:8096 \
-v ~/jellyfin/config:/config \
-v ~/jellyfin/cache:/cache \
-v /path/to/media:/media \
jellyfin/jellyfin:latestУстановка и настройка Tailscale
Установите Tailscale для безопасного удалённого доступа к вашей домашней сети.
# Установка Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
# Запуск и авторизация
tailscale up
# Проверка статуса
tailscale status
# Включение в качестве exit node (опционально)
tailscale up --advertise-exit-nodeУстановка Ansible для автоматизации
Установите Ansible для управления конфигурацией серверов и автоматизации задач.
# Установка Ansible
sudo apt update
sudo apt install -y ansible
# Создание структуры проекта
mkdir -p ~/ansible/inventory ~/ansible/playbooks
# Создание inventory файла
cat > ~/ansible/inventory/hosts << EOF
[proxmox]
192.168.1.10
192.168.1.11
[services]
192.168.1.20
EOF
# Проверка подключения
ansible all -m ping -i ~/ansible/inventory/hostsСоздание LXC контейнера для Home Assistant
Создайте LXC контейнер для Home Assistant прямо на Proxmox (без виртуальной машины).
# Скачивание шаблона Ubuntu для LXC
pveam update
pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.zst
# Создание LXC контейнера
pct create 200 /var/lib/vz/template/cache/ubuntu-22.04-standard_22.04-1_amd64.tar.zst \
--hostname homeassistant \
--memory 2048 \
--cores 2 \
--net0 name=eth0,bridge=vmbr0,ip=192.168.1.21/24,gw=192.168.1.1 \
--storage local-lvm \
--rootfs local-lvm:20
# Запуск контейнера
pct start 200
# Вход в контейнер
pct enter 200Установка Home Assistant в LXC
Установите Home Assistant Supervised внутри LXC контейнера.
# Внутри LXC контейнера
apt update && apt upgrade -y
# Установка зависимостей
apt install -y jq curl udisks2 libglib2.0-bin network-manager dbus
# Установка Docker
curl -fsSL https://get.docker.com | sh
# Установка OS Agent
wget https://github.com/home-assistant/os-agent/releases/download/1.6.0/os-agent_1.6.0_linux_x86_64.deb
dpkg -i os-agent_1.6.0_linux_x86_64.deb
# Установка Home Assistant Supervised
wget https://github.com/home-assistant/supervised-installer/releases/download/1.6.0/homeassistant-supervised.deb
dpkg -i homeassistant-supervised.deb
# Выберите при установке: qemu-x86_64Настройка мониторинга кластера
Настройте мониторинг ресурсов кластера с помощью Prometheus и Grafana или встроенных инструментов Proxmox.
# Включение встроенного мониторинга Proxmox
# Через веб-интерфейс: Datacenter -> Metric Server -> Add
# Или установка через командную строку
apt install -y prometheus
# Настройка сбора метрик с Proxmox
cat > /etc/prometheus/prometheus.yml << EOF
scrape_configs:
- job_name: 'proxmox'
static_configs:
- targets:
- 192.168.1.10:9221
- 192.168.1.11:9221
metrics_path: /pve
EOF
systemctl restart prometheusКластер Proxmox VE для домашней лаборатории: пошаговое руководство
Создание отказоустойчивого кластера виртуализации — отличный способ познакомиться с корпоративными практиками администрирования без затрат на лицензии. В этой статье мы пошагово настроим кластер Proxmox VE из двух узлов, развёрнём на нём медиа-сервер Jellyfin, систему «умного дома» Home Assistant, а также подключим мониторинг и автоматизация. Руководство рассчитано на читателей, которые уже имеют базовые навыки работы с Linux и командной строкой.
Подготовка
Требования к железу
- Минимум 2 сервера с поддержкой виртуализации (Intel VT-x/AMD-V)
- 64-битный процессор с минимум 4 ядрами
- Минимум 16 ГБ RAM на каждый узел
- SSD диск для установки Proxmox (минимум 120 ГБ)
- Сетевой коммутатор с поддержкой Gigabit Ethernet
- USB-флешка для установочного образа (минимум 4 ГБ)
- Доступ в интернет для загрузки ISO-образов
Совет: подбор комплектующих для домашнего сервера — тема для отдельного разговора. Рекомендуем ознакомиться с нашим руководством по выбору железа для домашнего сервера.
Скачивание и подготовка установочного образа
Скачайте последнюю версию Proxmox VE с официального сайта. Запишите образ на USB-флешку с помощью Rufus (Windows) или dd (Linux).
# Скачивание последней версии Proxmox VE
wget https://enterprise.proxmox.com/iso/proxmox-ve_8.2-1.iso
# Запись на USB-флешку (Linux)
sudo dd if=proxmox-ve_8.2-1.iso of=/dev/sdX bs=4M status=progress
sync
Установка и настройка
Установка Proxmox VE на первый узел
Загрузитесь с USB-флешки и следуйте мастеру установки. Выберите целевой диск, настройте сеть (статический IP), укажите пароль root и email для уведомлений.
# После установки обновите систему
apt update && apt upgrade -y
# Установка необходимых пакетов
apt install -y vim htop net-tools
Настройка сети и статического IP
Настройте сетевой интерфейс с статическим IP-адресом. Отредактируйте файл конфигурации сети.
# Редактирование сетевой конфигурации
nano /etc/network/interfaces
# Пример конфигурации:
auto eno1
iface eno1 inet static
address 192.168.1.10/24
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
# Перезапуск сети
systemctl restart networking
Если вы планируете использовать VLAN и сложную сетевую топологию, заглядите в нашу статью о настройке сети и VLAN на Proxmox.
Создание кластера Proxmox
На первом узле создайте кластер. Это позволит управлять несколькими серверами из единой консоли.
# Создание кластера на первом узле
pvecm create homelab-cluster
# Проверка статуса кластера
pvecm status
Установка Proxmox VE на второй узел
Повторите установку Proxmox на втором сервере. Используйте другой IP-адрес в той же подсети.
# На втором узле используйте IP 192.168.1.11
# После установки обновите систему
apt update && apt upgrade -y
Присоединение второго узла к кластеру
На втором узле подключитесь к существующему кластеру, используя IP-адрес первого узла.
# Получение информации о кластере с первого узла
pvecm status
# Присоединение к кластеру со второго узла
pvecm add 192.168.1.10
# Введите пароль root первого узла при запросе
Хранилище и резервное копирование
Настройка хранилища (Storage)
Настройте локальное хранилище для виртуальных машин и контейнеров. Добавьте дополнительные диски при необходимости.
# Просмотр доступных дисков
lsblk
# Создание LVM тома (если используется отдельный диск)
pvcreate /dev/sdb
vgcreate vmdata /dev/sdb
lvcreate -l 100%FREE -n vmstorage vmdata
mkfs.ext4 /dev/vmdata/vmstorage
# Монтирование и добавление в fstab
mkdir -p /mnt/vmstorage
mount /dev/vmdata/vmstorage /mnt/vmstorage
echo '/dev/vmdata/vmstorage /mnt/vmstorage ext4 defaults 0 0' >> /etc/fstab
Настройка резервного копирования (Backup)
Настройте регулярное резервное копирование виртуальных машин и контейнеров на отдельный диск или NAS.
# Создание задачи резервного копирования через веб-интерфейс
# Datacenter -> Backup -> Add
# Или через командную строку:
# Резервное копирование всех VM
vzdump --all --mode snapshot --compress zstd --storage local-backup
# Добавление в cron для автоматического выполнения
crontab -e
# Добавить строку: 0 2 * * * vzdump --all --mode snapshot --compress zstd --storage local-backup
Подробнее о стратегиях резервного копирования для домашней инфраструктуры — в нашей статье бэкап домашнего сервера: подходы и инструменты.
Сервисы
Создание виртуальной машины для Jellyfin
Создайте виртуальную машину для медиа-сервера Jellyfin. Рекомендуется выделить минимум 4 ГБ RAM и 2 CPU.
# Скачивание образа Ubuntu Server
wget https://releases.ubuntu.com/22.04/ubuntu-22.04.3-live-server-amd64.iso -P /var/lib/vz/template/iso/
# Создание VM через командную строку
qm create 100 --name jellyfin --memory 4096 --cores 2 --net0 virtio,bridge=vmbr0
qm importdisk 100 /var/lib/vz/template/iso/ubuntu-22.04.3-live-server-amd64.iso local-lvm
qm set 100 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-100-disk-0
qm set 100 --ide2 local-lvm:cloudinit
qm set 100 --boot order=scsi0
qm set 100 --serial0 socket --vga serial0
qm set 100 --agent enabled=1
Установка Docker на VM
Установите Docker на виртуальную машину для запуска контейнеров.
# Обновление системы
sudo apt update && sudo apt upgrade -y
# Установка зависимостей
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# Добавление GPG ключа Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Добавление репозитория Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Установка Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Добавление пользователя в группу docker
sudo usermod -aG docker $USER
newgrp docker
Только начинаете работать с контейнерами? Начните с нашего введения в Docker и контейнеризацию для домашних серверов.
Запуск Jellyfin в Docker
Запустите медиа-сервер Jellyfin в Docker-контейнере.
# Создайте папки для хранения данных Jellyfin
mkdir -p ~/jellyfin/config ~/jellyfin/cache
# Запуск Jellyfin
docker run -d \
--name jellyfin \
--restart unless-stopped \
-p 8096:8096 \
-v ~/jellyfin/config:/config \
-v ~/jellyfin/cache:/cache \
-v /path/to/media:/media \
jellyfin/jellyfin:latest
Создание LXC-контейнера для Home Assistant
Создайте LXC-контейнер для Home Assistant прямо на Proxmox (без виртуальной машины).
# Скачивание шаблона Ubuntu для LXC
pveam update
pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.zst
# Создание LXC-контейнера
pct create 200 /var/lib/vz/template/cache/ubuntu-22.04-standard_22.04-1_amd64.tar.zst \
--hostname homeassistant \
--memory 2048 \
--cores 2 \
--net0 name=eth0,bridge=vmbr0,ip=192.168.1.21/24,gw=192.168.1.1 \
--storage local-lvm \
--rootfs local-lvm:20
# Запуск контейнера
pct start 200
# Вход в контейнер
pct enter 200
Установка Home Assistant в LXC-контейнер
Установите Home Assistant Supervised внутри LXC-контейнера.
# Внутри LXC-контейнера
apt update && apt upgrade -y
# Установка зависимостей
apt install -y jq curl udisks2 libglib2.0-bin network-manager dbus
# Установка Docker
curl -fsSL https://get.docker.com | sh
# Установка OS Agent
wget https://github.com/home-assistant/os-agent/releases/download/1.6.0/os-agent_1.6.0_linux_x86_64.deb
dpkg -i os-agent_1.6.0_linux_x86_64.deb
# Установка Home Assistant Supervised
wget https://github.com/home-assistant/supervised-installer/releases/download/1.6.0/homeassistant-supervised.deb
dpkg -i homeassistant-supervised.deb
# При появлении запроса выберите профиль qemu-x86_64
Вспомогательные инструменты
Настройка удалённого доступа через Tailscale
Установите Tailscale для доступа к домашним сервисам извне без необходимости пробрасывать порты.
# Установка Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
# Запуск и авторизация
tailscale up
# Проверка статуса
tailscale status
Установка Ansible для автоматизации
Установите Ansible для управления конфигурацией серверов и автоматизации задач.
# Установка Ansible
sudo apt update
sudo apt install -y ansible
# Создание структуры проекта
mkdir -p ~/ansible/inventory ~/ansible/playbooks
# Создание inventory-файла
cat > ~/ansible/inventory/hosts << EOF
[proxmox]
192.168.1.10
192.168.1.11
[services]
192.168.1.20
EOF
# Проверка подключения
ansible all -m ping -i ~/ansible/inventory/hosts
Настройка мониторинга кластера
Настройте мониторинг ресурсов кластера с помощью Prometheus и Grafana.
# Включение встроенного мониторинга Proxmox
# Через веб-интерфейс: Datacenter -> Metric Server -> Add
# Или установка через командную строку
apt install -y prometheus
# Настройка сбора метрик с Proxmox
cat > /etc/prometheus/prometheus.yml << EOF
scrape_configs:
- job_name: 'proxmox'
static_configs:
- targets:
- 192.168.1.10:9221
- 192.168.1.11:9221
metrics_path: /pve
EOF
systemctl restart prometheus
# Установка Grafana
apt install -y software-properties-common
wget -q -O - https://packages.grafana.com/gpg.key | apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | tee /etc/apt/sources.list.d/grafana.list
apt update
apt install -y grafana
systemctl enable --now grafana-server
Подробную настройку дашбордов Grafana для Proxmox мы разбираем в отдельной статье — мониторинг домашнего сервера с Prometheus и Grafana.
Заключение
Мы прошли полный цикл развёртывания домашней лаборатории: от установки Proxmox VE на два узла до запуска медиа-сервера и системы автоматизации. Кластер обеспечивает отказоустойчивость — при выходе из строя одного узла виртуальные машины можно мигрировать на второй. Docker внутри VM даёт изоляцию сервисов, а LXC-контейнеры позволяют запускать дополнительные службы с минимальными накладными расходами.
Следующие шаги для углубления: настройка репликации хранилища между узлами, развёртывание Kubernetes-поверх Proxmox и автоматизация деплоя через Terraform и Ansible.