Вторник, 16.08.2022, 09:57
Приветствую Вас Гость | Регистрация | Вход

Ремонт компьютера за час на дому и офисе

Каталог статей

Главная » Статьи » Статьи

Что такое RAID и с чем его едят?

Что такое RAID и с чем его едят? 

Пословицу «Пока гром не грянет, мужик не перекрестится» знает почти каждый. Жизненная она: пока та или иная проблема не коснётся юзера вплотную, тот о ней даже не задумается. Умер блок питания и прихватил с собой пару-тройку девайсов — пользователь бросается искать статьи соответствующей тематики о вкусном и здоровом питании. Сгорел или начал глючить от перегрева процессор — в «Избранном» появляется пара-тройка ссылок на развесистые ветки форумов, на которых обсуждают охлаждение CPU.

С жёсткими дисками та же история: как только очередной винт, хрустнув на прощание головками, покидает наш бренный мир, обладатель ПК начинает суетиться, чтобы обеспечить улучшение жизненных условий накопителя. Но даже самый навороченный кулер не может гарантировать диску долгую и счастливую жизнь. На срок службы накопителя влияет много факторов: и брак на производстве, и случайный пинок корпуса ногой (особенно если кузов стоит где-нибудь на полу), и пыль, прошедшая сквозь фильтры, и высоковольтная помеха, посланная блоком питания… Выход один — резервное копирование информации, а если требуется бэкап на ходу, то самое время строить RAID-массив, благо сегодня почти каждая материнка обладает каким-нибудь RAID-контроллером.


На этом месте мы остановимся и сделаем краткий экскурс в историю и теорию RAID-массивов. Сама аббревиатура RAID расшифровывается как Redundant Array of Independent Disks (избыточный массив независимых дисков). Раньше вместо independent употребляли inexpensive (недорогой), но со временем это определение потеряло актуальность: недорогими стали почти все дисковые накопители.

История RAID началась в 1987 году, когда появилась на свет статья «Корпус для избыточных массивов из дешёвых дисков (RAID)", подписанная товарищами Петерсоном, Гибсоном и Катцем. В заметке была описана технология объединения нескольких обычных дисков в массив для получения более быстрого и надёжного накопителя. Также авторы материала рассказывали читателям о нескольких типах массивов — от RAID-1 до RAID-5. Впоследствии к описанным почти двадцать лет назад массивам прибавился RAID-массив нулевого уровня, и он обрёл популярность. Так что же представляют собой все эти RAID-x? В чём их суть? Почему они называются избыточными? В этом мы и постараемся разобраться.

Если говорить очень простым языком, то RAID — это такая штука, которая позволяет операционной системе не знать, сколько дисков установлено в компьютере. Объединение хардов в RAID-массив — процесс, прямо противоположный разбиению единого пространства на логические диски: мы формирует один логический накопитель на основе нескольких физических. Для того чтобы сделать это, нам потребуется или соответствующий софт (об этом варианте мы даже говорить не будем — ненужная это вещь), или RAID-контроллер, встроенный в материнку, или отдельный, вставляемый в слот PCI либо PCI Express. Именно контроллер объединяет диски в массив, а операционная система работает уже не с HDD, а с контроллером, который ей ничего ненужного не сообщает.

А вот вариантов объединения нескольких дисков в один существует великое множество, точнее, около десяти.

Какими бывают RAID?


Самый простой из них — JBOD (Just a Bunch of Disks). Два винчестера склеены в один последовательно, информация записывается сначала на один, а затем на другой диск без разбиения её на куски и блоки. Из двух накопителей по 200 Гбайт мы делаем один на 400 Гбайт, работающий практически с той же, а в реальности с чуть меньшей скоростью, что и каждый из двух дисков.

JBOD является частным случаем массива нулевого уровня, RAID-0. Встречается также другой вариант названия массивов этого уровня — stripe (полоска), полное наименование — Striped Disk Array without Fault Tolerance. Этот вариант тоже предполагает объединение n дисков в один с объёмом, увеличенным в n раз, но диски объединяются не последовательно, а параллельно, и информация на них записывается блоками (объём блока задаёт пользователь при формировании RAID-массива).

То есть в случае, если на два накопителя, входящие в массив RAID-0, нужно записать последовательность цифр 123456, контроллер разделит эту цепочку на две части — 123 и 456 — и первую запишет на один диск, а вторую — на другой. Каждый диск может передавать данные… ну, пусть со скоростью 50 Мбайт/с, а суммарная скорость двух дисков, данные с которых берутся параллельно, составляет 100 Мбайт/c. Таким образом, скорость работы с данными должна увеличиться в n раз (реально, конечно, рост скорости меньше, так как потери на поиск данных и на передачу их по шине никто не отменял). Но этот прирост даётся не просто так: при поломке хотя бы одного диска информация со всего массива теряется.

То есть никакой избыточности и никакого резервирования нет и в помине. Считать этот массив RAID-массивом можно лишь условно, тем не менее он очень популярен. Мало кто задумывается о надёжности, её ведь никак не измеришь бенчмарками, зато все понимают язык мегабайт в секунду. Это не плохо и не хорошо, просто такое явление есть. Ниже мы поговорим о том, как и рыбку съесть, и надёжность сохранить.

Кстати, дополнительный минус stripe-массива заключается в его непереносимости. Я не имею в виду то, что он плохо переносит какие-то отдельные виды пищи или, к примеру, хозяев. На это ему наплевать, но перенести куда-то сам массив — это целая проблема. Даже если притащить к другу оба диска и драйверы контроллера в придачу, не факт, что они определятся как один массив и данными удастся воспользоваться. Более того, известны случаи, когда простое подключение (без записи чего-либо!) stripe-дисков к «неродному» (отличному от того, на котором формировался массив) контроллеру приводило к порче информации в массиве. Не знаем, насколько эта проблема актуальна сейчас, с появлением современных контроллеров, но всё же советуем быть аккуратнее.

Первый по-настоящему «избыточный» массив (и первый появившийся на свет RAID) — RAID-1. Его второе название — mirror (зеркало) — объясняет принцип работы: все отведённые под массив диски разбиваются на пары, а информация считывается и записывается сразу на оба диска. Получается, что у каждого из дисков в массиве есть точная копия. В такой системе возрастает не только надёжность хранения данных, но и скорость их чтения (читать можно сразу с двух винчестеров), хотя скорость записи остаётся такой же, как и у одного накопителя.

Как можно догадаться, объём такого массива будет равен половине суммы объёмов всех входящих в него винчестеров. Минус такого решения — хардов нужно в два раза больше. Но зато надёжность этого массива реально даже не равна двойной надёжности одиночного диска, а намного выше этого значения. Выход из строя двух винчестеров в течение… ну, скажем, суток маловероятен, если в дело не вмешался, к примеру, блок питания. В то же время любой здравомыслящий человек, увидев, что один диск в паре вышел из строя, тут же его заменит, и даже если сразу после этого отдаст концы второй диск, информация никуда не денется.

Как видите, и у RAID-0, и у RAID-1 есть свои недостатки. А как бы от них избавиться? Если у вас есть минимум четыре винчестера, вы можете создать конфигурацию RAID 0+1. Для этого массивы RAID-1 объединяются в массив RAID-0. Или наоборот, иногда создают массив RAID-1 из нескольких массивов RAID-0 (на выходе получится RAID-10, единственное преимущество которого — меньшее время восстановления данных при выходе одного диска из строя).

Надёжность такой конфигурации из четырёх винчестеров равна надёжности массива RAID-1, а скорость фактически такая же, как у RAID-0 (реально она, скорее всего, будет чуть ниже из-за ограниченных возможностей контроллера). При этом одновременный выход из строя двух дисков не всегда означает полную потерю информации: это произойдёт лишь в случае, если сломаются диски, содержащие одни и те же данные, что маловероятно. То есть если четыре диска разбиты на пары 1—2 и 3-4 и пары объединены в массив RAID-0, то лишь одновременная поломка дисков 1 и 2 или 3 и 4 приведёт к потере данных, в то время как в случае безвременной кончины первого и третьего, второго и четвёртого, первого и четвёртого или второго и третьего винчестеров данные останутся в целости и сохранности.

Однако главный недостаток RAID-10 — высокая стоимость дисков. Всё-таки цену четырёх (минимум!) винчестеров маленькой не назовёшь, особенно если реально нам доступен объём лишь двух из них (о надёжности и о том, сколько она стоит, как мы уже говорили, мало кто думает). Большая (100%-я) избыточность хранения данных даёт о себе знать. Всё это привело к тому, что в последнее время популярность приобрёл вариант массива под названием RAID-5. Для его реализации необходимо три диска. Помимо самой информации, контроллер складирует на накопителях массива ещё и блоки контроля чётности.

Не будем вдаваться в подробности работы алгоритма контроля чётности, скажем только, что он позволяет в случае потери информации на одном из дисков восстановить её, используя данные чётности и живые данные с других дисков. Блок чётности имеет объём одного физического диска и равномерно распределяется по всем винчестерам системы так, что потеря любого диска позволяет восстановить информацию с него с помощью блока чётности, находящегося на другом диске массива. Информация же разбивается на большие блоки и записывается на диски поочерёдно, то есть по принципу 12-34-56 в случае с трёхдисковым массивом.

Соответственно, общий объём такого массива — это объём всех дисков минус ёмкость одного из них. Восстановление данных, разумеется, происходит не мгновенно, но зато такая система имеет высокую производительность и запас надёжности при минимальной стоимости (для массива объёмом 1000 Гбайт нужно шесть дисков по 200 Гбайт). Впрочем, производительность такого массива всё равно будет ниже скорости stripe-системы: при каждой операции записи контроллеру нужно обновлять ещё и индекс чётности.

RAID-0, RAID-1 и RAID 0+1, иногда ещё RAID-5 — этими уровнями чаще всего исчерпываются возможности десктопных RAID-контроллеров. Более высокие уровни доступны лишь сложным системам, основой для которых служат SCSI-винчестеры. Однако счастливые обладатели SATA-контроллеров с поддержкой Matrix RAID (такие контроллеры встроены в южные мосты ICH6R и ICH7R от компании Intel) могут воспользоваться преимуществами массивов RAID-0 и RAID-1, имея всего два диска, а те, у кого есть плата с ICH7R, могут объединить RAID-5 и RAID-0, если у них есть четыре одинаковых накопителя.

Как это реализуется на практике? Разберём более простой случай с RAID-0 и RAID-1. Допустим, вы купили два харда по 400 Гбайт. Вы разбиваете каждый из накопителей на логические диски объёмом 100 Гбайт и 300 Гбайт. После этого с помощью зашитой в BIOS утилиты Intel Application Accelerator RAID Option ROM вы объединяете 100-гигабайтные разделы в stripe-массив (RAID-0), а 300-гигабайтные — в массив Mirror (RAID-1). Теперь на быстрый диск объёмом 200 Гбайт можно складывать, скажем, игрушки, видеоматериал и другие данные, требующие высокой скорости дисковой подсистемы и притом не очень важные (то есть те, о потере которых вы не будете очень сильно жалеть), а на зеркалируемый 300-гигабайтный диск вы перемещаете рабочие документы, архив почты, служебный софт и другие жизненно необходимые файлы. При выходе из строя одного диска вы лишаетесь того, что было размещено на массиве stripe, но данные, размещённые вами на втором логическом диске, дублируются на оставшемся накопителе.

Объединение уровней RAID-5 и RAID-0 подразумевает то, что часть объёма четырёх дисков отведена под быстрый stripe-массив, а другая часть (пусть это будут 300 Гбайт на каждом диске) приходится на блоки данных и блоки чётности, то есть вы получаете один сверхбыстрый диск объёмом 400 Гбайт (4 х 100 Гбайт) и один надёжный, но менее быстрый массив объёмом 900 Гбайт 4 х 300 Гбайт минус 300 Гбайт на блоки чётности.

Как видите, технология эта крайне перспективна, и будет неплохо, если её поддержат другие производители чипсетов и контроллеров. Очень уж заманчиво иметь на двух дисках массивы разных уровней, быстрые и надёжные.
Вот, пожалуй, и все виды RAID-массивов, которые применяются в домашних системах. Однако в жизни вам могут встретиться RAID-2, 3, 4, 6 и 7. Так что давайте всё-таки посмотрим, что это за уровни такие.

RAID-2. В массива такого типа диски делятся на две группы — для данных и для кодов коррекции ошибок, причём если данные хранятся на n дисках, то для складирования кодов коррекции необходимо n-1 дисков. Данные записываются на соответствующие винчестеры так же, как и в RAID-0, они разбиваются на небольшие блоки по числу дисков, предназначенных для хранения информации. Оставшиеся диски хранят коды коррекции ошибок, по которым в случае выхода какого-либо винчестера из строя возможно восстановление информации. Метод Хемминга давно применяется в памяти типа ECC и позволяет на лету исправлять мелкие однобитовые ошибки, если они вдруг возникнут, а если ошибочно будут переданы два бита, это будет обнаружено опять-таки с помощью систем контроля чётности. Впрочем, держать ради этого громоздкую структуру из почти двойного количества дисков никому не хотелось, и этот вид массива не получил распространения.

Структура массива RAID-3 такова: в массиве из n дисков данные разбиваются на блоки размером 1 байт и распределяются по n-1 дискам, а ещё один диск используется для хранения блоков чётности. В RAID-2 для этой цели стояло n-1 дисков, но большая часть информации на этих дисках использовалась только для коррекции ошибок на лету, а для простого восстановления в случае поломки диска достаточно меньшего её количества, хватает и одного выделенного винчестера.
 
RAID третьего уровня с отдельным диском для хранения информации о чётности. Резервирования нет, но данные восстановить можно.
Соответственно, отличия RAID-3 от RAID-2 очевидны: невозможность коррекции ошибок на лету и меньшая избыточность. Преимущества таковы: скорость чтения и записи данных высока, а для создания массива требуется совсем немного дисков, всего три. Но массив этого типа хорош только для однозадачной работы с большими файлами, так как наблюдаются проблемы со скоростью при частых запросах данных небольшого объёма.
 
Массив пятого уровня отличается от RAID-3 тем, что блоки чётности равномерно разбросаны по всем дискам массива.
RAID-4 похож на RAID-3, но отличается от него тем, что данные разбиваются на блоки, а не на байты. Таким образом, удалось «победить» проблему низкой скорости передачи данных небольшого объёма. Запись же производится медленно из-за того, что чётность для блока генерируется при записи и записывается на единственный диск. Используются массивы такого типа очень редко.

RAID-6 — это тот же самый RAID-5, но теперь на каждом из дисков массива хранятся два блока чётности. Таким образом, при выходе двух дисков из строя информация всё ещё может быть восстановлена. Разумеется, повышение надёжности привело к уменьшению полезного объёма дисков и к увеличению минимального их количества: теперь при наличии n дисков в массиве общий объём, доступный для записи данных, будет равен объёму одного диска, умноженному на n-2. Необходимость вычисления сразу двух контрольных сумм определяет второй недостаток, унаследованный RAID-6 от RAID-5, — низкую скорость записи данных.

RAID-7 — зарегистрированная марка компании Storage Computer Corporation. Структура массива такова: на n-1 дисках хранятся данные, один диск используется для складирования блоков чётности. Но добавилось несколько важных деталей, призванных ликвидировать главный недостаток массивов такого типа: кэш данных и быстрый контроллер, заведующий обработкой запросов. Это позволило снизить количество обращений 
к дискам для вычисления контрольной суммы данных. В результате удалось значительно повысить скорость обработки данных (кое-где в пять и более раз).
 
Массив уровня RAID 0+1, или конструкция из двух массивов RAID-1, объединённых в RAID-0. Надёжно, быстро, дорого.
Прибавились и новые недостатки: очень высокая стоимость реализации такого массива, сложность его обслуживания, необходимость в бесперебойнике для предотвращения потери данных в кэш-памяти при перебоях питания. Массив такого типа вы вряд ли встретите, а если вдруг где увидите его, пишите нам, мы тоже с удовольствием на него посмотрим.
Создание массива

Надеюсь, с выбором типа массива вы уже справились. Если на вашей плате есть RAID-контроллер, вам ничего, кроме нужного количества дисков и драйверов этого самого контроллера, не понадобится. Кстати, имейте в виду: есть смысл объединять в массивы только диски одинакового объёма, причём лучше одной модели. С дисками разного объёма может отказаться работать контроллер, и, скорее всего, вы сможете задействовать лишь часть большого диска, равную по объёму меньшему из дисков. Кроме того, даже скорость stripe-массива будет определяться скоростью самого медленного из дисков. И мой вам совет: не пытайтесь сделать RAID-массив загрузочным. Это возможно, но в случае возникновения каких-либо сбоев в системе вам придётся нелегко, так как восстановление работоспособности будет сильно затруднено. Кроме того, опасно размещать несколько систем на таком массиве: почти все программы, отвечающие за выбор ОС, убивают информацию из служебных областей винчестера и, соответственно, портят массив. Лучше выбрать иную схему: один диск — загрузочный, а остальные объединены в массив.
 
Каждый RAID-массив начинается с BIOS RAID-контроллера. Иногда (только в случае с интегрированными контроллерами, да и то не всегда) он встроен в основной BIOS материнки, иногда расположен отдельно и активируется после прохождения самотестирования, но в любом случае вам туда надо. Именно в BIOS задаются нужные параметры массива, а также размеры блоков данных, используемые винчестеры и так далее. После того как вы всё это определите, достаточно будет сохранить параметры, выйти из BIOS и вернуться в операционную систему.

Там обязательно нужно установить драйверы контроллера (как правило, дискета с ними прилагается к материнке или к самому контроллеру, но они могут быть записаны на диск с другими драйверами и служебным софтом), перезагрузиться, и всё, массив готов к работе. Можете разбивать его на логические диски, форматировать и заполнять данными. Помните только о том, что RAID не панацея. Он спасёт вас от потери данных при гибели винчестера и минимизирует последствия такого исхода, но не спасёт от скачков напряжения в сети и сбоев некачественного блока питания, который убивает оба диска сразу, без оглядки на их «массивность».

Пренебрежительное отношение к качественному питанию и температурному режиму дисков может существенно сократить срок жизни HDD, бывает, все диски массива выходят из строя, а все данные оказываются безвозвратно потерянными. В частности, современные винчестеры (в особенности IBM и Hitachi) очень чувствительны к каналу +12 В и не любят даже малейшего изменения напряжения на нём, так что перед закупкой всего оборудования, необходимого для построения массива, стоит проверить соответствующие напряжения и при необходимости включить новый БП в список покупок.

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

Кроме того, RAID не отменяет необходимости регулярно изготавливать резервные копии данных. Зеркалирование зеркалированием, но если вы случайно испортите или сотрёте файлы, второй диск вам никак не поможет. Так что делайте бэкап всякий раз, когда вы можете его делать. Это правило действует вне зависимости от наличия RAID-массивов внутри ПК.

Так что, are you RAIDy? Да? Отлично! Только в погоне за объёмом и скоростью не забудьте другую пословицу: «Заставь дурака Богу молиться, он и лоб расшибёт». Крепких вам дисков и надёжных контроллеров!
Ценовая выгода шумного RAID

RAID — это хорошо даже без оглядки на деньги. Но давайте посчитаем цену простейшего stripe-массива объёмом 400 Гбайт. Два диска Seagate Barracuda SATA 7200.8 по 200 Гбайт каждый обойдутся вам примерно в $230. RAID-контроллеры встроены в большинство материнских плат, то бишь мы получаем их бесплатно.

В то же время 400-гигабайтный диск той же модели стоит $280. Разница — $50, и на эти деньги можно приобрести мощный блок питания, который вам, несомненно, понадобится. Я уж не говорю о том, что производительность составного «диска» при более низкой цене будет почти вдвое выше производительности одного винчестера.

Проведём теперь подсчёт, ориентируясь на общий объём 250 Гбайт. Дисков по 125 Гбайт не существует, так что возьмём два винчестера по 120 Гбайт. Цена каждого диска — $90, цена одного 250-гигабайтного винчестера — $130. Что ж, при таких объёмах за производительность приходится платить. А если взять 300-гигабайтный массив? Два диска по 160 Гбайт — примерно $200, один на 300 Гбайт — $170… Опять не то. Получается, что выгоден RAID только при использовании дисков очень большого объёма.

Впрочем, цена лишь одна сторона медали. Вторая её сторона — возросший уровень шума.

Категория: Статьи | Добавил: ipsyedinmk (23.11.2008) | Автор: Максим
Просмотров: 1922
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]