Короткий:
Я думаю, что нет конвертации ext4 в ZFS на месте.
Для медиа-серверов я бы рекомендовал SnapRAID вместо
Longer:
ZFS использует очень уникальную и очень особенную внутреннюю структуру, которая плохо вписывается в структуру ext4. (Читайте: Возможно, кто-то может создать некоторую искусственную структуру ZFS поверх некоторого ext4, но я сомневаюсь, что это преобразование быстрое, надежное и простое в использовании.)
SnapRAID, однако, не требует, чтобы вы конвертировали что-либо. Просто используйте его с (почти) любой существующей файловой системой, чтобы создать избыточность для файлов там, чтобы вы могли проверять и восстанавливать файлы в случае сбоя диска или (немого) повреждения.
За и против:
SnapRAID неэффективен, если он должен создавать избыточность для многих небольших файлов, поскольку каждый файл создает определенные издержки (Padding) в паритете.
SnapRAID не предлагает само сжатие.
На медиа-сервере вам обычно не требуется сжатие, поскольку медиа-файлы обычно уже сжаты (MP4, JPG, PDF).
Если вам случится использовать какую-то файловую систему, которая разрешает сжатие, вы можете использовать ее.
Но только на уровне устройства, а не в полном пуле (как ZFS).
SnapRAID не предлагает дедупликацию на уровне блоков.
На сервере мультимедиа обычно достаточно использовать функцию snapraid dup
, поскольку файлы мультимедиа обычно не используют много дублирующих блоков.
(Исключение: youtube-dl
. Если вы загружаете видео два раза с одинаковым качеством, оно отличается только несколькими байтами. Не всегда. Но довольно часто
Просто сохраните идентификатор видео Youtube в имени файла, чтобы идентифицировать два похожих файла.)
Для дедупликации ZFS требуется много памяти. План 1 ГиБ ОЗУ на 1 ТиБ данных, лучше больше!
Если оперативной памяти недостаточно, вам нужно добавить сверхбыстрое устройство SSD-кэширования.
ZFS должен искать 1 случайный сектор на каждый записанный блок дедупликации, поэтому при "всего" 40 кП / с на SSD эффективная скорость записи ограничивается примерно 100 МБ / с.
(Обычно ZFS способна использовать параллельную полосу пропускания всех устройств, поэтому в наши дни вы можете легко достичь скорости записи 1 ГБ / с и более на потребительском оборудовании, но это невозможно, если вы включаете дедупликацию и не имеете огромных объемов ОЗУ.)
Обратите внимание, что у меня никогда не было проблем, когда SnapRAID был необходим для восстановления данных.
Поэтому я не могу поклясться, что SnapRAID действительно способен восстанавливать данные.
Однако у меня уже было достаточно проблем, когда SnapRAID был полезен для проверки правильности данных, и у меня сложилось впечатление, что SnapRAID действительно работает.
На ZFS вы должны планировать заранее. Вы должны знать и планировать каждый аспект всего жизненного цикла вашего ZFS-диска заранее, прежде чем начать работу с ZFS.
Если вы можете сделать это, нет лучшего решения, чем ZFS, поверьте мне!
Но если вы забудете о чем-то, что произойдет в будущем незапланированно, вы обречены. Затем вам нужно перезапустить с нуля с ZFS:
Создайте новый второй свежий и независимый ZFS-пул и перенесите туда все данные.
ZFS поддерживает вас в этом. Но вы не можете избежать дублирования данных временно. Как вам нужно, когда вы вводите ZFS.
Администрирование ZFS очень просто. Единственное, что вам нужно делать регулярно:
zpool scrub
Это все. Тогда zpool status
говорит вам, как исправить вашу проблему.
(Более 10 лет ZFS сейчас. В линуксе Проще говоря: ZFS - спасатель.)
OTOH на SnapRAID, вам не нужно никакого планирования. Просто пойти на это.
И меняйте свою структуру по мере необходимости, когда возникнет такая необходимость.
Таким образом, вам не нужно копировать свои данные, чтобы начать с SnapRAID. Просто добавьте диск четности, настройте и все готово.
Но SnapRAID гораздо сложнее администрировать, если у вас проблемы.
Вы должны научиться использовать snapraid sync
snapraid scrub
, snapraid check
snapraid fix
.
snapraid status
в большинстве случаев, но часто вас удивляют, что может быть правильным способом что-то исправить, поскольку не существует очевидного единственного лучшего способа (SnapRAID похож на швейцарский армейский нож, но вам нужно знать, как правильно обращаться с ним правильно).
Обратите внимание, что в Linux у вас есть два различных варианта ZFS:
- ZFSonLinux, который является расширением ядра.
Более новые ядра, которые вы увидите в Ubuntu 20.04, вероятно, будут несовместимы.
- ZFS-FUSE, который обычно немного медленнее, не зависит от ядра.
- Оба имеют плюсы и минусы, это выходит за рамки этого ответа.
- Если ZFS недоступна (возможно, вам нужно что-то исправить), все ваши данные будут недоступны.
- Если устройство выходит из строя, в зависимости от используемой избыточности, либо все данные полностью доступны, либо все данные полностью потеряны.
SnapRAID - это GPLv3 и полностью аддон в пользовательском пространстве.
- Если SnapRAID недоступен, все ваши данные по-прежнему сохраняются и доступны.
- Если устройство выходит из строя, все данные на других устройствах по-прежнему не повреждены и доступны.
Как правило, медиа-сервер имеет свойство долго хранить старые данные и постоянно растет. Это именно то, для чего был разработан SnapRAID.
Snapraid позволяет добавлять новые диски или даже новые паритеты позже.
Вы можете смешивать разные файловые системы на всех дисках.
SnapRAID просто добавляет избыточность.
SnapRAID не предназначен для резервного копирования.
В медиа-архивах вы часто не нуждаетесь в резервном копировании.
ZFS RAIDZ также не является резервной копией.
Однако zfs send
в сочетании со zfs snapshot
предлагает очень простую в использовании функцию круглосуточного резервного копирования и восстановления.
ZFS предназначена для файловых систем, где крайне важно, чтобы у них никогда не было простоев. Почти все может быть исправлено на лету без простоев.
Простои случаются только в том случае, если избыточность / самовосстановление ZFS больше не способны восстановить ущерб. Но даже тогда ZFS более чем полезна и перечисляет все ваши потерянные данные. Обычно.
OTOH SnapRAID может восстанавливать данные, но это делается в автономном режиме.
Так что пока не восстановлено, данные недоступны.
Также полезно узнать, какие данные потеряны. Но это сложнее, чем с ZFS.
Рекомендация по лучшей практике с SnapRAID (ZFS выходит за рамки этого ответа):
- Оставайтесь с LVM!
- Сделайте каждый диск полным PV. Нет таблицы разделов.
Если вы хотите зашифровать диск, поместите PV в контейнер LUKS.
- Поместите каждый такой PV в его собственный VG. Таким образом, неисправный диск не вредит другим VG.
Вы можете объединить несколько небольших дисков в одинаковый размер
- Создайте группу LV одинакового размера на всех этих VG.
- Создайте группу дисков Parity, которые больше, чем диски данных.
- Оставьте достаточно места (100 ГБ) на VG для создания снимков и небольших настроек файловых систем.
- В конце каждого PV должна быть свободная комната (см. Достаточно места выше).
Это для современных файловых систем, которые в конце создают суперблочные копии.
Если вы заполните PV полностью, эти FS (ZFS) могут обнаружить весь диск или PV вместо LV.
- Создайте FS по вашему выбору для дисков данных на этих LV.
- Используйте ZFS для дисков четности на LV. Здесь не требуется сжатие / дедупликация.
Обратите внимание, что это не идеально, поскольку ZFS обычно создает свою FS в /
.
Как настроить и администрировать SnapRAID выходит за рамки этого ответа.
Почему ZFS для паритета:
Хорошо, когда диск данных выходит из строя (нечитаемые сектора), вы можете копировать читаемые файлы. Нечитаемые файлы найдены таким образом легко. Затем вы можете восстановить его.
Однако четность SnapRAID - это всего лишь один большой файл. Если вы копируете этот файл, вы хотите быть уверенным, что он не имеет тихого повреждения. ZFS обеспечивает это независимо от SnapRAID. В случае повреждения, ZFS сообщит вам об этом, так что вы знаете, что должны проверить файл четности.
Проверка всего файла в случае нескольких дефектных секторов занимает много времени, так как все данные всех дисков должны быть полностью прочитаны.
Почему не BTRFS?
- ZFS работает абсолютно стабильно, тихо и безупречно в течение многих лет.
- OTOH это 2019, и у BTRFS все еще есть множество серьезных проблем.
- Например, BTRFS реагирует непредсказуемо и нестабильно, если вы заполните его полностью, если вы можете заполнить его полностью. В отличие от таких проблем не известны с ZFS.
- Вполне вероятно, что вы иногда достигаете полной четности, если не будете осторожны (SnapRAID немного неэффективен, если приходится помещать много маленьких файлов в паритет).