Поскольку данные разбиваются на очень малые полосы, RAID 3 может обеспечить высокую скорость передачи данных. Любой запрос ввода-вывода включает параллельную передачу данных из всех дисков массива.
Особенно заметна повышенная производительность при передаче большого объема данных. Однако за один раз может быть выполнен только один запрос ввода-вывода, поэтому в ориентированной на транзакции среде производительность падает.
RAID 4
RAID-уровни с 4-го по 6-й используют технологию независимого доступа. В массиве с независимым доступом каждый диск функционирует независимо от других, так что отдельные запросы ввода-вывода могут выполняться параллельно. Соответственно, массивы с независимым доступом могут использоваться в тех приложениях, которым необходима высокая частота запросов ввода-вывода, и менее пригодны для приложений, требующих большой скорости передачи данных.
Как и в других RAID-схемах, здесь применяется расщепление данных на полосы. В схемах RAID 4-6 полосы сравнительно большие. В RAID 4 по соответствующим полосам на каждом диске данных вычисляется полоса четности, хранящаяся на дополнительном избыточном диске.
После обновления (измененные биты отмечены штрихом) получаем:
В схеме RAID 4 имеются дополнительные расходы при выполнении операции записи небольшого блока данных. При каждой записи программное обеспечение управления массивом должно обновить не только пользовательские данные, но и соответствующие биты четности. Рассмотрим массив, состоящий из пяти дисков, в котором устройства Х0-ХЗ содержат данные, а Х4 представляет собой диск четности. Предположим, что выполняется запись, которая включает только полосу на диске XI. Изначально для каждого i-го бита выполняется следующее соотношение:
Итак, для вычисления новой четности программное обеспечение управления массивом должно прочитать старую пользовательскую полосу и старую полосу четности. После этого программное обеспечение может обновить эти две полосы новыми данными и вновь рассчитанной четностью. Таким образом, запись каждой полосы включает два чтения и две записи.
При большом размере записи ввода-вывода, которая включает полосы на всех дисковых накопителях, четность легко вычисляется путем расчета с использованием только новых битов данных. Таким образом, информация на диске четности может быть обновлена параллельно с обновлением пользовательских данных, без лишних операций чтения и записи. Тем не менее в любом случае каждая операция записи должна обновлять информацию на диске четности, что может стать узким местом системы.
RAID 5
RAID 5 организован подобно RAID 4, но с тем отличием, что RAID 5 распределяет полосы четности по всем дискам. Распространенное размещение полос четности — в соответствии с циклической схемой, как показано на рис. 11.9,е.
Распределение полос четности по всем накопителям позволяет избежать снижения производительности, связанного с операциями ввода-вывода с одним диском четности (с чем мы столкнулись при рассмотрении RAID 4).
RAID 6
Схема RAID 6 была представлена в работе [KATZ89] разработчиками из Беркли. В этой схеме выполняются два различных расчета четности, результаты которых хранятся в разных блоках на разных дисках. Поэтому массивы RAID 6 с объемом пользовательских данных, требующих N дисков, состоят из N+2 дисков.
На рис. 11.9,ж показана схема RAID 6. На этом рисунке Р и Q представляют результаты применения двух различных алгоритмов проверки данных. Один из них — применение операции "исключающего или", используемой в RAID 4 и RAID 5, другой представляет собой более сложную схему вычислений. Это дает возможность восстановления данных даже в случае сбоя двух дисков массива.
Преимущество RAID 6 состоит в том, что эта схема обеспечивает чрезвычайно высокую надежность хранения данных. Потери данных возможны лишь при одновременном выходе из строя трех дисков массива. С другой стороны, у RAID 6 высокие накладные расходы при операциях записи, поскольку каждая запись затрагивает два блока четности.
11.7. ДИСКОВЫЙ КЭШ
В разделе 1.6 и приложении А к главе 1, "Обзор компьютерных систем", мы рассмотрели принципы работы кэш-памяти. Термин кэш-память обычно применяется к памяти, которая меньше и быстрее основной памяти и которая располагается между основной памятью и процессором. Кэш-память уменьшает среднее время доступа к памяти благодаря принципу локализации.
Этот же принцип может быть применен и к дисковой памяти. Кэш диска представляет собой буфер в основной памяти для содержимого некоторых секторов диска. Если запрос ввода-вывода обращается к отдельному сектору, то сначала производится проверка на наличие этого сектора в кэше. Если сектор имеется в кэше, то запрос удовлетворяется из кэша. В противном случае запрошенный сектор считывается в кэш с диска. Если блок данных потребовался для выполнения одиночного запроса ввода-вывода, то, исходя из принципа локализации, весьма вероятно, что он вновь потребуется в ближайшем будущем.