Конфигурация пула ZFS - требуется совет

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

Я немного смущен тем, нужно ли мне использовать зеркалирование или raidz.

20 накопителей будут подключены к 2 16-портовым рейд-контроллерам (по 10 на каждом контроллере). Может быть, я создаю аппаратные raid-тома для каждой партии из 10 дисков, а затем в zfs, затем зеркалирую два доступных raid-тома, создавая один супер том?

Будем признательны любому совету.

5 ответов

С 20 дисками у вас много вариантов. Я предполагаю, что у вас уже есть диски для ОС, поэтому 20 дисков будут выделенными дисками данных. В моем Sun Fire x4540 (48 дисков) я выделил 20 дисков в зеркальной конфигурации и 24 в чередующемся raidz1 config (6 дисков на raidz и 4 чередующихся vdevs). Два диска для ОС, а остальные являются запасными.

Какой контроллер вы используете? Вы можете обратиться к: рекомендациям контроллера ZFS SAS/SATA

Не используйте аппаратный рейд, если можете. ZFS процветает, когда диски представляются ОС как сырые диски.

Ваша производительность в raidz1 возрастает с увеличением количества полос в группах raidz1. С 20 дисками вы можете использовать 4 группы raidz1, состоящие из 5 дисков в каждой, или 5 групп по 4 диска. Производительность по последним будет лучше. Ваша отказоустойчивость в этой настройке будет выдерживать сбой 1 диска на группу (например, потенциально 4 или 5 дисков могут выйти из строя при правильных условиях).

Скорость чтения из группы raidz1 или raidz2 эквивалентна скорости чтения одного диска. При вышеописанной настройке ваша теоретическая максимальная скорость чтения будет эквивалентна скорости 4 или 5 дисков (для каждого vdev/ группы дисков raidz1).

Использование зеркальной настройки увеличило бы скорость, но в этот момент вы столкнетесь с ограничениями пропускной способности вашего контроллера. Вам может не понадобиться такой тип скорости, поэтому я бы предложил комбинацию raidz1 и stripes. В этом случае вы можете сохранить один неисправный диск на каждую зеркальную пару (например, 10 дисков могут выйти из строя, если они правильные).

В любом случае, вы должны рассмотреть возможность горячего резервирования независимо от того, какое решение вы используете. Возможно 18 дисков в зеркальном расположении с 2-мя горячими резервами или 3-полосный 6-дисковый raidz1 с 2-мя горячими резервами...

Когда я создавал свою первую настройку ZFS, я использовал эту заметку от Sun, чтобы понять производительность уровня RAID...

http://blogs.oracle.com/relling/entry/zfs_raid_recommendations_space_performance

Примеры с 20 дисками:

20-дисковые зеркальные пары.

  pool: vol1
 state: ONLINE
 scrub: scrub completed after 3h16m with 0 errors on Fri Nov 26 09:45:54 2010
config:

        NAME        STATE     READ WRITE CKSUM
        vol1        ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c4t1d0  ONLINE       0     0     0
            c5t1d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c6t1d0  ONLINE       0     0     0
            c7t1d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c8t1d0  ONLINE       0     0     0
            c9t1d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c4t2d0  ONLINE       0     0     0
            c5t2d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c6t2d0  ONLINE       0     0     0
            c7t2d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c8t2d0  ONLINE       0     0     0
            c9t2d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c4t3d0  ONLINE       0     0     0
            c5t3d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c6t3d0  ONLINE       0     0     0
            c7t3d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c8t3d0  ONLINE       0     0     0
            c9t3d0  ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c4t4d0  ONLINE       0     0     0
            c5t4d0  ONLINE       0     0     0

Полосатый raidz1 с 20 дисками, состоящий из 4 полосок raidz1 с 5 дисками vdevs.

  pool: vol1
 state: ONLINE
 scrub: scrub completed after 14h38m with 0 errors on Fri Nov 26 21:07:53 2010
config:

        NAME        STATE     READ WRITE CKSUM
        vol1        ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c6t4d0  ONLINE       0     0     0
            c7t4d0  ONLINE       0     0     0
            c8t4d0  ONLINE       0     0     0
            c9t4d0  ONLINE       0     0     0
            c4t5d0  ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c6t5d0  ONLINE       0     0     0
            c7t5d0  ONLINE       0     0     0
            c8t5d0  ONLINE       0     0     0
            c9t5d0  ONLINE       0     0     0
            c4t6d0  ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c6t6d0  ONLINE       0     0     0
            c7t6d0  ONLINE       0     0     0
            c8t6d0  ONLINE       0     0     0
            c9t6d0  ONLINE       0     0     0
            c4t7d0  ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c6t7d0  ONLINE       0     0     0
            c7t7d0  ONLINE       0     0     0
            c8t7d0  ONLINE       0     0     0
            c9t7d0  ONLINE       0     0     0
            c6t0d0  ONLINE       0     0     0

Изменить: Или, если вы хотите два пула хранения, вы можете разбить свои 20 дисков на две группы:

10 disks in mirrored pairs (5 per controller).
AND
3 stripes of 3-disk raidz1 groups
AND
1 global spare...

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

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

у нас есть 20 дисков sata 2 ТБ для использования в пуле zfs. После нескольких советов о том, как лучше добиться хорошей производительности ввода-вывода, и при этом предложить некоторую избыточность (3 ошибки диска до потери данных - это то, чего мы стремимся достичь).

ZFS с RAIDZ-3 (RAID с тройным контролем четности) обеспечит вам необходимую избыточность. Производительность ввода-вывода, как и в любой конфигурации RAID-5, будет лучше для чтения, чем для записи, и будет ли он "достаточно хорошим" или нет, во многом зависит от вашего оборудования. Другие люди могут предоставить лучшую информацию в этой области (файловые системы ZFS, с которыми я работаю, не были рассчитаны на производительность в качестве основного соображения).

20 накопителей будут подключены к 2 16-портовым рейд-контроллерам (по 10 на каждом контроллере). может быть, я создаю аппаратные raid-тома для каждой партии из 10 дисков, а затем в zfs я отражаю два доступных raid-тома, создавая один супер-том?

Одним из больших преимуществ ZFS является то, что он объединяет RAID, управление томами и управление файловой системой в одном месте, предоставляя вам единую точку управления для вашей среды. Вы получаете гораздо больше гибкости, если настраиваете диски в конфигурации JBOD.

Все, кто говорит вам использовать RAIDZ, неправы. RAIDZ ужасен для производительности! Зеркальное отображение лучше всего подходит для производительности! Используйте RAIDZ только тогда, когда вам нужно больше места, чем производительности.

У вас есть 20 дисков. Создайте 9 vdevs двухсторонних зеркал и два горячих резерва. Это дает вам три сбоя диска и 18 ТБ памяти.

Не используйте аппаратный RAID вообще. Сконфигурируйте ваш raid-контроллер в JBOD (иногда его называют "passthrough"), если это возможно. Если нет, создайте 20 RAID0 (это ужасная вещь, но наименее ужасная, если вы не можете настроить JBOD). Любая другая конфигурация побеждает ZFS.

Распределите диски между контроллерами как можно больше (лучше всего 1-1, но я понимаю, что это не практично в вашей ситуации). Купите больше контроллеров, если это возможно.

Шеннон, в аналогичной конфигурации я создал 15-дисковый пул RAIDZ2. Производительность была хорошей, но время для восстановления рейда после сбоя диска было значительным. Примерно 30 часов, и я использовал 500 ГБ дисков. Я думаю, что я был ограничен пропускной способностью контроллера хранилища (U160 SCSI) больше, чем что-либо еще, но я предсказываю, вы обнаружите, что это займет больше времени, чем вы хотели.

При увеличении до 2 ТБ дисков у меня было 120 часов перестройки, что казалось слишком большим. Я закончил восстановление с помощью 9-дискового RAIDZ2.

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

Если бы я был тобой, я бы сделал 2x RAIDZ2, по 9 и 10 дисков каждый, и один горячий резерв. Вам нужно будет использовать флаг -f, чтобы ZFS позволяла вам добавлять raidz2 не одинакового размера в тот же пул.

Обратите внимание, что с моим предложенным конфигом RAIDZ2, если 3 диска в одном и том же пуле дают сбой, вы попали OTOH, если 4 диска, 2 в каждом пуле, выходят из строя, вы в порядке.

Не используйте аппаратный рейд вместе с ZFS. Файловая система не будет знать о каких-либо проблемах, о которых знает аппаратный контроллер, и не будет реагировать соответствующим образом.

Вы можете использовать RAIDZ3 для обеспечения безопасности при сбое 3 дисков. Зеркала также достигли бы этого, но были бы ограничения на 3 диска. Было бы более разумно, если бы вы выбрали вероятность сбоя, чем произвольно заявить, что вы можете разрешить сбой трех дисков.

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

Другие вопросы по тегам