Это интересно.
Массивы RAID
RAID (от англ. Redundant Array of Independent Disks – дословно переводится, как избыточный массив независимых дисков) — подразумевает под собой массив, состоящий из нескольких независимых дисков, которые были объединены для конкретных целей и в конкретной конфигурации, для внешней среды (и внутренней системы) представляющие собой единое целое, которые управляются контроллером, с наличием скоростных каналов связи между ними, обеспечивающих максимально возможное быстродействие в сочетании с безопасностью сохранения данных в массиве.
Впервые видение RAID сформировалось в 1987 году, когда ученые и исследователи из Калифорнийского Университета в Беркли, а именно Д. Петтерсон, Г. Гибсон, Р. Катц, создали самый первый простейший массив, который состоял из нескольких носителей на жестких магнитных дисках, объединенных между собой прочными связями. Правда аббревиатура созданного ими массива дословно переводилась как «избыточный массив недорогих дисков». Связано это было с тем, что подобная организация дисков была дешевле RAM.
Первоначально RAID предназначался лишь для создания диска большого объема с увеличенной скоростью доступа к нему, состоявшего из нескольких накопителей на жестких магнитных дисках. Однако, постепенно, под влиянием задач военных, а, впоследствии, и бизнеса, родилась более усовершенствованная модель RAID, которая была способна (и призвана) не только увеличивать объем хранимых данных, но и сохранять данные в случае непредвиденных обстоятельств с большой долей гарантии. Эти три краеугольных камня, на которых идея RAID держится и поныне, и являются тем, что так привлекает различные слои населения и социальные группы использовать RAID в определенных областях профессий и даже обывательском быту. Однако ложкой дегтя в технологии RAID является повышенная сложность организации хранения данных, а также стоимость организации подобного хранения.
С развитием технологий составляющие RAID технологии получают большую доступность и простоту для решений на базе IDE/ATA и SATA дисков. В настоящее время не только бородатые системные администраторы в свитерах, но и обычные пользователи пользуются возможностями и преимуществами, предоставляемыми технологией RAID.
Но так ли просто найти разумное и оптимальное соотношение по надежности хранения данных, скорости записи/воспроизведения, емкости и цены? Каждому придется определить это соотношение для себя самостоятельно. Но нельзя забывать о том, что придется купить несколько дисков, и емкость как минимум одного из них не будет использоваться. А если нужна система с большой емкостью RAID, то для нее потребуется отдельное хранилище, обеспеченное электрическим питанием, а также плата контроллера и программное обеспечение, которое будет управлять данным массивом.
Понятия RAID.
При использовании RAID следует различать пять основных понятий:
Массив (от англ. Array) – представляет из себя несколько накопителей, настройка и управление которыми происходит централизованно. Существует 2 уровня организации системы: физический и логический. Физический уровень заключается во всех накопителях информации, которые используются в конкретной системе. Логический уровень же – более высок. В нем не учитываются физические характеристики системы, объем и количество дисков совершенно не зависят от подобных показателей физического уровня и могут существенно различаться.
Зеркалирование (от англ. Mirroring) – заключается в технологии, позволяющей повысить надежность системы. В RAID, использующем зеркалирование, при записи данных используется дисковое пространство второго жесткого диска. Таким образом, информация сохраняется зеркально на другой носитель независимо, что позволяет использовать ее даже в случае отказа одного из носителей. При такой организации нет никакого выигрыша в производительности, однако намного повышается шанс сохранить данные даже в случае выхода из строя 50% системы.
Дуплекс (от англ. Duplexing) – развитие идея зеркалирования привело к ее развитию путем разделения предполагаемого массива ее на два независимых друг от друга RAID контроллера. Таким образом, информация не только дублируется внутри одного из массивов на другой физический диск, но и между обоими RAID, в конечном счете находясь на 4 различных физических носителях, независимых друг от друга, что многократно повышает надежность системы. Настолько дорогостоящие системы обычно применяются для организации ответственного хранения наиболее важной информации.
Чередование (от англ. Striping) – система организации накопителей информации, при котором существенно увеличивается скорость как записи, так и ее воспроизведения в RAID. Заключается такая система в принципе «разбития» информации (файла) на более мелкие части, которые записываются одновременно и параллельно на все носители. В таком разделении на фрагменты и хранится информация, пока не будет удалена. Соответственно, в такой кратности повышается и скорость считывания информации, которая происходит так же одновременно и параллельно со всех носителей.
Четность (от англ. Parity) – решение, вобравшее в себя все плюсы зеркалирования и дуплексности (максимизация надежности хранения информации) и чередования (наивысшая скорость работы с информацией). В данной системе используется принцип, схожий с принципом контроля четности оперативной памяти. При наличии N блоков данных и вычисляющегося на их основе еще одного дополнительного блока, информацию элементарно восстановить из получившихся (N+1) блоков, даже при условии повреждения одного из них. Следовательно, при создании RAID в данном конкретном случае потребуется (N+1) накопителей информации. При распределении блоков по жестким дискам подобно такому распределению в чередовании, а дополнительный блок данных может записываться либо на отдельный накопитель информации, либо распределяться долями по всем дискам, участвующим в системе.
Каждый бит вышеуказанного дополнительного блока данных содержит в себе сумму бит всех N блоков, а именно – из результата выполнения операции XOR (от англ. eXclusive OR «исключающее или» - представляет собой бинарную логическую операцию, возвращающую значение TRUE только лишь тогда, когда один из ее операндов TRUE, а другой – FALSE. Т.е., если соответствующие двоичные биты операнда различны, то двоичный разряд результата равен «1», если же двоичные биты операнда совпадают, то двоичный разряд результата равен «0»).Выгода подобного решения налицо. Из-за чередования повышается скорость работы с массивом. При использовании четности надежность повышена, а «нерабочий» объем массива данных сильно снижается относительно зеркалирования. Он составляет емкость одного диска и действителен при любом их объеме, т.е. при 10 дисках, составляющих массив, «пропадет» лишь 10% их объема.
Однако у четности есть существенный минус. Для оперирования дополнительными блоками требуется огромная масса вычислений. Если переложить ее на центральный процессор, то это не скажется (или скажется совершенно незначительным, незаметным, образом) на скорости работы системы лишь при смешных объемах RAID. Для этих целей используют высокотехнологичные и дорогие платы RAID-контроллеров, которые и занимаются всеми вышеуказанными вычислениями.
Когда ученые из Беркли придумали классификацию, они даже предполагать не могли, что у обывателей понятие уровня четко сообразуется с иерархией. Однако нельзя не заметить, что в различных уровнях RAID нет абсолютно никакой преемственности, ни один не лучше и не хуже остальных в абсолютном плане по любым показателям. Они просто различны.
Однако нельзя не выделить 8 простых и 2 составных (которые являются сочетанием 2 простых) видов организации RAID.
Существует 8 основных уровней организации хранения информации:
RAID 0 - представляет из себя простейший дисковый массив повышенной производительности, который использует чередование без четности. В этом массиве вся входящая информация разбивается на блоки данных фиксированного размера (например 8 кб) и записывается на все диски, составлящие вышеуказанный массив, поочередно. Таким образом, заметен сильный скачок производительности по сравнению со стандартной системой. При наличии даже трех дисков RAID 0 дает ощутимый выигрыш в скорости обработки данных, однако совершенно не обеспечивает надежность. Его можно построить как с помощью простейших (и наиболее дешевых контроллеров), так и программно. Данный RAID прекрасно подойдет для выполнения задач, которые не связаны с длительным хранением информации, для которых, однако, критична скорость обработки данных. Очевидным плюсом тут является весьма скромная цена такого решения.
RAID 1 – этот уровень является, по сути, обычным зеркалированием. Т.е. представляет собой дисковый массив, максимально возможно обеспечивающий безопасное хранение данных. В данной схеме производительность гораздо ниже, чем у RAID 0, но главный плюс этой схемы заключается в том, что при поломке одного из дисков, вся информация будет доступна с другого диска. Минус данной системы заключается в том, что в любом случае, при любых объемах информации, потеряется половина объема (т. к. она будет занята точной копией записанных данных). Таким образом, данная система столь же надежна, сколь и быстр RAID 0. Дополнительно можно заметить, при использовании распараллеливании запросов можно повысить скорость чтения для вышеуказанного RAID 1. Явный плюс RAID 0 и RAID 1 заключается в возможности использовать весьма недорогие RAID-контроллеры или даже доверить организацию RAID программному обеспечению.
RAID 2 в своей идее умер, так и не родившись. Эту идею предложили использовать «родоначальники» RAID, в виде объединения двух технологий – побитового чередования и метод Хэмминга (который долгое время применяется в оперативной памяти типа ECC и позволяет в режиме реального времени исправлять однократные и обнаруживать двукратные ошибки), для коррекции и восстановления ошибок. В теории вышеуказанный способ организации хранения информации должен быть неплохой по рабочей емкости, скорости обработки данных и надежности, построенный на основе 14 или 39 дисков. Часть дисков (10 или 32) используется для обработки данных путем чередования, остальные же предназначались напрямую для хранения высчитанных контрольных сумм. Однако данная схема должна была использовать чрезвычайно дорогостоящие специальные RAID-контроллеры, которые так и не смогли прижиться на рынке решений данного сегмента. В итоге сейчас RAID 2 не используется.
RAID 3 - это отказоустойчивый дисковый массив с параллельной передачей данных и выделенным диском для контроля четности. В этой схеме данные разбиваются на блоки данных, которые обычно меньше объема в 1024 байт, и записываются с использованием чередования. Один (контрольный) диск предназначен лишь для хранения контрольных сумм (в отличие от RAID 2, в котором использовалась коррекция ошибок в реальном времени). При выходе из строя любого из дисков, информация не потеряется. Явными достоинствами данного метода является довольно высокая скорость чтения и записи данных. Массив больше всего подходит для однозначной работы с большими файлами. Все скоростные плюсы чередования нивелируются необходимостью записи на выделенный диск контрольной суммы, а более всех страдает скорость случайной записи. Из-за колоссального количества обращений к выделенному диску время его отказоустойчивости заметно уменьшается, по сравнению даже с остальными дисками в RAID 3. Для создания подобной схемы необходимо три и более дисков.
RAID 4 - этот массив похож на схему RAID 3, однако отличается от него тем, что выделенный диск хранит информацию о четности данных блоков (а не байт, как было реализовано в RAID 3). Данный подход позволяет избавиться от проблемы, которая присутствовала в RAID 3 и не позволяла одновременно обрабатывать несколько запросов на чтение. Скорость чтения в RAID 4 чуть выше, чем в RAID 3, однако скорость записи осталась на довольно низком уровне. Большей частью из-за того, что запись, хоть и производится на несколько дисков одновременно, но контрольные суммы записываются на один-единственный носитель, который не позволяет производить больше одной операции в единицу времени, что в целом снижает производительность массива RAID 4. Так как эта схема является своего рода промежуточной между RAID 3 и RAID 5, не нашла своего места на рынке и достаточно нечасто используется.
RAID 5 – «бутылочным горлышком» схем RAID от 2 до 4 является именно скорость записи (неспособность схем совершать параллельную запись на несколько носителей, так как для этих систем используется обычно один выделенный диск). В схеме RAID 5 этот недостаток исправлен использованием чередования и четности. Схема организации RAID 5 заключается в циклической записи блоков данных и контрольных сумм на все диски, составляющие массив, последовательно заполняя их объем. Под контрольными суммами здесь подразумевается результат операции XOR, для хранения которого нужен лишь объем, равный объему одного из дисков, составляющих RAID 5. Данная схема имеет высокую скорость записи данных, однако скорость чтения ниже, чем у RAID 4. Главным плюсом является высокий уровень показателя сбалансированности данной системы хранения и обработки информации. Объем дискового массива RAID 5 рассчитывается, исходя из количества дисков (общее их количество «минус» один «умножить» на объем). Главный минус данной системы проявляется при процедуре восстановление данных. При выходе из строя одного из дисков весь том переходит в критический режим работы – «degrade», все операции обработки информации дополнительно сопровождаются рядом манипуляций, из-за чего уровень производительности резко падает. При этом процессе уровень надежности понижается до минимального, схожего с показателями для RAID 0. Главная проблема процесса восстановления данных заключается в его длительности (в зависимости от объема, обычно занимает от нескольких часов), а также в том, что процесс восстановления инициирует довольно высокую нагрузку, которой подвержены работоспособные диски в течение длительного времени, что может спровоцировать выход из строя одного из них. Если до полного восстановления информации произойдет выход из строя или возникнет невосстановимая ошибка чтения хотя бы еще на одном из работоспособных дисков, массив будет разрушен и информацию на нем обычными средствами восстановить будет крайне затруднительно. Минимальный количество дисков, которые могут быть использованы для вышеуказанной схемы, не может быть менее трех.
RAID 6 - имеет более высокие показатели степени надежности, чем RAID 5, за счет использования в своем составе на одного, а двух объемов дисков, предназначенных для хранения контрольных сумм, и рассчитываются данные суммы по разным алгоритмам. Данный подход обеспечивает работоспособность системы после выхода из строя сразу двух дисков. Однако, производительность RAID 6 ниже на 10-15%, по сравнению с аналогичными показателями RAID 5, что вызвано большим объемом обработки информации для контроллера. На практике RAID 6 практически не используется в силу меньшей вероятности выхода из строя сразу 2 дисков, тем более, что надежность системы можно повысить иными способами. Минимальное количество дисков, которые могут быть использованы для вышеуказанной схемы, не может быть менее четырех.
RAID 7 – не является отдельным уровнем RAID в полном смысле этого слова. Компания Storage Computer Corporation выбрала для своего решения на основе RAID 3 именно это звучное и выгодное название, улучшения которого состоят в использовании асинхронного чередования, применения кэш-памяти и высокопроизводительного микропроцессора. Сам массив требует обязательного использования источника бесперебойного питания, так как в случае перебоев с электропитанием происходит повреждение данных. Высокая стоимость обусловлена достоинством данного монопольного решения - огромным выигрышем в скорости по сравнению с RAID 3, при том же уровне надежности.
Существует и 6 составных схем организации RAID-массивов:
RAID 0+1 (01) и 1+0 (10) – являются довольно популярным форматом организации хранения данных. RAID 0+1 нередко называется «зеркалом страйпов», а 1+0 – «страйпом зеркал». В обоих случаях используются чередование, вкупе с зеркалированием, однако результаты подобного сочетания различны. RAID 0+1 обладает высокой скоростью работы. Повышенной надежностью. Способен поддерживаться даже самыми низкобюджетными моделями RAID-контроллеров и являются довольно привлекательным решением по цене. Однако надежность 1+0 несколько выше и отказа подобной системы не возникает даже при выходе из строя пяти дисков одновременно. Основным недостатком подобных решений является низкий процент использования емкости подобных накопителей – лишь 50%.
RAID 0+5 (05) и 5+0 (50), подобно прочим составным RAID, это смесь RAID 0 и RAID 5. RAID 0+5 представляет собой набор страйпов, из которых и состоит RAID 5. Подобная архитектура не дает выигрыша практически ни в одном параметре. Гораздо более широкое распространение получил RAID 5+0, который представляет собой два массива RAID 5, объединенных в страйп. RAID 5+0 имеет высокую производительность (даже с файлами маленького размера), хорошую отказоустойчивость и надежность, однако довольно затратен и сложен в реализации. Наиболее ярким примером реализации подобной схемы могут служить WEB-серверы.
RAID 1+5 (15) и 5+1 (51) – построены с единой концепцией – максимально обезопасить систему от потери информации, создав сверхнадежную систему. Тогда как RAID 1+5 работоспособен при отказе трех накопителей, а RAID 5+1 – способен сохранить информацию даже при выходе из строя пяти из восьми жестких дисков. Так как эти схемы хранения информации весьма дорогостоящи ввиду большого числа неиспользуемой емкости дисков, то наиболее часто RAID 5+1 строят на основе двух контроллеров RAID 5, объединенных на программном уровне. Эта мера чрезвычайно снижает затраты.
Заключение:
Самое главное, помните, что при выборе RAID необходимо учитывать не только показатели скорости и быстродействия. Стабильность, надежность, цена — факторы, которые нельзя упускать из виду. Определите, что важнее для Вас и Вашего проекта, и выберите именно то, что максимально обеспечит необходимые запросы.
Лукьянов Константин.