RAID-массивы. Компромиссы RAID-технологии. Производительность RAID-систем, страница 4

·  Зеркалирование: Производительность считывания при зеркалировании намного выше производительности записи. Предположим, что в системе зеркалируются два накопителя. Каждый фрагмент данных дублируется и сохраняется в обоих накопителях. Следовательно, каждый сохраняемый байт необходимо записать в обоих накопителях, поэтому производительность записи медленнее по сравнению с использованием одного накопителя. При считывании совсем не нужно обращаться к двум накопителям; достаточно "интеллектуальный" контроллер будет запрашивать данные только из одного накопителя, а второй накопитель может удовлетворять другой запрос. В результате RAID-массив по считыванию значительно быстрее одиночного накопителя.

·  Чередование без паритета: Массив RAID имеет примерно одинаковую производительность считывания и записи. Разбиение данных без вычисления паритета означает, что при считывании необходимо обращаться к такому же числу накопителей, что и при записи.

·  Чередование с паритетом: Производительность записи при чередовании с паритетом хуже производительности считывания. Операции считывания при чередовании с паритетом могут быть быстрее, чем при чередовании без паритета так как данные распределены на один дополнительный накопитель, несколько улучшая параллелизм. При записи появляются потери на вычисление паритета и записи на дополнительный диск для сохранения информации о паритете. Следовательно, записи оказываются медленнее, чем при чередовании без паритета.

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

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

Производительность позиционирования и передачи данных

Аналогично тому, как различные реализации RAID отличаются производительностью считывания и записи, они отличаются производительностью обращения к данным. Обращение к данным в одном жестком диске состоит из двух дискретных этапов: вначале головки перемещаются на то место, где находятся данные (этот этап называется позиционированием - positioning), а затем происходит передача (transfer) данных на диски или с дисков. Производительность жесткого диска зависит от обоих этапов.

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

Приведем общие различия основных способов хранения данных в RAID-массивах применительно к производительности позиционирования и передачи в операциях записи и считывания:

·  Зеркалирование: При считывании обычно происходит обращение только к одному накопителю, но контроллер может использовать оба накопителя для выполнения двух независимых обращений. Следовательно, зеркалирование повышает производительность позиционирования. Однако после нахождения данных контроллер считывает только из одного накопителя и зеркалирование не улучшает производительности последовательных обращений. При записи используются оба накопителя и производительность, в общем, хуже, чем в случае одного накопителя.

·  Чередование: Большие файлы, которые разбиваются на блоки, которые помещаются на все накопители массива, требуют, чтобы каждый накопитель позиционировался на определенное место, поэтому производительность позиционирования не улучшается. Однако после того, как все головки приведены в нужную позицию, данные считываются со всех накопителей сразу, что значительно повышает производительность передачи. В операциях считывания небольшие файлы, которые не требуют считывания со всех дисков в массиве, могут разрешить интеллектуальному контроллеру производить несколько обращений параллельно. При этом повышается производительность позиционирования и передачи, но увеличение производительности передачи относительно невелико.

Так что же важнее - позиционирование или передача? На этот спорный вопрос однозначно ответить невозможно. Все зависит от особенностей конкретного применения. Простейшее правило гласит, что чем больше рабочие файлы, тем важнее производительность передачи, а чем меньше файлы, тем важнее позиционирование.

Деградированная работа и перестройка

Все обсуждения о производительности RAID-массива опираются на предположение о том, что массив работает нормально и все накопители функционируют. RAID-системы с избыточностью позволяют системе продолжать работать даже при отказе одного из накопителей. Однако при отказе производительность снижается; говорят, что в этом случае массив работает в деградированном состоянии (degraded state), которое иногда называется критическим состоянием (critical state). Влияние на производительность зависит от типа RAID, используемого массивом, а также реакции RAID-контроллера на отказ накопителя.