Введение
В обзоре своего homelab я упомянул, что вся моя домашняя лаба держится на трёх машинах, и две из них — гипервизоры Proxmox. Одна маленькая на мини-ПК, другая — полноценный сервер с дисками и большим объемом памяти. Логичный вопрос: зачем два? Не проще ли купить один мощный компьютер и поселить на нём всё сразу?
Проще. Я так и начинал. В этой статье — почему я от этого ушёл, как разделил обязанности между машинами и с чего стоит начать вам, если второй компьютер покупать пока не хочется.
Проблема: один компьютер, одна кнопка
Представьте, что роутер, который раздаёт интернет всей квартире, и медиатека с фильмами живут на одном компьютере. Пока всё работает, это удобно: одна коробка, одна розетка, одно место для администрирования.
А теперь вечер воскресенья. На сервер пришло обновление ядра, и его нужно перезагрузить. Вместе с ним перезагружается роутер. У кого-то из домашних обрывается видеозвонок, на телевизоре останавливается фильм, умная колонка замолкает, телефоны переключаются на мобильный интернет.
Или хуже: новый сервис, с которым вы экспериментируете, съедает всю оперативную память, и сервер начинает тормозить. Тормозит всё — включая роутер. Следовательно и весь интернет в доме тормозит.
Суть проблемы простая: сеть — это то, что должно работать всегда, а сервисы — то, с чем я постоянно что-то делаю. Пока они живут на одном железе, любая возня с сервисами угрожает работе сети.
Как это решается
Удобная аналогия — квартира. Есть водопровод и электропроводка: их проложили один раз, и трогать их лишний раз никто не хочет. И есть бытовая техника: её меняют, переставляют, ремонтируют, покупают новую. Никому не придёт в голову отключать воду в стояке, чтобы поменять стиральную машину.
В homelab то же самое:
- Сетевая часть — роутер, контроллер коммутатора, VPN для подключения к дому снаружи. Меняется редко, должна работать всегда. Ей почти не нужны ресурсы: роутеру для домашней сети хватает пары ядер и нескольких гигабайт памяти.
- Прикладная часть — фотоархив, медиатека, менеджер паролей, видеонаблюдение и всё остальное. Меняется постоянно, требует много памяти, дисков и процессора. Перезагружать её не страшно — интернет при этом остаётся.
Отсюда решение: развести эти части по разным компьютерам. Маленький, тихий и экономичный — под сеть. Большой, с дисками — под сервисы. Тогда перезагрузка большого сервера для семьи выглядит как «на пару минут пропали фильмы», а не «пропал весь интернет».
Как сделано у меня
Обе машины работают под Proxmox VE — гипервизором, который превращает один компьютер в несколько независимых. Подробно про неё будет следующая статья, а пока достаточно знать: на каждом компьютере живут отдельные виртуальные машины и контейнеры, и каждый из них ведёт себя как самостоятельный сервер.
PVE-Mini: сетевая машина
Мини-ПК на процессоре Intel N150. Корпус размером с бутерброд, один SSD на 500 ГБ. Главное в нём — два сетевых порта Intel I226-V. Именно ради них он и выбран: один порт смотрит в интернет, второй — в домашнюю сеть.
На нём живут четыре гостя:
| ID | Что это | Тип | Память | Зачем |
|---|---|---|---|---|
| 101 | OPNsense | VM | 6 ГБ | Роутер и файрвол всего дома, DHCP, DNS, NTP |
| 102 | Omada | LXC | 4 ГБ | Контроллер управляемого коммутатора |
| 103 | AmneziaWG | LXC | 512 МБ | VPN для подключения к дому снаружи |
| 104 | Xray | VM | 1 ГБ | Прокси для гео-обхода |
Всё, что касается движения трафика, собрано здесь. На этой машине нет ни одного пользовательского сервиса, и я захожу на неё крайне редко.
Самое интересное — как подключены сетевые порты. Кабель провайдера заходит прямо в мини-ПК, в первый порт. Второй порт идёт в управляемый коммутатор и несёт сразу все VLAN домашней сети. Внутри Proxmox каждый порт превращён в виртуальный коммутатор — мост (bridge), к которому подключаются гости:
кабель провайдера ──► nic0 ──► vmbr0 ──► OPNsense (WAN)
коммутатор ◄──────── nic1 ──► vmbr1 ──► OPNsense (все внутренние сети)
├──► Omada
├──► AmneziaWG
└──► Xray
Так выглядит сетевая конфигурация хоста, файл /etc/network/interfaces:
auto lo
iface lo inet loopback
iface nic0 inet manual
iface nic1 inet manual
auto vmbr0
iface vmbr0 inet manual
bridge-ports nic0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
auto vmbr1
iface vmbr1 inet manual
bridge-ports nic1
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
auto vmbr1.10
iface vmbr1.10 inet static
address 192.168.10.11/24
gateway 192.168.10.1
Что здесь важно:
vmbr0— мост в сторону интернета. У него нет IP-адреса на самом хосте:inet manualозначает «мост есть, но Proxmox в нём не участвует». Интернет целиком принадлежит виртуальной машине с OPNsense. Сам гипервизор из интернета не виден вообще.vmbr1— мост в сторону домашней сети. По одному кабелю через него идут все VLAN сразу, каждый пакет помечен тегом с номером своего VLAN (стандарт 802.1Q). Подробно про VLAN и теги будет в блоке про сеть; пока достаточно знать, чтоbridge-vlan-aware yesразрешает мосту различать теги и подключать гостей к нужному VLAN.vmbr1.10— адрес самого Proxmox в VLAN 10 (MGMT). Это сеть управления, куда нельзя попасть ни из гостевого Wi-Fi, ни с телевизора.
PVE: основная машина
Вторая машина — полноценный сервер: 62 ГБ оперативной памяти, NVMe-диск под систему и гостей и несколько дисковых пулов под данные. На нём живёт около двадцати пяти гостей: reverse-proxy, менеджер паролей, мониторинг, медиасервер, фотоархив, видеонаблюдение, файловые шары, сервер документов, Home Assistant, общая база данных и так далее.
Сеть у него устроена проще: один мост на оба сетевых порта, и адрес хоста 192.168.10.12 в том же VLAN управления. Отдельного порта под интернет здесь нет и быть не должно — основной сервер ходит в интернет так же, как любое домашнее устройство, через роутер на PVE-Mini.
Про диски и то, как на них разложены данные, будет отдельная статья. Здесь важно другое: вся тяжёлая работа — транскодирование видео, распознавание лиц на фотографиях, запись с камер — происходит на этой машине и никак не задевает роутер.
Третья машина
Третья машина — бекап сервер. Каждую ночь он забирает копии всех гостей с обоих гипервизоров. Про него будет целый блок в конце серии.
Источник бесперебойного питания (ИБП)
Все три машины подключены к одному ИБП. Он подключён по USB к основному серверу, а мини-ПК и бекап сервер слушают его по сети. Если свет пропал надолго, каждая машина гасит своих гостей и только потом выключается сама.
Порядок запуска
Когда после отключения света всё включается обратно, важно, кто стартует первым. Сервисы, которые поднялись раньше роутера, не получат адрес и не найдут друг друга по именам.
Таким образом на PVE-Mini первым стартует OPNsense, и Proxmox выжидает 60 секунд, прежде чем запускать остальных.
Задаётся это одной командой на каждого гостя:
qm set 101 --onboot 1 --startup order=1,up=60,down=120
pct set 102 --onboot 1 --startup order=2
qmуправляет виртуальными машинами,pct— контейнерами.--onboot 1— запускать гостя при старте хоста.order— номер в очереди, при выключении очередь идёт в обратном порядке.up=60— сколько секунд ждать после запуска, прежде чем стартовать следующую очередь.down=120— сколько секунд дать гостю на корректное выключение.
Повтори у себя
Два компьютера с первого дня не нужны. Разделение — это не стартовая точка, а направление, в котором стоит двигаться. Я бы шёл так.
Шаг первый: один сервер, домашний роутер остаётся. Ставите Proxmox на любой компьютер, поднимаете на нём сервисы, а интернет по-прежнему раздаёт ваш обычный роутер — Keenetic, TP-Link или любой другой из магазина. Перезагрузка сервера не трогает сеть, потому что сеть — вообще не его забота. Это самый безопасный старт, и на нём можно жить годами. Большинство так и живет.
Шаг второй: захотелось своего роутера — берите под него отдельную коробку. Как только появляется желание заменить обычный роутер на что-то гибче — OPNsense или pfSense, чтобы разделить сеть на VLAN, поднять свой DNS и VPN, — не селите его на основной сервер. Подойдёт любой мини-ПК с двумя сетевыми портами. Смотрите на три вещи:
- два порта Ethernet — не USB-адаптер, а два полноценных разъёма;
- сетевые контроллеры Intel (I225, I226) — с ними у OPNsense и Proxmox меньше всего сюрпризов;
- низкое потребление и тихое охлаждение — эта коробка будет работать круглосуточно годами.
Минимальная сеть такого мини-ПК, пока без VLAN, выглядит так:
auto vmbr0
iface vmbr0 inet manual
bridge-ports nic0
bridge-stp off
bridge-fd 0
auto vmbr1
iface vmbr1 inet static
address 192.168.1.2/24
gateway 192.168.1.1
bridge-ports nic1
bridge-stp off
bridge-fd 0
Порт nic0 — к провайдеру, отдаёте его целиком виртуальной машине с роутером. Порт nic1 — в домашнюю сеть, на нём же адрес самого Proxmox. VLAN можно добавить позже, когда до них дойдёт дело.
Шаг третий: переносите на мини-ПК всё сетевое. VPN для подключения к дому, контроллер точек доступа, DNS-фильтр — всё, без чего не работает сеть, живёт рядом с роутером. Всё, без чего сеть работает, — на основном сервере.
Совет
Простой тест, куда поселить новый сервис: «Если этот сервис упадёт, у домашних пропадёт интернет?» Если да — на сетевую машину. Если нет — на основную.
Итоги
Разделение на две машины — это не про мощность, а про спокойствие. Сетевая машина маленькая и должна работать всегда. Основная — большая, на ней я экспериментирую, поднимаю сервисы, обновляю и перезагружаю, не думая о том, что у кого-то дома сейчас пропадёт интернет.
Начинать с двух машин не обязательно. Но если вы решите заменить обычный роутер на OPNsense или что-то подобное, не селите его рядом с прикладными сервисами, такие как, например, медиатека.
В следующей статье разберём сам Proxmox: как один компьютер превращается в десяток серверов, что такое мосты и как создать первую виртуальную машину.