FreeBSD установка и настройка NAS

Автор: | 11.02.2021

После нескольких лет эксплуатации файлового хранилища на базе nas4free (xigmanas), решил перейти на полноценную ОС. Выбор пал на FreeBSD и на это есть несколько причин:

  • FreeBSD бесплатная
  • Система очень стабильна и вылизана
  • Очень хорошая документация
  • Поддержка ZFS из коробки

Итак с системой определились переходим к железу. Требования были следующие:

  • Хороший проветриваемый корпус
  • Наличие отсеков под HDD минимум от 4 штук
  • Объем оперативной памяти минимум 8Gb или более, желательно с ECC

В загашнике был HP Microserver Gen 8 с процессором E3-1265L V2 с 16 Gb DDR3 ECC. Далее идем на https://www.freebsd.org/ и качаем свежий образ и записываем его на флешку или диск. Установка самой FreeBSD я считаю вообще тривиальной, и сводится к нажатию Next > Next > Finish. Выбор пакетов для установка тоже остается по вкусу, т.к. базовая система ставится всегда, из пакетов я выбираю lib-32 без дебага. Файловую систему для системного диска я выбрал UFS (почему не ZFS, потому что отказоустойчивости на системном разделе не будет). После завершения установки загружаемся в консоль и приступаем к настройке сервера.

1. Метки дисков в fstab

Иногда случается что при установке usb накопителя могут сбиться имена дисков и тогда операционная система может не загрузиться ссылаясь на невозможность смонтировать корневую файловую систему или файл подкачки. Поэтому лучше сделать монтирование разделов по меткам. Для этого загружаемся в однопользовательском режиме и создаем метки разделов.

Для начала посмотрим какие разделы монтируются

где ada0p2 у нас корневой раздел, а ada0p3 раздел подкачки. Далее назначаем метки разделам:

ada0p2 — rootfs

ada0p3 — swap

Далее выходим из однопользовательского режима

и ждем завершения загрузки системы. Теперь открываем файл fstab и вносим коррективы

Сохраняем и перезагружаемся.

2. Настройка сети

Если во время установки сеть не настроилась то лучше сделать это сейчас и перейти уже к настройке по SSH.

У меня определилась сетевая карта hn0 и с настроенным адресом. Но в случае отсутствия адреса приступаем к настройке.

И добавляем в файл следующие строки, не забываем что сетевая карта hn0

Настраиваем DNS

После внесения изменений нужно перезапустить сервак (так офф документация советует).

3. Русификация консоли и терминала

Начнем с консоли:

Проверяем локали в системе

Использовать будем ru_RU.UTF-8

Смотрим доступные keymaps

  • keymap=“ru” — переключение на русский клавишей CAPS Lock;
  • keymap=“ru.shift” — переключение на русский клавишей CAPS Lock, но верхний ряд на клавиатуре by default будет цифровой;
  • keymap=“ru.win” — переключение на русский клавишами CTRL+SHIFT.

Выбираем понравившийся для указания в /etc/rc.conf

Выбираем шрифт, посмотреть доступные можно командой

Из них:

  • vgarom-8×8.fnt — матрица 8×8 с поддержкой русских символов;
  • vgarom-8×14.fnt — матрица 8×14 с поддержкой русских символов;
  • vgarom-8×16.fnt — матрица 8×16 с поддержкой русских символов (используется по умолчанию);
  • vgarom-16×32.fnt — матрица 16×32 с поддержкой русских символов (для wide мониторов).

Итак в файле /etc/rc.conf должно получится нечто следующее

Так-же добавляем строчку чтобы консоль загрузилась в графическом режиме если кириллица все еще не отображается нормально после перезапуска машины

Для терминала:

Будем использовать login class, открываем файл

и приводим класс к следующему виду

после этого нужно синхронизировать базу

Для существующего пользователя меняем класс.

Где user_name имя пользователя

И перезапуск

После настройки SSH, можно подключиться удобным терминалом и настраивать сервер более приятным способом.

3. ZFS (Zettabyte File System)

Открываем файл

И добавляем

Перезапускаем систему и приступаем к настройке пула.

У меня есть 2 диска для хранилища (da1, da2)

Для начала диски нужно выровнять если они с сектором 4k, для этого удаляем разметку с них

Теперь создаем GPT раздел.

Создаем раздел со смещением и задаем метку дисков disk0, disk1. Для меток дисков рекомендую использовать их серийные номера. Для того чтобы узнать серийный номер диска выполните

Получившийся номер можно использовать как идентификатор диска, но для примера я использую disk0, disk1

По итогу у нас получилось два раздела GPT (da1p1, da2p1) с метками disk0, disk1 и с отрезанными 4 мегабайтами в начале диска (это пригодится для замены диска)

Поэтому создаем пул с названием storage и на GPT метках

Для аналога RAID1

Для аналога RAID5

Для аналога RAID6

Теперь включаем сжатие

и задаем точку монтирования, если не устраивает по умолчанию

4. Samba

Обозначим вводные данные:

  • Пользователь sambauser
  • Группа пользователя sambauser
  • Шара будет находиться /mnt/storage/files

Ищем самбу в пакетах

Ставим версию 4.13

После установка нам выдают что:

Конфигурация находится /usr/local/etc/smb4.conf

Логи /var/log/samba4

Включаем сервис самбы

Создаем директорию

Создаем пользователя sambauser

Задаем права на папку (пользователь и группа sambauser, пользователь и группа могут делать с файлами все что хотят),

Создаем пустой файл и открываем его для редактирования:

Проверяем наш конфигурационный файл на ошибки

Теперь нужно добавить нашего пользователей в samba.

Ну и перезапускаем samba

Финальные штрихи

Midnight Commander — файловые менеджер, клон Norton Commander

Screen — это оконный менеджер, разделяющий один физический терминал между несколькими процессами

Добавить комментарий