Три года с Proxmox. Мои мысли и выводы

Введение

В декабре 2021 я установил Proxmox на свой старенький ПК как эксперимент. За прошедшие три года работы Proxmox’а в домашней сети я реализовал широкий спектр проектов, по созданию и работе различных сервисов в домашней инфраструктуре. Были успешно экспериментально развернуты кластеры Nomad и Kubernetes, внедрены Gitea и GitLab с полноценными системами CI/CD. Установлены и настроены файловые хранилища TrueNAS и OpenMediaVault, а также виртуальные машины с операционной системой Windows. Виртуализировал маршрутизаторы, строил и симулировал виртуальные сети. Экспериментировал со множеством дистрибутивов Linux, сборку собственного ядра и установку его на виртуальную машину. Трижды обновлял сервер на новое железо. Исследовал возможность создания удалённой рабочей станции, доступной исключительно через SSH, и настраивал домашние кинотеатры и медиа-системы. Многое узнал об аппаратных и программных особенностях разных поколений CPU. Хочу поделиться с вами уроками, которые я извлёк для себя за эти продуктивные 3 года работы с Proxmox в домашней инфраструктуре.

1. Акустический комфорт – это важно

Будьте готовы к тому, что шум от “домашней лаборатории” будет в любом случае. Вопрос только в том насколько он будет раздражающим. Полностью избавиться от шума вашего сервера (или серверов) практически невозможно, можно только минимизировать:

2. Это тоже продакшен!

Ваши домашние сервисы играют (или будут играть) важную роль в вашей повседневной жизни/работе. При падении DHCP или DNS-сервера вся домашняя сеть “разваливается, что приведет к дискомфорту и проблемам. Важно относиться к этим сервисам и системам серьезно, даже если это всего лишь домашний проект. Предусмотрите резервирующие системы на время проведения экспериментов или работ.

3. Homelab и self-hosted – это философия

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

4. DHCP на маршрутизаторе, DNS в виртуальной машине

Для небольших домашних сетей рекомендую использовать DHCP непосредственно на маршрутизаторе. DNS-сервер (например pihole) можно разместить в виртуальной машине. Такой подход позволяет быстро восстанавливать работоспособность сети в случае сбоев, особенно если DHCP уже настроен правильно.

5. Оставляйте хост Proxmox чистым

Все развертывания необходимо выполнять либо через виртуальные машины (VM), либо через контейнеры LXC (CT). Это помогает поддерживать порядок и избежать проблем с производительностью, конфигурацией, безопасностью, а в некоторых случаях и работоспособностью Proxmox хоста как такого.

6. NAS: виртуализация vs отдельное устройство

Создание NAS-сервера можно реализовать двумя способами: виртуализировав его на Proxmox или используя отдельное физическое устройство. У каждого подхода есть свои преимущества и недостатки. Я после экспериментов с различными конфигурациями пришел к выводу, что удобнее иметь отдельное устройство для NAS и Proxmox-хоста. Это может быть как собственная сборка TrueNAS, так и готовые решения по типу Synology, Asustore, QNAP и т.п.

7. Windows VM в Proxmox – это удобно

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

8. WireGuard – обязательный инструмент

Настройка VPN-узла на базе WireGuard внутри виртуальной машины позволит вам всегда иметь доступ к вашим домашним ресурсам безопасно и без лишних сложностей. Постоянная связь с домом – это незаменимая вещь!

9. Мониторинг не так критичен, как кажется

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

10. PiHole – отличный инструмент

Использование PiHole значительно улучшает качество вашего интернет-соединения. Он блокирует рекламу, ускоряет загрузку страниц и делает работу в интернете более комфортной. Кроме того, он упрощает управление внутренними сервисами благодаря локальному DNS. Во многом этот сервис и был для меня входной точкой в полноценную домашнюю инфраструктуру.

11. Свобода экспериментирования

Возможность легко создавать и уничтожать виртуальные машины и серверы без необходимости возиться с физическим оборудованием – это настоящее удобство. Экспериментируйте сколько угодно, не беспокоясь о необходимости переустанавливать OS, перекручивать HDD/SSD с одного компьютера на другой и т.д.

12. Больше оперативной памяти – лучше

Чем больше у вас оперативной памяти, тем больше у вас простора для экспериментов. Старайтесь ставить максимально возможной объем RAM для вашей платформы

13. Процессоры с поддержкой IOMMU

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

14. Локальный искусственный интеллект

Использование локальных решений для искусственного интеллекта дает множество преимуществ. Вы можете контролировать свои данные и не зависеть от сторонних облачных сервисов. Хоть и с некоторой потерей качества и скорости.

15. Ответственность за собственные данные

Самостоятельное хранение данных – это отличная практика. Вы контролируете безопасность и доступность информации, что снижает риски утечки или потери данных.

16. Бэкап по схеме 3-2-1

Следование принципу «3 копии, 2 типа носителей, 1 копия вне офиса» поможет вам спать спокойно и минимизировать последствия возможных сбоев. Регулярные бэкапы спасли меня не раз, и я настоятельно рекомендую следовать этой практике.

Итог

На текущий момент, я понимаю, что никогда больше не вернусь к развёртыванию “железных” серверов. Даже в ситуации, когда необходимо развернуть только один сервер Ubuntu я буду делать это только через Proxmox, благодаря удобству бэкапов, конфигурации и общему уровню отказоустойчивости.

Полезные ссылки