3

У меня есть домашний медиа-сервер с 2 x 3 ТБ дисками. В настоящее время он настроен с использованием mdraid (1), LVM и EXT4. Настройка была выполнена с помощью установщика ncurses Ubuntu Server.

Цель

Преобразуйте настройки для использования ZFS (RAIDZ) и добавьте 3-й диск емкостью 3 ТБ. Я хочу включить сжатие и дедупликацию на лету. Преобразование не должно требовать переустановки Ubuntu и всех пакетов. Не должно быть потери данных (если, конечно, во время процесса не произойдет сбой диска).

Как мне это сделать?

Дополнительный вопрос, лучше ли делать это с помощью btrfs, потому что, насколько я понимаю, я могу инициализировать массив одним диском, скопировать данные и затем добавить второй диск с помощью btrfs, но не с помощью zfs?

мой /proc /mdstat:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md4 : active raid1 sdb2[1] sda2[0]
      2930070069 blocks super 1.2 [2/2] [UU]

unused devices: <none>

мой pvs -v

    Scanning for physical volume names
  PV         VG   Fmt  Attr PSize PFree DevSize PV UUID
  /dev/md4   Data lvm2 a-   2,73t    0    2,73t MlZlTJ-UWGx-lNes-FJap-eEJh-MNIP-XekvvS

мои устройства lvs -a -o +

  LV     VG   Attr   LSize  Origin Snap%  Move Log Copy%  Convert Devices
  Data   Data -wi-ao  2,68t                                       /dev/md4(13850)
  Swap   Data -wi-ao  7,54g                                       /dev/md4(11920)
  Ubuntu Data -wi-ao 46,56g                                       /dev/md4(0)

1 ответ1

0

Короткий:

  • Я думаю, что нет конвертации 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 немного неэффективен, если приходится помещать много маленьких файлов в паритет).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .