У нас есть 20 дисков SATA емкостью 2 ТБ для использования в пуле ZFS. Я хочу получить несколько советов о том, как лучше всего добиться хорошей производительности ввода-вывода, в то же время имея возможность предложить некоторую избыточность (3 отказа диска до потери данных - это то, чего мы стремимся достичь).
Я немного не понимаю, нужно ли мне использовать зеркалирование или raidz.
20 дисков будут подключены к 2 16-портовым RAID-контроллерам (по 10 на каждом контроллере). Может быть, я создаю аппаратные тома рейда для каждой партии из 10 дисков, а затем в zfs, а затем зеркалирую два доступных тома рейда, создавая таким образом один супертом?
Будем признательны любому совету.
С 20 дисками у вас есть много возможностей. Я предполагаю, что у вас уже есть диски для ОС, поэтому 20 дисков будут выделенными дисками с данными. В моем Солнечный огонь x4540 (48 дисков), я выделил 20 дисков в зеркальной настройке и 24 в конфигурации raidz1 с чередованием (6 дисков на raidz и 4 диска vdev с чередованием). Два диска предназначены для ОС, а остальные - запасные.
Какой контроллер вы используете? Вы можете сослаться на: Рекомендации по контроллеру 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
20-дисковый полосатый raidz1, состоящий из 4 полос 5-дисковых raidz1 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-портовым RAID-контроллерам (по 10 на каждом контроллере). Может быть, я создаю аппаратные тома рейда для каждой партии из 10 дисков, а затем в zfs зеркалирую два доступных тома рейда, создавая один супертом?
Одним из больших преимуществ ZFS является то, что он объединяет в одном месте RAID, управление томами и управление файловой системой, что дает вам единую точку управления для вашей среды. Вы получите гораздо больше гибкости, если сконфигурируете свои диски в конфигурации JBOD.
Все, кто говорит вам использовать RAIDZ, ошибаются. RAIDZ - это ужасный за производительность! Зеркальное отображение лучше всего подходит для производительности! Используйте RAIDZ только тогда, когда вам нужно больше места, чем производительность.
У вас есть 20 дисков. Создайте 9 двунаправленных зеркал и два горячего резерва. Это дает вам отказ трех дисков и 18 ТБ хранилища.
Не используйте аппаратный RAID вообще. Если возможно, настройте свой рейд-контроллер в JBOD (иногда называемом «сквозным»). Если нет, создайте 20 RAID0 (ужасная вещь, но наименее ужасная, если вы не можете настроить JBOD). Любая другая конфигурация побеждает ZFS.
Распределите диски по контроллерам как можно больше (лучше всего 1-1, но я понимаю, что в вашей ситуации это непрактично). Если возможно, купите больше контроллеров.
shannon, в аналогичной конфигурации я создал 15-дисковые пулы RAIDZ2. Производительность была хорошей, но время на восстановление рейда после сбоя диска было значительным. Примерно 30 часов, и я использовал диски на 500 ГБ. Я думаю, что был ограничен пропускной способностью контроллера хранилища (U160 scsi) больше, чем что-либо еще, но я думаю, вы обнаружите, что это займет больше времени, чем хотелось бы.
При увеличении размера дисков до 2 ТБ мне пришлось бы перестроить за 120 часов, что казалось слишком большим. В итоге я перестроил с помощью 9-дисковых RAIDZ2.
Это достаточно легко проверить в своей среде; создайте свой массив, заполните его, а затем вытащите диск и дождитесь восстановления. Помните, что с ZFS будет перестроено только фактически используемое пространство (восстановлено на языке zfs), поэтому вам нужно заполнить массив, чтобы провести хороший тест.
На вашем месте я бы сделал 2 RAIDZ2 по 9 и 10 дисков каждый и один горячий резерв. Вам нужно будет использовать флаг -f, чтобы ZFS позволяла добавлять raidz2 разного размера в один и тот же пул.
Обратите внимание, что с моей предлагаемой конфигурацией RAIDZ2, если 3 диска в одном пуле выйдут из строя, вы потеряете. OTOH, если 4 диска, по 2 в каждом пуле, не работают, все в порядке.
Не используйте аппаратный рейд вместе с ZFS. Файловая система не будет знать о каких-либо проблемах, о которых знает аппаратный контроллер, и не будет реагировать соответствующим образом.
Вы можете использовать RAIDZ3 для обеспечения защиты от сбоев трех дисков. Зеркала также могут достичь этого, но будут ограничения на 3 диска. Было бы больше смысла, если бы вы выбрали вероятность отказа, чем произвольно заявить, что вы можете допустить отказ 3 дисков.
Производительность в такой ситуации будет в первую очередь ограничена сетевым подключением (я предполагаю, что большая часть массива каким-то образом используется для обслуживания файлов по сети) и процессором компьютера (вся эта четность не будет вычисляться сама собой, и ZFS будет пока не пользуйтесь криптоускорителями).