Найти тему
ИТ разнообразно

Как мы переносим (многие) наши серверы с Linux на FreeBSD. Часть-1.

Оглавление
Unsplash
Unsplash

Настройка системы и jails

Преамбула

После моего поста о том, почему мы переводим (многие) наши сервера на FreeBSD, я получил много отзывов. Много вопросов, много комментариев. Множество электронных писем от пользователей Linux с вопросами о том, как мы мигрируем, как jails могут заменить lxc или (частично) Docker, и как мы мониторим и выполняем резервное копирование/восстановление.

Я напишу несколько постов о том, как мы это делаем. Конечно, он не будет охватывать все варианты использования, но наверняка сработает для наиболее распространённых.

Давайте начнём с общей идеи установки, которую я собираюсь описать. Одна из вещей, которую я всегда пытался сделать — это оставить операционную систему хоста (гипервизоры виртуальных машин, такие как XCP-NG или Proxmox Server, FreeBSD с jails и/или Bhyve, хост Alpine Linux lxc, Debian с Docker и т. д.) максимально простой и пустой.

Вот почему мы сохраняем здесь ту же настройку с хост-системой FreeBSD с как можно меньшим количеством пакетов (или портов). Это обеспечит более простые обновления, более простые процедуры резервного копирования/восстановления и меньшую поверхность атаки. Неиспользуемые службы или исполняемые файлы могут быть проблематичными, поэтому давайте не будем их включать в нашу настройку.

Я собираюсь описать наш "базовый" хост FreeBSD и некоторые jails, которые будут содержать сервисы. Существует множество систем управления jails, таких как BastilleBSD, cbsd, iocage, старый ezjail и т. д. Мне нравятся простые (но мощные) решения без какой-либо базы данных настроенных/работающих jails, так как это может быть проблемой в случае резервного копирования/восстановления. Мне нравится подход BastilleBSD, поэтому мы использовали его для наших серверов. BastilleBSD представляет собой набор shell-скриптов, небольшой, не нуждается в какой-либо базе данных, активно развивается, не нуждается в каких-либо зависимостях и работает как на ZFS, так и на UFS. iocage, например, нуждается в ZFS, поэтому серверы UFS не поддерживаются и, похоже, больше не разрабатывается активно. Кроме того, BastilleBSD не взаимодействует с другими jails-системами, поэтому вы можете смешивать и сочетать всё, что вам нравится. Тем не менее, я рекомендую выбрать систему управления jails и придерживаться её. Мы сделали это и используем BastilleBSD.

Я не буду описывать базовую установку FreeBSD. Это просто, легко, быстро и полно хорошей документации. Наиболее важным решением является выбор файловой системы, которую вы собираетесь использовать. Мы используем ZFS, когда это возможно, так как это даёт нам много хороших возможностей. Для систем с более ограниченными ресурсами (или в определенных ситуациях, когда ZFS не рекомендуется и не применима) мы просто используем UFS. ZFS также имеет моментальные снимки, поэтому резервное копирование и восстановление также довольно просты.

Продолжение следует...

Перевод с некоторыми авторскими заголовками. Автор оригинала: Stefano Marinelli.