3

У меня есть медиа-сервер Ubuntu с 4 ext4 2 ТБ дисками, 1 ext4 4 ТБ диском и 1 новым пустым 4 ТБ диском. Тома ext4 настроены как отдельные диски (не RAID и т.д.). Накопители емкостью 2 ТБ заполнены примерно на 70%, а накопители емкостью 4 ТБ заполнены примерно на 50%.

Я хотел бы преобразовать их все в общий пул ZFS для защиты от сбоев диска / защиты от битрейта, которую он предлагает. Мои вопросы: могу ли я сделать это по одному диску за раз (отформатировать пустой как ZFS, переместить данные из ext4 4 ТБ в ZFS 4 ТБ, затем добавить пустой пул ext4 4 ТБ в пул, затем переместить данные из один из дисков объемом 2 ТБ и добавление этого диска в пул и т. д. Это возможно? И какую конфигурацию люди порекомендуют для этого? RAID-Z?

1 ответ1

3

Вы можете добавить устройства в пул после его создания, но не совсем так, как вы себе представляете.

С ZFS единственная избыточная конфигурация, к которой вы можете добавить устройства, это зеркало. В настоящее время невозможно создать raidzN vdev с дополнительными устройствами после его создания. Добавление устройств к зеркалу увеличивает избыточность, но не доступную емкость хранилища.

Можно обойти это в некоторой степени, создав raidzN vdev требуемой конфигурации, используя разреженные файлы для устройств резервирования , затем удалив разреженные файлы перед заполнением vdev данными. Как только у вас появятся диски, zpool replace редкие (теперь не существующие) файлы на них. Проблема использования этого подхода в качестве не просто пути перехода к более идеальному решению заключается в том, что пул будет постоянно отображаться как DEGRADED а это означает, что вам нужно гораздо внимательнее присматриваться к распознаванию любого фактического устаревания хранилища; следовательно, я действительно не рекомендую это как постоянное решение.

Добавление устройств в пул ZFS на самом деле сопряжено с серьезным риском снижения устойчивости пула к сбоям, потому что все vdev-ы верхнего уровня должны быть функциональными, чтобы пул функционировал. Эти vdevs верхнего уровня могут иметь избыточные конфигурации, но не обязательно; вполне возможно запустить ZFS в конфигурации в стиле JBOD, и в этом случае сбой одного устройства с большой вероятностью приведет к разрушению пула. (Плохая идея, если вы можете избежать этого, но все же дает вам много возможностей ZFS даже в установке с одним диском.) По сути, избыточный пул ZFS состоит из комбинации JBOD одного или нескольких избыточных vdevs; не избыточный пул ZFS состоит из комбинации JBOD одного или нескольких vdevs JBOD.

Добавление vdevs верхнего уровня также не заставляет ZFS балансировать данные на новых устройствах; это в конечном итоге происходит для данных, которые перезаписываются (из-за характера копирования файлов при записи в системе и предпочитают vdevs с большим количеством свободного места), но это не происходит для данных, которые просто хранятся там и читаются, но никогда не перезаписываются. Вы можете сделать это, переписав данные (например, с помощью zfs send | zfs recv , предполагая, что для пула не включена дедупликация), но для этого необходимо предпринять определенные действия.

Исходя из чисел в вашем посте, у вас есть:

  • 4 × 2 ТБ дисков
  • Диски 2 × 4 ТБ

  • примерно 8 ТБ данных

Поскольку вы говорите, что вам нужна конфигурация с резервированием, учитывая эти ограничения (особенно набор доступных дисков), я бы, вероятно, предложил сгруппировать диски в виде зеркальных пар. Это даст вам макет пула, как это:

  • бак
    • зеркально-0
      • 2TBHDD1
      • 2TBHDD2
    • зеркало 1
      • 2TBHDD3
      • 2TBHDD4
    • зеркально-2
      • 4TBHDD1
      • 4TBHDD2

Эта установка будет иметь доступную для пользователя емкость хранения приблизительно 8 ТБ, передавать или принимать служебные данные метаданных (у вас есть два зеркала, обеспечивающие 2 ТБ каждое, плюс одно зеркало, обеспечивающее 4 ТБ, в общей сложности 8 ТБ). Вы можете добавить больше пар зеркал позже, чтобы увеличить емкость пула, или заменить пару дисков емкостью 2 ТБ на диски емкостью 4 ТБ (хотя имейте в виду, что повторное резервное копирование в случае сбоя диска в паре зеркал создает серьезную нагрузку на остальные диски). ), в случае двусторонних зеркал значительно возрастает риск полного выхода из строя зеркала). Недостатком этой конфигурации является то, что пул будет практически заполнен с самого начала, и общее предложение заключается в том, чтобы пулы ZFS оставались заполненными примерно на 75% ниже. Если ваши данные в основном только когда-либо читаются, вы можете уйти с меньшим запасом, но производительность сильно пострадает, особенно при записи. Если ваш набор данных требует много записи, вы определенно хотите, чтобы с распределителем блоков работал некоторый запас. Таким образом, эта конфигурация будет "работать" для некоторого определения слова, но будет неоптимальной.

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

В принципе, вы могли бы заменить mirror-0 и mirror-1 выше на один raidz1 vdev, в конечном итоге состоящий из четырех жестких дисков по 2 ТБ (что дает вам полезную емкость хранения 6 ТБ, а не 4 ТБ) и возможность выжить на любом жестком диске 2 ТБ сбой до того, как ваши данные окажутся под угрозой), но это означает, что три из этих дисков были изначально подключены к ZFS. Учитывая Ваши показатели использования это звучит , как это может быть возможно с некоторыми данными перетасовки вокруг. Я бы не советовал смешивать vdevs с разными уровнями избыточности, и я думаю, что инструменты даже заставят вас в этом случае эффективно сказать «да, я действительно знаю, что делаю».

Смешивать диски разных размеров в пуле (и особенно в одном vdev, за исключением случаев перехода на диски большей емкости) не очень рекомендуется; В конфигурациях зеркала и raidzN vdev наименьший составляющий диск в vdev определяет емкость vdev. Смешивание vdevs различной емкости выполнимо, но приведет к несбалансированной настройке хранилища; однако, если большая часть ваших данных редко читается, а когда чтение читается последовательно, последние не должны представлять серьезную проблему.

Наилучшей конфигурацией , вероятно, было бы получить дополнительные три диска по 4 ТБ, затем создать пул, состоящий из одного raidz2 vdev, состоящего из этих пяти дисков по 4 ТБ, и эффективно отключить диски емкостью 2 ТБ. Пять дисков емкостью 4 ТБ в raidz2 обеспечат вам 12 ТБ хранилища (оставляя достаточно места для роста), а raidz2 даст вам возможность пережить сбой любых двух из этих дисков, оставив настройку зеркала в пыли с точки зрения устойчивости к проблемам с диском. При некотором планировании и перетасовке данных будет легко перейти на такую установку без потери данных. Raidz2 с пятью дисками также близок к оптимальному с точки зрения затрат на хранение в соответствии с тестами, проведенными одним пользователем и опубликованными в дискуссионном списке ZFS On Linux еще в конце апреля, показывающий полезную емкость хранилища на уровне 96,4% от оптимальной при использовании устройств объемом 1 ТБ, побитую только с конфигурацией шесть дисков на vdev, которая дала 97,3% в том же тесте.

Я понимаю, что пять 4-ТБ накопителей могут быть непрактичными в домашних условиях, но имейте в виду, что ZFS является корпоративной файловой системой, и многие из ее ограничений (особенно в этом случае, ограничения на рост избыточных vdevs после создания) отражают тот.

И всегда помните, ни один тип RAID не является резервным копированием. Вы оба должны быть достаточно защищены от потери данных.

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