Вопрос: Программное обеспечение и аппаратная производительность RAID и использование кеша


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

Я всегда думал, что аппаратные RAID-карты будут предлагать лучшую производительность даже без кеша. Я имею в виду, у вас есть выделенное оборудование для выполнения задач. Если это так, то в чем преимущество получения RAID-карты, у которой нет кеша, что-то вроде LSI 9341-4i, что не совсем дешево.

Также, если усиление производительности возможно только в кеше, существует ли конфигурация кеша, которая сразу записывает на диск, но сохраняет данные в кеше для операций чтения, делая BBU не приоритетом?


61
2018-04-24 11:13


Источник


Что-то, что я заметил, что способствует HW-рейду: по моему опыту, если вы используете SW raid, и система делает что-то другое, кроме как чистое выключение, вы будете винить массив и должны восстанавливаться. HW рейд не виноват, если он не писал, когда система опустилась. - Loren Pechtel


Ответы:


Вкратце: при использовании низкоуровневой RAID-карты (без кеша), сделайте себе одолжение и переключитесь на программный RAID. При использовании карты среднего и высокого класса (с BBU или NVRAM), аппаратное обеспечение часто (но не всегда! См. Ниже) является хорошим выбором.

Длительный ответ: когда вычислительная мощность была ограничена, аппаратные RAID-карты имели значительное преимущество для выгрузки вычисления четности / синдрома для использования в них схем RAID (RAID 3/4/5, RAID6, ecc).

Тем не менее, благодаря постоянно растущей производительности процессора это преимущество в основном исчезло: даже старый процессор моего ноутбука (Core i5 M 520, поколение Westmere) имеет производительность XOR более 4 ГБ / с и производительность синдрома RAID-6 более 3 ГБ / с над одним ядром выполнения,

Преимущество, которое сегодня поддерживает аппаратный RAID, заключается в наличии защищенного от потери энергии кэша DRAM в виде BBU или NVRAM. Этот защищенный кэш обеспечивает очень низкую задержку для случайного доступа к записи (и считывает этот удар) и в основном преобразует случайные записи в последовательные записи. RAID-контроллер без такого кеша почти бесполезен, Более того, некоторые низкопроизводительные RAID-контроллеры не только поставляются без кеша, но и принудительно отключают собственный диск DRAM на диске, что приводит к более низкой производительности, чем без RAID-карты. Примером могут служить карты DELL PERC H200 и H300: если более новая прошивка не изменилась, они полностью отключают частный кеш диска (и его нельзя включить повторно, пока диски подключены к RAID-контроллеру). Делайте одолжение себе и делайте никогда, никогда покупайте такие контроллеры. В то время как даже более высокопроизводительный контроллер часто отключает частный кеш диска, у них, по крайней мере, есть собственный защищенный кеш, что делает жесткий диск жесткого диска (но не SSD!) Несколько избыточным.

Однако это еще не конец. Даже совместимые контроллеры (один с ББД или кэшем NVRAM) могут давать непоследовательные результаты при использовании с SSD, в основном потому, что SSD действительно необходимость быстрый закрытый кеш для эффективного программирования / стирания страницы FLASH. И хотя некоторый (самый?) Контроллер позволяет вам повторно включить частный кеш диска (например: PERC H700 / 710 / 710P, пусть он снова включит его), если этот закрытый кеш не защищен от записи, вы рискуете потерять данные в случае потери мощности. Точное поведение на самом деле зависит от контроллера и прошивки (например: на DELL S6 / i с 256 МБ WB-кешем и кеш с включенным диском, Я имел нет потери при многократном, запланированном тестировании потери мощности), давая неопределенность и большую обеспокоенность.

С другой стороны, программные RAID с открытым исходным кодом являются гораздо более контролируемыми животными - их программное обеспечение не входит в состав проприетарной прошивки и имеет четко определенные шаблоны и поведение метаданных. Программный RAID делает (правильное) предположение, что частный DRAM-диск диска не защищен, но в то же время он критичен для приемлемой производительности - поэтому они обычно не отключают его, вместо этого они используют команды ATA FLUSH / FUA, чтобы быть уверенным, что критические данные земли на стабильном хранении. Поскольку они часто работают с портами SATA, подключенными к чипсетам SB, их пропускная способность очень хорошая, а поддержка драйверов превосходна.

Однако, если они используются с механическими жесткими дисками, синхронизированный шаблон случайного доступа к записи (например, базы данных, виртуальные машины) будет сильно страдать по сравнению с аппаратным RAID-контроллером с кэшем WB. С другой стороны, при использовании с SSD они часто преуспевают и дают результаты даже выше, чем достижимые с помощью RAID-карт.

Также подумайте, что программные RAID-массивы не все одинаковы. Программный RAID для Windows имеет плохую репутацию, производительность по-разному, и даже Storage Space кажется не слишком разным. Linux MD Raid исключительно быстр и универсален, но стек ввода-вывода Linux состоит из нескольких независимых частей, которые необходимо тщательно понять, чтобы извлечь максимальную производительность. ZFS ZRAID чрезвычайно продвинутый, но если он не настроен правильно, он даст вам очень бедных ВГД. Кроме того, ему требуется быстрое устройство SLOG для синхронной обработки записи (ZIL).

Нижняя линия:

  1. если ваши рабочие нагрузки не синхронизированы с случайной записью, вам не нужна карта RAID
  2. если вам нужна карта RAID, не купить RAID-контроллер без кэша WB
  3. если вы планируете использовать SSD, предпочтительным является программный RAID. Мой лучший выбор - Linux MD Raid. Если вам нужны расширенные функции ZFS, пойдите с ZRAID, но внимательно подумайте о настройке vdev!
  4. если вы, даже используя SSD, действительно нуждаетесь в аппаратной RAID-карте, используйте SSD с защищенными от записи кешами (Micron M500 / 550/600 имеет частичную защиту - на самом деле не достаточно, но лучше, чем ничего), в то время как Intel DC и S имеют полную потерю мощности защита, и то же самое можно сказать о корпоративных SSD-дисках Samsung)
  5. если вам нужен RAID6, и вы будете использовать обычные механические жесткие диски, подумайте о покупке быстрой RAID-карты с 512 МБ (или более) WB-кешем. RAID6 имеет высокую производительность при записи, а кэш-память WB с соответствующим размером может по крайней мере обеспечивать быструю промежуточную память для небольших синхронных операций записи (например, журнал файловой системы).
  6. если вам нужен RAID6 с жесткими дисками, но вы не можете / не хотите покупать аппаратную RAID-карту, внимательно подумайте о настройке вашего программного RAID. Например, возможное решение с Linux MD Raid состоит в использовании двух массивов: небольшого массива RAID10 для журналов записи / БД и массива RAID6 для необработанного хранилища (в качестве файлового сервера). С другой стороны, программное обеспечение RAID5 / 6 с SSD очень быстро, поэтому вам, вероятно, не нужна RAID-карта для настройки всех SSD.

118
2018-04-24 13:23



Большое спасибо за большие объяснения, я понятия не имел, что RAID-карты отключили кеш на жестких дисках. Это не тот тип сервера, который защищает инвестиции в размере около $ 800 +, поэтому я немного буду читать настройки программного RAID-массива и, вероятно, соглашусь с этим. - ItsJustMe
@ItsJustMe: некоторые приложения также отключают кэширование записи на диск, если привод поддерживает принудительный доступ к модулю. Microsoft Active Directory, Exchange приходят на ум. - Greg Askew
ОП говорит о гипервизоре. RAID5 не может быть и речи, и писать кеш будет необходимо. - ewwhite
Мне жаль, что я не мог бы продвигаться не один раз. Как системный администратор, я всегда считал, что аппаратный RAID превосходит программный RAID, хотя я пытался избежать карт H300 после того, как услышал некоторые ужасные истории других людей. Это определенно даст мне хорошую пищу для размышлений и поможет лучше информировать о будущих решениях о покупке. Благодаря! - user24313
Некоторые RAID-карты позволяют использовать SSD в качестве быстрых кешей (последние DELL PERC приходят мне на ум), поскольку программный RAID и другие карты этого не позволяют, всегда есть Linux bcache. - bayindirh


Вам понадобится батарея или флеш-кэш-решение для любого приобретаемого вами аппаратного контроллера. Большинство сожалений не делает этого,

Но чтобы ответить на ваш вопрос, у большинства контроллеров есть настраиваемые коэффициенты кэширования ... так что 100% читать кеш и 0% записывать кеш отрицает необходимость защиты BBU. Ваша производительность записи просто сосать.

Я не могу решить ваш RAID-вопрос программного обеспечения, потому что это зависит. Linux MD RAID отличается от Windows Software RAID, который отличается от чего-то вроде ZFS, Такие решения, как ZFS Можно лучше, чем аппаратное обеспечение, поскольку они используют ресурсы ОЗУ сервера и ресурсы ЦП.


6
2018-04-24 11:20



По словам «производительность записи будет просто сосать», вы имеете в виду, что это будет примерно такое же, как Software RAID или Hardware RAID без кеша? Или существует ли штраф за запись производительности, кроме того, если карта выделяет кеш для чтения? - ItsJustMe
Это зависит от того, что вы делаете. Если у вас нет приложения с интенсивной записью, тогда поражение производительности может не быть проблемой. - ewwhite
Это Proxmox HOST с виртуальными машинами Windows, используемыми для почты и веб-хостинга. Нет большого количества использования базы данных, но у службы электронной почты, вероятно, есть много активности записи. В настоящее время я просто обсуждаю, стоит ли использовать кэш-карту только для чтения Software-RAID. - ItsJustMe
Используйте RAID-контроллер с поддержкой Flash для виртуализации. - ewwhite
Мы использовали почтовый сервер cyrus с около 4000 учетными записями, используя программный RAID. Активные учетные записи, ударяющие его в любой день, были больше похожими на 300-600. Производительность заметно хуже, чем наш первичный почтовый сервер cyrus с аппаратным RAID и BBU. Кэш-память BBU и RAID-контроллера дает гарантию данных, но также дает производительность. Это связано с тем, что как только данные поступают на контроллер, он может указать ОС, что запись завершена. В противном случае ему придется ждать, пока жесткий диск не сообщит, что запись завершена. Это экономит значительные тактовые циклы. Перешел на аппаратный RAID и решил. - labradort


У RAID-контроллера у вас есть глаз один, он дешевый и в основном факерайд. Это даже зависит от вашей материнской платы, чтобы обеспечить некоторые функции, такие как память, а не поддержка многих материнских плат, что приводит к тому, что вы не можете загрузить драйвер.

О HW и SW-RAID. Я больше не использую HW-RAID, если это не поле с логотипом EMC на нем, например. Для всего остального я просто снова переключился на SW-RAID много спутников по нескольким очень простым причинам.

  1. Вам нужно дополнительное оборудование и нужно их сопоставить. Вам также необходимо сопоставить прошивку и синхронизировать ее. Многие диски будут работать некорректно, и вы будете получать всплески в IO-латентности без какой-либо ясной причины.

  2. Дополнительное оборудование дорого, поэтому вы можете использовать этот дополнительный $ 1000 (приличный контроллер с двумя / тремя дисками) для небольшого решения лучше. Инвестируйте его в более диски и стандартные контроллеры, память ECC, более быстрый процессор. И запасной диск на месте, может быть, если вы планируете запустить его дольше, чем гарантийный срок, или не хотите платить экспресс-комиссию за ночную доставку.

  3. Модернизация - это боль, поскольку вам нужно отслеживать OS-патчи и прошивку для диска и контроллера. Это может привести к ситуации, когда обновление / обновление невозможно.

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

  5. Это SPOF и узкое место. Наличие только одного контроллера только одного PCI-моста не дает вам производительности и избыточности, которые вам действительно нужны. При этом также не существует пути миграции для переноса данных на другой дискет вне пределов контроллеров.

В большинстве из них были учтены новые поколение программного обеспечения SW-RAID или решений, таких как ZFS и BtrFS. Имейте в виду, что в конечном итоге вы хотите защитить свои данные, а не быстродоступный, но избыточный мусор.


6
2018-04-24 12:24



Я не согласен. Многие люди довольны контроллерами Dell, HP, IBM и более поздних LSI RAID-контроллеров. Но, честно говоря, большинство современных серверов качества уже имеют встроенные RAID-решения, поэтому идея покупки отдельного контроллера немного устарела. Программные решения RAID также требуют учета рабочих нагрузок с низкой задержкой. ZFS имеет ZIL, но на этом фронте отсутствует много других программных RAID-реализаций. - ewwhite
Я бы также отличался вашим последним абзацем, RAID - это отсутствие защиты. Для защиты требуется резервное копирование, а не RAID. - Rowan Hawkins


Я провел в прошлом году (с 2014 года по 2014 год) тестирование нескольких параллельных конфигураций CentOS 6.6 RAID 1 (зеркальное отображение) с использованием 2 LSI 9300 HBA-версий 2 RAID-контроллеров LSI 9361-8i с системами, построенными на следующих устройствах: 2U Supermicro CSE- 826BAC4-R920LPB, материнская плата ASUS Z9PE-D16, 2 Intel Xeon E5-2687W v2 Восемь ядер 3,4 ГГц Процессоры, зеркальные Seagate ST6000NM0014 6TB SAS 12Gbs, 512 ГБ оперативной памяти. Обратите внимание, что это полностью совместимая с SAS3 (12 Гбит / с) конфигурация.

Я просмотрел статьи, написанные о настройке программного обеспечения, и уже более 10 лет использовал программный RAID для Linux. При выполнении базовых тестов ввода-вывода (dd-oflag = direct 5k to 100G, hdparam -t и т. Д.) Программный RAID, похоже, выгодно складывается в аппаратный RAID. Программный RAID отражается через отдельные HBA. Я дошел до тестирования с помощью стандартных ядер CentOS 6, конфигураций kernel-lt и kernel-ml. Я также пробовал различные mdadm, файловую систему, дисковую подсистему и настройки o / s, предлагаемые различными онлайн-статьями, написанными о программном RAID-массиве Linux. Несмотря на настройку, тестирование, настройку и тестирование, при работе в мире чтения, в системе обработки транзакций (имея базу данных MySQL или Oracle), я обнаружил, что запуск аппаратного RAID-контроллера приводит к 50-кратному увеличению производительности. Я связываю это с аппаратным RAID-оптимизированным управлением кешем.

На протяжении многих месяцев я не убеждался в том, что аппаратный RAID может быть намного лучше, однако после исчерпывающих исследований по программному RAID-массиву Linux, тестирования и настройки, это были мои результаты.


3
2017-07-29 12:54





Большинство писателей здесь просто не знают "записывать отверстие«Это основа, которая позволяет кричать на резервные блоки RAID-массивов аппаратных RAID-массивов и отсутствие таких программных RAID-массивов. Ну, например, для реализации программного обеспечения RAID в Linux либо поддерживается растровое изображение операций записи, либо выполняется полный« контроль четности » - калькуляция в случае нечистого выключения. ZFS всегда стремится к полнополосным написаниям, чтобы избежать этой несогласованности или отложить повторную проверку. Таким образом, в качестве сводного, достаточно сложного программного RAID-массива в настоящее время часто достаточно, чтобы его можно было использовать вместо «кто знает, что внутри», так называемый «аппаратный RAID».

Что касается части кеша вопроса, это действительно не так важно, потому что сам кеш-запись для ОС может быть намного больше, чем «аппаратный» адаптер.


1
2018-04-24 17:17



Это еще одна причина избежать аппаратных RAID-карт без надлежащего защищенного кэша WB. Заметка о Linux MD Raid: она не полностью защищена от дыры для записи. Поскольку он не имеет защиты от потери мощности, в случае внезапных потерь мощности данные в конечном итоге будут потеряны (подумайте о транзитных данных и / или частичной записи). Конечно, это произойдет даже в однодисковом сценарии, но прирост четности или RAID5 / 6 усиливают это. В худшем сценарии метаданные критической файловой системы могут быть повреждены, однако современные файловые системы достаточно устойчивы, чтобы восстановить их довольно хорошо. Однако некоторые данные могут быть потеряны. - shodanshok
@shodanshok, ты совершенно неправ. Думать - poige
Я не прав, что именно? Linux mdraid по-прежнему уязвим для записи. Пожалуйста, прочитайте список рассылки linux-raid для получения дополнительной информации. - shodanshok
Запишите отверстие в отношения RAID с контролем четности означает несоответствие четности из-за неполных операций записи, Вот почему он использует либо растровый оптимизированный, либо полный паритет целостности массива. после нечистых отключений. - poige
raid5faq.com/reliability.aspx : «... Что такое отверстие для записи в RAID5? Отверстие записи RAID5 является условием массива RAID5, когда некоторые блоки четности не соответствуют соответствующим данным. Чаще всего отверстие записи возникает, когда во время операции записи происходит сбой питания. В этом случае контроллер имеет время для записи только данных, но не контроля четности. Чтобы избежать накопления отверстий для записи, следует использовать ИБП (источник бесперебойного питания) или ББД (блок резервного питания аккумулятора). Кроме того, периодический массив восстанавливает правильные накопленные несоответствия. ...» - poige


Я все время работаю. Это сильно зависит от ваших действий и уровня рейда. Контроллер SW с рейдом 0 или 1 для ОС, и ничего особенного не стоит. Запуск контроллера SW с рейдом 5 в базе данных требует неприятностей! Некоторые аппаратные контроллеры дают вам лучшую производительность, но это зависит от того, может ли он кэшировать и процессорный чипсет рейдовой карты. Кроме того, не все программные контроллеры поддерживаются всеми os. Поэтому иногда вам придется покупать HW для запуска ESXi ... Если вы не используете соединения sata.


-1
2018-02-22 18:55