Ubuntu ZFS или другой вопрос о структуре файловой системы
У меня есть система, в настоящее время настроенная как сервер Plex под управлением Ubuntu 16.04 LTS. Я нахожусь в процессе обновления сервера и задавался вопросом о лучшем способе размещения файловых систем. Я смотрел на переход к пулам ZFS, но я не был уверен, что это было идеально.
В текущей машине носители распределены по нескольким дискам. 4x8 ТБ накопителей Seagate 5400 об / мин и 4x4 ТБ (несколько разных типов).
В настоящее время все они смонтированы в виде отдельных файловых систем, и половина используется для резервного копирования другой половины с помощью скрипта rsync, который я собрал вместе.
Одним из недостатков текущей настройки является то, что мне нужно выполнить серию точек монтирования для мультимедиа, дисков с фильмами, музыкальных дисков, а также "Запуск сериалов и готовых сериалов". В частности, я хотел бы объединить все телевизоры вместе, но в настоящее время их более 8 ТБ.
Текущая настройка является функциональной, но какая-то более консолидированная установка, которая объединяет все это в один гигантский "медиа-диск", кажется привлекательной альтернативой.
Текущее расположение зеркал желательно сохранять в некоторой форме, и способность пережить сбой диска имеет гораздо большее значение, чем производительность.
Мне также очень хотелось бы иметь возможность добавлять новые диски в установку без необходимости копировать все и копировать все обратно в установку.
Новая система будет построена на базе процессора i5 и 16 ГБ оперативной памяти.
ZFS выглядела так, как будто могла хорошо справиться с работой Идея состоит в том, чтобы создать два пула в настройке зеркала (RAID-Z, если я правильно следую терминологии). Сложность любой настройки здесь заключается в том, что в настоящее время у меня есть зеркала, но я не могу переназначить все диски сразу, поскольку данные необходимо перемещать в новый пул поэтапно. Один из других параметров RAID был бы полезен, если бы я мог расширять диск пула 1 за один раз, когда я копирую данные из внешнего пула в него, а затем добавляю скопированный диск как новый диск в пул.
Есть ли что-то связанное с ZFS, что делает его дико непригодным для этой задачи?
Есть ли у людей какие-либо предложения, как они подошли бы к такой установке?
Мне лучше придерживаться текущей настройки?
1 ответ
В настоящее время я использую ZFS для этого случая использования (т.е. хранилище медиа-центра). Я использовал это в течение нескольких лет.
Вы действительно можете настроить свой ZFS как зеркало:
- Данные копируются среди всех дисков в зеркале
- Доступный размер - это размер вашего самого маленького диска.
- Таким образом, вы можете имитировать обычное зеркалирование RAID, создав zpool с X-зеркалами, каждое из которых содержит 2 диска.
Или как RAID-Z 1/2/3:
- Вы можете потерять 1, 2 или 3 диска в зависимости от типа RAID-Z
- Размер RAID-Z ограничен меньшим диском, поэтому наличие 4x4 ТБ и 4x8 ТБ эквивалентно 8x4 ТБ, если все настроены на одном и том же винограде. Итак, в вашем случае рекомендуется создать 2 разных raid-z по 4 диска в каждом пуле.
Кроме того, ZFS пока не поддерживает добавление диска в существующий RAID-Z. Поэтому, если вы создадите RAID-Z из 4 дисков, он никогда не сможет содержать более 4 дисков (но вы можете обновить каждый диск, например, на больший).
Также важно знать, что для операций чтения / записи требуется много ЦП / ОЗУ. По умолчанию ZFS настроена на использование всей свободной оперативной памяти минус 1 ГБ.
Для получения более подробной информации, этот документ описывает, как работает ZFS, и сравнивает его с обычным RAID.
NB. Если вы собираетесь использовать ZFS, обязательно создайте zpool с ashift=12
вариант как этот:
zpool create -o ashift=12 ...
Это устанавливает размер сектора в 4096B вместо значения по умолчанию 512B. Это значительно улучшит ваши характеристики в вашем случае использования.