У меня дешевый NAS с 2 отсеками и жестким диском на 2 ТБ. Чтобы быть устойчивым к сбоям диска, я думаю о покупке второго жесткого диска емкостью 2 ТБ и его установке в RAID1 с Linux mdadm. Файловая система - ext4.
Это увеличит или уменьшит производительность NAS? Как насчет просто чтения или записи производительности?
Кажется, есть много мнений об этом онлайн, но нет единого мнения.
Спасибо.
Редактировать:
Итак, у меня уже есть три разных ответа: «чуть быстрее», «ты не заметишь» и «снизит производительность, если что-нибудь». (Меня интересует, прежде всего, производительность чтения.) Википедия говорит, что «производительность чтения может возрасти примерно как линейное кратное число копий». Который из них?
Изменить 2:
Я нашел все больше свидетельств в поддержку повышения производительности чтения RAID1, включая справочную страницу MD:
Изменения записываются на все устройства параллельно. Данные читаются с любого устройства. Драйвер пытается распределить запросы на чтение по всем устройствам, чтобы максимизировать производительность.
Я также обнаружил MD10 с --layout=f2
RAID 10, который обеспечивает избыточность RAID1 с производительностью чтения RAID0 и может использоваться только с двумя дисками. Однако производительность записи снижается, так как последовательная запись включает в себя оба диска, ищущих назад и вперед между удаленными частями диска. man md
для деталей.
Ответы:
Да, реализация Linux RAID1 ускоряет операции чтения с диска вдвое, если одновременно выполняются две отдельные операции чтения с диска . Это означает, что чтение одного файла 10 ГБ на RAID1 не займет больше времени, чем на одном диске, но чтение двух отдельных файлов 10 ГБ * займет быстрее.
Чтобы продемонстрировать это, просто прочитайте некоторые данные с
dd
. Перед выполнением чего-либо очистите кэш чтения диска с помощьюsync && echo 3 > /proc/sys/vm/drop_caches
. В противном случаеhdparm
будет требоваться супер быстрое чтение.Отдельный файл:
Два файла:
Чтение 10 ГБ данных заняло 65 секунд, в то время как чтение 10 ГБ + 10 ГБ = 20 ГБ данных заняло в общей сложности 68,7 секунды, что означает, что чтение с нескольких дисков значительно выигрывает от RAID1 в Linux.
skip=$COUNT
часть очень важна. Второй процесс считывает 10 ГБ данных со смещения 10 ГБ.Ответ Джареда и комментарии ssh по адресу http://www.unicom.com/node/459 неверны. Тест оттуда доказывает, что чтение с диска не выигрывает от RAID1. Тем не менее, тест был выполнен с помощью инструмента тестирования производительности bonnie ++, который не выполняет два отдельных чтения одновременно. Автор явно заявляет, что bonnie ++ не подходит для тестирования RAID-массивов ( см. Readme ).
источник
Да, вы получите повышение производительности чтения + избыточность. Вы можете легко представить, что, поскольку вы можете одновременно считывать части файлов с двух разных жестких дисков, файлы находятся на обоих жестких дисках.
Таким образом, теоретически, если RAID-контроллер делает свою работу правильно, вы можете получить ускорение O (n).
источник
man 4 md
гласит: «… Обратите внимание, что балансировка чтения, выполняемая драйвером , не делает профиль производительности RAID1 таким же, как для RAID0 ; один поток ввода не будет ускоряться (например, один дд), но будет несколько последовательных потоков или случайный рабочая нагрузка будет использовать более одного шпинделя. Теоретически , наличие N-диска RAID1 позволит N последовательным потокам читать со всех дисков. … »В завершение - на практике , на основе
iostat
результатов, наблюдаемых на типовой конфигурации RAID с двумя жесткими дисками, балансировка отсутствует . На самом деле это выглядит так, будтоmdadm
опция--write-mostly
всегда включена.источник
Нет, вы не получите никаких преимуществ при чтении из mdadm RAID1. Я спрашивал себя об этом некоторое время назад.
dstat
Показывает использование дисков, такжеbwm-ng
действительно помогает, особенно в этом случае, так как он может отображать использование чтения / записи на отдельных членах RAID mdadm. Просто нажмите n(далее) несколько раз, чтобы перейти от статистики интерфейса к статистике диска. Затем переключитесь на максимальное значение с, tчтобы увидеть максимальное чтение / запись с каждого диска. Вы увидите следующее:Выполнение записи на том RAID1 bwm-ng показывает 2 записи, запись на 2 диска одновременно. При чтении с тома RAID1 bwm-ng показывает чтение с одного диска (члена массива).
источник