- комментарий 0:
From: kmeaw
Date: 2022-09-18 10:27:54Z
Много интересного на эту тему написано на
https://www.reddit.com/r/homelab/
У меня раньше в квартире стояла 42U стойка со стоечным сервером, сейчас
уехала к маме в дом - там сильно более сложная топология сети и места
больше. Вместо неё у меня под потолком прикручены два маленьких 3U
телеком-ящика; в одном стоит свитч и две PDU, в другом - одна PDU. PDU
сверху удобно использовать, чтобы по полу не тянулись провода, а ещё они
бывают с IEC C13 розетками, то туда удобно подключать компьютерную
технику - блоки питания и мониторы. Вместо стоечного сервера у меня
обычный PC tower и NAS-коробка от QNAP на ARM.
В PDU с C13 у меня подключены паяльная станция, тестовый ATX-блок,
свитч, десктоп и два монитора, ещё на столе лежит свободный кабель.
Даже для домашних нужд приятно использовать серверные платы - у них есть
BMC. У меня в обычном корпусе сейчас собрана машина на ASUS P11C-C/4L, в
ATX-разъём которой воткнут DC-DC преобразователь с 24 VDC на входе,
которые берутся из промышленного БП с функцией UPS.
Rack mountable сервера можно сделать тихими, но это потребует некоторой
доработки - заменить высокооборотные маленькие вентиляторы на меньшее
число больших низкооборотных. С блоками питания сложнее - у серверов они
компактные, и туда не всякий вентилятор встанет; нужно изучать
конструкцию конкретных блоков или искать, какие есть потише. У Noctua
есть маленькие тихие вентиляторы, создающие неплохой поток воздуха.
Стоечный сервер раньше стоял у меня в кладовке рядом со спальней -
работа системы охлаждения была заметна только в момент перезагрузки BMC,
когда включались максимальные обороты.
Ещё одна приятная функция для домашнего сервера - сетевая загрузка.
Когда приходит кто-то из знакомых с программными проблемами, то
достаточно воткнуть его в загрузочный VLAN и выбрать в BIOS загрузку по
сети, не надо возиться с CD и флешками.
Если сильно заморочиться, то можно сделать домашний сервер местом
хранения и распространения секретов - поднять свой PKI, использовать его
для своих VPN и почтовых серверов, пакетных репозиториев,
SSH-сертификатов. TPM сейчас (благодаря Windows 11) стали доступны для
дома, их можно использовать и со свободными ОС - измерять прошивку,
загрузчик, ядро и остальные критические компоненты. Или использовать
встроенный в процессор Intel PTT, если он есть.
Git сам по себе ресурсов много не потребляет, но часто хочется ещё и
систему непрерывной интеграции со сборочным агентом. А если с друзьями
таким сервисом делиться, то часто и какой-то веб-интерфейс нужен.
Некоторые любят ещё и в игрушки поиграть, а раз сервер уже есть, то
можно видеокарточку в него поставить и в виртуалку с ОС для запуска игр
её пробросить. От этого же сервера можно кинуть длинный видеокабель до
монитора, чтобы не слышать шум, а события ввода по сети в виртуалку
доставлять.
Если дома есть акустическая система, то на тот же сервер можно
переложить задачу медиапроигрывателя и звукового сервера - если
какому-то устройству нужно воспроизвести звук, то можно отправить его по
локальной сети. А ещё такой сервер станет единой точкой управления
музыкой, чтобы сожителям не нужно было перекоммутировать источники звука
или каждому иметь свой.
Маршрутизацию и фаерволы для дома я тоже предпочитаю делать сам, а не
доверять производителю сетевого оборудования. Поэтому на свитче у меня
стоит SwOS, которая маршрутизировать не умеет, и всё через 802.1q
доезжает до сервера.
Б/у оборудование сильно дешевле, особенно если смотреть на недорогих
производителей - Supermicro, MikroTik. Новый свитч из магазина с 24
гигабитными и двумя 10-гигабитными портами мне четыре года назад
обошёлся примерно в 12 тысяч рублей, гигабитные порты у меня пока не
закончились. На вторичном рынке есть недорогие сетевые карточки на Intel
82598 и 82599.
> я бы мог задействовать по два Ethernet порта для того, что в GNU/Linux
> называют bond-ом. Но на практике мне это не требуется вовсе. MPTCP
> нету в FreeBSD, поэтому и скорость в 2Gbps я просто так не получу из
> коробки.
Если L2-оборудование поддерживает bonding (достаточно умный свитч или
прямое соединение двух машин), то 2Gbps можно и без MPTCP получить -
bonding ведь ниже MPTCP по стеку происходит.
> значит и никакой стойки (не брать же её только для пары коммутаторов?)
Помимо rack-mountable активного оборудования (в первую очередь серверов
и коммутаторов), для стоек бывают полки, PDU и кабель-органайзеры.
У Дмитрия Бачило стоят несколько серверов в tower-корпусах на полках в
стойке. Из плюсов - можно красиво сделать cable management, а ещё меньше
шансов устроить пожар - стойка металлическая.
> нужно получить доступ к NAS, так монтируй его по NFS, который из
> коробки встроен в ОС и вообще с ZFS (в FreeBSD) интегрирован
А как во FreeBSD связаны ZFS и NFS?
- комментарий 1:
From: Sergey Matveev
Date: 2022-09-18 11:09:45Z
*** kmeaw [2022-09-18 13:26]:
>У меня раньше в квартире стояла 42U стойка со стоечным сервером, сейчас
>уехала к маме в дом - там сильно более сложная топология сети и места
>больше. Вместо неё у меня под потолком прикручены два маленьких 3U
>телеком-ящика; в одном стоит свитч и две PDU, в другом - одна PDU. PDU
>сверху удобно использовать, чтобы по полу не тянулись провода, а ещё они
>бывают с IEC C13 розетками, то туда удобно подключать компьютерную
>технику - блоки питания и мониторы. Вместо стоечного сервера у меня
>обычный PC tower и NAS-коробка от QNAP на ARM.
Телеком-ящики впервые увидел на работе текущей: действительно выглядят
очень удобно. Хотя и небольшие стойки на колёсиках тоже для дома кажутся
вполне пригодными.
>В PDU с C13 у меня подключены паяльная станция, тестовый ATX-блок,
>свитч, десктоп и два монитора, ещё на столе лежит свободный кабель.
Про себя радуюсь что я ни разу в жизни ничего не паял, вообще не понимаю
в этом деле ничего и поэтому моя голова свободна ещё и от этих забот :-)
>Даже для домашних нужд приятно использовать серверные платы - у них есть
>BMC. У меня в обычном корпусе сейчас собрана машина на ASUS P11C-C/4L, в
>ATX-разъём которой воткнут DC-DC преобразователь с 24 VDC на входе,
>которые берутся из промышленного БП с функцией UPS.
Не очень понял (и в электричестве я не силён совсем): вместо "просто"
блока питания, подключен промышленный ИБП напрямую к материнской плате?
А зачем так? В том плане, что я просто не понимаю плюсов/минусов :-)
>Rack mountable сервера можно сделать тихими, но это потребует некоторой
>доработки - заменить высокооборотные маленькие вентиляторы на меньшее
>число больших низкооборотных.
А как заменить вентиляторы которые горизонтально воздух прогоняют? Они
же ведь на всю высоту сервера располагаются как правило? Ну, по крайней
мере, то что я видел в 1U и 2U серверах. Там же геометрически нельзя
большего диаметра ничего вставить, если крышку сверху хочется закрыть. А
если такого же диаметра, но меньшего кол-ва оборотов, то они же уже
просто не будут охлаждать должным образом.
>Стоечный сервер раньше стоял у меня в кладовке рядом со спальней -
>работа системы охлаждения была заметна только в момент перезагрузки BMC,
>когда включались максимальные обороты.
Да, на самом то деле помню что без нагрузки (и без перезагрузки) они
вполне себе конечно тихие могут быть. Особенно когда не в стойке рядом с
десятком других источников тепла. Но если же нагрузка будет, то не
слышать всё равно не удастся. Когда у людей вижу кладовки, то первой
мыслью приходит то, что это могло бы быть отличным местом для серверов.
Дверь в кладовку если шумоизолировать. Но у меня в квартире нету её,
только балкон может быть изолирован от жилых помещений.
>Ещё одна приятная функция для домашнего сервера - сетевая загрузка.
>Когда приходит кто-то из знакомых с программными проблемами, то
>достаточно воткнуть его в загрузочный VLAN и выбрать в BIOS загрузку по
>сети, не надо возиться с CD и флешками.
Ну это если часто делаешь подобное. На первой работе мы так почти всё
загружали (ну не я, а тестировщики и сборщики серверов). Дома я поднимал
diskless загрузку чтобы вспомнить какого это, плюс узнать что такое
iPXE, но потом забил, ибо так редко требуется с чего-то загрузится, что
я готов подождать несколько минут работы dd. Но да: штука полезная
бесспорно. Правда, опять же, не требующая каких-то серверов и ощутимых
мощностей, чтобы нужен был "дата-центр" :-)
>Если сильно заморочиться, то можно сделать домашний сервер местом
>хранения и распространения секретов
Согласен, тоже может быть полезно даже дома.
>Git сам по себе ресурсов много не потребляет, но часто хочется ещё и
>систему непрерывной интеграции со сборочным агентом. А если с друзьями
>таким сервисом делиться, то часто и какой-то веб-интерфейс нужен.
Да, про это даже не вспомнил (дома просто подобное не использую). Тут
соглашусь что уже на 2GB RAM ноутбуке не захостишь приемлемо такое.
>Некоторые любят ещё и в игрушки поиграть, а раз сервер уже есть, то
>можно видеокарточку в него поставить и в виртуалку с ОС для запуска игр
>её пробросить. От этого же сервера можно кинуть длинный видеокабель до
>монитора, чтобы не слышать шум, а события ввода по сети в виртуалку
>доставлять.
Этого я насмотрелся в видеороликах Linus Tech Tips :-). У него как-раз
"ПК" сделаны в rackmountable серверах, от которых длинные оптические
("электричество" на десятки метров (в частном доме) уже же не пустишь)
HDMI/USB кабели тянутся до рабочих мест. Вообще, если есть место для
стойки с шумными серверами (кладовка, где-то там что-то в частном доме),
то идея мне нравиться протянуть от них "консоль" до рабочего места!
>Если дома есть акустическая система, то на тот же сервер можно
>переложить задачу медиапроигрывателя и звукового сервера - если
>какому-то устройству нужно воспроизвести звук, то можно отправить его по
>локальной сети. А ещё такой сервер станет единой точкой управления
>музыкой, чтобы сожителям не нужно было перекоммутировать источники звука
>или каждому иметь свой.
Ну это уже я отношу к специфичным use-case-ам (хех, а домашний PKI нет
:-)). У меня всю жизнь вся акустика это только наушники (+ЦАП и
остальное), наушники в MP3-плеере для аудиокниг (слушаю когда вне
компьютера, например прибираюсь или мою посуду). Но всё должно стать
сильно сложнее, если есть ещё кто-то рядом и хочется посмотреть
совместно фильм например. Ну тут опыта нет :-). Да и вообще сейчас
понимаю что сильно всё проще если пользователь всей инфраструктуры это
только один человек. Если бы жил с родителями, то там бы нужно ещё было
думать про Samba какую-нибудь, действительно, чтобы и родители со своим
Windows имели доступ к медиатеке.
>Маршрутизацию и фаерволы для дома я тоже предпочитаю делать сам, а не
>доверять производителю сетевого оборудования. Поэтому на свитче у меня
>стоит SwOS, которая маршрутизировать не умеет, и всё через 802.1q
>доезжает до сервера.
Ага, понимаю. У родителей кстати как-раз VLAN-ы использовал для
сегментирования сетей. Но в качестве коммутатора уже выступал отдельный
компьютер с сетевухами (помню что отдельно покупал 100Mbps Intel Ether
Express Pro, который даже под DOS работал).
>Б/у оборудование сильно дешевле, особенно если смотреть на недорогих
>производителей - Supermicro, MikroTik. Новый свитч из магазина с 24
>гигабитными и двумя 10-гигабитными портами мне четыре года назад
>обошёлся примерно в 12 тысяч рублей, гигабитные порты у меня пока не
>закончились. На вторичном рынке есть недорогие сетевые карточки на Intel
>82598 и 82599.
Во-во, наслышан про подобные цены! И слышал про 10GbE Ethernet
коммутаторы на 12/24 портов с SFP-шками менее чем то ли 50, то ли 100
тысяч. Может чего и путаю, но помню про ощутимую дешевизну. И про NIC-и
и HBA дешёвые. Собственно у меня SAS HBA за пару тысяч была куплена б/у
как-раз. И ломаться то там особо нечему, ибо даже вентилятора нет.
>Если L2-оборудование поддерживает bonding (достаточно умный свитч или
>прямое соединение двух машин), то 2Gbps можно и без MPTCP получить -
>bonding ведь ниже MPTCP по стеку происходит.
Bonding то можно сделать и через тупой коммутатор, соединив два
компьютера четырьмя кабелями через него, но я же не смогу получить
увеличение пропускной способности для единственного TCP соединения? Если
пакеты разбрасывать по портам round-robin-ом, то будет их
переупорядочивание и жуткая деградация скорости TCP из-за этого.
Насколько читал и знаю: умные коммутаторы (ну или lagg/LACP реализации в
ОС) всё равно будут кидать трафик между двумя IP-адресами (или между
двумя TCP/UDP-портами) через один порт Ethernet. У меня же дома это
вообще усугубляется тем, что физически по Ethernet у меня идёт трафик
между fc00::98f1 --> fc00::2752 (например) адресами: IPsec IP-in-IP
туннель, внутри уже которого IPv6 и IPv4 до Интернета. С точки зрения
второго уровня: у меня ровно один IP с ровно одним IP другого сервера
общаются.
>Помимо rack-mountable активного оборудования (в первую очередь серверов
>и коммутаторов), для стоек бывают полки, PDU и кабель-органайзеры.
>У Дмитрия Бачило стоят несколько серверов в tower-корпусах на полках в
>стойке. Из плюсов - можно красиво сделать cable management, а ещё меньше
>шансов устроить пожар - стойка металлическая.
Согласен, не поспоришь.
>А как во FreeBSD связаны ZFS и NFS?
"Интеграция" конечно громко звучала, но просто навсего все "sharenfs"
property у dataset-ов автоматически попадают в /etc/zfs/exports, который
по умолчанию тоже используется наравне с /etc/exports. Если мне надо
dataset сделать доступным по сети, то я просто делаю: zfs set
sharenfs="-maproot=stargrave -ro -network 2a03:e2c0:XXXXXXX/YY" и он
будет доступен через NFS сразу же. В Solaris и для iSCSI аналогичная
интеграция с ZFS имеется.
- комментарий 2:
From: kmeaw
Date: 2022-09-18 12:27:03Z
> Не очень понял (и в электричестве я не силён совсем): вместо "просто"
> блока питания, подключен промышленный ИБП напрямую к материнской плате?
> А зачем так? В том плане, что я просто не понимаю плюсов/минусов :-)
В плату подключается небольшой модуль picoPSU - это DC-DC
преобразователь, который из одного входного напряжения делает весь
спектр напряжений, необходимый для работы компьютера. Он всего раза в 3
больше по высоте обычного разъёма ATX PSU, поэтому легко влезает в
корпус.
Снаружи корпуса находится металлический блок питания, куда подключены
picoPSU, последовательно пара аккумуляторов на 12 VDC и сетевое
напряжение 230 VAC.
Плюс в том, что нет лишнего преобразования 230 VAC -> 12 VDC -> 230 VAC,
которое совсем не бесплатное в плане КПД. Если в компьютере уже стоит
современный ATX PSU с APFC, то он бы и от 32 VAC запустился, но к форме
"синуса" он может быть привередлив. Минус в том, что я не могу в такой
"UPS" воткнуть любой электрический прибор. Но у меня из важного есть
только свитч, который умеет питаться от 24 VDC и оптический терминал,
который запитан от USB этого же сервера.
> А как заменить вентиляторы которые горизонтально воздух прогоняют?
> Там же геометрически нельзя большего диаметра ничего вставить, если
> крышку сверху хочется закрыть.
У 1U и 2U либо с открытой крышкой держать, либо сверлить её. В 3U уже
влезают обычные большие вентиляторы, если их перевернуть.
> я же не смогу получить увеличение пропускной способности для
> единственного TCP соединения?
Увы, так не получится. Зато можно будет обслужить больше клиентов
одновременно. А какой-нибудь rsync при быстрых дисках/хорошем
кешировании всё равно приходится запускать в несколько процессов, иначе
он в CPU упирается.
> У меня же дома это вообще усугубляется тем, что физически по Ethernet
> у меня идёт трафик между fc00::98f1 --> fc00::2752 (например)
> адресами: IPsec IP-in-IP туннель, внутри уже которого IPv6 и IPv4 до
> Интернета.
Круто, нет доверия даже проводной сети внутри дома. У меня безопасность
проводной сети ограничивается нарезанием сети на VLAN и запретом
некоторых видов трафика (IPv6 RA, DHCP, ARP reply с некоторых IP) для
не-роутеров.
- комментарий 3:
From: Sergey Matveev
Date: 2022-09-18 12:48:44Z
*** kmeaw [2022-09-18 15:26]:
>В плату подключается небольшой модуль picoPSU [...]
Ага, понял. Круто, красиво!
>У 1U и 2U либо с открытой крышкой держать, либо сверлить её. В 3U уже
>влезают обычные большие вентиляторы, если их перевернуть.
С большим сервером конечно проще. А открывать или модифицировать 1U не
хотелось бы: всё же в нём всё заточено под то, чтобы насквозь пропускать
потоки воздуха. Впрочем... раз это дешёвая (б/у), хорошая и надёжная
железка, то можно и покорёжить её, ничего страшного, даже если и КПД
охлаждения чуть снизится из-за неидеальности потоков продува.
>> я же не смогу получить увеличение пропускной способности для
>> единственного TCP соединения?
>
>Увы, так не получится. Зато можно будет обслужить больше клиентов
>одновременно. А какой-нибудь rsync при быстрых дисках/хорошем
>кешировании всё равно приходится запускать в несколько процессов, иначе
>он в CPU упирается.
Поэтому идея MPTCP и нравится: можно было бы единственное TCP соединение
распараллелить. rsync может и в CPU упрётся, а вот NFS (или там iSCSI)
особо ничего не жрёт: для него бы пригодилось.
>Круто, нет доверия даже проводной сети внутри дома. У меня безопасность
>проводной сети ограничивается нарезанием сети на VLAN и запретом
>некоторых видов трафика (IPv6 RA, DHCP, ARP reply с некоторых IP) для
>не-роутеров.
Не имею железки которая бы нарезала VLAN-ы (даже банально свободного
компьютера с достаточным количеством NIC-ов). Поэтому изолирую сегменты
сети фактом использования IPsec-а. NFS (а сейчас ещё и например iSCSI
(caceb7c690176fd88f8af317d0a5d2ba3e765b02)) и firewall разрешают до них
стучаться только из сети, которая может быть только внутри IPsec
туннелей. Факт успешного прохождения трафика с ряда IPv6 адресов,
означает что IPsec уже аутентифицировал эту машину. Для гостей просто
приходится подключать иногда WiFi (через который в сети окажутся Android
и iOS), ну и для себя я временами включаю PowerLine адаптеры. И всё это
идёт в тупой коммутатор. Недостаток моего текущего IPsec решения: весь
трафик проходит через один сервер (шлюз), даже если компьютеры могут
достучаться друг до друга и напрямую через коммутатор.