Домашняя лаба @KRom

Поздавляю самохостеров с ДР проекта и выкладываю описание свой лабы, фотки постараюсь чуть позже накидать еще

Железо

Роутер: Mikrotik RB4011iGS+5HacQ2HnD-IN
Коммутаторы:

  • SKS8310-8X
  • SKS3200-8E2X
  • SKS3200-8E1X-P
  • SKS3200-4E2X
  • SKS3200-5E2X

WiFi:

  • Mikrotik RB4011iGS+5HacQ2HnD-IN
  • MikroTik cAP ac
  • Mikrotik hAP ac

Мини ПК:

  • SOYO M2 Air - N4000, 6GB RAM, 64GB EMMC + 256 SSD
  • SZBOX S1 MINI PC N150, 16GB RAM, 512NVME
  • ZBOX Ryzen 7 - AMD Ryzen 7 5825U, 64GB RAM, 2TB NVME, Coral TPU
  • GMKTec G3 Plus - N150, 32GB RAM, 512 SSD
  • GMKTec G3 - N100, 16GB RAM, 512 SSD, Coral TPU
  • BMAX B2 - N4000, 8GB RAM, 256 SATA
  • BMAX B2 - N3060, 4GB RAM

SBC:

  • NanoPi Fire 3
  • NanoPi M4V2
  • Orange Pi Zero 3 4GB

Накопители:

  • HDD 3,4TB x4
  • HDD 6TB x2
  • HDD 1TB x1
  • SSD 256, 512 - россыпь

ИБП:

  • WalleCube W150
  • IPPON Smart 1000

Корпус для дисков:

По частям

Сеть

  • Ядро сети состовляют Mikrotik Роутер + SKS8310-8X, между ними DAC 10Г (как и у всего SKS8310-8X)
  • Перед роутером 2 коммутатора SKS3200-4E2X для агрегации и коммутации (см. ниже зачем)
  • Имеется подключение к 2м провайдерам, они подключаются к вводному коммутатору в щитке на ЛП, он же обмазан грозозащитой
  • Для резервирования роутера имеется возможность завернуть провайдерский трафик и всю сеть на софтовый роутер на одном из мини ПК (пока до конца не настроил, но это Mikrotik CHR в виртуалке)
  • Почему так много коммутаторов?
    • Изначально было микротика 2, но один на 24 порта, сейчас он готовится уйти на авито, вместо него россыпь китайских
    • Коммутаторы имеют разное назначение и расположение, например, POE для точек доступа и прочего оборудования, серверные, для ТВ и т.д.
    • Есть шкаф, сверху роутер, снизу оборудование, раньше был жгут кабелей и думал завести патч-панель, но для каждого нового устройства тянуть кабель стало напряжно, поэтому, кинул 10G DAC кабель и прикрутил коммутатор внизу, рядом с оборудованием
    • Мелкие коммутаторы стоят дешево, много вариантов, питание 12В и малый ток, большие найти сложнее (я так понимаю, что в том числе связано с наличием дешевых реалтековских чипов) и они значительно дороже + имеют питание 220В, а мне это не сильно подходит
  • По программной части сети
    • VLAN для сегментирования сети
    • MTU 9000 для сети с NAS и между PVE нодами
    • VRRP для отказоустойчивых адресов
    • КВН для доступа извне
    • Port Knocking для некоторых вещей из интернета
  • DNS: Technitium DNS + Mikrotik DNS faillover
  • WiFi: Mikrotik CapsMAN и 4 точки доступа

Железная часть

  • Оборудование распихано по полкам и шкафам
  • NAS пока что в формате корпуса, в котором стоит Мини ПК с адаптером

Питание

  • Частично переведено все на 24/12 и POE питание
  • Все заведено на 2 ИБП, но хочу сделать прям нормально
    • ИБП на рабочее место
    • 24В питание и ИБП для основной лабы, точек доступа, оборудования, распиханого по квартире (у меня в штукатурке сотни метров проводов слаботочки)
    • 12В ИБП для критически важного оборудования
    • Инвертор на освещение (не совсем хоумлаба, но все равно)

Программная часть

Пытался строить с учетом уровней критичности

Кластер Proxmox VE 9
В кластер еще добавлено Qdevice


В нем развернуто все, и NAS и бэкапы, сейчас даже панель управления умным домом внутри PVE
Программная схема сети такая

NAS

  • TrueNAS Community В виртуалке PVE
  • 7 HDD Дисков
  • 4 SSD диска
  • Полезный объем 15ТБ, в процессе расширения до 17ТБ
  • NFS, iSCSI, NVMEoF для серверов и рабочей станции
  • SMB для остальных клиентов
  • Syncthing для P2P синхронизации
  • Частично зеркалируется в облако

Бекапы

  • Proxmox Backup Server для контейнеров и виртуалок, а также в качестве некого подобия TimeMachine для компа и остальных железок
  • TrueNAS для HomeAssistant
  • TrueNAS шара для скидывания всякого мусора
  • Надо освободить диск и организовать холодное бэкапирование, но об этом ниже

Программные компоненты

  • SSO: Authentik
  • Управление приложениями: Komodo
  • Reverse Proxy: Traefik
  • Управление TLS сертификатами: тут
  • Ansible и Terrform: Semaphore UI
  • Git: Forgejo
  • Фотографии: Immich
  • Мониторинг и логи: Victoria Logs, Victoria Metrics, Grafana
  • Облачные файлы: Cloudreve Pro
  • Мониторинг доступности: Uptime Kuma
  • Умный Дом: Home Assistant, с него же управление и дашборды всем, начинал делать HMI
  • Автоматизации: Node-RED
  • Инвентаризация сети: NetBox
  • Безопасность: CrowdSec
  • Обмен файлами: Qbittorrent
  • Аудиокниги: Audiobookshelf
  • Видео и Музыка: JellyFin
  • Карточки заметок: Anchor
  • Закладки: karakeep
  • Видеонаблючение: Frigate
  • Почта: stalwart (полноценная электронная почта для сервисов и не только)
  • Заметки: Obsidian (плагины) синхронизация через Obsidian Live Sync , публикация заметок в интернете Obsidian Share Note
  • Работа с документами: Paperless-ngx
  • Менеджер паролей: VaultWarden
  • Таск трекер: Vikunja
  • PXE Boot: Пробовал https://bootimus.com/, но так и не довел до конца

Для чего использую

  1. Замена облачных сервисов в для чебурнета (для судного дня есть прямое подключение к MeshCore сети)
  2. Что-то по работе для не особо критичных вещей
  3. Лабинг, петпроетинг, откработка навыков

Планы на будущее

  1. Освободить HDD и на основе слабого миника сделать холодное хранилище на основе PBS (PBS + ZFS snapshots)
  2. Поставить в системник MiniTX материнку и сделать PVE ноду для NAS на нем
  3. А потом выкинуть слабые миники из кластера
  4. Добавить локальный ИИ узел
  5. Добавить 24В ИБП на 105Ач и полностью перевести всю инфрастуртуру на него
  6. Добавить одноплатник к роутеру на OpenWRT сами знаете для чего
  7. Выкинуть Mikrotik Wifi и перейти на Omada
  8. Развернуть сервис для
    1. Библиотеки электронных книг
    2. Музыки, сейчас есть Music Assistant и JellyFin, может что-то специализированное
    3. Уведомлений т.к. уведомления в ТГ работают плохо

А как планируете организовать уведомления?

Я долго размышлял над проблемой оповещения об инцидентах и пришел к выводу, что это должна быть чуть ли не самая надежная часть всей хоумлабы, т.к. если она отвалится, то ни об одной проблеме внутри я не узнаю. Поэтому уведомления должны быть прям отдельным сервисом и висеть где-то на отдельном VPS в публичном сегменте и развернута с учетом повышенной отказоустойчивости: может, многонодовость и вот это вот все.

В итоге отказался от идеи развертывать такое самостоятельно и заюзал ntfy.sh, для целей получения уведомлений прекрасно работает.

Тоже в плане надежности не пришел к какому-то финальному виду, пару раз уже терял важные оповещения в связи с недоступностью ТГ, сейчас у меня

  1. Запасные уведомления через почту работают и местами стали основными
  2. Есть ntfy и gotify, думаю настроить оба варианта
  3. Местами стоит рядом с сервисами apprise для уведомлений в ТГ, думаю через него завернуть в ntfy и gotify. Т.е. цепочка будет сервис → apprise → шлюз Но тут надо уже следить за apprise в качестве точки отказа
  4. В качестве прям совсем альтернативного, но работающего сценария сделал уведомления через мешкор – работает совсем без интернета
  5. Ну и фикшу ТГ, но это уже не так надежно.

Объёмная лаба, интересно устроено.

На китайских свичах - потому что бюджетно?

Слабые узлы проксмокса - как они нагрузку держат, в CPU упираются или в что-то другое? А если ОЗУ докинуть?

Настраивал ли HA у проксмокса для автоматической миграции VM/контейнеров?

Хотелось 2.5/10 G сеть, у меня был микротик 1Г, по цене которого взял 3 китайских свитча.
В целом, данная тема была достаточно хорошо проработана в теме управляемые свитчи для наших лаб

  • Фирменные коммутаторы за дешево это лютый БУ с EOL и с низкой производительностью, а я хотел минимум 2.5Г
  • Фирменные современные и быстрые управляемые коммутаторы очень дорогие - тот же CRS310-8G+2S+IN на озоне сейчас от 15к, средний ценник в районе 25к, SKS3200-8E2X 6к, а если что-то более объемное, то ценник что там, что там улетает просто в космос - прямая замена мне бы от микротов подошла CRS326-4C+20G+2Q+RM за 100к, но это без POE
  • Неуправляемое прям не хочется, есть всякие Tenda, Dlink, но нет, спасибо

Поэтому, попробовал китай и в целом в формате дешево и сердито мне зашло, не скажу, что все устраивает, но за эти деньги с этой производительностью сети собрать вообще не вариант.

Я не прикладывал распределение по узлам, но есть 3 группы узлов

  • Мощная группа из 1 узла (через годик может сделаю 2) - вычислительные задачи, там 64 Гб оперативки хватает - тут крутятся основные, но не критичные для инфраструктуры сервисы и то, что потребляет много ресурсов, нагрузка не постоянная

  • N100/150 - я бы сказал, что базовый минимум лабы, тут я рассматривал разделение обязанностей и минимизацию влияния сервисов друг на друга

    • Умный дом, Authentik, Uptime Kuma - отдельный миник на отдельном ИБП, минимум периферии и минимум лабинга в плане ковыряния - тут важна стабильность. Нагрузка стабильная и прогнозируемая
    • NAS, Торрентокачалка, Медиараздавалка - ресурсы тоже прогнозируемые, подключены диски и все тут крутится вокруг дисков, паяти в целом, хватает.
    • NVR - Frigate во время распознавания лиц неплохо так потребляет ресурсы, постоянно работает видеокартой, пишет по сети, когда он работал на 1 группе, то прям заметно подъедал проц, сейчас может молотить сколько захочет в рамках своих 4 ядер
  • Мусор (что-то куплено лет 6 назад, что-то куплено год-два, но выяснилось, что не тянет 2 группу и переведено в 3), тут мелкие сервисы + обслуживание кластера + распределенные ноды, например,

    • на одной стоит принт и скан сервер (ну и стоит на полке) рядом с ними + подключил тач скрин с панелью управлением светом, статусами кластера (и надо добавить сетевые интерфейсы еще) и интерфейсом печати и сканирования

  • другой находится к прихожей и подключен с ИБП и прочей периферии + еще один тач интерфейс


    image

Но тут я думаю убрать его и вернуть 2 одноплатника

  • Для холодных бекапов - тут ресурсов много не надо - принимать снимки и сбрасывать их на диск

В итоге мелкие ноды сильно не нагрузишь, оперативки и проца маловато, но со своими задачами справляется

Ну и 2 плюса данного подхода по сравнению с 1 узлом на 32 ядра и 128Гб оперативки

  • Кластеризация, пусть не HA сервисов, но как минимум L7 избранных и самого PVE
  • В миниках не так много интерфейсов, а так у меня где-то M2->SATA адаптеры, где-то NVME диски, где-то M2. Google Coral

По миникам примерно выработал такой подход (в тг группе обсуждалось)

CPU RAM GB
1-2 8
4 16-32
8+ 64+

Соответственно, набор сервисов и задач для слабых и средних узлов постоянный, новое разворачиваю на мощных
Памяти докинуть сложно, но можно, например, N100/150 до 32 ГБ, но мне сейчас хватает 16, а 32 на NASе где 16 выделено под TrueNAS

Чисто игрался, через iSCSI и NVMEoF грузил.
Поскольку, миники и они ограничены по интерфейсам, то взял USB NVME кейсы, планировал в них воткнуть отдельные накопители и собрать Linstor хранилище как раз таки для HA, но…

  1. Надо было собрать стойку для стекирования и охлажения миников
  2. Наступил день Д и час Ч и мой предполагаемый бюджет на накопители вырос в 4-5 раз

Но в планах все еще есть развернуть

когда я занимался изучением заббикса, то предложил тоже самый надежный вариант - шлюз смс

есть 2 варианта
нищий - взять б\у мабилу, поставить туда кое какой софт и попробовать подключить через усб кабель и драйвер ndis, если на мабиле такое заведется (не везде есть)

менее надежный - wifi

вариант для ит алигархов - готовый аппаратный шлюз, который подключается через ком порт и в него можно слать ат команды

еще есть вариант усб старые 3г модемы, но как там с ними в линупсе - я без понятия
недавно разгребал барахло, выкинул в мешок эти модемы, папаша был у меня и забрал себе ковырять
так что если у кого завалялось, то пробуйте - купите препейд симку и вперед

у насв конторе мою идею забраковали, потомучто шлюз стоит больше 100 евров

вот еще что можно было бы взять

мне барыга с ебея еще фотки кишков скинул, а то нигде в гугле нет кишков

тут еще нужна плата 3г модема и антенна на нужный диапазон

но вам надо стать гурой красноглазиком, чтобы сначала от туда выковырять прошивку полную для бекапа, потом выковырять ядро и главное dtb дерево с описанием платы

потом изучить yocto linux, создать свою там плату и собрать дистрибутив
я даже на днях смотрел ролик и там упоминалась одна книжка и вроде бы она даже халявная, только на английском

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

Я делал проще - USB 3G модем в формате свистка, он подключается к роутеру или любому другому компу (в роутере делал резервный канал связи еще)

Свисток поднимает сетевой интерфейс и имеет веб форму для отправки СМС
Соответственно, условным curl можно отправить SMS сообщение

ну или так, хотя он должен появляться как ком порт типа /dev/ttyS0

попробуй его в линупс воткнуть и посмотреть, что там появилось из таких устройств ttyACM0 или /ttyUSB0
dmesg | grep tty

И посмотри что вообще есть lsusb -v

Есть разные модели, раньше были с ком портом, тот же микротик у меня мог работать с ними и даже смс сам слал, те, что у меня были уже чисто usb nic для скорости сети и вроде переключение режимов не помогало (но это не точно)

Но они у меня уже несколько лет валяются в коробке с проводами и всяким барахлом, сейчас искать надо уже и симки протухли
Сейчас сконцентрировался больше на этом

Вот что значит человек познал самохостинг на полную

Моё почтение и уважение. Выглядит все красиво)

Спасибо за развернутый ответ!

интересная довольно распределенная инфраструктура у вас и должное внимание к бесперебойному питанию. респект.

возьму на заметку https://bootimus.com/, намучался с сырой поделкой в виде netboot.xyz а толковых альтернатив не нашел