Почти тридцать лет назад, в 1978 году, инженеры IBM подали заявку на патент метода восстановления данных с нерабочего носителя. Скорее всего, они и не предполагали, что положили основу целому комплексу мер по защите информации, без которого существование многих современных компьютеров было бы под вопросом. Только через десять лет описанный в патенте метод лег в основу технологии RAID.
Так что же такое RAID? Представьте себе кубики конструктора, из которых можно собрать какую-нибудь структуру. И добавьте условие, что получившееся должно быть невозможно уничтожить, убрав любую одну или даже две детали. На примерно таком же принципе основывается RAID — Redundant Array of Inexpensive Disks (в переводе на русский — избыточный массив недорогих дисков). Такая формулировка появилась в 1987 году, когда группа ученых из Калифорнийского университета в Беркли разработала способ объединения нескольких жестких дисков, чтобы для операционной системы они казались одним устройством. В 1988 году термин RAID закрепился окончательно — Дэвид Петерсон, Гарт Гибсон и Рэнди Кэтз представили документ, описывающий уровни RAID (1-5) на конференции SIGMOD.
С тех пор RAID-технология претерпела немало изменений и доработок. К примеру, слово «Inexpensive» («недорогой») в аббревиатуре RAID было заменено словом «Independent» («независимый»).
Реализация RAID
В таком внешнем корпусе винчестерам, объединенным в массив RAID, будет намного удобнее. |
На данный момент работу нескольких жестких дисков в массиве можно реализовать двумя способами — программным и аппаратным. Разумеется, программный способ использует мощности центрального процессора, тогда как аппаратный предусматривает специализированные средства на уровне «железа».
При программной реализации массива используется обычный контроллер IDE или SATA, а диски объединяются уже на уровне программного обеспечения.
С учетом высоких скоростей современных процессоров программный RAID может работать даже быстрее, чем аппаратный. Другой вопрос, что у процессора и так дел хватает. Именно поэтому программный RAID подходит только для массивов RAID 1 и RAID 0, так как эти уровни не нуждаются в громоздких математических вычислениях.
Аппаратный RAID считается более надежным, чем программный. Для его полноценной поддержки потребуется контроллер, обычно выполненный в виде PCI-платы. Кроме того, почти на всех современных материнских платах есть простенький контроллер для реализации одного-двух уровней RAID, так сказать, «в домашних условиях». Этот контроллер занимается всеми расчетами и управлением дисками массива.
И программный, и аппаратный RAID поддерживают «запасной диск» — бездействующий винчестер, который вступает в работу автоматически, если вдруг один из «основных» выйдет из строя.
Уровни RAID
Как уже было сказано выше, существует несколько уровней RAID. В оригинальном документе 1988 года их было всего 5 — 1, 2, 3, 4, 5. Сейчас, уровней стало больше, но активно используются только 0, 1 и 5.
Возрастающая нумерация наводит на мысль о некоем рейтинге, но в данном случае это не так. RAID 0 не хуже, чем RAID 1 или RAID 5, — тут речь не о качестве и не о скорости. Номерами обозначаются разные реализации одной и той же технологии. У каждой есть свои характерные особенности, о которых мы сейчас и поговорим.
RAID 0
Нулевой уровень (RAID 0) не был описан в официальном документе 1988 года по одной простой причине — массив RAID 0 вообще нельзя назвать защищенным. И вот почему...
Перед вами — полноценный RAID-контроллер. |
Предположим, у вас есть два жестких диска по 120 гигабайт, и вы объединяете их в массив RAID 0. Операционная система теперь видит один диск на 240. Все операции ввода/вывода теперь будут разделяться на несколько блоков и записываться на разные диски. Может оказаться, что части отдельно взятого файла окажутся записанными на разные винчестеры. Это касается всей файловой системы.
Как только поступает запрос на поиск информации, оба диска начинают искать свою часть файла. Благодаря тому что чтение идет сразу с двух дисков, немного увеличивается общая скорость работы массива.
А теперь представьте, какой уровень опасности связан с массивом RAID 0. Стоит любому диску выйти из строя, и вы потеряете всю информацию. Чем больше винчестеров объединено в массив, тем выше риск. И еще: важно понимать, что зависимость тут даже не линейная («два диска вдвое менее надежны, три — втрое»), а степенная. То есть для двух дисков — обратная вероятность отказа в квадрате, для трех — в кубе, и т.д.
Может ли в каких-то условиях пригодиться ненадежный массив RAID 0? Оказывается, может. Так, домашние игровые компьютеры и некоторые типы серверов получают выгоду от использования RAID 0 — надежность и защищенность данных не так важна, а с одним диском работать все же удобнее и быстрее.
На заметку: в RAID 0 можно объединить диски разного объема, но объем «зеркального» массива будет вычислен по меньшему из них (к примеру, диски на 120 и 80 гигабайт образуют массив в 2х80=160 GB).
RAID 1
Один из самых интересных уровней RAID — RAID 1. Это классический уровень, описанный в документе 1988 года. В основу RAID 1 лег принцип зеркального отображения — все диски массива в точности копируют друг друга. По затратам это недешево — ведь два винчестера образуют массив, не прибавляя ни байта в объеме относительно одного.
Для большинства простых задач хватит контроллера RAID, встроенного в материнскую плату. |
Основное достоинство RAID 1 — повышенная надежность: информация потеряется только в том случае, если откажут сразу все диски массива.
Еще один плюс RAID 1 — возрастающая в зависимости от количества дисков скорость. Современные контроллеры RAID способны считывать информацию сразу со всех винчестеров. Следовательно, если в вашем RAID 1 объединено два диска, то скорость считывания данных возрастет почти в два раза. Почему «почти»? Потому что часть времени будет уходить на необходимые вычисления. То же самое происходит с передачей и копированием информации. А вот скорость записи не возрастает, так как одну и ту же информацию все равно приходится писать на все диски сразу.
Старые версии контроллеров RAID не могли считывать информацию с трех дисков одновременно — они «перестраховывались», считывая файл с одного диска и сверяя его с копиями. В наше время жесткие диски оснащены технологиями проверки и исправления ошибок, так что в «устаревшей» реализации RAID 1 уже нет надобности.
RAID 1 используется тогда, когда необходима максимальная защита данных. Случаев «гибели» информации, хранимой подобным образом, история насчитывает весьма мало.
RAID 2
Представьте себе компьютер с 39 жесткими дисками. Именно столько винчестеров нужно для создания массива RAID 2. Он относится к оригинальным уровням, представленным специалистами из Калифорнийского университета в Беркли. RAID 2 совмещает принципы объединения жестких дисков RAID 0 с использованием кода Хэмминга для коррекции и контроля ошибок. В отличие от RAID 0, вся информация разбивается на сегменты по одному биту. Для расположения каждого бита файла понадобится именно 32 диска, а еще на 7 дисках будут храниться контрольные суммы, необходимые для правильной работы кода Хэмминга.
RAID 2 не прижился по весьма понятным причинам.
RAID 3
Еще один классический уровень 1988 года — RAID 3. Этот уровень разбивает информацию на блоки не более 1024 байт и «раскидывает» их по нескольким дискам. При этом высчитывается контрольная сумма, которая сохраняется на отдельный диск. По сути, для работы RAID 3 нужно как минимум 3 диска, два из которых будут объединены в один, а третий сохранит контрольные суммы.
На практике RAID 3 оказывается малопригодным ввиду низкой скорости работы — каждый запрос требует синхронной работы всех трех винчестеров. Больше всего страдает скорость записи. Зато при отказе одного из дисков массив останется работоспособным.
RAID 4
RAID 4 во многом похож на RAID 3, за исключением одного нюанса — информация разделяется на блоки. Это позволяет дискам работать независимо друг от друга. Разумеется, скоростная проблема RAID 3 здесь решена. Однако общая скорость все равно остается невысокой из-за выделенного диска для хранения контрольных сумм. RAID 3 и RAID 4 на практике сейчас не используются.
RAID 5
RAID-массив не очень любит, когда используются жесткие диски разных производителей. |
RAID 5 — это последний классический уровень, описанный учеными из Беркли. Это существенно доработанная версия RAID 3 и RAID 4. Несколько винчестеров, объединенных в RAID 5, все так же складывают свои объемы. При разбиении информации на блоки высчитывается контрольная сумма, но она записывается не на отдельный диск, а на все диски по очереди. Следовательно, выделенный под контрольные суммы винчестер больше не ограничивает скорость — его просто нет.
Уровень RAID 5 считается достаточно надежным — потеря информации возможна только в случае выхода из строя сразу двух винчестеров. Количество возможных используемых жестких дисков теоретически не ограничено, но чем их больше, тем выше вероятность выхода из строя сразу двух.
При поломке одного диска на его место тут же встанет свободный диск (если таковой есть). Массив будет перестроен, а вышедший из строя винчестер можно будет заменить. При этом возможно некоторое падение скорости, так как с каждым обращением к информации будет производиться восстановление потерянного фрагмента.
Реализовать адекватный массив RAID 5 без хорошего контроллера, увы, не получится — слишком уж трудоемки для процессора вычисления множества контрольных сумм. RAID 5 применяется в основном в серверах.
Неклассические уровни RAID
RAID 6
Перед вами — значительно доработанный массив RAID 5. В отличие от «пятого уровня», строить RAID 6 из небольшого количества жестких дисков бессмысленно. Простейшая арифметика доказывает, что контрольная сумма RAID 5 может не среагировать на определенную перестановку бит данных. Теоретически сбой может произойти даже тогда, когда данные будут считаться целостными, поэтому был добавлен дополнительный механизм контроля. Контрольные суммы в RAID 6 высчитываются два раза по разным алгоритмам и записываются на два разных жестких диска. В этом и заключается основное отличие — RAID 6 может продолжать работу после отказа сразу двух жестких дисков. И даже в том случае, если во время перестройки одного из элементов массива выйдет из строя еще один жесткий диск.
Остальные уровни RAID не так интересны ввиду ограниченного использования. К примеру, JBOD (Just a Bunch of Disks) — это вообще не уровень RAID, однако он позволяет объединить кучку дисков разного размера в один большой. При выходе из строя одного из дисков потеряется только часть информации.
На многих современных материнских платах Intel (начиная с 9хх с мостом ICH6R) есть контроллер Matrix RAID. Эта простейшая реализация RAID использует два диска. Одна часть каждого из них объединяется в RAID 0, вторая часть — в RAID 1. На объединенной в RAID 0 части можно хранить маловажные данные, вроде игр и фильмов. Операционную систему лучше всего установить туда же — ведь скорость в этом сегменте будет выше, чем во втором. Ну, а на объединенную в RAID 1 часть можно записывать важные документы — скорость им не важна, а вот надежность...
Комбинация уровней RAID
Еще уровни RAID можно комбинировать. В основу комбинирования положен следующий принцип. Один из уровней RAID может использовать другой уровень RAID как базовый элемент вместо жесткого диска. Представьте себе конструкцию, где в самом низу находятся жесткие диски, чуть выше — их массивы, логически объединенные в какой-нибудь из уровней RAID, а на самой верхушке они объединяются в еще один уровень RAID.
Как пример можем привести комбинацию RAID 0+1 — сначала несколько дисков объединяются в RAID 0, а затем «склеиваются» в RAID 1. Так, четыре 120-гигабайтных диска образуют массив в 240 гигабайт общим объемом. Со всеми плюсами и минусами каждой технологии RAID, описанными выше.
Технология RAID сможет защитить вашу информацию от случайного выхода из строя одного или даже двух винчестеров. За это вы платите высокой ценой дополнительных носителей, да и компьютер должен быть соответствующий. Если пара дисков еще может быть подключена к простенькому RAID-контроллеру на материнской плате, то на организацию более сложных уровней RAID его не хватит. Как минимум понадобятся PCI-контроллер и мощный блок питания.