Э.П. ЛАНИНА

Системы высокой готовности

Около 26% системных сбоев вызвано отказами  дисковых систем. Это связано с тем, что дисковые системы являются сложными электромеханическими устройствами, которые содержат элементы, постоянно движущиеся с большой скоростью, что приводит к их износу и поломкам. Если вышел из строя один из дисков, на который была записана файловая система прикладной программы, незащищенная вычислительная система должна быть отключена  для замены отказавшего дискового модуля. После  этого данные прикладной программы восстанавливаются по резервной копии. Дисковая система высокой готовности в такой ситуации продолжает нормально работать (с несколько пониженной пропускной способностью). Возможны конфигурации, в которых у  прикладных программ вообще  нет простоев, возникающих при замене отказавшего дискового модуля. Примером системы высокой готовности является технология RAID (Redundant Arrays of Inexpensive Disks - матрицы недорогих дисковых накопителей с избыточностью). Основным в этой технологии является использование группы недорогих дисков для создания большого дискового пространства. Идея технологии RAID базируется на работе, проведенной профессором Д. А. Паттерсоном в Калифорнийском университете. В 1988 году  сотрудники Калифорнийского университета  опубликовали  работу  под названием ²Доводы в пользу избыточных массивов  недорогих дисков². В этой работе впервые было введено сокращенное название RAID и описано пять способов  организации дисковых массивов, получивших название уровней RAID. Концепция RAID предусматривает различные технические решения, которые в настоящее время  реализованы на базовых уровнях RAID - с нулевого по седьмой. Основная идея алгоритмов объединения дисков заключается в том, что поток данных делится на кванты информации, которые параллельно записываются на различные диски. При считывании кванты информации параллельно считываются и преобразуются в единый поток. Подход Д.А.Паттерсона имеет много преимуществ. В дисковом массиве возможна организация одновременных запросов чтения и записи . Диски управляются независимо - пока один ищет нужную запись, другой может посылать данные процессору. Запись избыточной информации позволяет полностью восстановить данные в случае выхода из строя одного из дисков в группе или выхода из строя шины контроллера. Дисковый массив RAID -  это двумерный массив, строки  которого образуют связи по высокоскоростным шинам данных со столбцами, образованными группами дисковых модулей.  Дисковые матрицы, работающие как единое устройство (часто называемое виртуальным диском) по стандарту RAID, находят все большее применение для создания отказоустойчивых систем. Общими чертами всех вариантов RAID является распределение данных по нескольким дискам, с выделением части дискового пространства для хранения избыточной информации, которая используется для восстановления данных при выходе из строя одного из дисков матрицы. RAID-системы могут реализоваться как программными, так и аппаратными средствами. Программно реализованные RAID-системы     увеличивают нагрузку на центральный процессор сервера, но программная реализация обходится дешевле, т.к. не требует расходов на дополнительные процессоры памяти. При аппаратной реализации необходимы процессоры памяти, которые производят вычисления четности и распределение блоков данных по дискам. Все аппаратно реализованные системы более надежны, т.к. завершают работу по восстановлению данных  даже после выключения сервера. Возможно промежуточное решение, использующее специальные интеллектуальные контроллеры дисковых матриц, которые 6ерут на себя вычисление четности и функции ввода/вывода, разгружая тем  самым центральный процессор.  В то же время, такой подход характеризуется наличием далеко не всех черт, присущих вычислительным системам высокой готовности. Традиционная архитектура RAID предполагает статическое отображение блоков данных виртуального диска на  физические блоки физических дисков. Такая жесткая схема отображения упрощает работу контроллера RAID, но не позволяет изменять структуру массива. Динамическое отображение позволяет устанавливать дополнительные физические диски, создавая новую конфигурацию виртуального диска, но при этом необходимо перераспределить данные по всему дисковому массиву. Чтобы упростить процесс перераспределения данных, компания Hewlett- Packard предложила программную реализацию по технологии HP AutoRAID (или структурированный RAID - log structured RAID). При появлении новых дисков AutoRAID равномерно распределяет данные по всей дисковой подсистеме. В основе записи данных по технологии AutoRAID могут лежать различные уровни RAID. Современные системы высокой готовности позволяют:

a)   не прерывать работу прикладных программ, обеспечивая доступ к данным в случае отказа одного компонента дисковой системы;

b)   обеспечить подключение и использование дисковой подсистемы без каких-либо изменений в имеющихся прикладных программах;

c)   поддерживать возможности гибкого выбора и сочетания различных конфигураций, уровня избыточности и степени расширения системы; 

d)   обеспечивать средства обнаружения и исправления ошибок при хранении и передаче данных; 

e)    обеспечивать высокую скорость обработки запросов в системах массового обслуживания; 

          f) поддерживать возможность  образования дисковых систем, одновременно подключенных и используемых несколькими компьютерами.

Краткое описание уровней RAID.

Уровень RAID0 обеспечивает разбиение данных на логические блоки и запись их на разные физические диски. Этот уровень не поддерживает избыточности и восстановления данных при выходе из строя одного из дисков и может использоваться в сочетании с копированием файловой системы. На уровне RAID0  не обеспечивается устойчивость к сбоям и  не производится проверка по четности в дисковом массиве. Но за счет параллельного обмена с дисковой памятью поддерживается высокая производительность и максимально используется весь объем памяти. Конфигурация, обеспечивающая преобразование группы дисков в один ²виртуальный² диск называется ленточным массивом (striped array).С точки зрения операционной системы, запись данных  на ленточный массив выглядит как последовательная запись блоков данных на один диск. Реально, контроллер массива распределяет блоки данных по группе дисков. Например, в трехдисковом  массиве логический блок 1 записывается в физический блок 1 диска 1, логический блок 2 отображается в физический блок 1 диска 2, логический блок 3 отображается в блок 1 диска 3, затем логический блок 4 отображается в блок 2 диска1 и т. д. Емкость ленточного массива равна сумме емкостей составляющих его дисков. Для трехдискового массива  скорость передачи данных при чтении/записи больших файлов последовательного доступа может возрасти в 3 раза. Степень надежности ленточного массива, соответственно, в 3 раза ниже.  

Уровень RAID1 поддерживает копирование данных на независимые диски. Любая запись данных происходит как на основной диск, так и на его ²отражение². Этот уровень наиболее подходит для приложений с большим числом операций записи, но страдает излишней избыточностью (100%) ввиду дублирования (отражения) данных в дисковом массиве.

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

Уровень RAID1/0 является комбинацией уровней 0 и 1. Это означает, что запись данных происходит одновременно на два логических диска, каждый из которых состоит из нескольких физических дисков. Этот уровень сочетает в себе преимущества нулевого и первого уровней.

На уровне RAID 2 происходит распределение данных по битам в дисковом массиве и исправление ошибок с применением кода Хемминга. Здесь реализуется и отказоустойчивость (данные защищены), и эффективность хранения, но восстановление данных после выхода диска из строя происходит медленнее, чем на уровне RAID1, т.к. необходимо произвести восстановление   данных отказавшего диска. После замены неисправного диска контроллер восстанавливает  распределение данных и включает диск в работу.

Уровень RAID 3 использует параллельный дисковый массив. Все диски управляются параллельно и могут рассматриваться как один большой виртуальный диск. В процессе записи блоки данных разбиваются на байты и затем запоминаются на различных дисках за одну параллельную операцию.. При  таком подходе существенно уменьшается время одной операции чтения-записи. Если дисковый массив имеет четыре диска, то блок данных может быть записан в четыре раза быстрее. Основная трудность в организации такой системы в синхронизации скоростей вращения приводов всех дисков, т.к. на всех уровнях RAID производительность увеличивается за счет параллельной работы с несколькими дисками. Уровень применим для приложений, требующих большой скорости передачи и имеющих большой объем данных (графические файлы). Избыточная информация (байт четности) сохраняется на выделенном физическом диске и для группы из четырех дисков составляет 20% от всего объема записываемой информации, что является достаточным для полного восстановления данных в случае выхода из строя одного диска. На уровне RAID3  удается ускорить выполнение отдельной операции чтения/записи, но при этом одновременно можно отрабатывать только одну операцию для всего дискового массива. Для приложений, оперирующих большим числом маленьких запросов, желательно независимое управление дисками.

Рис.1.  Дисковая система RAID3.

В итоге можно сказать, что на уровне 3 распределение данных в дисковом массиве происходит побайтно, а для четности специально отведен один диск - диск четности, см. Рис.1.

Уровень RAID 4 повторяет все особенности уровня 3, за тем исключением, что распределение данных производится на уровне блоков данных по принципу ²каждый блок - на свой диск². Таким образом, выполнение операций происходит быстрее, но устойчивость к сбоям меньше, по сравнению с уровнем 3, см.Рис.2.

Рис.2. Схема распределения информации по дискам матрицы RAID4.

Уровень RAID 5 отличается от уровня 3 несколькими особенностями. Диски функционируют независимо, что увеличивает число одновременно выполняемых операций чтения-записи. Для группы из пяти дисков в конфигурации уровня 5 можно найти пять записей за время поиска одной на уровне 3. Избыточная информация хранится не на выделенном диске, а записывается по частям на разные. На уровне 5 производится чередование блоков в дисковом массиве с распределением как собственно данных, так и их четности. Таким образом, на этом уровне поддерживается устойчивость к сбоям, эффективность использования памяти, параллельное выполнение ввода-вывода на диск, однако, это достигается за счет замедления операций чтения-записи по сравнению с уровнем 0.  Преимущества такого подхода - умеренная избыточность аппаратуры, минимизация времени простоев прикладных программ при отказе одного компонента в дисковой системе, общая гибкость конфигурации системы, и все это - при относительно низкой стоимости.

Рис.3. Схема распределения информации по дискам матрицы RAID5.

 Технология RAID 5 защищает от сбоев одного из дисководов путем вычисления четности для всех данных какого-либо сектора на всех дисководах, за исключением одного, и записи этой четности в сектор с таким же номером на выделенном диске. Поскольку секторы с четностью распределяются по всем дисководам, отказ какого-либо диска приведет к потере своих собственных данных, которые смогут быть вычислены другими дисками с помощью их секторов с четностью и нескольких секторов с четностью (хотя фактически данные останутся нетронутыми на других дисках). На уровне технологии RAID 5 четность распределяется по всем дискам в группе. Поэтому отношение объема хранимых в группе данных к общему объему памяти в группе равно (N-1)/ N, где N. - это число дисков в группе. Если в группе пять дисководов (дисковых модулей), то 4/5 (80%) суммарного дискового пространства группы отводится для хранения данных.

Уровень RAID-S можно считать модернизацией уровня RAID5. Производительность уровня RAID5 можно увеличить, если производить вычисление разрядов четности в дисковых контроллерах, для чего в каждый контроллер потребуется ввести отдельный микропроцессор. Это повышает производительность системы при записи, т.к. центральный процессор освобождается от вычисления контрольных разрядов и занимается обслуживанием операций ввода-вывода.

Уровень RAID6 отличается от RAID5 тем, что два сектора каждого диска отводятся для хранения четности. Благодаря применению двух независимых вычислений , результаты которых распределены по разным физическим дискам одной группы дисков, возможно восстановление данных при выходе из строя двух физических дисков одной группы. Конечно, здесь уровень устойчивости к сбоям самый высокий по сравнению с остальными уровнями, но и стоимость поддержания этого уровня очень высока.

 Уровень RAID7 не предлагает новой архитектуры распределения данных на дисковом массиве. Новый стандарт предлагает новую технологию распределения данных внутри матрицы. Работой матрицы управляет собственная операционная система реального времени, которая действует независимо от сетевой ОС и ОС серверов и рабочих станций. При каждом цикле чтения-записи данные проходят через управляемые процессорами буферные схемы Каждый диск обслуживается  выделенным каналом ввода-вывода, микропроцессором и блоком оперативной памяти, предназначенным для буферизации данных. Новая технология позволяет объединять в массивы  диски разных производителей, с разными техническими характеристиками, т.к. каждый диск имеет свою управляющую шину.

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

Выбор типа алгоритма зависит от типа решаемых задач. Наиболее быстрый и максимально использующий дисковое пространство алгоритм RAID0. Это лучшее решение для мощной графической станции, работающей с мультимедиа-файлами в реальном времени, когда использование КЭШ уже не дает выигрыша. Уровни RAID5 и RAID1 позволяют обеспечить работу с максимальной надежностью сохранения данных при сбое. Контроллеры RAID5 имеют обычно функции горячей замены и установки резервных дисков. Важной задачей является выбор емкости жестких дисков, образующих массив. Например, при организации RAID5 с полезным объемом 8Гбайт можно поставить 3 диска по 4Гбайт, 5 дисков по 2Гбайт или 9 дисков по 1Гбайт. Теоретически большее количество дисков обеспечивает большую скорость работы матрицы. При выборе готового изделия необходимо оценить:

 Обеспечивает ли RAID-система гибкий выбор уровня или жестко задает только один уровень?

Производит ли система автоматически настройку на нужный уровень в соответствие с рабочей нагрузкой ?

Имеется ли КЭШ для ускорения операций ввода-вывода?

Обеспечивается ли ²горячая² замена дисков?

Как осуществляется предупреждение об отказе диска или других компонентов системы?

Имеется ли возможность ²горячего² резервирования?

Литература:

1. Современные RAID-контроллеры. Сергей Романчиков. Открытые системы         N2,1996,с14-19.

2.  Массив избавит от хлопот. Алан Франк. LAN MAGAZINE / Русское издание. Т.2, N2, 1996г.,с.49-53.

3.  Дисковые системы высокой готовности фирмы ²Data General². Монитор-Аспект. N6,1995г.,с.66-71.

4.  Накопители EMC. Алексей Тарасов. Компьютерра. N6 (133), 1996г.,с.35-40.

5.  Знакомьтесь: RAID Level 7. Дмитрий Ведев. PC MAGAZINE / Русское издание.N12, 1995г., с.172-173.

 

Hosted by uCoz