Что: f84cd7894bd51b0702488a395b0deda547abc857
Когда: 2022-09-16 13:03:08+03:00
Темы: hard
Домашний дата-центр https://habr.com/ru/company/selectel/blog/688162/ Вот очень мне нравятся серверные железки, стойки и вся эта тема! Хочу и дома иметь что-то подобное, но всё останавливается на вопросе "а зачем?". Заиметь отказоустойчивые коммутаторы, маршрутизаторы -- неплохо однозначно. Но за уйму лет хостинга всего и вся дома: у меня никогда не было проблем с отказоустойчивостью и надёжностью. Два моих сервера: очень маленького форм-фактора железки, но с серверными компонентами внутри. Работают без нареканий. И только с появлением Intel NUC они перестали быть самыми производительными железками. В одном комментарии перечислили для чего нужна своя серверная: 1. Поднять свой сервер мессенджера, того же джаббера 2. Свой почтовик 3. Хранилка бэкапов 4. Медиабиблиотека: храним в одном месте, пользуемся с любого устройства 5. Сервис синхронизации 6. Локальный гит 7. Сидбокс 8. Домашняя автоматика 9. Домашний VPN, чтобы туда-сюда не передергивать VPN на устройстве IM, почта, локальный Git: всё это не требует ресурсов вообще. Просто ноутбук может это всё хостить. Хранение резервных копий, медиа библиотеки, seedbox -- всё это требует только достаточного места на дисках. Ну и не совсем дохлое железо (речь про одноядерные процессоры i386, и пару гигабайт RAM (хотя и с ней будет работать)) чтобы ZFS хорошо работал. И вот всё просто упирается в кол-во дисков которое можно подключить. В обычный большой корпус обычного компьютера можно вставить с дюжину дисков без проблем (возможно докупая корзины 5.25"). Если я приобрету ещё пару 16TB HDD (для зеркалирования, поэтому и два), то у меня вообще всё что есть на лентах влезет на диски. И в одном сервере у меня даже как-раз два слота для них есть свободных. Многие говорят про запуск виртуальных машин -- для этого нужны мощные железки. Не поспоришь. Но вот у меня, кроме совсем дохлых ВМ в которых NetBSD, OpenBSD, какие-нибудь GNU/Linux, где я просто проверяю сборку и работу некоторого своего софта, в этом году появилась только одна ВМ, которой я отдаю много ресурсов, где я вожусь с одним огромным C++ проектом. Но он даже не каждую неделю включается и мощность ему нужна только для ускорения процесса сборки. У меня до сих пор дома все компьютеры соединяет один единственный 1Gbps коммутатор на пять портов. И прямо сейчас подключены только три порта. Just for fun, just proof of concept я бы мог задействовать по два Ethernet порта для того, что в GNU/Linux называют bond-ом. Но на практике мне это не требуется вовсе. MPTCP нету в FreeBSD, поэтому и скорость в 2Gbps я просто так не получу из коробки. Ну и не дёшево это всё конечно. Я так понимаю, что в первую очередь надо смотреть на б/у серверы/оборудование, которое может быть существенно дешевле. Но сразу в голове воспоминания о том, что фиг поймёшь не обманут ли тебя. Ну и полноценная, пускай и маленькая, стойка это здорово, но rack mountable сервера жутко громкие. Для тишины нужные большие вентиляторы: а это только пъедестальники, значит и никакой стойки (не брать же её только для пары коммутаторов?). Или размещать на балконе. Но это значит его надо утеплять, ибо зимой на нём как на улице у меня. Плюс лично я ещё совершенно не хотел бы связываться с маршрутизаторами, которые сделаны не на базе обычной ОС, которую ты сам поставил. Просто угнетает психологически сама мысль о том, что ты полностью ограничен функционалом встроенного ПО. Я спокоен если это тупой коммутатор. Или если это коммутатор, который максимум управление VLAN-ами умеет делать, но не более -- там как бы или он умеет/делает или нет, особо вариантов больше нет. А вот маршрутизацию я бы хотел уже делать в полноценной ОС. Или если речь ещё и про firewall. Поэтому у меня никогда не было маршрутизаторов типа WiFi+ADSL+router+NAT+firewall: это всегда какой-то обычный ПК с GNU/Linux или FreeBSD внутри. Точнее железки были, но работавшие в режиме моста. Хотя маршрутизатор, по идее, штука тоже не хитрая: приходит пакет, смотришь в таблицу куда его дальше отослать, отсылаешь. Против таких тоже ничего не имею. Но дома такой не нужен, ведь ещё же и firewall и NAT (к сожалению, пока legacy IPv4 ещё распространён) понадобятся. Поэтому вместо специализированных маршрутизаторов у меня бы был yet another сервер, пускай и достаточно дохленький. Возможно для всяких Syncthing, NextCloud и подобных штук нужны и существенные мощности. Но я живу в Unix-friendly мире компьютеров: нужно получить доступ к NAS, так монтируй его по NFS, который из коробки встроен в ОС и вообще с ZFS (в FreeBSD) интегрирован. Нужна безопасная связь для этого? Ну так поднимай WireGuard (в IPv6 мире -- IPsec). Чего чего, но какого-то дополнительного софта для этого не надо мне. Ну и я не сисадмин, не сетевик, не devops -- для локальных экспериментов мне хватает и что имею. Даже 10Gbps сет��вые карты я так и не заимел, ибо мне и 1Gbps хватает, так как я при этом всё равно упрусь в скорость HDD.
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?
From: Sergey Matveev Date: 2022-09-18 11:09:45Z
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) для не-роутеров.
From: Sergey Matveev Date: 2022-09-18 12:48:44Z
Сгенерирован: SGBlog 0.34.0