Я читал много на контроллерах/установках RAID и одной вещи, которая подходит, много - то, как аппаратные контроллеры без кэша предлагают то же представление в качестве программного обеспечения RAID. Этот действительно имеет место?
Я всегда думал, что аппаратные платы RAID предложат лучшую производительность даже без кэша. Я имею в виду, у Вас есть выделенное оборудование для выполнения задач. Если это так, что является преимуществом получения платы RAID, которая не имеет никакого кэша, чего-то как LSI, 9341-4i, который не является точно дешевым.
Также, если увеличение производительности только возможно с кэшем, существует ли конфигурация кэша, которая пишет в диск сразу же, но сохраняет данные в кэше для чтения операций, делающих BBU не приоритет?
Вкратце: при использовании низкопроизводительной карты 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.
Итог:
Для любого приобретенного вами аппаратного контроллера вам понадобится батарея или кэш-память с поддержкой флэш-памяти. Сожалею, что не сделал этого .
Но, отвечая на ваш вопрос, большинство контроллеров имеют настраиваемые коэффициенты кеширования ... так что 100% читает кеш и 0% пишет cache устраняет необходимость в защите BBU. Ваша производительность записи будет просто отстой.
Я не могу ответить на ваш вопрос о программном RAID, потому что это зависит. Linux MD RAID отличается от программного RAID в Windows, который отличается от чего-то вроде ZFS . Такие решения, как ZFS , могут работать лучше, чем оборудование, поскольку они используют ресурсы ОЗУ и ЦП сервера.
Большинство авторов здесь просто игнорируют « отверстие для записи ». Это основа, которая позволяет требовать наличия резервных модулей для аппаратных RAID-массивов по сравнению с отсутствием такового для программных RAID-массивов. Ну, для е. g. Программная реализация RAID в Linux либо поддерживает битовые карты операций записи, либо выполняет полный пересчет «четности» в случае некорректного завершения работы. ZFS всегда стремится к записи с полными полосами, чтобы избежать этой несогласованности или откладывать повторную проверку. Итак, вкратце, достаточно умный программный RAID в настоящее время часто бывает достаточно хорош, чтобы его можно было использовать вместо так называемого «аппаратного RAID» «кто знает, что находится внутри».
Что касается части вопроса, связанной с кешем, это действительно не так. Это не имеет большого значения, потому что кэш записи самой ОС может быть намного больше, чем у "аппаратного" адаптера.
RAID-контроллер, который вы видите, дешевый и, по сути, подделка. Это даже зависит от вашей материнской платы, чтобы обеспечить некоторые функции, такие как память, и не многие материнские платы поддерживают ее, что приводит к тому, что вы не можете загрузить драйвер.
О HW и SW-RAID. Я больше не использую HW-RAID, если, например, это не коробка с логотипом EMC. Что касается всего остального, я просто снова переключился на SW-RAID много лун по нескольким очень простым причинам.
Вам нужно дополнительное оборудование и вам нужно согласовать их. Вам также необходимо согласовать прошивку и синхронизировать ее. Многие диски не будут работать правильно, и у вас будут всплески задержки ввода-вывода по непонятной причине.
Дополнительное оборудование стоит дорого, поэтому вы можете использовать эти дополнительные 1000 долларов (приличный контроллер с двумя / тремя дисками) для небольшого решения лучше . Купите больше дисков и стандартных контроллеров, память ECC, более быстрый процессор. И запасной диск на месте, возможно, если вы планируете использовать его дольше гарантийного срока или не хотите платить экспресс-сборы за ночную доставку.
Обновление - это боль, так как вам нужно следить за ОС -патчи и прошивки как для диска, так и для контроллера. Это может привести к ситуации, когда обновление / обновление больше невозможно.
О форматах диска. Достаточное количество поставщиков используют внутреннюю структуру для хранения данных, связанных с версией вашего оборудования и комбинации прошивки. Это может привести к ситуации, когда замена детали сделает невозможным доступ к вашим данным.
Это SPOF и узкое место. Наличие только одного контроллера за одним PCI-мостом не дает вам действительно необходимой производительности и избыточности. При этом также не существует пути миграции для переноса данных на другой дисковый набор за пределами досягаемости контроллеров.
Большинство этих моментов было решено с помощью новых поколений программного обеспечения SW-RAID или таких решений, как ZFS и BtrFS. Имейте в виду, что в конечном итоге вы хотите защитить свои данные, а не быстро доступный, а избыточный мусор.
В прошлом году (время от времени в течение 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, тестирования и настройки, это были мои результаты.
Я постоянно этим занимаюсь. Это сильно зависит от ваших действий и уровня рейда, который вы поддерживаете. SW-контроллер, использующий Raid 0 или 1 для ОС, и ничего особенного не в порядке. Запуск контроллера SW с Raid 5 в базе данных вызывает проблемы! НЕКОТОРЫЙ аппаратный контроллер действительно дает вам лучшую производительность, но это зависит от того, может ли он кэшировать и чипсет процессора рейдовой карты. Также не все программные контроллеры поддерживаются всеми ОС. Так что иногда вам, возможно, придется купить HW для запуска ESXi ... Если вы не используете sata-соединения.