Я только что установил LSI 9260-i8, используя два виртуальных диска, первый из которых состоит из 4 твердотельных накопителей, а второй - из 4 жестких дисков. Очевидно, идея состоит в том, чтобы повысить производительность при сохранении некоторой безопасности и большого объема хранилища.
Твердотельные накопители великолепны, и этот массив смехотворно быстр при работе с небольшими и относительно большими файлами. На жестких дисках хранятся в основном файлы огромного размера (от 500 МБ до 30 ГБ). Он предназначен в качестве основного долгосрочного хранилища, в то время как SSD-массив предназначен только для рабочих файлов и краткосрочного хранения. Это означает, что очень часто файлы будут перемещаться из массива SSD в массив HDD.
Проблема в том, что производительность очень быстро падает после записи первого гига или около того большой операции. Он начинается со скоростью около 250 МБ / с, что неплохо для массива RAID 5, состоящего всего из 5 HDDS, но только что созданная мной копия, состоящая из 4 файлов общим объемом 12 ГБ, постепенно снижалась до 35 МБ / с.
Думаю, совет будет зависеть от большого количества метаинфо, так что вот:
Любые советы приветствуются.
TomTom по существу уже ответил на него, но может оказаться полезным немного больше контекста для ответа.
Вы используете RAID 5. RAID 5 имеет хорошо известные проблемы с производительностью при записи данных.
Для каждой полосы RAID 5 есть блок данных четности, и блоки данных четности распределяются по всем дискам циклическим способом. Для каждой записи в массив RAID 5 контроллеру необходимо повторно вычислить информацию о четности, а затем записать новый блок четности на диск. Цитата отсюда иллюстрирует это (относительно частичного обновления полосы, но применяется тот же принцип):
Если вы [...] изменяете блок данных, он пересчитывает четность, вычитая старый блок и добавляя новую версию. Затем в двух отдельных операциях записывается блок данных, за которым следует новый блок четности. Для этого он должен сначала прочитать блок четности с любого диска, который содержит четность для этого страйп-блока, и повторно прочитать немодифицированные данные для обновленного блока с исходного диска. Это чтение-чтение-запись-запись известно как штраф записи RAID5, поскольку эти две записи являются последовательными и синхронными, системный вызов записи не может вернуться до тех пор, пока повторное чтение и обе записи не будут завершены, [...]
Около 35 МБ / с звучит примерно правильно для одного жесткого диска SATA, выполняющего хороший бит более или менее случайного ввода-вывода из-за чередования RAID 5, а реальная скорость записи RAID 5 обычно составляет около ~ 1 производительности диска для меньшие массивы. Так что это более или менее ожидаемая производительность; то, что он копирует быстрее в начале, вероятно, играет роль кеширования ОС.
Получение блока резервного питания от батареи и включение кэширования записи - это не панацея от всех болезней. Вы пишете, что часто копируете файлы большого размера (> 1 ГБ). Кэширование записи BBU + чрезвычайно помогает при случайной записи небольших файлов, но в меньшей степени при последовательной записи большого объема (поскольку буфер на контроллере со временем заполняется).
Если вы хотите иметь хорошую производительность записи, обычно ответ RAID 10.
И, наконец, при создании разделов следует позаботиться о том, чтобы границы разделов совпадали с границами полос массива.
Я думаю, что «У карты LSI нет BBU (пока), поэтому обратная запись отключена» - это узкое место.
Если у вас есть ИБП - включите обратную запись.
Если нет - попробуйте получить BBU.
Если вы не можете - вы можете рискнуть целостностью данных на виртуальном диске, потеряв кэшированные данные в случае скачка напряжения, если вы включите обратную запись, или придерживайтесь этих скоростей, используя запись через кеш.
Даже если вы выровняете раздел с логическим томом (что обычно автоматически выполняется в большинстве современных ОС) и отформатируете том с оптимизированным размером кластера / блока, достаточно большим (я думаю, в вашем случае он должен быть 2 МБ), чтобы все диски были обрабатывать один запрос ввода-вывода, я не думаю, что вы достигнете очень большой разницы в производительности записи.
Потому что производительность записи RAID5 - очень трудоемкий процесс. И поскольку он записывается через процессор XOR, у меня нет всех данных в кеше для выполнения вычислений четности в реальном времени, я думаю
С кэш-памятью с обратной записью на жестких дисках 4x320 ГБ и размером RAID 5 515 КБ я получаю в среднем 250–350 МБ / с при записи больших последовательных файлов или в среднем 150 МБ / с при копировании больших файлов внутри виртуального тома. (У меня все еще нет BBU, но у меня есть и старые интеллектуальные ИБП apc 700VA, поэтому я думаю, что этого достаточно, чтобы свести к минимуму скачки напряжения и возможную потерю кеша)
Мы обсуждаем 100% случайный, 100% последовательный или смешанный паттерн? Я в основном испытываю высокие скорости, когда полностью читаю, записываю или копирую большие файлы в / из / в свой массив. С другой стороны, как уже было сказано, случайные записи (чтения) намного ниже, варьируя от менее 1 МБ / с до средней скорости 190 МБ / с в зависимости от размеров файлов и / или размеров запросов. В основном в диапазоне 20 МБ / с при повседневном использовании файлов небольшого размера. Так что это во многом зависит от приложений в реальных случайных переводах. Поскольку я использую ОС Windows, мои тома довольно много, поскольку они дефрагментированы, а для больших файлов большие операции, такие как копирование из / в, довольно быстрые
И одно предложение в качестве решения медленной произвольной скорости чтения / записи обычных жестких дисков - если вы дойдете до точки перенастройки всей конфигурации вашего контроллера, почему бы вам не рассмотреть CacheCade, использующий 1 или 2 SSD для отсутствия зависимости от мощности рейдовый кеш (что-то вроде гибридных рейдов adaptec) и все остальное для вашей ОС / диска приложений, как вы их сейчас используете? Таким образом, вы должны иметь возможность повысить скорость вашего тома raid 5 даже при сквозной записи, я думаю, потому что фактическая запись на физические жесткие диски должна происходить в фоновом режиме и когда вы используете запись через кеш (без кеша контроллера на плате) и ssds в качестве кеша, я думаю, вам не стоит беспокоиться о сбросе системы. Но для получения актуальной и конкретной информации о том, как работает cachecade, прочтите документацию lsi и даже обратитесь в службу технической поддержки LSI, так как у меня еще нет возможности ее использовать.
Hmpf. Некоторые основы.
Начальная скорость составляет около 250 МБ / с, что неплохо для записи массива RAID 5, состоящего всего из 5 HDDS.
Проверка реальности: скорость записи любого RAID 5 низкая, она ограничена скоростью записи ОДНОГО ДИСКА. 3, 5, 15 sics не делают разницы в записи.
Жесткие диски - это диски WD15EARS 2 ТБ. Очевидно, что это не самые быстрые жесткие диски, но я думаю, что постоянные 200 МБ / с - не слишком много, чтобы просить.
Проверка реальности: она слишком высока для диска конечного пользователя в случайной ситуации ввода-вывода, и вы это демонстрируете. Даже 200 МБ RAW - это слишком много. Но если вы добавите все операции, необходимые для Raid 45 (см. Википедию), это будет смешно. Хотите скорости? Получите диски FAST и перейдите к RAID 10.
Не думаю, что это актуально, но у жестких дисков время остановки увеличено до 5 минут вместо обычных 8 секунд.
Время остановки 8 секунд для жесткого диска? Откуда, черт возьми, вы взяли этот номер? Это ПУТЬ слишком медленно, ПУТЬ слишком плохо ... Следует избегать раскрутки, когда за короткий промежуток времени происходит больше операций - мы говорим о минутах. 5 минут - это слишком мало. 8 секунд - это самоубийство.
В конце концов, вы ожидаете многого от малого - вы сэкономили на RAID 5 и никогда не проверяли реальность. Цифры в порядке.
Что нужно ПРОВЕРИТЬ:
Кроме того, ваш единственный выход - получить диски БЫСТРЕЕ и отказаться от RAID 5. Выполнение некоторых начальных математических проверок также поможет вам - в значительной степени ваше предположение о том, какая скорость у вас должна быть, ужасно ошибочны.