Все про RAID массивы из жестких дисков (HDD). Что такое RAID-массив

RAID (англ. redundant array of independent disks - избыточный массив независимых жёстких дисков) - массив из нескольких дисков, управляемых контроллером, взаимосвязанных скоростными каналами и воспринимаемых внешней системой как единое целое. В зависимости от типа используемого массива может обеспечивать различные степени отказоустойчивости и быстродействия. Служит для повышения надёжности хранения данных и/или для повышения скорости чтения/записи информации. Изначально, подобные массивы строились в качестве резерва носителям на оперативной (RAM) памяти, которая в то время была дорогой. Со временем, аббревиатура приобрела второе значение – массив уже был из независимых дисков, подразумевая использование нескольких дисков, а не разделов одного диска, а также дороговизну (теперь уже относительно просто нескольких дисков) оборудования, необходимого для построения этого самого массива.

Рассмотрим, какие бывают RAID массивы. Сперва рассмотрим уровни, которые были представлены учёными из Беркли, потом их комбинации и необычные режимы. Стоит заметить, что если используются диски разного размера (что не рекомендуется), то работать они буду по объёму наименьшего. Лишний объем больших дисков просто будет недоступен.

RAID 0. Дисковый массив с чередованием без отказоустойчивости/чётности (Stripe)

Является массивом, где данные разбиваются на блоки (размер блока можно задавать при создании массива) и затем записываются на отдельные диски. В простейшем случае – есть два диска, один блок пишется на первый диск, другой на второй, затем опять на первый и так далее. Также этот режим называется «чередование», поскольку при записи блоков данных чередуются диски, на которые осуществляется запись. Соответственно, читаются блоки тоже поочерёдно. Таким образом, происходит параллельное выполнение операций ввода/вывода, что приводит к большей производительности. Если раньше за единицу времени мы могли считать один блок, то теперь можем сделать это сразу с нескольких дисков. Основным плюсом данного режима как раз и является высокая скорость передачи данных.

Однако чудес не бывает, а если бывают, то нечасто. Производительность растёт всё же не в N раз (N – число дисков), а меньше. В первую очередь, увеличивается в N раз время доступа к диску, и без того высокое относительно других подсистем компьютера. Качество контроллера оказывает не меньшее влияние. Если он не самый лучший, то скорость может едва заметно отличаться от скорости одного диска. Ну и немалое влияние оказывает интерфейс, которым RAID контроллер соединён с остальной системой. Всё это может привести не только к меньшему, чем N увеличению скорости линейного чтения, но и к пределу количества дисков, установка выше которого прироста давать уже не будет вовсе. Или, наоборот, будет слегка снижать скорость. В реальных задачах, с большим числом запросов шанс столкнуться с этим явлением минимален, ибо скорость весьма сильно упирается в сам жёсткий диск и его возможности.

Как видно, в этом режиме избыточности нет как таковой. Используется всё дисковое пространство. Однако, если один из дисков выходит из строя, то, очевидно, теряется вся информация.

RAID 1. Зеркалирование (Mirror)

Суть данного режима RAID сводится к созданию копии (зеркала) диска с целью повышения отказоустойчивости. Если один диск выходит из строя, то работа не прекращается, а продолжается, но уже с одним диском. Для этого режима требуется чётное число дисков. Идея этого метода близка к резервному копированию, но всё происходит «на лету», равно как и восстановление после сбоя (что порой весьма важно) и нет необходимости тратить время на это.

Минусы – высокая избыточность, так как нужно вдвое больше дисков для создания такого массива. Ещё одним минусом является то, что отсутствует какой-либо прирост производительности – ведь на второй диск просто пишется копия данных первого.

RAID 2 Массив с использованием ошибкоустойчивого кода Хемминга.

Данный код позволяет исправлять и обнаруживать двойные ошибки. Активно используется в памяти с коррекцией ошибок (ECC). В этом режиме диски разбиваются на две группы – одна часть используется для хранения данных и работает аналогично RAID 0, разбивая блоки данных по разным дискам; вторая часть используется для хранения ECC кодов.

Из плюсов можно выделить исправление ошибок «на лету», высокую скорость потоковой передачи данных.

Главным минусом является высокая избыточность (при малом числе дисков она почти двойная, n-1). При увеличении числа дисков удельное число дисков хранения ECC кодов становится меньше (снижается удельная избыточность). Вторым минусом является низкая скорость работы с мелкими файлами. Из-за громоздкости и высокой избыточности с малым числом дисков, данный уровень RAID в данное время не используется, сдав позиции более высоким уровням.

RAID 3. Отказоустойчивый массив с битовым чередованием и чётностью.

Данный режим записывает данные по блокам на разные диски, как RAID 0, но использует ещё один диск для хранения четности. Таким образом, избыточность намного ниже, чем в RAID 2 и составляет всего один диск. В случае сбоя одного диска, скорость практически не меняется.

Из основных минусов надо отметить низкую скорость при работе с мелкими файлами и множеством запросов. Связано это с тем, что все контрольные коды хранятся на одном диске и при операциях ввода/вывода их необходимо переписывать. Скорость этого диска и ограничивает скорость работы всего массива. Биты чётности пишутся только при записи данных. А при чтении – они проверяются. По причине этого наблюдается дисбаланс в скорости чтения/записи. Одиночное чтение небольших файлов также характеризуется невысокой скоростью, что связано с невозможностью параллельного доступа с независимых дисков, когда разные диски параллельно выполняют запросы.

RAID 4

Данные записываются блоками на разные диски, один диск используется для хранения битов чётности. Отличие от RAID 3 заключается в том, что блоки разбиваются не по битам и байтам, а по секторам. Преимущества заключаются в высокой скорости передачи при работе с большими файлами. Также высока скорость работы с большим числом запросов на чтение. Из недостатков можно отметить доставшиеся от RAID 3 – дисбаланс в скорости операций чтения/записи и существование условий, затрудняющих параллельный доступ к данным.

RAID 5. Дисковый массив с чередованием и распределённой чётностью.

Метод похож на предыдущий, но в нём для битов чётности выделяется не отдельный диск, а эта информация распределяется между всеми дисками. То есть, если используется N дисков, то будет доступен объём N-1 диска. Объём одного будет выделен под биты чётности, как и в RAID 3,4. Но они хранятся не на отдельном диске, а разделены. На каждом диске есть (N-1)/N объёма информации и 1/N объёма заполнено битами чётности. Если в массиве выходит из строя один диск, то он остаётся работоспособным (данные, хранившиеся на нём, вычисляются на основе чётности и данных других дисков «на лету»). То есть, сбой проходит прозрачно для пользователя и порой даже с минимальным падением производительности (зависит от вычислительной способности RAID контроллера). Из преимуществ отметим высокие скорости чтения и записи данных, как при больших объёмах, так и при большом числе запросов. Недостатки – сложное восстановление данных и более низкая, чем в RAID 4 скорость чтения.

RAID 6. Дисковый массив с чередованием и двойной распределённой чётностью.

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

Комбинированные (nested) уровни RAID.

Поскольку массивы RAID являются прозрачными для ОС, то вскоре пришло время и созданию массивов, элементами которых являются не диски, а массивы других уровней. Обычно они пишутся через плюс. Первая цифра означает то, массивы какого уровня входят в качестве элементов, а вторая цифра – то, какую организацию имеет верхний уровень, который объединяет элементы.

RAID 0+1

Комбинация, которая является массивом RAID 1, собранным на базе массивов RAID 0. Как и в массиве RAID 1, доступным будет только половина объёма дисков. Но, как и в RAID 0, скорость будет выше, чем с одним диском. Для реализации такого решения необходимо минимум 4 диска.

RAID 1+0

Также известен, как RAID 10. Является страйпом зеркал, то есть, массивом RAID 0, построенным из RAID 1 массивов. Практически аналогичен предыдущему решению.

RAID 0+3

Массив с выделенной чётностью над чередованием. Является массивом 3-го уровня, в котором данные блоками разбиваются и пишутся на массивы RAID 0. Комбинации, кроме простейших 0+1 и 1+0 требуют специализированных контроллеров, зачастую достаточно дорогих. Надёжность данного вида ниже, чем у следующего варианта.

RAID 3+0

Также известен, как RAID 30. Является страйпом (массивом RAID 0) из массивов RAID 3. Обладает весьма высокой скорость передачи данных, вкупе с неплохой отказоустойчивостью. Данные сначала разделяются на блоки (как в RAID 0) и попадают на массивы-элементы. Там они опять делятся на блоки, считается их чётность, блоки пишутся на все диски кроме одного, на который пишутся биты чётности. В данном случае, из строя может выйти один из дисков каждого из входящих в состав RAID 3 массива.

RAID 5+0 (50)

Создаётся путём объединения массивов RAID 5 в массив RAID 0. Обладает высокой скоростью передачи данных и обработки запросов. Обладает средней скоростью восстановления данных и хорошей стойкостью при отказе. Комбинация RAID 0+5 также существует, но больше теоретически, так как даёт слишком мало преимуществ.

RAID 5+1 (51)

Сочетание зеркалирования и чередования с распределённой четностью. Также вариантом является RAID 15 (1+5). Обладает очень высокой отказоустойчивостью. Массив 1+5 способен работать при отказе трех дисков, а 5+1 – пяти из восьми дисков.

RAID 6+0 (60)

Чередование с двойной распределённой четностью. Иными словами – страйп из RAID 6. Как уже говорилось применительно к RAID 0+5, RAID 6 из страйпов не получил распространения (0+6). Подобные приёмы (страйп из массивов с четностью) позволяют повысить скорость работы массива. Ещё одним преимуществом является то, что так можно легко повысить объём, не усложняя ситуации с задержками, необходимыми на вычисление и запись большего числа битов четности.

RAID 100 (10+0)

RAID 100, также пишущийся как RAID 10+0, является страйпом из RAID 10. По своей сути, он схож с более широким RAID 10 массивом, где используется вдвое больше дисков. Но именно такой «трехэтажной» структуре есть своё объяснение. Чаще всего RAID 10 делают аппаратным, то есть силами контроллера, а уже страйп из них делают программно. К такой уловке прибегают, чтобы избежать проблемы, о которой говорилось в начале статьи – контроллеры имеют свои ограничения по масштабируемости и если воткнуть в один контроллер двойное число дисков, прироста можно при некоторых условиях вообще не увидеть. Программный же RAID 0 позволяет создать его на базе двух контроллеров, каждый из которых держит на борту RAID 10. Так, мы избегаем «бутылочного горлышка» в лице контроллера. Ещё одним полезным моментом является обход проблемы с максимальным числом разъёмов на одном контроллере – удваивая их число, мы удваиваем и число доступных разъёмов.

Нестандартные режимы RAID

Двойная четность

Распространённым дополнением к перечисленным уровням RAID является двойная четность, порой реализованная и потому называемая «диагональной четностью». Двойная четность уже внедрена в RAID 6. Но, в отличие от нее, четность считается над другими блоками данных. Недавно спецификация RAID 6 была расширена, потому диагональная четность может считаться RAID 6. Если для RAID 6 четность считается как результат сложения по модулю 2 битов, идущих в ряд (то есть сумма первого бита на первом диске, первого бита на втором и т.д.), то в диагональной четности идет смещение. Работа в режиме сбоя дисков не рекомендуется (ввиду сложности вычисления утраченных битов из контрольных сумм).

Является разработкой NetApp RAID массива с двойной четностью и подпадает под обновленное определение RAID 6. Использует отличную от классической RAID 6 реализации схему записи данных. Запись ведется сначала на кеш NVRAM, снабжённый источником бесперебойного питания, чтобы предотвратить потерю данных при отключении электричества. Программное обеспечение контроллера, по возможности, пишет только цельные блоки на диски. Такая схема предоставляет большую защиту, чем RAID 1 и имеет более высокую скорость работы, нежели обычный RAID 6.

RAID 1,5

Был предложен компанией Highpoint, однако теперь применяется очень часто в контроллерах RAID 1, без каких-либо выделений данной особенности. Суть сводится к простой оптимизации – данные пишутся как на обычный массив RAID 1 (чем 1,5 по сути и является), а читают данные с чередованием с двух дисков (как в RAID 0). В конкретной реализации от Highpoint, применявшейся на платах DFI серии LanParty на чипсете nForce 2, прирост был едва заметным, а порой и нулевым. Связано это, вероятно, с невысокой скоростью контроллеров данного производителя в целом в то время.

Комбинирует в себе RAID 0 и RAID 1. Создаётся минимум на трёх дисках. Данные пишутся с чередованием на три диска, а со сдвигом на 1 диск пишется их копия. Если пишется один блок на три диска, то копия первой части пишется на второй диск, второй части – на третий диск. При использовании четного числа дисков лучше, конечно, использовать RAID 10.

Обычно при построении RAID 5 один диск оставляют свободным (spare), чтобы в случае сбоя система сразу стала перестраивать (rebuild) массив. При обычной работе этот диск работает вхолостую. Система RAID 5E подразумевает использование этого диска в качестве элемента массива. А объём этого свободного диска распределяется по всему массиву и находится в конце дисков. Минимальное число дисков – 4 штуки. Доступный объём равен n-2, объём одного диска используется (будучи распределенным между всеми) для четности, объем еще одного – свободный. При выходе из строя диска происходит сжатие массива до 3-х дисков (на примере минимального числа) заполнением свободного пространства. Получается обычный массив RAID 5, устойчивый к отказу ещё одного диска. При подключении нового диска, массив расжимается и занимает вновь все диски. Стоит отметить, что во время сжатия и распаковки диск не является устойчивым к выходу еще одного диска. Также он недоступен для чтения/записи в это время. Основное преимущество – большая скорость работы, поскольку чередование происходит на большем числе дисков. Минус – что нельзя данный диск назначать сразу к нескольким массивам, что возможно в простом массиве RAID 5.

RAID 5EE

Отличается от предыдущего только тем, что области свободного места на дисках не зарезервированы одним куском в конце диска, а чередуются блоками с битами четности. Такая технология значительно ускоряет восстановление после сбоя системы. Блоки можно записать прямо на свободное место, без необходимости перемещения по диску.

Аналогично с RAID 5E использует дополнительный диск для повышения скорости работы и распределения нагрузки. Свободное место разделяется между другими дисками и находится в конце дисков.

Данная технология является зарегистрированной торговой маркой фирмы Storage Computer Corporation. Массив, основывающийся на RAID 3, 4, оптимизированный для повышения производительности. Основное преимущество заключается в использовании кеширования операций чтения/записи. Запросы на передачу данных осуществляются асинхронно. При построении используются диски SCSI. Скорость выше решений RAID 3,4 приблизительно в 1,5-6 раз.

Intel Matrix RAID

Является технологией, представленной Intel в южных мостах, начиная с ICH6R. Суть сводится к возможности комбинации RAID массивов разных уровней на разделах дисков, а не на отдельных дисках. Скажем, на двух дисках можно организовать по два раздела, два из них будут хранить на себе операционную систему на массиве RAID 0, а другие два – работая в режиме RAID 1 – хранить копии документов.

Linux MD RAID 10

Это RAID драйвер ядра Linux, предоставляющий возможность создания более продвинутой версии RAID 10. Так, если для RAID 10 существовало ограничение в виде чётного числа дисков, то этот драйвер может работать и с нечетным. Принцип для трех дисков будет тем же, что в RAID 1E, когда происходит чередование дисков по очереди для создания копии и чередования блоков, как в RAID 0. Для четырех дисков это будет эквивалентно обычному RAID 10. Помимо этого, можно задавать, на какой области диска будет храниться копия. Скажем, оригинал будет в первой половине первого диска, а его копия – во второй половине второго. Со второй половиной данных – наоборот. Данные можно дублировать несколько раз. Хранение копий на разных частях диска позволяет достичь большей скорости доступа в результате разнородности жесткого диска (скорость доступа меняется в зависимости от расположения данных на пластине, обычно разница составляет два раза).

Разработан компанией Kaleidescape для использования в своих медиа устройствах. Схож с RAID 4 с использованием двойной четности, но использует другой метод отказоустойчивости. Пользователь может легко расширять массив, просто добавляя диски, причём в случае, если он содержит данные, данные будут просто добавлены в него, вместо удаления, как это требуется обычно.

Разработка компании Sun. Самой большой проблемой RAID 5 является потеря информации в результате отключения питания, когда информация из дискового кеша (который является энергозависимой памятью, то есть не хранит данные без электричества) не успела сохраниться на магнитные пластины. Такое несовпадение информации в кеше и на диске называют некогерентностью. Сама организация массива связана с файловой системой Sun Solaris – ZFS. Используется принудительная запись содержимого кеш-памяти дисков, восстанавливать можно не только весь диск, но и блок «на лету», когда контрольная сумма не совпала. Ещё немаловажным аспектом является идеология ZFS – она не меняет данные при необходимости. Вместо этого она пишет обновлённые данные и потом, убедившись, что операция прошла уже удачно, меняет указатель на них. Таким образом, удаётся избежать потери данных при модификации. Мелкие файлы дублируются вместо создания контрольных сумм. Это тоже делается силами файловой системы, поскольку она знакома со структурой данных (массивом RAID) и может выделять место под эти цели. Существует также RAID-Z2, которая, подобно RAID 6 способна выдержать отказ двух дисков с помощью использования двух контрольных сумм.

То, что не является RAID в принципе, но часто вместе с ним употребляется. Дословно переводится как «просто набор дисков» (just a bunch of disks) Технология объединяет все диски, установленные в системе в один большой логический диск. То есть, вместо трех дисков будет виден один крупный. Используется весь суммарный объем дисков. Ускорения ни надежности, ни производительности нет.

Drive Extender

Функция, заложенная в Window Home Server. Совмещает в себе JBOD и RAID 1. При необходимости создания копии, она не дублирует сразу файл, а ставит NTFS разделе метку, указывающую на данные. При простое система копирует файл так, чтобы место на дисках было максимальным (использовать можно диски разного объема). Позволяет достичь многих преимуществ RAID – отказоустойчивости и возможности простой замены вышедшего из строя диска и его восстановления в фоновом режиме, прозрачности местонахождения файла (вне зависимости от того, на каком диске он находится). Также можно проводить параллельный доступ с разных дисков с помощью вышеуказанных меток, получая сходную с RAID 0 производительность.

Разработана компанией Lime technology LLC. Эта схема отличается от обычных RAID массивов тем, что позволяет смешивать диски SATA и PATA в одном массиве и диски разных объема и скорости. Для контрольной суммы (четности) используется выделенный диск. Данные не чередуются между дисками. В случае отказа одного диска, теряются только файлы, на нём хранящиеся. Однако, с помощью четности они могут быть восстановлены. UNRAID внедрен как добавление к Linux MD (multidisk).

Большинство видов RAID массивов не получило распространения, часть используется в узких сферах применения. Наиболее массовыми, от простых пользователей до серверов начального уровня стали RAID 0, 1, 0+1/10, 5 и 6. Нужен ли вам рейд-массив для ваших задач – решать вам. Теперь вы знаете, в чём их отличия друг от друга.

Если вы когда-либо задумывались о приобретении серверов или NAS хранилищ, то вы наверняка слышали магический термин “RAID”. RAID расшифровывается как Redundant Array of Independent Disks - избыточный массив независимых дисков. Вообще, системы с RAID используют два или более жестких дисков или для того, чтоб улучшить производительность, или для повышения отказоустойчивости, или для того и другого вместе. Отказоустойчивость, в этом случае означает то, что оборудование (например, сервер) сможет работать и данные не потеряются даже в том случае, если один (или даже больше) из дисков вышел из строя.

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

Обзор технологии RAID

Как правило, RAID используется в компаниях, где отказоустойчивость и производительность – не роскошь, а необходимость. Серверы и NAS-хранилища, в большинстве случаев оснащены так называемыми RAID-контроллерами – аппаратными модулями, которые управляют массивами из SATA или SSD дисков. Также, в большинстве современных операционных систем поддерживается программный RAID, где управление дисками и массивами осуществляется силами самой операционной системы.

Какой уровень RAID нужен мне?

Как уже говорилось, существует несколько уровней RAID, в зависимости от того, чего хочется достичь – большей производительности, большей надежности или и того и другого. Также важно, используется аппаратный или программный RAID. Программный RAID поддерживает не все уровни, а в случае использования аппаратного – нужно подумать о выборе соответствующего контроллера.

Самые распространенные уровни RAID.

RAID0 – используется для повышения производительности. Также известен как массив с «чередованием». Это означает, что поток данных как-бы делится на несколько дисков, вместо того, чтоб все время использовать один. Таким образом достигается «параллельность» чтения или записи, что ускоряет работу. Для RAID0 нужно минимум два диска. RAID0 поддерживается как аппаратными, так и программными решениями. Недостаток RAID0 в том, что нет никакой отказоустойчивости – при выходе из строя любого диска теряется информация.

RAID1 – используется для повышения надежности. Также известен как массив с «зеркалированием». Из названия понятно, что в случае RAID1 информация одновременно записывается на два диска, получается две копии данных – два «зеркала». В случае отказа одного из дисков второй продолжает работать и данные не теряются. Это самый простой и относительно недорогой способ повысить отказоустойчивость. Минусом такого решения является небольшое уменьшение производительности. Для RAID1 требуется минимум два диска. RAID1 можно собрать как программно, так и с помощью аппаратного контроллера.

RAID5 – наверное, самая распространенная конфигурация RAID. RAID5 обеспечивает лучшую производительность, чем «зеркалирование», к тому же обеспечивая и отказоустойчивость. В конфигурации RAID5 блоки данных и так называемая четность (дополнительный блок данных для восстановления) записываются последовательно на три или более дисков. При отказе одного из дисков данные восстанавливаются из оставшихся блоков и четности автоматически и незаметно. Естественно, в таком случае система остается полностью работоспособной. Другим плюсом RAID5 является «горячая замена» - возможность менять любой из дисков не прерывая работы системы (сервера или хранилища). Негативным моментом использования RAID5 является резкое снижение производительности во время восстановления информации на вновь замененном диске. Также RAID5 в принципе требователен к вычислительным ресурсам, поэтому рекомендуется использовать аппаратный контроллер, хотя программными способами RAID5 создать тоже возможно.

RAID10 – комбинация RAID1 и RAID0. Сочетает «зеркалирование» RAID1 и «чередование» RAID0. Обеспечивает хорошую производительность и отказоустойчивость, однако достаточно дорог, ибо требует минимум четыре диска и общая емкость массива будет равна половине емкости физических дисков.

Существуют и другие уровни RAID – RAID2, RAID4, RAID7, RAID50, RAID01, в большинстве - они являются специфическими комбинациями и вариантами уже описанных конфигураций. Для малого бизнеса и типичных решений самыми распространенными являются уровни 0, 1, 5 и 10.

Стоит упомянуть, что в случае использования дисков разной емкости массив будет равен емкости наименьшего диска. Например, емкость RAID1 из двух дисков 1000 Гб и 500 Гб будет равна 500 Гб. Совершенно естественно, что для RAID рекомендуется использовать диски одинаковой емкости.

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

Полезно помнить, что RAID не заменяет резервное копирование. RAID может быть отличным способом повышения надежности и производительности, но это лишь часть стратегии восстановления данных.

В интернете есть масса статей с описанием RAID. Например, эта описывает все очень подробно. Но как обычно, читать все не хватает времени, поэтому надо что-нибудь коротенькое для понимания - а надо оно или нет, и что лучше использовать применительно к работе с СУБД (InterBase, Firebird или что то иное - на самом деле все равно). Перед вашими глазами - именно такой материал.

В первом приближении RAID это объединение дисков в один массив. SATA, SAS, SCSI, SSD - неважно. Более того, практически каждая нормальная материнская плата сейчас поддерживает возможность организации SATA RAID. Пройдемся по списку, какие бывают RAID и зачем они. (Хотел бы сразу заметить, что в RAID нужно объединять одинаковые диски. Объединение дисков от разных производителей, от одного но разных типов, или разных размеров - это баловство для человека, сидящего на домашнем компьютере).

RAID 0 (Stripe)

Грубо говоря, это последовательное объединение двух (или более) физических дисков в один "физический" диск. Годится разве что для организации огромных дисковых пространств, например, для тех, кто работает с редактированием видео. Базы данных на таких дисках держать нет смысла - в самом деле, если даже у вас база данных имеет размер 50 гигабайт, то почему вы купили два диска размером по 40 гигабайт, а не 1 на 80 гигабайт? Хуже всего то, что в RAID 0 любой отказ одного из дисков ведет к полной неработоспособности такого RAID, потому что данные записываются поочередно на оба диска, и соответственно, RAID 0 не имеет средств для восстановления в случае сбоев.

Конечно, RAID 0 дает ускорение в работе из-за чередования чтения/записи.

RAID 0 часто используют для размещения временных файлов.

RAID 1 (Mirror)

Зеркалирование дисков. Если Shadow в IB/FB это программное зеркалирование (см. Operations Guide.pdf), то RAID 1 - аппаратное зеркалирование, и ничего более. Упаси вас от использования программного зеркалирования средствами ОС или сторонним ПО. Надо или "железный" RAID 1, или shadow.

При сбое тщательно проверяйте, какой именно диск сбойнул. Самый частый случай погибания данных на RAID 1 - это неверные действия при восстановлении (в качестве "целого" указан не тот диск).

Насчет производительности - по записи выигрыш 0, по чтению - возможно до 1.5 раз, т. к. чтение может производиться "параллельно" (поочередно с разных дисков) . Для баз данных ускорение мало, в то время как при параллельном обращении к разным (!) частям (файлам) диска ускорение будет абсолютно точно.

RAID 1+0

Под RAID 1+0 имеют в виду вариант RAID 10, когда два RAID 1 объединяются в RAID 0. Вариант, когда два RAID 0 объединяются в RAID 1 называется RAID 0+1, и "снаружи" представляет собой тот же RAID 10.

RAID 2-3-4

Эти RAID являются редкими, т. к. в них используются коды Хэмминга, либо разбиение байт на блоки + контрольные суммы и т. п., но общее резюме таково - эти RAID дают только надежность, при 0-вом увеличении производительности, и иногда даже ее ухудшении.

RAID 5

Для него нужно минимально 3 диска. Данные четности распределяются по всем дискам массива

Обычно говорится, что "RAID5 использует независимый доступ к дискам, так что запросы к разным дискам могут выполняться параллельно". Следует иметь в виду, что речь идет, конечно, о параллельных запросах на ввод-вывод. Если такие запросы идут последовательно (в SuperServer), то конечно, эффекта распараллеливания доступа на RAID 5 вы не получите. Разумеется, RAID5 даст прирост производительности, если с массивом будут работать операционная система и другие приложения (например, на нем будет находиться виртуальная память, TEMP и т. п.).

Вообще RAID 5 раньше был наиболее часто используемым массивом дисков для работы с СУБД. Сейчас такой массив можно организовать и на SATA дисках, причем он получится существенно дешевле, чем на SCSI. Цены и контроллеры вы можете посмотреть в статьях
Причем, следует обратить внимание на объем покупаемых дисков - например, в одной из упомянутых статей RAID5 собирается из 4-х дисков объемом 34 гиг, при этом объем "диска" получается 103 гигабайта.

Тестирование пяти контроллеров SATA RAID - http://www.thg.ru/storage/20051102/index.html .

Adaptec SATA RAID 21610SA в массивах RAID 5 - http://www.ixbt.com/storage/adaptec21610raid5.shtml .

Почему RAID 5 - это плохо - https://geektimes.ru/post/78311/

Внимание! При закупке дисков для RAID5 обычно берут 3 диска, по минимуму (скорее из-за цены). Если вдруг по прошествии времени один из дисков откажет, то может возникнуть ситуация, когда не удастся приобрести диск, аналогичный используемым (перестали выпускаться, временно нет в продаже, и т. п.). Поэтому более интересной идеей кажется закупка 4-х дисков, организация RAID5 из трех, и подключение 4-го диска в качестве резервного (для бэкапов, других файлов и прочих нужд).

Объем дискового массива RAID5 расчитывается по формуле (n-1)*hddsize, где n - число дисков в массиве, а hddsize - размер одного диска. Например, для массива из 4-х дисков по 80 гигабайт общий объем будет 240 гигабайт.

Есть по поводу "непригодности" RAID5 для баз данных. Как минимум его можно рассматривать с той точки зрения, что для получения хорошей производительности RAID5 необходимо использовать специализированный контроллер, а не то, что есть по умолчанию на материнской плате.

Статья RAID-5 must die . И еще о потерях данных на RAID5 .

Примечание. На 05.09.2005 стоимость SATA диска Hitachi 80Gb составляет 60 долларов.

RAID 10, 50

Дальше идут уже комбинации из перечисленных вариантов. Например, RAID 10 это RAID 0 + RAID 1. RAID 50 - это RAID 5 + RAID 0.

Интересно, что комбинация RAID 0+1 в плане надежности оказывается хуже, чем RAID5. В копилке службы ремонта БД есть случай сбоя одного диска в системе RAID0 (3 диска) + RAID1 (еще 3 таких же диска). При этом RAID1 не смог "поднять" резервный диск. База оказалась испорченной без шансов на ремонт.

Для RAID 0+1 требуется 4 диска, а для RAID 5 - 3. Подумайте об этом.

RAID 6

В отличие от RAID 5, который использует четность для защиты данных от одиночных неисправностей, в RAID 6 та же четность используется для защиты от двойных неисправностей. Соответственно, процессор более мощный, чем в RAID 5, и дисков требуется уже не 3, а минимум 5 (три диска данных и 2 диска контроля четности). Причем, количество дисков в raid6 не имеет такой гибкости, как в raid 5, и должно быть равно простому числу (5, 7, 11, 13 и т. д.)

Допустим одновременный сбой двух дисков, правда, такой случай является весьма редким.

По производительности RAID 6 я данных не видел (не искал), но вполне может быть, что из-за избыточного контроля производительность может быть на уровне RAID 5.

Rebuild time

У любого массива RAID, который остается работоспособным при сбое одного диска, существует такое понятие, как rebuild time . Разумеется, когда вы заменили сдохший диск на новый, контроллер должен организовать функционирование нового диска в массиве, и на это потребуется определенное время.

Во время "подключения" нового диска, например, для RAID 5, контроллер может допускать работу с массивом. Но скорость работы массива в этом случае будет весьма низкой, как минимум потому, что даже при "линейном" наполнении нового диска информацией запись на него будет "отвлекать" контроллер и головки диска на операции синхронизации с остальными дисками массива.

Время восстановления функционирования массива в нормальном режиме напрямую зависит от объема дисков. Например, Sun StorEdge 3510 FC Array при размере массива 2 терабайта в монопольном режиме делает rebuild в течение 4.5 часов (при цене железки около $40000). Поэтому, при организации массива и планировании восстановления при сбое нужно в первую очередь думать именно о rebuild time. Если ваша база данных и бэкапы занимают не более 50 гигабайт, и рост в год составляет 1-2 гигабайта, то вряд ли имеет смысл собирать массив из 500-гигабайтных дисков. Достаточно будет и 250-гигабайтных, при этом даже для raid5 это будет минимум 500 гигабайт места для размещения не только базы данных, но и фильмов. Зато rebuild time для 250 гигабайтных дисков будет примерно в 2 раза меньше, чем для 500 гигабайтных.

Резюме

Получается, что самым осмысленным является использование либо RAID 1, либо RAID 5. Однако, самая частая ошибка, которую делают практически все - это использование RAID "подо все". То есть, ставят RAID, на него наваливают все что есть, и... получают в лучшем случае надежность, но никак не улучшение производительности.

Еще часто не включают write cache, в результате чего запись на raid происходит медленнее, чем на обычный одиночный диск. Дело в том, что у большинства контроллеров эта опция по умолчанию выключена, т.к. считается, что для ее включения желательно наличие как минимум батарейки на raid-контроллере, а также наличие UPS.

Текст
В старой статье hddspeed.htmLINK (и в doc_calford_1.htmLINK) показано, как можно получить существенное увеличение производительности путем использования нескольких физических дисков, даже для IDE. Соответственно, если вы организуете RAID - положите на него базу, а остальное (temp, OS, виртуалка) делайте на других винчестерах. Ведь все равно, RAID сам по себе является одним "диском", пусть даже и более надежным и быстродействующим.
признан устаревшим. Все вышеупомянутое вполне имеет право на существование на RAID 5. Однако перед таким размещением необходимо выяснить - каким образом можно делать backup/restore операционной системы, и сколько по времени это будет занимать, сколько времени займет восстановление "умершего" диска, есть ли (будет ли) под рукой диск для замены "умершего" и так далее, т. е. надо будет заранее знать ответы на самые элементарные вопросы на случай сбоя системы.

Я все-таки советую операционную систему держать на отдельном SATA-диске, или если хотите, на двух SATA-дисках, связанных в RAID 1. В любом случае, располагая операционную систему на RAID, вы должны спланировать ваши действия, если вдруг прекратит работать материнская плата - иногда перенос дисков raid-массива на другую материнскую плату (чипсет, raid-контроллер) невозможен из-за несовместимости умолчательных параметров raid.

Размещение базы, shadow и backup

Несмотря на все преимущества RAID, категорически не рекомендуется, например, делать backup на этот же самый логический диск. Мало того что это плохо влияет на производительность, но еще и может привести к проблемам с отсутствием свободного места (на больших БД) - ведь в зависимости от данных файл backup может быть эквивалентным размеру БД, и даже больше. Делать backup на тот же физический диск - еще куда ни шло, хотя самый оптимальный вариант - backup на отдельный винчестер.

Объяснение очень простое. Backup - это чтение данных из файла БД и запись в файл бэкапа. Если физически все это происходит на одном диске (даже RAID 0 или RAID 1), то производительность будет хуже, чем если чтение производится с одного диска, а запись - на другой. Еще больше выигрыш от такого разделения - когда backup делается во время работы пользователей с БД.

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

Приветствую читателей блога!
Сегодня будет очередная статья на компьютерную тему, а посвящена она будет такому понятию, как Raid массив дисков — уверен, многим это понятие абсолютно ничего не скажет, а те, кто уже где-то про это слышал, не имеют представление о том, что это вообще такое. Давайте разбираться вместе!

Не вдаваясь в детали терминологии, Raid массив — это некий комплекс, построенный из нескольких жестких дисков, который позволяет более грамотно распределять между ними функции. Как обычно мы размещаем жесткие диски в компе? Подключаем к Sata один жесткий диск, потом другой, третий. И появляются в нашей операционке диски D, E, F и так далее. Мы можем поместить на них какие-то файлы или установить Windows, но по сути это будут отдельные диски — вынув один из них мы ровным счетом ничего не заметим (если на нем не была установлена ОС) кроме того, что нам не будут доступны записанные на них файлы. Но есть другой путь — объединить эти диски в систему, задать им определенный алгоритм совместной работы, в результате которого значительно повысится надежность хранения информации или скорость их работы.

Но прежде, чем мы сможем создать эту систему, нужно знать, поддерживает ли материнская плата работу с дисковыми массивами Raid. Во многих современных материнках уже имеется встроенный Raid-контроллер, который-то и позволяет объединить жесткие диски. Поддерживаемые схемы массивов имеются в описаниях к материнской плате. Например, возьмем первую попавшуюся мне на глаза в Яндекс Маркете плату ASRock P45R2000-WiFi.

Здесь описание поддерживаемых Raid массивов отображается в разделе «Дисковые контроллеры Sata».


В данном примере мы видим, что Sata контроллер поддерживает создание массивов Raid: 0, 1, 5, 10. Что означают эти цифры? Это обозначение различных типов массивов, в которых диски взаимодействуют между собой по разным схемам, которые призваны, как я уже говорил, либо ускорять их работу, либо увеличивают надежность от потери данных.

Если же системная плата компьютера не поддерживает Raid, то можно приобрести отдельный Raid-контроллер в виде PCI платы, которая вставляется в PCI слот на материнке и дает ей возможность создавать массивы из дисков. Для работы контроллера после его установки нужно будет также установить raid драйвер, который либо идет на диске с данной моделью, либо можно просто скачать из интернета. Лучше всего на данном устройстве не экономить и купить от какого-то известного производителя, например Asus, и с чипсетами Intel.


Я подозреваю, что пока что вы еще не очень имеете представление, о чем все же идет речь, поэтому давайте внимательно разберем каждый из самых популярных типов Raid массивов, чтобы все стало более понятно.

Массив RAID 1

Массив Raid 1 — один из самых распространенных и бюджетных вариантов, который использует 2 жестких диска. Этот массив призван обеспечить максимальную защиту данных пользователя, потому что все файлы будут одновременно копироваться сразу на 2 жестких диска. Для того, чтобы его создать, берем два одинаковых по объему харда, например по 500 Гб и делаем соответствующие настройки в BIOS для создания массива. После этого в вашей системе будет виден один жесткий диск размеров не 1 Тб, а 500 Гб, хотя физически работают два жестких диска — формула расчета приведена чуть ниже. И все файлы одновременно будут писаться на два диска, то есть второй будет полной резервной копией первого. Как вы понимаете, при выходе из строя одного из дисков вы не потеряете ни частички своей информации, так как у вас будет вторая копия этого диска.

Также поломки и не заметит операционная система, которая продолжит работу со вторым диском — о неполадке вас известит лишь специальная программа, которая контролирует функционирование массива. Вам нужно лишь удалить неисправный диск и подключить такой же, только рабочий — система автоматически скопирует на него все данные с оставшегося исправного диска и продолжит работу.

Объем диска, который будет видеть система, рассчитывается здесь по формуле:

V = 1 x Vmin, где V — это общий объем, а Vmin — объем памяти самого маленького жесткого диска.


Массив RAID 0

Еще одна популярная схема, которая призвана повысить не надежность хранения, а наоборот, скорость работы. Также состоит из двух HDD, однако в этом случае ОС видим уже полный суммарный объем двух дисков, т.е. если объединить в Raid 0 диски по 500 Гб, то система увидит один диск размером 1 Тб. Скорость чтения и записи повышается за счет того, что блоки файлов пишутся поочередно на два диска — но при этом отказоустойчивость данной системы минимальная — при выходе из строя одного из дисков почти все файлы будут повреждены и вы потеряете часть данных — ту, которая была записана на сломавшийся диск. Восстанавливать информацию после этого придется уже в сервисном центре.

Формула расчета общего объема диска, видимого Windows, выглядит так:

Если вы до прочтения данной статьи по большому счету не беспокоились об отказоустойчивости вашей системы, но хотели бы повысить скорость работы, то можете купить дополнительный винчестер и смело использовать этот тип. По большому счету, в домашних условиях подавляющее количество пользователей не хранит какой-то супер-важной информации, а скопировать какие-то важные файлы можно на отдельный внешний жесткий диск.

Массив Raid 10 (0+1)

Как следует уже из самого названия, этот тип массива объединяет в себе свойства двух предыдущих — это как бы два массива Raid 0, объединенных в Raid 1. Используются четыре жестких диска, на два из них информация записывается блоками поочередно, как это было в Raid 0, а на два других — создаются полные копии двух первых. Система очень надежная и при этом достаточно скоростная, однако весьма дорогая в организации. Для создания нужно 4 HDD, при этом система будет видеть общий объем по формуле:


То есть, если возьмем 4 диска по 500 Гб, то система увидит 1 диск размером 1 Тб.

Данный тип, также как и следующий, чаще всего используется в организациях, на серверных компьютерах, где нужно обеспечить как высокую скорость работы, так и максимальную безопасность от потери информации в случае непредвиденных обстоятельств.

Массив RAID 5

Массив Raid 5 — оптимальное сочетание цены, скорости и надежности. В данном массиве минимально могут быть задействованы 3 HDD, объем рассчитывается из более сложной формулы:

V = N x Vmin — 1 x Vmin, где N — количество жестких дисков.

Итак, допустим у нас 3 диска по 500 Гб. Объем, видимый ОС, будет равен 1 Тб.

Схема работы массива выглядит следующим образом: на первые два диска (или три, в зависимости от их количества) записываются блоки разделенных файлов, а на третий (или четвертый) — контрольная сумма первых двух (или трех). Таким образом, при отказе одного из дисков, его содержимое легко восстановить за счет имеющейся на последнем диске контрольной суммы. Производительность такого массива ниже, чем у Raid 0, но такая же надежная, как Raid 1 или Raid 10 и при этом дешевле последнего, т.к. можно сэкономить на четвертом харде.

На схеме ниже представлена схема Raid 5 из четырех HDD.

Есть также другие режимы — Raid 2,3, 4, 6, 30 и т.д., но они являются по большому счету производными от перечисленных выше.

Как установить Raid массив дисков на Windows?

С теорией, надеюсь, разобрались. Теперь посмотрим на практику — вставить в слот PCI Raid контроллер и установить драйвера, думаю, опытным пользователям ПК труда не составит.

Как же теперь создать в операционной системе Windows Raid массив из подключенных жестких дисков?

Лучше всего, конечно, это делать, когда вы только-только приобрели и подключили чистенькие винчестеры без установленной ОС. Сначала перезагружаем компьютер и заходим в настройки BIOS — здесь нужно найти SATA контроллеры, к которым подключены наши жесткие диски, и выставить их в режим RAID.

После этого сохраняем настройки и перезагружаем ПК. На черном экране появится информация о том, что у вас включен режим Raid и о клавише, с помощью которой можно попасть в его настройку. В примере ниже предложено нажать клавишу «TAB».

В зависимости от модели Raid-контроллера она может быть другой. Например, «CNTRL+F»

Заходим в утилиту настройки и нажимаем в меню что-то типа «Create array» или «Create Raid» — надписи могут отличаться. Также если контроллер поддерживает несколько типов Raid, то будет предложено выбрать, какой именно нужно создать. В моем примере доступен только Raid 0.

После этого возвращаемся обратно в BIOS и в настройке порядка загрузки видим уже не несколько отдельных дисков, а один в виде массива.

Вот собственно и все — RAID настроен и теперь компьютер будет воспринимать ваши диски как один. Вот так, например, будет виден Raid при установке Windows.

Думаю, что вы уже поняли преимущества использования Raid. Напоследок приведу сравнительную таблицу замеров скорости записи и чтения диска отдельно или в составе режимов Raid — результат, как говорится, на лицо.