Добавление дисков в NAS4Free

Добавление дисков в NAS4Free

настройка NAS4Free

Данная статья немного нарушает последовательность записей, посвященных организации отказоустойчивого файлового хранилища на основе NAS4Free и файловой системы ZFS. Но тем не менее будет полезна ИТ специалистам и “всем интерисующимся”, т.к. поможет выполнить добавление дисков в NAS4Free уже после конфигурации системы. Для начала немного пред истории и дополнительной информации.

На днях отыскал в своих “запасах” новый жесткий диск Seagate Laptop Thin HDD ST500LT012-9WS142 (500Gb, 5400 rpm, 8 mb cache) – то что нужно для хранения музыкальной коллекции. Подключив данный HDD к хранилищу и зайдя в веб-интерфейс управления NAS4Free, столкнулся со следующей ситуацией. Диск определяется, его можно импортировать на соответствующей вкладке: Диски – Управление – добавить диск, нажав на “+”.  При этом будет доступна функция форматирования диска, а также включение S.M.A.R.T. режима.

Добавив и отформатировав диск (в моем случае используется файловая система ZFS), необходимо перейти к последующей его настройке, но диск более нигде не доступен (не отображается)!

В используемом сетевом хранилище задействована файловая система ZFS. Два диска сконфигурированы в режим Mirror (зеркало) и предназначены для хранения важных данных и backup’ов. Третий диск должен выполнять функции по хранения медиа файлов, при этом решено было его организовать в отельный ZFS Pool. Стоит отметить – файловая система ZFS прекрасно работает на “голых”/чистых/не размеченных дисках, но бывают ситуации, связанные с переносом и модификаций хранилища (в том числе при замене и добавлении дисков), когда могут возникнуть конфликты портов.

Суть в том, что во FreeBSD и производной от нее – NAS4Free используется принцип “всё – файл”. Устройства, каталоги, файлы, порты устройств – все элементы системы представлены однотипно и в виде файлов. При этом имеется одна неприятная особенность – дисковые устройства нумеруются по мере обнаружения. Поэтому, если к хранилищу подключить новый HDD, то после перезагрузки имена устройств могут сместиться. С такой ситуацией я и столкнулся. Несмотря на это, ZFS спокойно собирает пул, в котором могут быть перепутаны не только порты, но и заменен RAID-контроллер. Использование GPT разметки на дисках поможет избежать лишних конфликтов портов и устройств, повысит дополнительно отказоустойчивость системы в целом, снизит потребность в ее обслуживании. Также GPT разметка полезна при переносе ZFS Pool’а на другую операционную систему.

Чтобы завершить добавление диска, а также создание ZFS pool’а необходимо подключиться по SSH к нашему хранилищу и выполнить ряд операций в консоли. В моем случае используется диск /ada0, если дисков несколько – выполняйте команды для каждого из них. При этом всегда придет на помощь краткий список основных команд для ZFS.

  • очищаем информацию о разметке на диске

zpool labelclear /dev/ada0

  • создаем GPT таблицу

gpart create -s GPT /dev/ada0

  • Создаем выровненный по 4k раздел. При этом удобнее всего создавать метки для разделов по их модели или серийному номеру (или части этой информации).

gpart add -t freebsd-zfs -l ST500L -a 4K /dev/ada0

  • Создаем устройство с конкретным указанием 4K секторов (поверх ранее созданного раздела). Стоит отметить – для raidz, raidz2 а также mirror достаточно выполнить указанную операцию только для одного диска. Если же вы создаёте страйп (аналог raid 0), то эту команду необходимо выполнить для каждого диска массива.

gnop create -S 4096 /dev/gpt/ST500L

  • Создаем ZFS Pool. Перед выполнением команды небольшой комментарий: /mnt/pool2 – место монтирования создаваемого пула данных, следующее значение является названием пула (pool2), далее указывается режим/формат создаваемого пула (например, raidz)- в нашем случае используется один диск, поэтому значение не указано. Если вы конфигурируете несколько дисков и команда становится слишком длинной, для того чтобы она отработала корректно – необходимо указать символ “\” (переход на другую строку).

zpool create -m /mnt/pool2 pool2 /dev/gpt/ST500L.nop

  • Выполняем небольшие оптимизации по работе пула (отказ от записи времени доступа к файлам повысит скорость доступа к файлам).

zfs set atime=off pool2

zfs set checksum=fletcher4 pool2

  • Экспортируем и импортируем пул, убирая лишний элемент (прокладку) в лице gnop устройства:

zpool export pool2

gnop destroy /dev/gpt/ST500L.nop

zpool import -d /dev/gpt pool2

  • Оптимизация (по желанию), связанная с назначением на указанный датасет настройки, недопускающей создания “кривых” имен файлов:

zfs create -o utf8only=on pool2/MediaBox

  • Последнее действие – назначение прав на созданный ZFS Pool:

chmod -R 777 /mnt/pool2

Последним этапом в добавлении диска и создании пула данных (ZFS Pool) является импорт созданного пула в веб-интерфейсе NAS4Free и настройка поведения дисков.

blank

Занимаюсь IT с 2007 года. Всё началось с увлечения — разгона компьютерного оборудования. Много воды и азота утекло с тех пор... Сейчас уже более 3х лет со своей командой оказываю комплексную поддержку и продвижение бизнеса: SEO, Яндекс.Директ, рассылки и удалённое обслуживание серверов. Буду рад помочь, обращайтесь!

Оцените автора
IT для специалистов и бизнеса
Добавить комментарий