Блог Ходакова

#golang #macos #linux #overwatch и стопицот других тегов
FreeBSD

Меня немного (чуть-чуть дофига) раздражает зоопарк линуксов. Раньше я его избегал с помощью Debian Stable, теперь пробую новый путь — ПравославнуюЪ ФряхуЪ.

Собственно, вот тут Станислав Никитин отлично описал, почему хороша или плоха FreeBSD. Я же прокомментирую и дополню его аргументацию:

Нормальный ZFS. Реально, работает лучше и быстрее, чем ZoL. А без ZFS я свою серверную жизнь уже не смыслю, потому что ZFS позволяет офигенно удобно делать датасеты под приложения со своими настройками, выбирать сжатие (например, для бинарных данных офигенно подходит gzip, а не lz4), и тому подобное.

Да. Ради ZFS вообще можно простить очень многое, уж больно хороша эта ФС. Apple пытается сделать что-то подобное с APFS, но пока что за пределами macOS на компьютерах данная ФС недоступна, и о её применимости на серверах говорить нечего.

Вменяемая и хорошая документация по всем базовым сервисам. При первой настройке фряхи мне не нужно было гуглить, потому что установщик простой и понятный, все маны есть в системе. Я просто сделал man ifconfig и понял, как настроить виртуальную сетку руками. Я просто сделал man rc.conf и понял, как это автоматизировать.

С документацией есть ещё один приятный момент: срок её устаревания гораздо больше. Я смог настроить pf по мануалу на русском языке 2010 года выпуска, к примеру. Документация к линукса устаревает ежедневно с новым пердежём Леннарта нашего Поцтеринга (при всём уважении к systemd).

Клетки (jails). Чуть сложнее в настройке, чем LXC, но заметно легче по ресурсам.

Я вот вообще не осилил LXC. А клетки вполне себе осилябельны, что по мне — весьма неплохо.

Отсутствие systemd. Да, в каких-то случаях он удобен, но вот когда тебе просто надо развернуть один маленький сервис, systemd может как облегчить жизнь, так и усложнить (например, чтение логов).

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

Обычные текстовые логи. Серьезно, грепать куда удобнее и быстрее, чем читать выхлоп journalctl :).

Вкусовщина, но допустим, что так.

Станислав выделяет несколько минусов, которые я считаю плюсами:

BSDшные версии утилит, которые зачастую несовместимы с GNUтыми ни синтаксисом, ни форматом входных данных.

ЭТО ЖЕ ОФИГЕННО! Во всяком случае, когда твоя основная машина работает на macOS, где все консольные утилиты по умолчанию BSD-шные, а шелл у меня и так испокон веков zsh, так что я вижу только преимущества в том, что на сервере подобный десктопному сет консольных утилит.

Непривычная настройка сети, маршрутизации. Я привык использовать ip route, а тут все через route с виндоподобным синтаксисом.

Смотрим предыдущий пункт. В macOS route работает точно так же.

Клетки довольно сильно отличаются по схеме работы от привычных LXC контейнеров.

…или «LXC-контейнеры сложнее, чем клетки». Нет, серьёзно, LXC я не осилил ни в каком виде.

Зубо- и мозгодробительные фаерволы, которых аж несколько штук.

Just use PF! Я вот iptables не осилил толком, каюсь, а с PF за два дня неспешного тыканья мы со Стасом разобрались. Возможно, если основная цель конкретной машины — роутинг, ей стоит ставить OpenBSD, ибо там PF свежее, но для простой (псевдо)домашней тачки это не принципиально.

В моих дальнейших планах — постройка Linux-free окружения как минимум дома (включая пресловутый «роутер на фряхе»). Насколько это получится и с чем я столкнусь в будущем — покажет время.

← Как сделать американский Apple ID бесплатно за 5 минут FreeBSD Jails 101: краткое руководство по поднятию первой клетки →