Транзакционные базы данных
RAID-5 записывается относительно медленно, поскольку контроллеру необходимо загрузить достаточно данных для пересчета четности записи. Операции записи потребуют как минимум четырех операций на диске:
Чтение в блоке четности
Чтение в старом блоке (при условии, что он еще не находится в кэше) для XOR значения с блоком четности.
Запись нового блока четности (старый блок четности XOR старый блок данных XOR новый блок данных)
Запись нового блока данных.
Если система не использует кэширование с обратной записью, это означает, что все эти операции находятся на критическом пути для завершения ввода-вывода. Зачастую это происходит при записи в базу данных - фактически Microsoft (например) имеет программу сертификации оборудования SAN для использования с сервером SQL, которая требует от поставщиков гарантировать такое поведение. Иногда старое оборудование RAID-5 не использовало эту оптимизацию и должно было пересчитать соотношение по всей полосе.
RAID-10 имеет зеркало для каждого отдельного диска и не требует считывания дополнительных данных для вычисления четности. Это означает, что записи требуют гораздо меньше физического ввода-вывода.
RAID-50 находится где-то посередине, а том разделен на несколько томов RAID-5, которые в свою очередь чередуются. На RAID-50, составленном из групп с чередованием по схеме 3 + 1, запись генерирует не более трех дополнительных запросов ввода-вывода. Если вы чувствуете такую склонность, вы можете рассматривать RAID-5 и RAID-10 как особые случаи RAID-50. RAID-50 в основном используется для обеспечения больших объемов на многих физических дисках
Существуют и другие схемы контроля четности, такие как RAID-6 (схема контроля четности с двумя избыточными дисками в каждом наборе). Современные диски достаточно велики, чтобы повторная сборка массива могла занимать довольно много времени - достаточно долго, чтобы риск отказа второго диска во время перестройка довольно значительная. RAID-6 снижает этот риск благодаря наличию второго диска с проверкой четности, для которого требуется три сбоя диска, которые могут привести к потере данных. Трюк, аналогичный схемам RAID-50, можно использовать для создания массивов RAID-60.
Наконец, одна зеркальная пара (известная как RAID-1) может обеспечить избыточность и достаточно хорошую производительность для некоторых задач. В частности, вы, вероятно, обнаружите, что RAID-1 обеспечивает достаточную пропускную способность для достаточно большого трафика журнала базы данных. Подробнее об этом ниже.
Если у вас высокая нагрузка на запись, вы, вероятно, получите выигрыш в производительности от тома RAID-10. Это может быть выигрышным, поскольку вы, вероятно, сможете получить требуемую пропускную способность с меньшего количества физических дисков, при условии, что на дисках достаточно места). Некоторые элементы, такие как журналы или временные области на сервере базы данных, должны быть на томах RAID-1 или RAID-10, поскольку они получают большой объем трафика записи.
бревна
Тома журналов характеризуются в основном последовательным шаблоном доступа к данным и, по сути, представляют собой кольцевой буфер, состоящий из команд типа «записать эти данные в этот блок». Они записываются как ядро ядра СУБД как обработчик и обрабатываются как потребитель с помощью функции чтения журнала. Одна зеркальная пара на самом деле будет обрабатывать довольно много журнального трафика.
Чтение тяжелых систем и файловых серверов
В системах с большим объемом чтения, таких как хранилище данных, вы можете использовать один или несколько томов RAID-5. На файловом сервере доступ к диску будет в основном осуществляться на основе целого файла, поэтому при записи, вероятно, будет записано большинство блоков, которые в любом случае составляют блок четности. В этом случае производительность Penalyt для RAID-5 будет легче.
В прошлом экономия на диске могла быть значительной, но сейчас это менее вероятно.
Кэширование с обратной записью и RAID-5
На SAN или внутреннем RAID-контроллере с кэшем с резервным питанием от батареи вы можете включить кэширование с обратной записью. Это кэширует записи и возвращает управление приложению. Контроллер сообщает о завершении ввода / вывода. Однако, это не обязательно записывает данные на диск немедленно. Это средство позволяет существенно оптимизировать операции чтения / записи с контролем четности RAID-5 и может снизить потери производительности при записи для томов RAID-5x.
Тем не менее, это все еще несет небольшой риск проблем целостности данных. Хост-системе сообщили, что эта запись была завершена, хотя в действительности это не так. При сбое оборудования возможно возникновение несоответствий между (скажем) журналом и томами данных на сервере базы данных. По этой причине кэширование с обратной записью не рекомендуется для транзакционных систем, хотя это может быть выигрыш в производительности для чего-то вроде процесса ETL.
Резюме
В настоящее время дисковое пространство настолько дешево, что транзакционным системам, вероятно, следует использовать RAID-1 или RAID-10 для томов журнала и RAID-10 для томов данных. Размер физического диска, вероятно, будет намного больше, чем размер базы данных, а RAID-10 позволит увеличить пропускную способность записи для того же количества дисков, что потенциально уменьшит количество томов на диске, необходимых для поддержки системы.
В чем-то вроде хранилища данных вы все еще можете жевать пространство с большими, сильно индексированными таблицами фактов, поэтому вы можете получить небольшую выигрышную цену с объемами данных RAID-5 или RAID-50. Однако журналы и базу данных tempdb все равно следует размещать на томе RAID-10, поскольку они, вероятно, будут выполнять большую работу во время обработки ETL. Однако экономия на диске, вероятно, будет довольно небольшой.