Есть люди, которые начинают задумывается об приватности/конфиденциальности в необъятном интернете или уже её практикуют. Есть те, кто не хочет платить за сервисы и считает, что подписочная модель по текущим ценам — не самый выгодный вариант. Тогда появляеться гениальная идея об «self-hosted» решений и покупка домашнего сервера.
В этом цикле статей мы будем говорить о настройке такого сервера и установке сервисов на него. Опыт по использованию этих сервисов, нужны они ли вам, или выбрать более простые аналоги, которые так еще окажутся быстрее в тех или иных задачах. Статьи будут интересны тем, кто задумывался о покупке домашнего сервера (и целесообразности такого решения) или те, кто уже имеет, но нету достаточного опыта/знаний в его настройке. В цикле акцентируется внимание на моментах, где мне пришлось перечитать много статей, как наших, так и иностранных, спрашивать у знакомых и друзей, чтобы собрать в единое целое ответ на простые вопросы: «Почему так?», «А зачем мне это?».
Принципы автора при настройке и работе сервера и не только, которые будут фигурировать в течении цикла:
-
Безопасность системы и сети
-
Быстрый ответ системы и ее служб
-
Минимальное количество пакетов (программ), только нужное
-
Унификация, зависимость приложений.
Оглавление статьи
Рынок и выбор
Для большинства людей идея «self-hosted» решений сводится к созданию личного облака, точнее, хранилища для синхронизации данных. В этом контексте существует два основных варианта:
-
NAS (Network Attached Storage): хост (то есть компьютер), предназначенный для хранения данных как для личного, так и для коммерческого использования. в основном plug and play решения. Машинка отлично справляется со своей задачей - хранение и синхронизация данных. Также могут похвастаться дополнительными сервисами, такие как фотоцентр (Google Photo), медиасистемы и т.д. Главный игрок, но не точно, среди plug and play решений: Synology. Еще один плюс NAS — наличие нескольких отсеков для дисков, что позволяет создавать RAID-массив. NAS для личного пользование отличаются компактностью.
-
Сервер: хост, предназначенный для приема запросов (requests) и ответа на них. Это универсальное решение, которое может быть реализовано в различных формах:
-
Старый компьютер
-
Custom сборка
-
Сервер
-
Мини-компьютер ( mini-pc )
-
Опыт
Мой отец уже 6 лет пользуется NAS Synology серии DS2***, машинка работает безотказно, отлично синхронизирует файлы и работает как Drive (подробнее). Использует RAID 0, так как важно обеспечения целостности данных.
В моем случае выбор пал на покупку сервера, выбрал mini-pc Beelink Mini S12 Pro.
Преимущества выбора mini-pc:
-
Тихие
-
Занимают мало место
-
Низкое энергопотребление
Недостатки:
-
Низкая кастомизация: подключить можно только один SATA диск. В случаи если нужен RAID надо подключаться через usb, если usb медленный теряем скорость.
-
Встроенный GPU: не хватка только если в планах ставить ollama для "self-hosted" IA.
Почему я выбрал сервер, а не NAS? В планах было накатить много разных сервисов, поэтому NAS бы не подошел из-за небольшого объема RAM и слабой кастомизации.
Для хранения данных докупил HDD, а не SSD, поскольку предпочитаю долговечность и надежность данных перед скоростью. Однако у этого решения есть свои проблемы:
-
Низкая скорость при работе с базами данных. Примеры:
-
Cоздание базы данных Nextcloud с 131 таблицей заняло около 10 минут;
-
Запрос SELECT COUNT(*) AS total_tablas FROM information_schema.tables WHERE table_schema = 'nextclouddb'; занял 8 секунд.
-
-
Если сервер стоит в тихой комнате, может быть слышно работу диска.
Рекомендации
-
Больше RAM (ОЗУ). Минимальное количество RAM должно составлять 16 GB. Если вы хотите, чтобы сервисы работали как коммерческие аналоги, необходимо кэшировать данные. Лучше иметь 32 GB RAM. В подтверждение, состояние сервера при просмотре фильма через Jellyfin.
-
Быстрые LAN порты. Wi-Fi — это, конечно, хорошо, но нет ничего лучше, чем провод. Желательно иметь 2 LAN порта (если у вас нет коммутатора (switch)): один для подключения к роутеру, а другой — к компьютеру. Пропускная скорость должна быть не менее 1Gbps, желательно 2,5 Gbps или лучше 10Gbps. Есть также возможность сделать 25Gbps, как это сделать дешево, описано в статье.
-
Наличие RAID. RAID 1+0, конечно дороговато будет, но в случаи HDD хорошее решение, и скорость подымиться и надежность данных повысится. Если не можете позволить тогда RAID 0 на SSD. Желательно также иметь RAID контролер, так как в IT - Hardware (аппаратное обеспечение) лучше чем Software (программное обеспечение), по скорости так точно.
-
Наличие Hardware Security Module (HSM). Повторяя, что аппаратные решения лучше, чем программные, то же самое относится к безопасности. В частности, это касается защиты ключей шифрования. В случае несанкционированного доступа к системе ключи будут надёжно защищены не только в операционной системе, но и физически.
Оглавление цикла
(Обновляемое)
Рекомендуется к прочтению/изучению
-
Habr.com - Self Hosted для домашнего сервера
-
GitHub.com - Список Self Hosted сервисов
-
GitHub.com - Список программ для администрирования сервера
P.S. Это моя первая статья, поэтому буду рад услышать аргументированные замечания и критику.
Автор: StafLoker