Реферат: Конспект лекцій до дисципліни Безпека програм та даних
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
ЛУГАНСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
ІМЕНІ ТАРАСА ШЕВЧЕНКА
ІНСТИТУТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
КАФЕДРА ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КОНСПЕКТ ЛЕКЦІЙ
до дисципліни
Безпека програм та даних
Спеціальність: Програмна інженерія
2011
Лекция 1. Введение. Категории информационной безопасности. Защита программ.
От чего защищают программы
Коммерческие программы обычно защищают от несанкционированного ти-
ражирования.
Наличие доступа только к носителю информации с дистрибутивом (набором
инсталляционных файлов) программного продукта не должно давать воз-
можности установить работоспособную копию программы. То есть данных
дистрибутива, который можно скопировать или незаметно взять на несколь-
ко дней, не должно хватать для создания работоспособной копии програм-
мы. Подобные ограничения могут быть реализованы разными способами.
Например, очень многие коммерческие программы при инсталляции требу-
ют ввести серийный номер, напечатанный на коробке или указанный в од-
ном из прилагаемых к программному продукту документов (у Microsoft —
в сертификате аутентичности). |
Также часто возникает потребность ограничить число пользователей, одновре-
менно работающих с программой. То есть человек, который приобрел лицен-
зию на одно рабочее место, не должен иметь возможности создать 2 рабочих
места, функционирующих одновременно. Это достигается за счет использова-
ния аппаратных ключей, менеджеров лицензий и процедуры активации.
Для некоторых программных продуктов (в частности игр) часто использует-
ся привязка к носителю информации, например компакт-диску. То есть для
запуска игры требуется наличие в приводе оригинального компакт-диска,
который защищен от копирования стандартными средствами.
Для оценочных версий, ограниченных по времени или числу запусков, не-
обходимо правильно реализовать хранение счетчиков, чтобы злоумышлен-
ник не смог заставить работать программу, просто переведя часы или удалив
файл, в который записывается количество запусков программы или число
файлов.
Условно бесплатные продукты, в отличие от ограниченных по функ-
циональности оценочных версий коммерческих программ, после ввода
регистрационного кода должны предоставлять доступ ко всем функциям,
предусмотренным в полной версии программы. То есть в бесплатно распро-
страняемой версии программы должны быть реализованы все функции полной
версии. Следовательно, желательно так организовать защиту, чтобы зло-
умышленник не смог добраться до функций, присущих только полной
сии, пока в его распоряжении не будет правильного регистрационного
Процедуры проверки правильности серийных номеров, а также
кодов и кодов активации должны строиться таким образом, чтобы
злоумышленник не мог самостоятельно генерировать правильные коды и,
в то же время, длина кодовой строки не была очень большой.Глава 9. Актуальные задачи защиты программ 105
Также может возникнуть потребность защищать любые исполняемые файлы от
внесения изменений, дизассемблирования, исследования под отладчиком и т. д.
^ Категории информационной безопасности
Информация с точки зрения информационной безопасности обладает следующими категориями:
конфиденциальность – гарантия того, что конкретная информация доступна только тому кругу лиц, для кого она предназначена; нарушение этой категории называется хищением либо раскрытием информации
целостность – гарантия того, что информация сейчас существует в ее исходном виде, то есть при ее хранении или передаче не было произведено несанкционированных изменений; нарушение этой категории называется фальсификацией сообщения
аутентичность – гарантия того, что источником информации является именно то лицо, которое заявлено как ее автор; нарушение этой категории также называется фальсификацией, но уже автора сообщения
апеллируемость – довольно сложная категория, но часто применяемая в электронной коммерции – гарантия того, что при необходимости можно будет доказать, что автором сообщения является именно заявленный человек, и не может являться никто другой; отличие этой категории от предыдущей в том, что при подмене автора, кто-то другой пытается заявить, что он автор сообщения, а при нарушении апеллируемости – сам автор пытается "откреститься" от своих слов, подписанных им однажды.
В отношении информационных систем применяются иные категории :
надежность – гарантия того, что система ведет себя в нормальном и внештатном режимах так, как запланировано
точность – гарантия точного и полного выполнения всех команд
контроль доступа – гарантия того, что различные группы лиц имеют различный доступ к информационным объектам, и эти ограничения доступа постоянно выполняются
контролируемость – гарантия того, что в любой момент может быть произведена полноценная проверка любого компонента программного комплекса
контроль идентификации – гарантия того, что клиент, подключенный в данный момент к системе, является именно тем, за кого себя выдает
устойчивость к умышленным сбоям – гарантия того, что при умышленном внесении ошибок в пределах заранее оговоренных норм система будет вести себя так, как оговорено заранее.
^ Абстрактные модели защиты информации
Одной из первых моделей была опубликованная в 1977 модель Биба (Biba). Согласно ей все субъекты и объекты предварительно разделяются по нескольким уровням доступа, а затем на их взаимодействия накладываются следующие ограничения: 1) субъект не может вызывать на исполнение субъекты с более низким уровнем доступа; 2) субъект не может модифицировать объекты с более высоким уровнем доступа. Как видим, эта модель очень напоминает ограничения, введенные в защищенном режиме микропроцессоров Intel 80386+ относительно уровней привилегий.
Модель Гогена-Мезигера (Goguen-Meseguer), представленная ими в 1982 году, основана на теории автоматов. Согласно ей система может при каждом действии переходить из одного разрешенного состояния только в несколько других. Субъекты и объекты в данной модели защиты разбиваются на группы – домены, и переход системы из одного состояния в другое выполняется только в соответствии с так называемой таблицей разрешений, в которой указано какие операции может выполнять субъект, скажем, из домена C над объектом из домена D. В данной модели при переходе системы из одного разрешенного состояния в другое используются транзакции, что обеспечивает общую целостность системы.
Сазерлендская (от англ. Sutherland) модель защиты, опубликованная в 1986 году, делает акцент на взаимодействии субъектов и потоков информации. Так же как и в предыдущей модели, здесь используется машина состояний со множеством разрешенных комбинаций состояний и некоторым набором начальных позиций. В данной модели исследуется поведение множественных композиций функций перехода из одного состояния в другое.
Важную роль в теории защиты информации играет модель защиты Кларка-Вильсона (Clark-Wilson), опубликованная в 1987 году и модифицированная в 1989. Основана данная модель на повсеместном использовании транзакций и тщательном оформлении прав доступа субъектов к объектам. Но в данной модели впервые исследована защищенность третьей стороны в данной проблеме – стороны, поддерживающей всю систему безопасности. Эту роль в информационных системах обычно играет программа-супервизор. Кроме того, в модели Кларка-Вильсона транзакции впервые были построены по методу верификации, то есть идентификация субъекта производилась не только перед выполнением команды от него, но и повторно после выполнения. Это позволило снять проблему подмены автора в момент между его идентификацией и собственно командой. Модель Кларка-Вильсона считается одной из самых совершенных в отношении поддержания целостности информационных систем.
^ Основные положения по разработке ПО
Общие рекомендации по написанию устойчиво работающих алгоритмов (необходимое, но не достаточное условие их информационной безопасности):
не используйте экзотические и недокументированные возможности языка программирования : Вы не уверены в том, как они реализуются на самом деле
оформляйте исходный текст ясно и четко, используйте необходимые комментарии
используйте скобки для явного указания порядка операций : компилятор может оптимизировать выполнение выражений и начать, скажем, сложение F(1)+F(2)+F(3) со второго знака "+", тем самым вызвав сначала функцию F от 2, затем от 3, а только затем от 1 – если в функции изменяются какие-либо глобальные переменные это может привести к непредсказумым последствиям
при всех удобных случаях используйте передачу параметров функции в качестве аргументов, а не в глобальных переменных
используйте структурное программирование : разбивайте сложные блоки кода на процедуры с ясной структурой и легко контролируемым набором параметров
никогда не программируйте недокументированные возможнности : технология "reverse engineering" – дизассемблирование и обратная компиляция" – на сегодняшний день достигла огромных результатов, особенно в отношении высокоуровневых языков программирования
закрывайте файлы сразу же по окончании работы с ними, а если Вы записываете важную информацию в течение долгого времени – периодически вызывайте функции сброса файлового буфера на дисковый накопитель
проверяйте свободное место на диске перед записью в файл : некоторые операционные выдают ошибки при записи на переполненный диск нестандартным образом, результат этого может быть плачевным
блокируйте файлы и наборы данных, если Вы обращаетесь к ним по записи из нескольких параллельно работающих процессов или программ
старайтесь как можно сильнее сократить время записи в совместно используемые файлы, а, следовательно, и время их блокирования
не будьте заранее уверенными, что программа запущена из той директории, где расположен ее исполнимый файл, – одной из первых команд после запуска программы явно смените каталог на желаемый
при работе с внешними и сетевыми устройствами и дисками стройте циклы ожидания таким образом, чтобы из них был возможен выход по истечении определенного периода ожидания ответа – тайм-аута
очень тщательно разрабатывайте схему синхронизации паралелльно работающих с одними и теми же данными процессов
тщательно проверяйте алгоритмы на синдром "мертвой петли" – это ситуация, когда процесс A, начав изменять объект 1 и заблокировав его в связи с этим, ожидает снятия блокирования с объекта 2, в то время как процесс B, в то же самое время начавший изменять объект 2 и заблокировав его, ожидает снятия блокировки с объекта 1 – подобная проблема при такой схеме синхронизации теоретически неразрешима, единственный выход из нее – рассматривать объекты 1 и 2 как единое целое с возможностью только совместной блокировки
аккуратно выделяйте и очищайте объекты в динамической памяти
при необходимости используйте криптографию
никогда не передавайте пароль открытым текстом
используйте криптостойкие алгоритмы шифрования и хеширования
вычищайте блоки оперативной памяти после того как информация (пароли, ключи, конфиденциальные данные), находившаяся в них, стала ненужной
всегда проверяйте длины строк и массивов перед началом работы с ними
встрайвайте в Ваши системы требование регистрации каждого оператора с уникальным паролем и записью как можно большего количества информации о сеансе в лог-файл, недоступный для изменения операторам
тщательно тестируйте Ваши приложения, в том числе на больших и неправильных входных данных
^ Ошибки, приводящие к возможности атак на информацию
Двумя основными классами ошибок при разработке программного обеспечения, приводящими к потенциальной возможности проведения атак на информацию, являются интерференция данных и нарушение неявных ограничений.
Интерференция (то есть непредусмотренное взаимодействие) данных между собой и данных с кодом является менее распространеным, но более опасным синдромом, чем описываемая ниже проблема ограничений по умолчанию. Практически единственным способом вызвать наслоение данных друг на друга либо данных на код программы является попытка дойти при операции записи до границы области памяти, отведенной под данный блок информации, и преодолеть ее – то есть умышленное переполнение буфера. Естественно, что это возможно только в тех ситуациях, когда программный код не производит проверки длины записываемого значения.
Для целых и дробных чисел, значений времени и тому подобных типов данных запись производится всегда в фиксированном объеме (2 байта, 4 байта, 10 байт). А вот для строк и массивов данных проверки длины перед операциями записи необходимы. Для того, чтобы заставить ЭВМ выполнить код или записать данные туда, куда у него нет прав записи, злоумышленник специально заставляет систему обрабатывать строки очень большой длины, либо помещать в массив количество элементов большее, чем его объем. В случае успеха возможно либо попадание части строки в сегмент кода или стека с последующим исполнением, либо модификация каких-либо служебных данных, что позволит затем злоумышленнику войти в систему в обход системы защиты. Естественно, что содержимое конца строки (оказывающееся после переполнения буфера в ненадлежащей области памяти) подбирается специальным образом. Сами данные или строки можуг быть абсолютно бессмысленными.
Проблема ограничений, которые разработчик программы считает само собо разумеющимися, но которые на самом деле могут не выполняться, встречается гораздо чаще, но реже приводит к каким-либо серьезным последствиям. Чаще всего результатом обработки подобных данных становится прерывание работы программы с сообщением об ошибке или просто "зависание". То есть данный класс атак используется с целью проведения атаки "отказ в сервисе".
Спектр возможных ограничений, не продуманных на этапе разработке ПО, чрезвычайно широк. Это могут быть и отрицательное время или сумма платежа, и текстовое значение на месте ожидаемого числа, и строки, созданные целиком из управляющих символов, и, конечно же, пустые строки. Все это приводит к одному из главных правил разработки ПО : тщательно и полностью проверяйте те входные данные программы, которые поступают в нее от человека, либо передаются по каналу связи, незащищенному от модификации.
^ Лекция 2. Методы дублирования
Для блокирования (парирования) случайных угроз безопасности информации в компьютерных системах должен быть решен комплекс задач. Дублирование информации является одним из самых эффективных способов обеспечения целостности информации. Оно обеспечивает защиту информации как от случайных угроз, так и от преднамеренных воздействий. В зависимости от ценности информации, особенностей построения и режимов функционирования КС могут использоваться различные методы дублирования, которые классифицируются по различным признакам.
По времени восстановления информации методы дублирования могут быть разделены на:
оперативные;
неоперативные. К оперативным методам относятся методы дублирования информации, которые позволяют использовать дублирующую информацию в реальном масштабе времени. Это означает, что переход к использованию дублирующей информации осуществляется за время, которое позволяет выполнить запрос на использование информации в режиме реального времени для данной КС. Все методы, не обеспечивающие выполнения этого условия, относят к неоперативным методам дублирования. По используемым для целей дублирования средствам методы дублирования можно разделить на методы, использующие:
дополнительные внешние запоминающие устройства (блоки);
специально выделенные области памяти на несъемных машинных носителях;
съемные носители информации. По числу копий методы дублирования делятся на:
одноуровневые;
многоуровневые. Как правило, число уровней не превышает трех. По степени пространственной удаленности носителей основной и дублирующей информации методы дублирования могут быть разделены на следующие методы:
сосредоточенного дублирования;
рассредоточенного дублирования
Для определенности целесообразно считать методами сосредоточенного дублирования такие методы, для которых носители с основной и дублирующей информацией находятся в одном помещении. Все другие методы относятся к рассредоточенным.
В соответствии с процедурой дублирования различают методы:
полного копирования;
зеркального копирования;
частичного копирования;
комбинированного копирования. При полном копировании дублируются все файлы. При зеркальном копировании любые изменения основной информации сопровождаются такими же изменениями дублирующей информации. При таком дублировании основная информация и дубль всегда идентичны. Частичное копирование предполагает создание дублей определенных файлов, например, файлов пользователя. Одним из видов частичного копирования, получившим название инкрементного копирования, является метод создания дублей файлов, измененных со времени последнего копирования. Комбинированное копирование допускает комбинации, например, полного и частичного копирования с различной периодичностью их проведения. Наконец, по виду дублирующей информации методы дублирования разделяются на:
методы со сжатием информации;
методы без сжатия информации.
В качестве внешних запоминающих устройств для хранения дублирующей информации используются накопители на жестких магнитных дисках и магнитных лентах. Накопители на жестких магнитных дисках применяются обычно для оперативного дублирования информации. Наиболее простым методом дублирования данных в КС является использование выделенных областей памяти на рабочем диске. В этих областях дублируется наиболее важная системная информация. Например, таблицы каталогов и таблицы файлов дублируются таким образом, чтобы они были размещены на цилиндрах и поверхностях жесткого диска (пакета дисков), отличных от тех, на которых находятся рабочие таблицы. Такое дублирование защищает от полной потери информации при повреждении отдельных участков поверхности дисков.
Очень надежным методом оперативного дублирования является использование зеркальных дисков. Зеркальным называют жесткий магнитный диск отдельного накопителя, на котором хранится информация, полностью идентичная информации на рабочем диске. Достигается это за счет параллельного выполнения всех операций записи на оба диска. При отказе рабочего накопителя осуществляется автоматический переход на работу с зеркальным диском в режиме реального времени. Информация при этом сохраняется в полном объеме.
В компьютерных системах, к которым предъявляются высокие требования по сохранности информации (военные системы, АСУ технологическими процессами, серверы сетей, коммуникационные модули сетей и другие), как правило, используются два и более резервных диска, подключенных к отдельным контроллерам и блокам питания. Зеркальное дублирование обеспечивает надежное оперативное дублирование, но требует, как минимум, вдвое больших аппаратных затрат.
Идеология надежного и эффективного хранения информации на жестких дисках нашла свое отражение в так называемой технологии RAID (Redundant Array of Independent Disks) [42]. Эта технология реализует концепцию создания блочного устройства хранения данных с возможностями параллельного выполнения запросов и восстановления информации при отказах отдельных блоков накопителей на жестких магнитных дисках. Устройства, реализующие эту технологию, называют подсистемами RAID или дисковыми массивами RAID.
В технологии RAID выделяется 6 основных уровней: с 0-го по 5-й. С учетом различных модификаций их может быть больше. Уровни RAID определяют порядок записи на независимые диски и порядок восстановления информации. Различные уровни RAID обеспечивают различное быстродействие подсистемы и различную эффективность восстановления информации. Нулевой уровень RAID предполагает поочередное использования
сосредоточенного дублирования;
рассредоточенного дублирования
Для определенности целесообразно считать методами сосредоточенного дублирования такие методы, для которых носители с основной и дублирующей информацией находятся в одном помещении. Все другие методы относятся к рассредоточенным. В соответствии с процедурой дублирования различают ме- тоды:
полного копирования;
зеркального копирования;
частичного копирования;
комбинированного копирования.
При полном копировании дублируются все файлы. При зеркальном копировании любые изменения основной информации сопровождаются такими же изменениями дублирующей информации. При таком дублировании основная информация и дубль всегда идентичны.
Частичное копирование предполагает создание дублей определенных файлов, например, файлов пользователя. Одним из видов частичного копирования, получившим название инкрементного копирования, является метод создания дублей файлов, измененных со времени последнего копирования. Комбинированное копирование допускает комбинации, например, полного и частичного копирования с различной периодичностью их проведения. Наконец, по виду дублирующей информации методы дублирования разделяются на:
методы со сжатием информации;
методы без сжатия информации. В качестве внешних запоминающих устройств для хранения дублирующей информации используются накопители на жестких магнитных дисках и магнитных лентах. Накопители на жестких магнитных дисках применяются обычно для оперативного дублирования информации.
Наиболее простым методом дублирования данных в КС является использование выделенных областей памяти на рабочем диске. В этих областях дублируется наиболее важная системная информация. Например, таблицы каталогов и таблицы файлов дублируются таким образом, чтобы они были размещены на цилинд- рах и поверхностях жесткого диска (пакета дисков), отличных от тех, на которых находятся рабочие таблицы. Такое дублирование защищает от полной потери информации при повреждении отдельных участков поверхности дисков.
Очень надежным методом оперативного дублирования является использование зеркальных дисков. Зеркальным называют жесткий магнитный диск отдельного накопителя, на котором хранится информация, полностью идентичная информации на рабочем диске. Достигается это за счет параллельного выполнения всех операций записи на оба диска. При отказе рабочего накопителя осуществляется автоматический переход на работу с зеркальным диском в режиме реального времени. Информация при этом сохраняется в полном объеме. В компьютерных системах, к которым предъявляются высокие требования по сохранности информации (военные системы, АСУ технологическими процессами, серверы сетей, коммуникационные модули сетей и другие), как правило, используются два и более резервных диска, подключенных к отдельным контроллерам и блокам питания. Зеркальное дублирование обеспечивает надежное оперативное дублирование, но требует, как минимум, вдвое больших аппаратных затрат.
Идеология надежного и эффективного хранения информации на жестких дисках нашла свое отражение в так называемой технологии RAID (Redundant Array of Independent Disks) [42]. Эта технология реализует концепцию создания блочного устройства хранения данных с возможностями параллельного выполнения запросов и восстановления информации при отказах отдельных блоков накопителей на жестких магнитных дисках. Устройства, реализующие эту технологию, называют подсистемами RAID или дисковыми массивами RAID.
В технологии RAID выделяется 6 основных уровней: с 0-го по 5-й. С учетом различных модификаций их может быть больше. Уровни RAID определяют порядок записи на независимые диски и порядок восстановления информации. Различные уровни RAID обеспечивают различное быстродействие подсистемы и различную эффективность восстановления информации.
Наряду с этими, так сказать, традиционными местами резервного копирования информации, сейчас получили распространение онлайн сервисы, предназначенные для хранения вашей информации. Естественно, что самые популярные онлайн сервисы *blog.chlja*hsoft.net* не российские. Вот некоторые из них iDrive, IBackup, BackupOnline , XDrive , FirstBackup , Data Deposit Box. Найдется сервис и в Чехии. Именно иммиграция в Чехию не уменьшается, не зависимо от происходящих кризисов.
Онлайн сервисы предоставляют место для хранения информации, полученной в процессе резервного копирования на платных и бесплатных условиях. *blog.ch*lja*hsoft.net Обычно, бесплатно предоставляется ограниченный объем от 1Гб до 5Гб.
Сервис для хранения паролей
http://www.clipperz.com/
^ Краткий обзор технологии RAID
В этом документе описываются базовые элементы технологии RAID и приводится краткий обзор различных уровней RAID.
RAID 0
RAID 1
RAID 2, 3
RAID 4, 5
Таблица: преимущества и недостатки основных уровней RAID
^ Что такое RAID?
В переводе с английского «RAID» (Redundant Arrays of Inexpensive Disks) означает «избыточный массив независимых дисков». Этот перевод не совсем дословный, но именно содержащийся в нем смысл является правильным.
Впервые термин RAID появился в 1987 году, когда исследователям из Калифорнийского Университета в Беркли удалось создать действующий массив из нескольких жестких дисков.
Первоначальное предназначение RAID – создание на базе нескольких винчестеров диска большого объема с увеличенной скоростью доступа. Но затем к двум основным целям добавилась третья – сохранение данных в случае отказа части оборудования. Именно эти три кита сделали RAID-массивы столь востребованными бизнесом и военными. Впрочем, за объем, скорость и надежность пришлось платить повышением стоимости и сложности систем хранения данных.
Со временем оборудование для построения RAID массивов стало более доступным, особенно с появлением дешевых решений для IDE/ATA и SATA дисков.
Оказывается, не так просто найти оптимальное решение одновременно по надежности, емкости и цене. Надо быть готовым к тому, что придется купить не один, а несколько жестких дисков, и емкость как минимум одного из них не будет использоваться. Если речь идет о построении более-менее серьезной системы, потребуется отдельный (лучше специальный) корпус с отдельным (а то и двумя) блоком питания, плата контроллера и соответствующее программное обеспечение.
Дисковый массив - это набор дисковых устройств, работающих вместе, чтобы повысить скорость и надежность системы ввода/вывода. Этим набором устройств управляет специальный RAID-контроллер (контроллер массива), который инкапсулирует в себе функции размещения данных по массиву; а для всей остальной системы позволяет представлять весь массив как одно логическое устройство ввода/вывода. За счет параллельного выполения операций чтения и записи на нескольких дисках, массив обеспечивает повышенную скорость обменов по сравнению с одним большим диском.
Массивы также могут обеспечивать избыточное хранение данных, с тем, чтобы данные не были потеряны в случае выхода из строя одного из дисков. В зависимости от уровня RAID, проводится или зеркалирование или распределение данных по дискам.
Зеркалирование – технология, позволяющая повысить надежность системы. В RAID массиве с зеркалированием все данные одновременно пишутся не на один, а на два жестких диска. То есть создается «зеркало» данных. При выходе из строя одного из дисков вся информация остается сохраненной на втором.
Зеркалирование
За такую стопроцентную защиту приходится дорого платить: считайте, что один винчестер у вас работает просто так, не увеличивая доступную емкость ни на Мегабайт. При этом нет никакого выигрыша в производительности.
Дуплекс – развитие идеи зеркалирования. В этом случае так же высок уровень надежности и требуется в два раза больше жестких дисков. Но появляются дополнительные затраты: для повышения надежности в систему устанавливаются два независимых RAID контроллера. Выход из строя одного диска или контроллера не сказывается на работоспособности системы.
Дуплекс
Столь дорогое решение используется только во внешних RAID-массивах, предназначенных для ответственных приложений.
Чередование – отличная возможность повысить быстродействие системы. Очевидно, если чтение и запись вести параллельно на нескольких жестких дисках, можно получить выигрыш в скорости. Как это делается? Записываемый файл разбивается на части определенного размера и посылается одновременно на все имеющиеся накопители. В таком фрагментированном виде файл и хранится. Считывается он тоже «по кусочкам».
Чередование
Размер «кусочка» может быть минимальным – 1 байт, но чаще используют более крупное дробление – по 512 байт (размер сектора).
Четность является альтернативным решением, соединяющим в себе достоинства зеркалирования (высокая надежность) и чередования (высокая скорость работы). Используется тот же принцип, что и в контроле четности оперативной памяти.
Если имеется I блоков данных и на их основе вычисляется еще один дополнительный экстраблок, из получившихся (I+1) блоков всегда можно восстановить информацию даже при повреждении одного из них. Соответственно, для создания нормального RAID-массива в этом случае требуется (I+1) жесткий диск.
Распределение блоков по дискам точно такое же, как при чередовании. Экстраблок может записываться на отдельный накопитель, либо раскидываться по дискам.
^ Уровни RAID
Каждый из четырех основных уровней RAID использует уникальный метод записи данных на диски, и поэтому все уровни обеспечивают различные преимущества. Уровни RAID 1,3 и 5 обеспечивают зеркалирование или хранение битов четности; и поэтому позволяют восстановить информацию в случае сбоя одного из дисков.
^ RAID уровня 0
Технология RAID 0 также известна как распределение данных (data striping). С применение этой технологии, информация разбивается на куски (фиксированные объемы данных, обычно именуемы блоками); и эти куски записываются на диски и считываются с них в параллель. С точки зрения производительности это означает два основных преимущества:
повышается пропускная способность последовательного ввода/вывода за счет одновременной загрузки нескольких интерфейсов.
снижается латентность случайного доступа; несколько запросов к различным небольшим сегментам информации могут выполнятся одновременно.
Недостаток: уровень RAID 0 предназначен исключительно для повышения производительности, и не обеспечивает избыточности данных. Поэтому любые дисковые сбои потребуют восстановления информации с резервных носителей.
Контроллер Массива
SCSI 1
SCSI 2
SCSI 3
SCSI 4
SCSI 5
Диск 1
Диск 2
Диск 3
Диск 4
Диск 5
Сегмент 1
Сегмент 2
Сегмент 3
Сегмент 4
Сегмент 5
Сегмент 6
Сегмент 7
Сегмент 8
Сегмент 9
Сегмент 10
рис. 1. Схема работы массива и распределение данных по дискам для RAID 0. Примечание: сегмент - это 2 дисковых блока по 512 байт.
^ RAID уровня 1
Технология RAID 1 также известна как зеркалирование (disk mirroring). В этом случае, копии каждого куска информации хранятся на отдельном диске; или, обычно каждый (используемый) диск имеет "двойника", который хранит точную копию этого диска. Если происходит сбой одного из основных дисков, этот замещается своим "двойником". Производительность произвольного чтения может быть улучшена, если для чтения информации будет использоваться тот из "двойников", головка которого расположена ближе к требуемому блоку.
Время записи может оказаться несколько больше, чем для одного диска, в зависимости от стратегии записи: запись на два диска может производится либо в параллель (для скорости), либо строго последовательно (для надежности).
Уровень RAID 1 хорошо подходит для приложений, которые требуют высокой надежности, низкой латентности при чтении, а также если не требуется минимизация стоимости. RAID 1 обеспечивает избыточность хранения информации, но в любом случае следует поддерживать резервную копию данных, т.к. это единственный способ восстановить случайно удаленные файлы или директории.
^ Диск 1
(данные)
Диск 2
(копия диска 1)
Диск 3
(данные)
Диск 4
(копия диска 3)
^ Диск 5
(свободный)
Сегмент 1
Сегмент 1
Сегмент 2
Сегмент 2
Сегмент 3
Сегмент 3
Сегмент 4
Сегмент 4
рис. 2. Распределение данных по дискам для RAID 1.
^ RAID уровней 2 и 3
Технология RAID уровней 2 и 3 предусматривает параллельную ("в унисон") работу всех дисков. Эта архитектура требует хранения битов четности для каждого элемента информации, распределяемого по дискам. Отличие RAID 3 от RAID 2 состоит только в том, что RAID 2 использует для хранения битов четности несколько дисков, тогда как RAID 3 использует только один. RAID 2 используется крайне редко.
Если происходит сбой одного диска с данными, то система может восстановить его содержимое по содержимому остальных дисков с данными и диска с информацией четности.
Производительность в этом случае очень велика для больших объемов информации, но может быть весьма скромной для малых объемов, поскольку невозможно перекрывающееся чтение нескольких небольших сегментов информации.
^ Диск 1
(данные)
Диск 2
(данные)
Диск 3
(данные)
Диск 4
(данные)
^ Диск 5
(информация четности)
Байт 1
Байт 2
Байт 3
Байт 4
Байт четности
Байт 5
Байт 6
Байт 7
Байт 8
Байт четности
рис. 3. Распределение данных по дискам для RAID 3.
^ RAID уровней 4 и 5
RAID 4 исправляет некоторые недостатки технологии RAID 3 за счет использования больших сегментов информации, распределяемых по всем дискам, за исключением диска с информацией четности. При этом для небольших объемов информации используется только диск, на котором находится нужная информация. Это означает, что возможно одновременное исполнение нескольких запросов на чтение. Однако запросы на запись порождают блокировки при записи информации четности. RAID 4 используется крайне редко.
Технология RAID 5 очень похожа на RAID 4, но устраняет связанные с ней блокировки. Различие состоит в том, что информация четности распределяется по всем дискам массива. В данном случае возможны как одновременные операции чтения, так и записи.
Данная технология хорошо подходит для приложений, которые работают с небольшими объемами данных, например, для систем обработки транзакций.
Диск 1
Диск 2
Диск 3
Диск 4
Диск 5
Сегмент четности
Сегмент 1
Сегмент 2
Сегмент 3
Сегмент 4
Сегмент 5
Сегмент четности
Сегмент 6
Сегмент 7
Сегмент 8
Сегмент 9
Сегмент 10
Сегмент четности
Сегмент 11
Сегмент 12
рис. 4. Распределение данных по дискам для RAID 5.
^ Преимущества и недостатки основных уровней RAID
Уровень RAID
Механизм
обеспечения
надежности
Эффективная
емкость массива
Производительность
Область применения
0
-
100%
высокая
приложения без существенных
требований к надежности
1
зеркалирование
50%
высокая или средняя
приложения без существенных
требований к стоимости
еще рефераты
Еще работы по разное
Реферат по разное
М. А. Шолохова управление проектами в профессиональной деятельности специалистов гуманитарного профиля конспект
17 Сентября 2013
Реферат по разное
Занятия с
17 Сентября 2013
Реферат по разное
Конспект лекций по курсу "Экономический анализ"
17 Сентября 2013
Реферат по разное
Конспект по теме: введение в язык программирования Паскаль Учитель информатики Батракова Людмила Васильевна
17 Сентября 2013