Оптимальная конфигурация пула ZFS для домашнего NAS

1607
Stéphane Goetz

Я хочу обновить домашний NAS, который я использую для хранения фильмов (с Plex Media Server), изображений и резервных копий.

В настоящее время в пуле raidz1 имеется 5 дисков по 3 ТБ.

Я был ограничен количеством портов SATA, но с приобретением 8-портового контроллера у меня теперь есть ограничение в 14 портов SATA. (-1 для системы так 13 портов).

Поскольку я намереваюсь сохранить этот сервер в течение нескольких лет, я хотел сделать его производительным и совместимым с будущим способом, поэтому я прочитал, что рекомендуется использовать твердотельные накопители для хранения ZIL и L2ARC для лучшей производительности записи и чтения.

Для ЗИЛа я прочитал, что достаточно нескольких ГБ, но рекомендуется отразить его.

Итак, это настройка, о которой я думал:

  • 1 система SSD
  • 11 дисков для хранения (raidz2)
  • 2 SSD нарезаны для ZIL / L2ARC (зеркальное отображение ZIL и добавление двух других срезов для кэширования)

Я рассуждаю о нарезанном SSD:

  • Мне не нужна самая быстрая система, поэтому я могу согласиться с компромиссом между ZIL и L2ARC, разделяющими IO
  • У меня все еще есть преимущество зеркалирования ZIL, поэтому в случае аварии я должен быть в безопасности

Диски для хранения в настоящее время являются дисками по 3 ТБ, и, как я понимаю, общий размер пула (numberOfDisks-2)*sizeOfSmallestDiskбудет означать: (11-2) * 3 ТБ = 27 ТБ

Итак, мои вопросы:

  • Хорошо ли сбалансирована эта настройка?
  • Можно ли нарезать твердотельные накопители для журналов и кеша?
  • Правильна ли моя формула для размера пула?
  • Смогу ли я заменить диски один за другим на диски большего размера, и как только все они будут обновлены, я увеличу пул? Например, замените диски дисками объемом 4 ТБ и получите хранилище объемом 36 ТБ.
  • Будет ли это нормально работать на Linux? В настоящее время у меня есть OpenIndiana и я хочу перейти на Ubuntu Server.

Заранее спасибо.

Мои главные источники вдохновения:

2
Сколько памяти у вашей системы? Для домашнего использования, я сомневаюсь, что вы получите значительную выгоду за l2arc. Возможно, вам лучше заполнить систему дисками в зеркальных парах (например, raid10). Это будет работать быстрее, чем raidzn, и будет проще для обновления. Zoredache 7 лет назад 0
Какие у вас есть резервные копии? 11 + 2 для пула RAIDZ2 немного велика, и для восстановления резерва может потребоваться длительное время, если предположить, что вы даже достаточно быстро поймете первый сбой диска и замените неисправный диск. Andrew Henle 7 лет назад 0
На данный момент у меня 16 ГБ ОЗУ, я подумал, может быть, у меня должно быть 32, но точно не знаю. Как бы я сделал это в зеркальных парах? Для резервных копий у меня есть Amazon Glacier для важных частей, но сервер уже является резервной копией для других машин, поэтому многие вещи можно восстановить. Вы говорите долго, но сколько часов / дней мне ожидать? Stéphane Goetz 7 лет назад 0
@ StéphaneGoetz Это зависит от вашей текущей нагрузки (дополнительные попадания замедляют операции восстановления), производительности вашего диска (RPM для жестких дисков, записи IOPS для SSD), фрагментации пула, объема данных в пуле (безусловно, самая большая точка) и операционной системы (У Solaris есть последовательное изменение версии, что ускоряет его, пока нет иллюминаторов / OpenZFS). user121391 7 лет назад 0

1 ответ на вопрос

1
user121391

Большинство ваших пунктов верны, поэтому я сосредоточусь на остальном:

  1. Использование устройства SLOG для ZIL помогает вам только с небольшими синхронизированными записями, так что это довольно обязательно, если вы хотите хранить на нем виртуальные машины, и совершенно бесполезно в большинстве других случаев домашнего использования, особенно при резервном копировании и потоковой передаче мультимедиа. Как вы всегда можете позже добавить и удалить, вы должны начать без, а затем добавлять только при необходимости.

  2. L2ARC может повысить производительность чтения, но она медленнее, чем ОЗУ, требует дополнительной ОЗУ и помогает только при чтении тех же данных. Опять же, плохо для потоковой передачи всего фильма или музыки, но хорошо, если у вас хостинг на веб-сайте с большим доступом или если сотни пользователей обращаются к общим файлам. Основное правило таково: сначала максимально исчерпайте объем оперативной памяти (в зависимости от вашей платы 32, 64, 128 или 256 ГБ, скорее всего), затем подумайте о L2ARC.

  3. ZIL и L2ARC на одном устройстве обычно не очень хорошая идея, так как их потребности прямо противоположны:

    • ZIL постоянно записывается для небольших случайных синхронизированных операций ввода-вывода (большие и последовательные операции ввода-вывода обходят его, асинхронные операции ввода-вывода вообще не используют его), что означает, что вы хотите использовать твердотельный накопитель с очень низкой задержкой записи (Intel - единственный поставщик I мы обнаружили, что эта характеристика задает даже для более дешевых потребительских твердотельных накопителей), допустимые значения IOPS при записи (здесь достаточно почти всех твердотельных накопителей) и большое количество TBW, поэтому твердотельные накопители не умирают каждый год от истощения. Для размера <10 ГБ обычно достаточно для небольших систем. Зеркальное отображение предпочтительнее, чтобы предотвратить потерю данных при сбое питания и SSD одновременно.
    • L2ARC, с другой стороны, должен быть в несколько раз больше (обычно> 64 ГБ, в зависимости от ОЗУ), редко записывается, но часто читается, поэтому вам нужны высокие IOPS при чтении, приемлемая задержка чтения и не слишком заботятся о TBW, В большинстве случаев зеркалирование - это пустая трата денег, так как это всего лишь кэш-устройство, которое можно без проблем потерять и восстановить.
  4. Конечно, возможен единый корневой пул, но вы избавите себя от головной боли, если отразите его. Так как обычно это не так много, два медленных диска или даже USB-устройства (каждая материнская плата имеет как минимум два USB-порта в качестве заголовков внутри) идеально подходят для домашнего использования, и вы получаете еще один пригодный для использования слот для дисков. Особенно при работе без ИБП два устройства rpool действительно дают вам душевное спокойствие.

  5. Ваш пул имеет правильный размер, но можно выбрать 12 дисков с 2x Z2 (6 дисков каждый) или 1x Z3 (12 дисков каждый). Как правило, при использовании Z1 / 2/3 сначала необходимо заполнить все имеющиеся в наличии слоты для дисков, поскольку при обновлении размера диска по одному тривиально, добавление большего количества дисков в дальнейшем невозможно.

  6. Я не знаю о Linux (должно работать нормально), но вы смотрели на другие системы на базе Illumos? OmniOS - это маленький, простой и стабильный продукт, который можно настроить в соответствии с вашими потребностями (он также включает зоны KVM и LX). SmartOS аналогична, но в значительной степени ориентирована на зоны (контейнеры), поэтому вы можете запускать все свои службы независимо друг от друга и даже запускать гостевые системы Linux в этих зонах для тех немногих служб, которые недоступны в Solaris. Существуют также Delphix и NexentaStore Community Edition, но я их не проверял.


Мое личное предложение:

  • Используйте любую операционную систему, с которой вам удобно (если вам нравится стабильность Solaris, попробуйте OmniOS или если вы хотите виртуализации, попробуйте SmartOS)
  • Используйте зеркальные rpools на USB-дисках (жесткие диски USB3 или флешки USB3 с памятью SLC), чтобы открыть больше слотов для дисков
  • Используйте 6 портов от материнских плат и 6 портов от платы HBA, чтобы вы могли потерять контроллер и ваша система продолжала работать
  • 2 свободных порта могут быть использованы в будущем для устройств SLOG или L2ARC в зависимости от ваших потребностей
  • Расположение (12 - очень хорошее число, 16 будет следующим, потому что большинство контроллеров имеют 4 или 8 портов):
    • Если вам нужна максимальная производительность: зеркала 6x2, каждое на обоих контроллерах
    • Если вам нужна максимальная устойчивость: 4x3 зеркала или 1x RAID Z3 (12) или 2x RAID Z2 (6)
    • Если вам нужно максимальное пространство: 1x RAID Z2 (12)
  • Сначала увеличьте объем оперативной памяти, затем все остальное

Что касается ваших последующих вопросов из комментариев:

Мне нравится идея использования двух зеркальных флешек USB3 для системы, но является ли она загрузочной?

USB-флешки по сути такие же, как и USB-диски, так что вы можете без проблем загрузиться с них (за исключением очень старых материнских плат, но все за последние десять лет должно быть в порядке). Некоторые системы, такие как SmartOS или ESXi, даже рекламируют это как лучший опыт.

Некоторые с другой стороны (например, FreeNAS) не рекомендуют его, потому что они не настроены для USB-накопителей и поэтому постоянно записывают на диски и довольно быстро изнашивают более дешевые (именно поэтому так много Raspberry Pis рано выходят из строя - система Linux считает, что у него неразрушимый жесткий диск, а не какая-нибудь USB-флешка или SD-карта стоимостью 5 евро, предназначенная для редких операций записи, например, с цифровой камеры).

С палками SLC (или настоящими твердотельными накопителями) у вас нет этих проблем. Конечно, они дороже, примерно от 30 до 40 евро за флешки объемом 16 ГБ (MachExtreme MX-ES - это единственные полезные вещи в этом секторе). SSD может быть дешевле (30 евро за 32 ГБ), но вам понадобится USB-адаптер, и они занимают больше места. Вы можете использовать их вне футляра для быстрого резервного копирования / обмена или внутри для контроля доступа (читай: если у вас есть дети, которым нравятся блестящие игрушки).

Кажется, мне не нужны диски с журналом и кешем, я должен использовать все 14 портов для дисков?

Зависит от ваших потребностей и бюджета. Если вы используете зеркала, вы можете добавить их позже. Если вы используете RAID-Zn, я бы установил окончательную сумму перед созданием пула, потому что вы не можете легко добавить больше. С другой стороны, вы можете захотеть оставить некоторые порты свободными для резервного копирования (например, с помощью слотов caddys для 3,5-дюймовых дисков) или для целей кэширования, если ваши потребности изменятся. Это зависит от вас, если вы цените пространство больше, чем гибкость (и это зависит от того, сколько карт расширения поддерживает ваше оборудование).

Что-то вроде 2х7 RaidZ2 в полоску вместе? Если я это сделаю, и контроллер выйдет из строя, пул выйдет из строя, но если я заменю контроллер на идентичный, он снова запустится?

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

В вашем случае, если ваш 8-портовый контроллер выходит из строя, вам необходимо каким-либо образом добавить пять (7 - 2) этих дисков в систему (8-й является расходным, так как остальные шесть дисков все еще работают), например с 4-портовым контроллером и одним USB-диском (не рекомендуется, просто чтобы показать, что подключение в принципе бессмысленно).

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

И если я сделаю это, могу ли я вырастить одну часть бассейна, не касаясь другой?

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

Спасибо за ваш очень подробный ответ, мне потребовалось несколько дней, чтобы обработать все: D Мне нравится идея использования двух зеркальных флешек USB3 для системы, но является ли она загрузочной? Как вы объяснили, мне кажется, что мне не нужны диски с журналом и кешем, я должен использовать все 14 портов для дисков? Что-то вроде 2х7 RaidZ2 в полоску вместе? Если я это сделаю, и контроллер выйдет из строя, пул выйдет из строя, но если я заменю контроллер на идентичный, он снова запустится? И если я сделаю это, могу ли я вырастить одну часть бассейна, не касаясь другой? Stéphane Goetz 7 лет назад 0
@ StéphaneGoetz Рад, что я мог помочь. Ваш вопрос был очень подробным и показал много исследований, поэтому он заслуживал более длительного ответа, чем большинство других вопросов здесь. Кроме того, мне иногда (всегда) нравится писать длинные посты. ;) Кроме того, для удобной и простой в развертывании системы управления, взгляните на OmniOS + napp-it (http://napp-it.de/setup_en.html), я могу рекомендовать его всем сердцем. user121391 7 лет назад 0
RAIDZ2 с 6 дисками также является отличным местом для снижения нагрузки на диск, помимо того, что он не создает чрезмерную нагрузку на оставшиеся диски в случае восстановления. Я не помню, где я видел сводку, но кто-то составил таблицу с чем-то вроде RAIDZ, RAIDZ2, RAIDZ3 на 20 дисков каждый, рассчитав накладные расходы для каждой комбинации. Это небольшая деталь, и она не так уж важна, если вы выбираете между 2x6 или 1x12 RAIDZ2, но когда вы выбираете между одинаковым количеством дисков, стоит подумать. a CVn 7 лет назад 0

Похожие вопросы