Программное обеспечение по сравнению с аппаратными средствами производительность RAID и использование кэша

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

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

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

74
задан 24 April 2015 в 19:50
6 ответов

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

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

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

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

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

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

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

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

Итог:

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

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

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

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

7
ответ дан 28 November 2019 в 19:27

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

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

2
ответ дан 28 November 2019 в 19:27

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

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

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

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

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

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

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

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

7
ответ дан 28 November 2019 в 19:27

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

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

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

4
ответ дан 28 November 2019 в 19:27

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

0
ответ дан 28 November 2019 в 19:27

Теги

Похожие вопросы