Назад | Перейти на главную страницу

добавление кучи дисков в рейд 0 увеличивает производительность?

добавление кучи дисков в рейд 0 увеличивает производительность? Я знаю, что два диска в полосатом рейде обычно будут быстрее, чем один диск, но замечу ли я разницу в производительности, скажем, между двумя дисками в полосатом рейде и 8? есть ли общее ограничение на количество дисков в рейде, прежде чем вы действительно не получите больше выгоды?

аналогичный вопрос был задан здесь

Повышает ли производительность добавление дисков в массив RAID 10?

но я действительно спрашиваю, есть ли улучшения при добавлении большого количества дисков в рейд 0 по сравнению с простым добавлением, скажем, 2 или 4. Производительность продолжает расти?

Теоретически да, чем больше дисков в raid0, тем выше производительность, потому что нагрузка распределяется между большим количеством дисков. Однако на практике вы будете ограничены пропускной способностью контроллера рейда, производительностью процессора, памяти и т. Д. Увеличение производительности не будет линейным, то есть 4 диска не ровно в два раза быстрее, чем 2 диска.

В любой достаточно современной системе с контроллером рейда или даже при использовании программного рейда с mdadm Linux использование 8 дисков будет быстрее, чем использование 2, и вы не должны сдерживаться из-за остальной производительности системы. ЦП, рейд и / или контроллер диска, память - все это должно быть в состоянии справиться с этим. Чем больше дисков вы добавите, тем выше будет использование системных ресурсов. Особенно, если вы используете встроенный контроллер SATA в комбинации софтрейд. Но ничего, что действительно могло бы помешать общему удобству использования. Если вы используете Linux, вы можете захотеть использовать ядро, которое было сконфигурировано без «вытеснения», чтобы серверно-ориентированные задачи получали предпочтение над реакцией пользователя.

https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO

Конечно, чем больше дисков вы добавите, тем выше шанс, что один из них выйдет из строя и весь ваш рейд будет уничтожен. Я ожидаю, что raid0 из 8 дисков продлится не больше года или двух, если вам повезет. Raid0 из 16 дисков вызовет проблемы, и тогда я бы подумал о raid10, он все равно будет достаточно быстрым, и вам не о чем беспокоиться.

Что касается того, сколько дисков максимально исчерпало бы ресурсы системы, я бы не знал, если бы у меня не было подробных системных характеристик. Я думаю, что вы будете больше ограничены количеством отказов, если вы перейдете примерно на 16 дисков (я не хочу об этом думать).

Естественно, вы должны использовать raid0 только для данных, которые можно без проблем потерять в любое время. Он отлично подойдет для таких вещей, как сервер сборки, или освободит место для больших научных вычислений. Фактически, для этих сценариев я часто использовал raid0, и это отличный способ выжать немного больше из кучи старых, менее емких и недорогих дисков, которые в противном случае собирали бы пыль. Вы даже можете смешивать размеры, по крайней мере, с mdadm.

Если вы используете mdadm, возможно, стоит подумать о том, чтобы просто использовать raid10, поскольку в определенных конфигурациях он может приближаться к производительности raid0, то есть производительности чтения raid0 и уже улучшенной производительности записи по сравнению с другими уровнями raid (кроме raid0). Вы получите лучшую избыточность, чем другие уровни рейдов, с небольшим штрафом в скорости по сравнению с рейдами 0. Это было бы лучшее из обоих миров, вы не часто встречаетесь.

https://en.wikipedia.org/wiki/RAID#Non-standard_levels

Linux MD RAID 10 предоставляет общий драйвер RAID, который в своей «близкой» компоновке по умолчанию использует стандартный RAID 1 с двумя дисками и стандартный RAID 1 + 0 с четырьмя дисками; хотя он может включать любое количество дисков, включая нечетные числа. Благодаря своей «удаленной» компоновке MD RAID 10 может работать как с чередованием, так и с зеркалированием, даже с двумя дисками в компоновке f2; при этом выполняется зеркалирование с чередованием чтения, что обеспечивает производительность чтения RAID 0. Обычный RAID 1, предоставляемый программным RAID Linux, не выполняет чередование чтения, но может выполнять чтение параллельно.

Как предлагается в комментариях, смешивание размеров с mdadm не даст увеличения скорости, если вы используете все дисковое пространство, а не позволяете самому маленькому диску определять размер массива.

Также время поиска не улучшится в raid0 и даже может стать немного медленнее. Для raid0 на базе SSD время поиска было бы таким маленьким (от 0,08 до 0,16 мс). https://en.wikipedia.org/wiki/Hard_disk_drive_performance_characteristics#cite_note-HP_SSD-6Я полагаю, это не имело бы большого значения.

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

Вы должны понимать, где находятся узкие места:

  • CPU - сколько потока данных может обрабатывать CPU,
  • шина / контроллер - сколько данных он может нести,
  • SSD / HDD - сколько данных он может отдавать / принимать.

Предположим, есть программный RAID Linux, а затем добавляем два дополнительных диска. МОЖЕТ результат в:

  • ~ в два раза короче время доступа к достаточно большому блоку данных, в результате;
  • ~ двойной IOPS,
  • ~ двойная пропускная способность при условии, что у контроллера достаточно шины, а ЦП может обрабатывать трафик.

* ~ это никогда не бывает двукратным повышением следующих факторов, всегда меньше 10-20%. Выглядит более-менее линейно. Пожалуйста, не относитесь к этому как к авторитетному ответу, я не проводил никаких исследований по этому поводу.