· freebsd переход freebsd server

Переход на FreeBSD

Сидя одним довольно дождливым летним вечером за консолькой, пытаясь решить очередную проблему с systemd, я долго матерился. Все три часа, что я разбирался с автомонтированием NFS шары через systemd, все три часа я матерился. Ну правда, как так можно, заявлять, что это все production-ready, однако работает через пень-колоду?

Мне в этом контексте интересно, кто написал конвертер fstab в mount-юниты systemd, ибо этот конвертер работает лучше, чем написанный по официальным докам mount-юнит. Конечно же, в fstab и mount-юните применялись идентичные параметры монтирования, только через fstab все работало как надо, а через mount-юнит - нихрена :).

Подумав над всем этим, посчитав оверхед от запущенных операционок в виртуалках и systemd-сервисов в контейнерах LXC, я принял довольно странное решение - переходить на FreeBSD. Причины за:

  1. Нормальный ZFS. Реально, работает лучше и быстрее, чем ZoL. А без ZFS я свою серверную жизнь уже не смыслю, потому что ZFS позволяет офигенно удобно делать датасеты под приложения со своими настройками, выбирать сжатие (например, для бинарных данных офигенно подходит gzip, а не lz4), и тому подобное.
  2. Вменяемая и хорошая документация по всем базовым сервисам. При первой настройке фряхи мне не нужно было гуглить, потому что установщик простой и понятный, все маны есть в системе. Я просто сделал man ifconfig и понял, как настроить виртуальную сетку руками. Я просто сделал man rc.conf и понял, как это автоматизировать.
  3. Клетки (jails). Чуть сложнее в настройке, чем LXC, но заметно легче по ресурсам.
  4. rctl. Очешуенная вещь в плане ограничивания ресурсов чего бы там ни было, начиная от отдельных приложений и заканчивая клетками.
  5. Отсутствие systemd. Да, в каких-то случаях он удобен, но вот когда тебе просто надо развернуть один маленький сервис, systemd может как облегчить жизнь, так и усложнить (например, чтение логов).
  6. Обычные текстовые логи. Серьезно, грепать куда удобнее и быстрее, чем читать выхлоп journalctl :).

Причины против:

  1. BSDшные версии утилит, которые зачастую несовместимы с GNUтыми ни синтаксисом, ни форматом входных данных.
  2. Непривычная настройка сети, маршрутизации. Я привык использовать ip route, а тут все через route с виндоподобным синтаксисом.
  3. Клетки довольно сильно отличаются по схеме работы от привычных LXC контейнеров.
  4. Зубо- и мозгодробительные фаерволы, которых аж несколько штук.

Это все, что я смог выявить для себя и, как можно понять, плюсы сильно перевешивают минусы :) Так что я начинаю запиливать серию статей по настройке фряхи в качестве домашнего сервера, которые можно будет найти по тегу “freebsd server” (кликните сверху). Все действия выполняются строго на дефолтном ядре, которое ставится вместе с установкой FreeBSD, таково мое условие (ну не хочу я на каждый чих пересобирать ядро).

Чего точно не сделаю в виде статей и постов - так это настройку FreeBSD в качестве домашнего роутера. У меня предполагается, что роутером служит другой девайс. Конкретно в моем случае - это Keenetic Giga III с “почти чистым” линуксом (прошивка от Padavan’a). Правда, хороший такой, капитальный самосбор, который обеспечивает нормальную работу IPSec и роутинга мультикаста. Ее тоже позже выложу.

В общем, поехали! :)

  • LinkedIn
  • Tumblr
  • Reddit
  • Google+
  • Pinterest
  • Pocket