Опубликован: 11.12.2006 | Уровень: специалист | Доступ: платный

Лекция 5: Конфигурирование и планирование подсистемы ввода-вывода

Обзор типовых уровней RAID

Главной особенностью массивов RAID является то, что логический диск формируется из двух или нескольких физических дисковых накопителей и воспринимается Windows 2000 (и Performance Monitor) как один физический дисковый накопитель. Логический дисковый накопитель может содержать многие сотни Гб данных, хотя изготовлять дисковые накопители емкостью в 100 Гб не удается (пока что!).

Большинство уровней RAID, о которых мы вам расскажем, применяют расслоение данных (data striping), при помощи которого данные с двух или нескольких дисков объединяются в один большой логический RAID-диск. Это делается так: первый фрагмент данных берется с первого диска, второй кусок данных – со второго диска, и так далее. Эти фрагменты данных называются слои (stripes) или куски (chunks). Размер слоев данных задается контроллером. Некоторые контроллеры разрешают вам конфигурировать размеры слоев, а некоторые применяют слои фиксированного размера.

Название "слой" ("кусок") применяется как к фрагментам данных на каждом из отдельных дисков, так и к набору слоев (кусков) для всей совокупности дисков (рис. 5.8).

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

  Слои RAID

Рис. 5.8. Слои RAID

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

RAID 0

RAID 0 являются самым "фундаментальным" из уровней RAID, он обеспечивает только расслоение дисков. Куски данных создаются на каждом из дисковых накопителей, а размер кусков задается контроллером. Для составления большого логического диска применяется метод кругового распределения кусков данных по отдельным дискам массива RAID 0 (рис. 5.9).

 RAID 0

Рис. 5.8. RAID 0

Хотя RAID 0 и причисляется к массивам RAID, однако данный уровень RAID не обеспечивает избыточности (redundancy, вспомните расшифровку аббревиатуры RAID: Redundant Array of Independent Disks ). Раз избыточности нет, то и отказоустойчивость тоже отсутствует. Если в массиве RAID 0 откажет хотя бы один диск, то все данные будут потеряны. Отказ одного из дисков будет сравним с уничтожением каждого четвертого слова в книге. Если произойдет такая потеря данных, то массив RAID станет бесполезным.

Рекомендации по применению RAID 0

Как правило, нельзя рекомендовать применять RAID 0 для хранения файлов данных SQL Server. Так как данные в базе данных очень важны для вашего бизнеса, то их потеря может погубить вашу фирму. Массивы RAID 0 не защищают от отказов дисков, поэтому вам не следует применять их ни для каких критически важных компонент, таких как операционная система, журнал транзакций или файлы базы данных.

Примечание.Диски вращаются с большими скоростями и работают в условиях высоких температур. Так как они содержат подвижные детали, то когда-нибудь они обязательно сломаются. Поэтому важно, чтобы файлы данных SQL Server были бы защищены от отказов дисков при помощи отказоустойчивой системы.
RAID 1

RAID 1 являются "фундаментальным" уровнем RAID, обеспечивающим отказоустойчивость. В алгоритме RAID 1, называющемся также "зеркальное отражение", предусмотрено изготовление дублирующей копии вашего диска с данными. Дублирующая копия содержит ту же самую информацию, что имеется и на первоначальном диске (рис. 5.10). При отказе диска в строй вступит диск-дубль, и вы не потеряете данные. Так как на каждом диске (и на первоначальном, и на зеркале) хранятся все данные, то расслоение данных отсутствует. В RAID 1 второй диск применяется для дублирования первого, поэтому общий объем логического тома RAID 1 совпадает с объемом одного дискового накопителя. RAID 1 является дорогостоящим решением: при удвоении количества применяемых дисков вы взамен не получаете никакого увеличения объема дисковой памяти, но зато он обеспечивает высокий уровень отказоустойчивости.

 RAID 1

Рис. 5.10. RAID 1

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

Запись данных на оба диска также снижает производительность логического дискового накопителя. При подсчете количества операций ввода-вывода, производимых на всех дисках массива, нужно умножать количество записей на 2. Чтение данных производится только с одного из дисков. Скорости работы дисков могут отличаться, потому что головки одного из дисков могут оказаться в другом положении, чем головки другого диска, и из-за этого время поиска нужной дорожки может оказаться более длительным. Положение головок может быть разным из-за функции уровня RAID 1, называющейся параллельный поиск (split seek).

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

Рекомендации по применению RAID 1

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

  • Применяйте RAID 1 для диска, на котором содержится ваша операционная система, потому что ее воссоздание занимает очень много времени. RAID 1 хорошо подходит для этой задачи еще и потому, что операционная система обычно может уместиться на одном диске.
  • Применяйте RAID 1 для журнала транзакций. Обычно журнал транзакций SQL Server может уместиться на одном диске. Кроме того, для журнала транзакций применяется в основном последовательная запись. Чтение из журнала транзакций производиться только из-за операций отката. Поэтому, если вы выделите для журнала транзакций отдельный том RAID 1, то вы достигните высокой производительности.
  • Для томов RAID 1 следует применять кэширование записи. Так как запись для RAID 1 не завершена до тех пор, пока не будет выполнена запись на обоих дисках, то производительность записи может быть повышена при помощи кэша записи. Но если вы применяете кэш записи, обязательно защищайте данные в нем при помощи бесперебойного электропитания.

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

Максим Ерохин
Максим Ерохин
Россия, г. Санкт-Петербург
Татьяна Лубинец
Татьяна Лубинец
Россия, Уфа, Уфимский авиационный институт, 1987