И прочее, прочее, прочее, прочее. Так вот, сегодня поговорим про RAID массивах на их основе.

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

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

Наверняка так же Вы знаете (а если и не знаете, то не беда) о том, что эти массивы имеют разные порядковые номера (0, 1, 2, 3, 4 и пр.), а так же выполняют вполне себе различные функции. Оное явление действительно имеет место быть в природе и, как Вы думаю уже догадались, как раз о этих самых RAID массивах я и хочу Вам рассказать в этой статье. Точнее уже рассказываю;)

Поехали.

Что такое RAID и зачем оно нужно?

RAID - это дисковый массив (т.е. комплекс или, если хотите, связка) из нескольких устройств, - жестких дисков. Как я и говорил выше, этот массив служит для повышения надёжности хранения данных и/или для повышения скорости чтения/записи информации (или и то и другое).

Собственно, то чем именно занимается оная связка из дисков, т.е ускорением работы или повышением безопасности данных, - зависит от Вас, а точнее, от выбора текущей конфигурации рейда(ов). Разные типы этих конфигураций как раз и отмечаются разными номерами: 1, 2, 3, 4 и, соответственно, выполняют разные функции.

Просто, например, в случае построения 0 -вой версии (описание вариаций 0, 1, 2, 3 и пр., - читайте ниже) Вы получите ощутимый прирост производительности. Да и вообще жесткий диск нынче как раз таки узкий канал в быстродействии системы.

Почему так сложилось в общем и целом

Жесткие диски же растут разве что в объеме ибо скорость оборота головки оных (за исключением редких моделей типа Raptor "ов) замерла уже довольно давно на отметке в 7200 , кэш тоже не то чтобы растет, архитектура остается почти прежней.

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

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

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

Что такое RAID в физическом смысле

Физически RAID -массив представляет собой от двух до n -го количества жестких дисков подключенных поддерживающей возможность создания RAID (или к соответствующему контроллеру, что реже ибо оные дороги для рядового пользователя (контроллеры обычно используются на серверах в силу повышенной надежности и производительности)), т.е. на глаз ничего внутри системника не изменяется, никаких лишних подключений или соединений дисков между собой или с чем-то еще попросту нет.

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

Программно же, в системе, после создания рейда, тоже не появляется никаких особенных причуд. По сути, вся разница в работе с рейдом заключается только в небольшой настройке , которая собственно организует рейд (см.ниже) и в использовании драйвера. В остальном ВСЁ совершенно тоже самое – в "Мой компьютер" те же C, D и прочие диски, всё те же папки, файлы.. В общем и программно, на глаз, полная идентичность.

Установка массива не представляет собой ничего сложного: просто берем мат.плату, которая поддерживает технологию RAID , берем два полностью идентичных, - это важно! , - как по характеристикам (размеру, кэшу, интерфейсу и пр) так и по производителю и модели, диска и подключаем их к оной мат.плате. Далее просто включаем компьютер, заходим в BIOS и выставляем параметр SATA Configuration : RAID .

После этого в процессе загрузки компьютера (как правило, до загрузки Windows ) появляется панель отображающая информацию о диска в рейде и вне него, где, собственно нужно нажать CTR-I , чтобы настроить рейд (добавить диски в него, удалить и тд и тп). Собственно, вот и все. Дальше идет и прочие радости жизни, т.е, опять же, всё как всегда.

Важное примечание, которое стоит помнить

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

Что до конфигураций.. Как я уже говорил, RAID массивов существует несколько видов (как минимум из основного базиса, - это RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6 ). Для начала я расскажу о двух, наиболее понятных и популярных среди обычных пользователей:

  • RAID 0 - дисковый массив для увеличения скорости\записи.
  • RAID 1 - зеркальный дисковый массив.

А в конце статьи быстренько пробегусь по прочим.

RAID 0 - что это и с чем его едят?

И так.. RAID 0 (он же, страйп («Striping»)) - используется от двух до четырех (больше, - реже) жестких дисков, которые совместно обрабатывают информацию, что повышает производительность. Чтобы было понятно, - таскать мешки одному человеку дольше и сложнее чем вчетвером (хотя мешки остаются все теми же по своим физ свойствам, меняются лишь мощности с ними взаимодействующие). Программно же, информация на рейде такого типа, разбивается на блоки данных и записывается на оба/несколько дисков поочередно.

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

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

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

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

Что же до RAID 1 (Mirroring - «зеркало»).. Собственно, начну с недостатка. В отличии от RAID 0 получается, что Вы как бы "теряете" объем второго жесткого диска (он используется для записи на него полной (байт в байт) копии первого жесткого диска в то время как RAID 0 это место полностью доступно).

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

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

RAID 2, 3, 4, 5, 6 - что такое и с чем едят их?

Описание этих массивов тут по стольку по скольку, т.е. чисто для справки, да и то в сжатом (по сути описан только второй) виде. Почему так? Как минимум в силу низкой популярности этих массивов среди рядового (да и в общем-то любого другого) пользователя и, как следствие, малого опыта использования оных мною.

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

Оставшиеся же (специально выделенные под оное) диски хранят коды коррекции ошибок, по которым в случае выхода какого-либо винчестера из строя возможно восстановление информации. Тобишь в массивах такого типа диски делятся на две группы - для данных и для кодов коррекции ошибок

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

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

Какой RAID все же выбрать?

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

Если же вы работаете с ценной информацией, которую потерять равносильно смерти, то Вам безусловно нужен RAID 1 - с ним потерять информацию крайне сложно.

Повторюсь, что очень желательно, чтобы диски устанавливаемые в RAID массив были пол идентичны. Размер, фирма, серия, объём кэша - всё, желательно, должно быть одинаковым.

Послесловие

Вот такие вот дела.

Кстати, как собрать это чудо я писал в статье: "Как создать RAID-массив штатными методами ", а про пару параметров в материале "RAID 0 из двух SSD, - практические тесты с Read Ahead и Read Cache ". Пользуйтесь поиском.

Искренне надеюсь, что эта статья Вам окажется полезной и Вы обязательно сделаете себе рейд того или иного типа. Поверьте, оное того стоит.

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

Многие пользователи слышали о таком понятии, как дисковые массивы RAID, однако на практике мало кто себе представляет себе, что это такое. Но как оказывается, ничего сложного тут нет. Разберем суть этого термина, что называется, на пальцах, исходя из объяснения информации для рядового обывателя.

Что представляют собой дисковые массивы RAID?

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

В такой связке количество винчестеров в плане установки теоретически ограничений не имеет. Все зависит только от того, сколько подключений поддерживает материнская плата. Собственно, почему используются дисковые массивы RAID? Тут стоит обратить внимание на то, что в направлении развития технологий (относительно именно жестких дисков) они давно замерли на одной точке (скорость вращения шпинделя 7200 об./мин, размер кэша и т. д.). Исключение в этом плане составляют только модели SSD, но и у них в основном производится только увеличение объема. В то же время в производстве процессоров или планок оперативной памяти прогресс более ощутим. Таким образом, за счет применения RAID-массивов осуществляется увеличение прироста производительности при обращении к винчестерам.

Дисковые массивы RAID: виды, назначение

Что же касается самих массивов, условно их можно разделить по используемой нумерации (0, 1, 2 и т. д.). Каждый такой номер соответствует выполнению одной из заявленных функций.

Основными в этой классификации являются дисковые массивы с номерами 0 и 1 (далее будет понятно, почему), поскольку именно на них возложены основные задачи.

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

RAID 0 (Striping)

Нулевые дисковые массивы по сути своей предназначены для ускорения доступа к хранимой информации (записи или считывания). Они, как правило, могут иметь в связке от двух до четырех винчестеров.

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

RAID 1

Дисковые массивы с единичным обозначением относятся к разряду Mirroring (зеркальное отображение) и служат для сохранения данных путем дублирования.

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

RAID 2 и выше

Массивы с номерами 2 и выше имеют двойное назначение. С одной стороны, они предназначены для записи информации, с другой - используются для коррекции ошибок.

Иными словами, дисковые массивы этого типа совмещают в себе возможности RAID 0 и RAID 1, но среди компьютерщиков особой популярностью не пользуются, хотя в основе их работы лежит использование

Что лучше использовать на практике?

Безусловно, если на компьютере предполагается использование ресурсоемких программ, например, современных игр, лучше использовать массивы RAID 0. В случае работы с важной информацией, которую нужно сохранить любым способом, придется обратиться к массивам RAID 1. В силу того, что связки с номерами от двух и выше популярными так и не стали, их применение обусловливается исключительно желанием пользователя. Кстати, применение нулевых массивов является практичным и в том случае, если пользователь часто загружает на компьютер файлы мультимедиа, скажем, фильмы или музыку с высоким битрейтом для формата MP3 или в стандарте FLAC.

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

В первых персональных компьютерах винчестеров вообще не было. Чуть позднее они стали штатным оборудованием. Еще позднее в основном были решены проблемы совместимости, мешающие использованию одновременно и поддерживаемой в теории пары устройств, а к концу 90-х годов прошлого века конфигурация среднестатистического компьютера потенциально могла включать в себя уже и четыре винчестера. С этого момента многие пользователи заинтересовались уже использованием накопителей не по-отдельности, а в составе единого массива — как во «взрослых системах». В последних, впрочем, чаще всего применялся SCSI-интерфейс, доступный и владельцу обычной «персоналки», но излишне дорогой — требовались дешевые решения. И они появились в виде контроллеров IDE RAID.

Заметим, что наиболее часто используемым вариантом был RAID0, строго говоря, к «RAID-массивам» не относящийся, поскольку избыточность данных он не обеспечивает. Надежность хранения сравнительно с одиночным диском даже снижает. Но иногда было просто некуда деваться, поскольку винчестеры тех лет были слишком медленными для некоторых сфер применения, а альтернативных решений с более высокой производительностью не было вовсе. Использование же чередования позволяло их заметно «пришпорить». Но применялись (да и сейчас применяются) и «зеркала» (RAID1) — для повышения надежности. А наиболее обеспеченные граждане могли объединить достоинства обоих подходов посредством создания массива RAID10, что позволяло повысить и скорость, и надежность. Других режимов в те времена в массовых контроллерах «не водилось»: слишком сложными были для программной реализации — с учетом вычислительных возможностей систем того времени.

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

А позднее начались новые времена — винчестеры перестали быть основным и единственным типом накопителей, применяющихся в компьютере. Внедрение твердотельных накопителей прервало эволюцию, оказавшись революционным шагом с точки зрения производительности. Правда было оно достаточно медленным — просто потому, что и стоимость хранения информации первое время была очень высокой. Довольно быстро снижалась, но и сейчас до паритета с винчестерами еще далеко — особенно если рассматривать «настольные» модели. Да и с абсолютной емкостью тоже пока все не просто: теоретически флэш-памяти в стандартный корпус «напихать» можно очень много, а практически это будет слишком уж дорого. Собственно, поэтому до сих пор подавляющее большинство компьютеров продается лишь с одним-единственным винчестером в качестве накопителя «для всего»: и для программ, и для данных. В принципе, даже устройств этого класса минимальной на сегодня емкости достаточно для того, чтобы полностью закрыть все потребности среднестатистического пользователя, поэтому в бюджетном сегменте такой вариант долго еще будет преобладающим, несмотря на низкую производительность. А вот чуть выше решений минимальной стоимости у покупателя есть выбор, часто приводящий его к одному из гибридных вариантов системы хранения данных. Самым дешевым (но пока до конца не изученным и освоенным) способом является кэширование посредством технологии Optane Memory. Более дорогим, но предсказуемым и совместимым со старыми системами — использование SSD невысокой емкости для операционной системы и приложений в паре с тихоходным, но очень емким винчестером для хранения данных. В итоге про RAID-массивы в бытовых персоналках все как-то и забыли. Хотя некоторые пользователи считают, что зря — все-таки и емкость самая большая (в пределах фиксированного бюджета), и производительность должна быть более высокой, чем у одиночного накопителя. Пусть, даже, и не на столько, как обеспечивают твердотельные накопители, но ведь дешево же — а вдруг и этого хватит на практике. Поэтому мы сегодня решили немного отклониться от основной линейки тестов и посмотреть — как ведут себя лучшие винчестеры в т. ч. и в массивах из двух-трех дисков, сравнительно с разными твердотельными накопителями.

Участники тестирования

Поскольку в наших руках оказалось одновременно три не совсем идентичных, но почти идентичных винчестера Seagate , они и выступили в роли «подопытных кроликов». Было бы сразу четыре — можно было бы и RAID10 организовать, а так пришлось ограничиться RAID0 из двух и RAID5 из трех дисков (три-четыре диска в RAID0 это уже за границей добра и зла, которую без необходимости мы стараемся не переступать), имеющие одинаковый объем в 20 ТБ. Собственно, чем RAID5 многим и кажется привлекательным — «пропадает» всего один накопитель в массиве, а не половина, как в «зеркалах» (RAID1, 10 и подобных). RAID0 еще «гуманнее», но ценой потенциальных проблем с надежностью. Сами же винчестеры — одни из лучших на сегодняшний день: модели на 10 ТБ со скоростью вращения 7200 об/мин, использующие заполнение гермоблока гелием. Понятно, что в роли системного и единственного накопителя даже один такой винчестер выглядит странно (мягко говоря), однако дает оценку сверху того, что вообще можно получить от массивов. Недорогие устройства малой емкости просто медленнее, в чем мы уже не раз убеждались.

С кем будем сравнивать? Во-первых, интересна разница в пределах группы. Во-вторых, для части тестов мы отобрали следующую четверку твердотельных накопителей:

  • WD Green SSD 240 ГБ — медленный бюджетный SATA
  • AData Ultimate SU800 512 ГБ — чуть более «серьезный» накопитель, но тоже недорогой и тоже SATA
  • AData XPG SX8000 256 ГБ — бюджетная реализация NVMe-устройства
  • Plextor M8Pe 512 ГБ — похоже, но не бюджетно

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

Тестирование

Методика тестирования

Методика подробно описана в отдельной статье . Там можно познакомиться с используемым аппаратным и программным обеспечением. Для данной статьи нам ее пришлось, немного доработать, поскольку участие в тестировании сегодня принимают и винчестеры, и твердотельные накопители, но касается это в основном использования результатов (благо тестовые программы в основном пересекаются) и их группировки.

Последовательные операции

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

Как и предполагается априори, скорость чтения удваивается. Точнее, для RAID0 из двух дисков это очевидно. Для RAID5 на трех дисках — в общем-то тоже: для данных используется то же самое чередование. В итоге даже минимальная скорость чтения оказалась выше средней одиночного диска, а средняя — выше максимальной. Идеальный случай.

Потому что при записи все уже не так просто. Точнее, для RAID0 — по-прежнему просто и быстро, на что любят упирать «любители» этого типа массивов (который, строго говоря, RAID-массивом и не является, как уже было сказано выше). Все также работает чередование блоков с данными, так что два винчестера (или большее их количество) работают, по сути параллельно.

А вот ситуация с RAID5 печальна. Однако легко объяснима: специфика организации этого типа массивов такова, что практически любая операция записи превращается в две операции чтения и две записи, которые должны «отработать» практически одновременно. Итоговая производительность в случае «чипсетного» контроллера, фактически лишенного собственных «мозгов», так что реализующего всю необходимую функциональность на базе программного драйвера, оказывается удручающе низкой. «Нормальный аппаратный» контроллер способен ослабить проблему, но не решить ее полностью — RAID5 все равно остается одним из самых медленных типов массивов в любых условиях. Радикальным способом решения проблемы (да и практически единственно-возможным для программной реализации) является использование RAID10, сочетающего в себе и производительность, и отказоустойчивость, но... Но ценой потери уже половины потенциального пространства, т. е. для создания массива в те же 20 ТБ потребуется уже не три, а четыре диска по 10 ТБ, о чем было сказано в начале статьи. Впрочем, можно «выжать» и из чипсетного RAID5 немного больше: подбором размера блока чередования и кластера файловой системы, чем мы не занимались, оставив значения по-умолчанию. Однако повысить скорость записи до уровня хотя бы одиночного винчестера и это не позволяет — в отличие от RAID10, обеспечивающего ее удвоение (пусть и высокой ценой). В лучшем случае получается повысить скорость примерно до 100 МБ/с, т. е. RAID5 на практике даже при тонкой настройке снижает производительность операций записи. Где-нибудь в NAS это не важно: данные записываются редко, а читаются часто, да и лимитирует производительность сам по себе сетевой интерфейс (как раз значениями в районе сотни мегабайт в секунду, а то и меньше), так что высокая емкость и отказоустойчивость выходят на первый план. А вот в персональном компьютере или рабочей станции массивы такого типа просто не интересны. Точнее, интересны еще меньше, чем RAID0 или RAID1. А ведь и у первых уже появились серьезные конкуренты, но об этом чуть ниже.

Время доступа

Если при чтении данных латентность практически неизменна, то при записи в массиве RAID0 она резко снижается. В чем, впрочем, заслуга, скорее, не его, а алгоритмов кэширования, применяемых контроллером для массивов. Но, как видим, RAID5 и это никак не помогает. Даже наоборот, что вполне согласуется с логикой его работы.

Последовательные операции (Crystal Disk Mark)

Поскольку HD Tune Pro при тестировании твердотельных накопителей мы не используем, а вот Crystal Disk Mark «прогоняется» везде, посмотрим на его результаты.

Как и положено, производительность при чтении данных примерно удваивается. Забавный результат в многопоточном режиме связан с тем, что при использовании ограниченной области данных (в программе, напомним, мы используем лишь 2 ГБ) и современных алгоритмов внутреннего кэширования винчестеров, вкупе с нынешними емкостями кэш-памяти, данные зачастую в ней и будут оказываться еще до соответствующего запроса. Остается только передать нужный блок по интерфейсу, что происходит очень быстро. Это позволяет с легкостью опережать SATA SSD (поскольку их сдерживает именно интерфейс), да и в однопоточном режиме от них практически не отставать. Но только в «тепличных условиях» — внешние дорожки (на внутренних скорость вдвое ниже, что уже было показано выше), небольшие объемы данных. Что бывает в более сложных случаях — посмотрим чуть позже.

С записью же все намного хуже: чем-то подстегнуть многопоточный режим не получается, так что он не только медленнее однопоточного, но и удвоения скорости сравнительно с одиночным накопителем уже не наблюдается. Но в один поток потягаться с SATA SSD хотя бы можно. Во всяком случае, при использовании RAID0 из двух дисков. Если бы мы объединили в такой массив три имеющихся винчестера — было бы еще быстрее, хотя и слишком перпендикулярно здравому смыслу. А с RAID5 все традиционно плохо. Поэтому в последующих тестах мы его использовать не будем — и без того картина ясна.

Работа с большими файлами

Как и следовало ожидать на основании низкоуровневых тестов, в однопоточном режиме хотя бы на внешних дорожках скорость чтения сравнима с SATA SSD. Но если нужно считать 32 ГБ в 32-х файлах по 1 ГБ, производительность резко падает почти до уровня одиночного винчестера (кэширование же при таких объемах ничем помочь уже не может). Для твердотельных же накопителей, напротив, это идеальный случай. А если они не ограничены интерфейсом — тем более.

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

А запись одновременно с чтением — хороший случай для большинства SSD и плохой для винчестеров. Причем твердотельным накопителям и (псевдо)случайный режим «жизнь не портит», в отличие от. Таким образом, быстро прочитать или записать большой объем данных современные винчестеры могут — если есть куда или откуда. Объединенными в массив RAID0 сделают это быстрее. Но поскольку обработка данных предполагает обычно и запись, и чтение, и далеко не всегда последовательные — для этой цели уже лучше использовать твердотельные накопители. Если, конечно, объемы позволяют. А вот хранить данные лучше там, где это обходится дешевле.

Производительность в приложениях

Но основной темой сегодняшней статьи было вовсе не исследование вопросов хранения и обработки больших массивов данных, хотя и это тоже интересно. Еще важнее — оценить перспективность использования RAID0 для ускорения обычной работы за компьютером. Когда-то это позволяло что-то выиграть сравнительно с одиночным винчестером, но тогда и программы были другими, да и операционные системы тоже. Да и сравнивать сейчас уже нужно не только «механику с механикой». Вот и сравним:)

Тестируя SSD, мы временами жаловались на то, что с точки зрения тестов высокого уровня они слишком похожи. Тестируя винчестеры — аналогично. Но они «по-разному похожи»: это два непересекающихся мира. А одиночный винчестер и RAID0 из винчестеров — один мир. Совсем один. Потенциальное ускорение от чередования к настоящему моменту по сути рассосалось: современные операционные системы и с одиночным винчестером работают настолько эффективно, насколько он позволяет (чему сильно помогает развитое кэширование данных в оперативной памяти, радикально улучшившееся в современных версиях Windows — пусть это и вызывает жалобы некоторых пользователей, привыкших к примитивной Windows XP и более ранним, на «расход памяти»). Снижение задержек пригодилось бы, но его при чтении данных (что важно для тестов высокого уровня) как раз и нет.

И даже по низкоуровневому баллу появляются различия между разными моделями твердотельных накопителей, но не более того. Винчестеры (что с ними не делай) намного медленнее. Причем в этом случае и порядки-то величин разные, что «замаскировать» получается лишь потому, что реальная работа приложений «упирается» и в другие компоненты компьютера. А иногда и в самого пользователя, что и не всегда позволяет реализовать потенциальные возможности накопителей. Твердотельных. У «механики» таковых и не водится.

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

Рейтинги

Как видим, с точки зрения тестов низкого уровня, ориентированных в первую очередь на SSD (так что изобилующими операциями со случайным доступом) сравнивать «механику» (что с ней не делай) и SSD большого смысла нет. Но и ничего удивительного в этом тоже уже нет — для винчестеров лучший сценарий это однопоточный последовательный, однако, как уже было показано выше, и в этом случае о прямой конкуренции говорить не всегда приходится. Иногда при записи, разве что, но и при этом «потолок» винчестеров (и массивов из них) сопоставим лишь с «полом» твердотельных накопителей с SATA-интерфейсом (eMMC-модули — отдельная история; но они и используются чаще всего там, куда никакие другие накопители просто «не лезут»).

Да и «подмешивание» к оценке результатов тестов высокого уровня не слишком меняет картину. По совокупности разные SSD при этом отличаются друг от друга примерно вдвое, поскольку мы взяли один из самых медленных и один из самых быстрых из протестированных накопителей, радикально различающихся конструктивно. Однако при этом и «самый медленный» быстрее массива RAID0 из пары топовых винчестеров даже не в два, а в два с половиной раза. Комментарии излишни.

Итого

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

RAID массив (Redundant Array of Independent Disks) – подключение нескольких устройств, для повышения производительности и\или надежности хранения данных, в переводе - избыточный массив независимых дисков.

Согласно закону Мура, нынешняя производительность возрастает с каждым годом (а именно количество транзисторов на чипе удваивается каждые 2 года). Это можно заметить практически в каждой отрасли производства оборудования для компьютеров. Процессоры увеличивают количество ядер и транзисторов, уменьшая при этом тех процесс, оперативная память увеличивает частоту и пропускную способность, память твердотельных накопителей повышает износостойкость и скорость чтения.

Но вот простые жесткие диски (HDD) особо не продвинулись за последние 10 лет. Как была стандартной скорость 7200 об/мин, так она и осталась (не беря в расчет серверные HDD c оборотами 10.000 и более). На ноутбуках все еще встречаются медленные 5400 об/мин. Для большинства пользователей, чтобы повысить производительность своего компьютера будет удобнее купить SDD, но цена за 1 гигабайт такого носителя значительно больше, чем у простого HDD. «Как повысить производительность накопителей без сильной потери денег и объема? Как сохранить свои данные или повысить безопасность сохранности Ваших данных?» На эти вопросы есть ответ – RAID массив.

Виды RAID массивов

На данный момент существуют следующие типы RAID массивов:

RAID 0 или «Чередование» – массив из двух или более дисков для повышения общей производительности. Объем рейда будет общий (HDD 1 + HDD 2 = Общий объем), скорость считывания\записи будет выше (за счет разбиения записи на 2 устройства), но страдает надежность сохранности информации. Если одно из устройств выйдет из строя, то вся информация массива будет потеряна.

RAID 1 или «Зеркало» –несколько дисков копирующих друг друга для повышения надежности. Скорость записи остаётся на прежнем уровне, скорость считывания увеличивается, многократно повышается надежность (даже если одно устройство выйдет из строя, второе будет работать), но стоимость 1 Гигабайта информации увеличивается в 2 раза (если делать массив из двух hdd).

RAID 2 – массив, построенный на работе дисков для хранения информации и дисков коррекции ошибок. Расчет количества HDD для хранения информации выполняется по формуле «2^n-n-1», где n - количество HDD коррекции. Данный тип используется при большом количестве HDD, минимальное приемлемое число – 7, где 4 для хранения информации, а 3 для хранения ошибок. Плюсом этого вида будет повышенная производительность, по сравнению с одним диском.

RAID 3 – состоит из «n-1» дисков, где n – диск хранения блоков четности, остальные устройства для хранения информации. Информацию делится на куски меньше объема сектора (разбиваются на байты), хорошо подходит для работы с большими файлами, скорость чтения файлов малого объема очень мала. Характерен высокой производительностью, но малой надежностью и узкой специализацией.

RAID 4 – похож на 3й тип, но разделение происходит на блоки, а не байты. Этим решением получилось исправить малую скорость чтения файлов малого объема, но скорость записи осталось низкой.

RAID 5 и 6 – вместо отдельного диска для корреляции ошибок, как в прошлых вариантах, используются блоки, равномерно распределённые по всем устройствам. В этом случае повышается скорость чтения\записи информации за счет распараллеливания записи. Минусом данного типа является долговременное восстановление информации в случае выхода из строя одного из дисков. Во время восстановления идёт очень высокая нагрузка на другие устройства, что понижает надежность и повышает выход другого устройства из строя и потерю всех данных массива. Тип 6 повышает общую надежность, но понижает производительность.

Комбинированные виды RAID массивов:

RAID 01 (0+1) – Два Рейд 0 объединяются в Рейд 1.

RAID 10 (1+0) – дисковые массивы RAID 1, которые используются в архитектуре 0 типа. Считается самым надежным вариантом хранения данных, объединяя в себе высокую надежность и производительность.

Также можно создать массив из SSD накопителей . Согласно тестированию 3DNews, такое комбинирование не даёт существенного прироста. Лучше приобрести накопитель с более производительным интерфейсом PCI или eSATA

Рейд массив: как создать

Создается путем подключения через специальный RAID контроллер. На данный момент есть 3 вида контроллеров:

  1. Программный – программными средствами эмулируется массив, все вычисления производятся за счет ЦП.
  2. Интегрированный – в основном распространено на материнских платах (не серверного сегмента). Небольшой чип на мат. плате, отвечающий за эмуляцию массива, вычисления производятся через ЦП.
  3. Аппаратный – плата расширения (для стационарных компьютеров), обычно с PCI интерфейсом, обладает собственной памятью и вычислительным процессором.

RAID массив hdd: Как сделать из 2 дисков через IRST


Восстановление данных

Некоторые варианты восстановления данных:

  1. В случае сбоя Рейд 0 или 5 может помочь утилита RAID Reconstructor , которая соберет доступную информацию накопителей и перезапишет на другое устройство или носитель в виде образа прошлого массива. Данный вариант поможет, если диски исправны и ошибка программная.
  2. Для Linux систем используется mdadm восстановление (утилита для управления программными Рейд-массивами).
  3. Аппаратное восстановление должно выполняться через специализированные сервисы, потому что без знания методики работы контроллера можно потерять все данные и вернуть их будет очень сложно или вообще невозможно.

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

Отличного Вам дня!

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

Вопрос повышения производительности дисковой подсистемы весьма сложен. Рост вычислительных мощностей современных процессоров привел к тому, что наблюдается явный дисбаланс между возможностями жестких дисков и потребностями процессоров. При этом не спасают ни дорогие SCSI-диски, ни уж тем более IDE-диски. Однако если не хватает возможностей одного диска, то, может быть, отчасти решить данную проблему позволит наличие нескольких дисков? Конечно, само по себе наличие двух или более жестких дисков на компьютере или на сервере дела не меняет - нужно заставить эти диски работать совместно (параллельно) друг с другом так, чтобы это позволило повысить производительность дисковой подсистемы на операциях записи/чтения. Кроме того, нельзя ли, используя несколько жестких дисков, добиться повышения не только производительности, но и надежности хранения данных, чтобы выход из строя одного из дисков не приводил к потере информации? Именно такой подход был предложен еще в 1987 году американскими исследователями Паттерсоном, Гибсоном и Катцом из Калифорнийского университета Беркли. В своей статье «A Case for Redundant Arrays of Inexpensive Discs, RAID» («избыточный массив недорогих дисков») они описали, каким образом можно объединить несколько дешевых жестких дисков в одно логическое устройство так, чтобы в результате повышались емкость и быстродействие системы, а отказ отдельных дисков не приводил к отказу всей системы.

С момента выхода статьи прошло уже 15 лет, но технология построения RAID-массивов не утратила актуальности и сегодня. Единственное, что изменилось с тех пор, - это расшифровка аббревиатуры RAID. Дело в том, что первоначально RAID-массивы строились вовсе не на дешевых дисках, поэтому слово Inexpensive (недорогие) поменяли на Independent (независимые), что больше соответствовало действительности.

Более того, именно сейчас технология RAID получила широкое распространение. Так, если еще несколько лет назад RAID-массивы использовались в дорогостоящих серверах масштаба предприятия с применением SCSI-дисков, то сегодня они стали своеобразным стандартом де-факто даже для серверов начального уровня. Кроме того, постепенно расширяется и рынок IDE RAID-контроллеров, то есть актуальность приобретает задача построения RAID-массивов на рабочих станциях с использованием дешевых IDE-дисков. Так, некоторые производители материнских плат (Abit, Gigabyte) уже начали интегрировать IDE RAID-контроллеры на сами платы.

Итак, RAID - это избыточный массив независимых дисков (Redundant Arrays of Independent Discs), на который возлагается задача обеспечения отказоустойчивости и повышения производительности. Отказоустойчивость достигается за счет избыточности. То есть часть емкости дискового пространства отводится для служебных целей, становясь недоступной для пользователя.

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

Совместную работу дисков в массиве можно организовать с использованием либо параллельного, либо независимого доступа.

При параллельном доступе дисковое пространство разбивается на блоки (полоски) для записи данных. Аналогично информация, подлежащая записи на диск, разбивается на такие же блоки. При записи отдельные блоки записываются на различные диски (рис. 1), причем запись нескольких блоков на различные диски происходит одновременно, что и приводит к увеличению производительности в операциях записи. Нужная информация также считывается отдельными блоками одновременно с нескольких дисков (рис. 2), что также способствует росту производительности пропорционально количеству дисков в массиве.

Следует отметить, что модель с параллельным доступом реализуется только при условии, что размер запроса на запись данных больше размера самого блока. В противном случае реализовать параллельную запись нескольких блоков просто невозможно. Представим ситуацию, когда размер отдельного блока составляет 8 Кбайт, а размер запроса на запись данных - 64 Кбайт. В этом случае исходная информация нарезается на восемь блоков по 8 Кбайт каждый. Если имеется массив из четырех дисков, то одновременно можно записать четыре блока, или 32 Кбайт, за один раз. Очевидно, что в рассмотренном примере скорость записи и скорость считывания окажется в четыре раза выше, чем при использовании одного диска. Однако такая ситуация является идеальной, поскольку далеко не всегда размер запроса кратен размеру блока и количеству дисков в массиве.

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

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

Уровни RAID

В настоящее время существует несколько стандартизированных RAID-уровней: от RAID 0 до RAID 5. К тому же используются комбинации этих уровней, а также фирменные уровни (например, RAID 6, RAID 7). Наиболее распространенными являются уровни 0, 1, 3 и 5.

RAID 0

RAID уровня 0, строго говоря, не является избыточным массивом и соответственно не обеспечивает надежности хранения данных. Тем не менее данный уровень находит широкое применение в случаях, когда необходимо обеспечить высокую производительность дисковой подсистемы. Особенно популярен этот уровень в рабочих станциях. При создании RAID-массива уровня 0 информация разбивается на блоки, которые записываются на отдельные диски (рис. 4), то есть создается система с параллельным доступом (если, конечно, размер блока это позволяет). Благодаря возможности одновременного ввода-вывода с нескольких дисков RAID 0 обеспечивает максимальную скорость передачи данных и максимальную эффективность использования дискового пространства, поскольку не требуется места для хранения контрольных сумм. Реализация этого уровня очень проста. В основном RAID 0 применяется в тех областях, где требуется быстрая передача большого объема данных.

RAID 1 (Mirrored disk)

RAID уровня 1 - это массив дисков со 100-процентной избыточностью. То есть данные при этом просто полностью дублируются (зеркалируются), за счет чего достигается очень высокий уровень надежности (как, впрочем, и стоимости). Отметим, что для реализации уровня 1 не требуется предварительно разбивать диски и данные на блоки. В простейшем случае два диска содержат одинаковую информацию и являются одним логическим диском (рис. 5). При выходе из строя одного диска его функции выполняет другой (что абсолютно прозрачно для пользователя). Кроме того, этот уровень удваивает скорость считывания информации, так как эта операция может выполняться одновременно с двух дисков. Такая схема хранения информации используется в основном в тех случаях, когда цена безопасности данных намного выше стоимости реализации системы хранения.

RAID 2

RAID уровня 2 - это схема резервирования данных с использованием кода Хэмминга (смотри ниже) для коррекции ошибок. Записываемые данные формируются не на основе блочной структуры, как в RAID 0, а на основе слов, причем размер слова равен количеству дисков для записи данных в массиве. Если, к примеру, в массиве имеется четыре диска для записи данных, то размер слова равен четырем дискам. Каждый отдельный бит слова записывается на отдельный диск массива. Например, если массив имеет четыре диска для записи данных, то последовательность четырех бит, то есть слово, запишется на массив дисков таким образом, что первый бит окажется на первом диске, второй бит - на втором и т.д.

Кроме того, для каждого слова вычисляется код коррекции ошибок (ECC), который записывается на выделенные диски для хранения контрольной информации (рис. 6). Их число равно количеству бит в контрольном слове, причем каждый бит контрольного слова записывается на отдельный диск. Количество бит в контрольном слове и соответственно необходимое количество дисков для хранения контрольной информации рассчитывается на основе следующей формулы: где K - разрядность слова данных.

Естественно, что L при вычислении по указанной формуле округляется в большую сторону до ближайшего целого числа. Впрочем, чтобы не связываться с формулами, можно воспользоваться другим мнемоническим правилом: разрядность контрольного слова определяется количеством разрядов, необходимым для двоичного представления размера слова. Если, например, размер слова равен четырем (в двоичной записи 100), то, чтобы записать это число в двоичном виде, потребуется три разряда, значит, размер контрольного слова равен трем. Следовательно, если имеется четыре диска для хранения данных, то потребуется еще три диска для хранения контрольных данных. Аналогично при наличии семи дисков для данных (в двоичной записи 111) понадобится три диска для хранения контрольных слов. Если же под данные отводится восемь дисков (в двоичной записи 1000), то нужно уже четыре диска для контрольной информации.

Код Хэмминга, формирующий контрольное слово, основан на использовании поразрядной операции «исключающего ИЛИ» (XOR) (употребляется также название «неравнозначность»). Напомним, что логическая операция XOR дает единицу при несовпадении операндов (0 и 1) и нуль при их совпадении (0 и 0 или 1 и 1).

Само контрольное слово, полученное по алгоритму Хэмминга, - это инверсия результата поразрядной операции исключающего ИЛИ номеров тех информационных разрядов слова, значения которых равны 1. Для иллюстрации рассмотрим исходное слово 1101. В первом (001), третьем (011) и четвертом (100) разрядах этого слова стоит единица. Поэтому необходимо провести поразрядную операцию исключающего ИЛИ для этих номеров разрядов:

Само же контрольное слово (код Хэмминга) получается при поразрядном инвертировании полученного результата, то есть равно 001.

При считывании данных вновь рассчитывается код Хэмминга и сравнивается с исходным кодом. Для сравнения двух кодов используется поразрядная операция «исключающего ИЛИ». Если результат сравнения во всех разрядах равен нулю, то считывание верное, в противном случае его значение есть номер ошибочно принятого разряда основного кода. Пусть, к примеру, исходное слово равно 1100000. Поскольку единицы стоят в шестой (110) и седьмой (111) позициях, контрольное слово равно:

Если при считывании зафиксировано слово 1100100, то контрольное слово для него равно 101. Сравнивая исходное контрольное слово с полученным (поразрядная операция исключающего ИЛИ), имеем:

то есть ошибка при считывании в третьей позиции.

Соответственно, зная, какой именно бит является ошибочным, его легко исправить «на лету».

RAID 2 - один из немногих уровней, позволяющих не только исправлять «на лету» одиночные ошибки, но и обнаруживать двойные. При этом он является самым избыточным из всех уровней с кодами коррекции. Эта схема хранения данных применяется редко, поскольку плохо справляется с большим количеством запросов, сложна в организации и обладает незначительными преимуществами перед уровнем RAID 3.

RAID 3

RAID уровня 3 - это отказоустойчивый массив с параллельным вводом-выводом и одним дополнительным диском, на который записывается контрольная информация (рис. 7). При записи поток данных разбивается на блоки на уровне байт (хотя возможно и на уровне бит) и записывается одновременно на все диски массива, кроме выделенного для хранения контрольной информации. Для вычисления контрольной информации (называемой также контрольной суммой) используется операция «исключающего ИЛИ» (XOR), применяемая к записываемым блокам данных. При выходе из строя любого диска данные на нем можно восстановить по контрольным данным и данным, оставшимся на исправных дисках.

Рассмотрим в качестве иллюстрации блоки размером по четыре бита. Пусть имеются четыре диска для хранения данных и один диск для записи контрольных сумм. Если имеется последовательность бит 1101 0011 1100 1011, разбитая на блоки по четыре бита, то для расчета контрольной суммы необходимо выполнить операцию:

Таким образом, контрольная сумма, записываемая на пятый диск, равна 1001.

Если один из дисков, например третий, вышел из строя, то блок 1100 окажется недоступным при считывании. Однако его значение легко восстановить по контрольной сумме и значениям остальных блоков, используя все ту же операцию «исключающего ИЛИ»:

Блок 3=Блок 1Блок 2Блок 4

Контрольная сумма.

В нашем примере получим:

Блок 3=1101001110111001= 1100.

RAID уровня 3 имеет намного меньшую избыточность, чем RAID 2. Благодаря разбиению данных на блоки RAID 3 имеет высокую производительность. При считывании информации не производится обращение к диску с контрольными суммами (в случае отсутствия сбоя), что происходит всякий раз при операции записи. Поскольку при каждой операции ввода-вывода производится обращение практически ко всем дискам массива, одновременная обработка нескольких запросов невозможна. Данный уровень подходит для приложений с файлами большого объема и малой частотой обращений. Кроме того, к достоинствам RAID 3 относятся незначительное снижение производительности при сбое и быстрое восстановление информации.

RAID 4

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

RAID 4 повышает производительность передачи файлов малого объема (за счет распараллеливания операции считывания). Но поскольку при записи должна вычисляться контрольная сумма на выделенном диске, одновременное выполнение операций здесь невозможно (налицо асимметричность операций ввода и вывода). Рассматриваемый уровень не обеспечивает преимущества в скорости при передаче данных большого объема. Эта схема хранения разрабатывалась для приложений, в которых данные изначально разбиты на небольшие блоки, поэтому нет необходимости дополнительно их разбивать. RAID 4 представляет собой неплохое решение для файл-серверов, информация с которых преимущественно считывается и редко записывается. Эта схема хранения данных имеет невысокую стоимость, но ее реализация достаточно сложна, как и восстановление данных при сбое.

RAID 5

RAID уровня 5 - это отказоустойчивый массив независимых дисков с распределенным хранением контрольных сумм (рис. 9). Блоки данных и контрольные суммы, которые рассчитываются точно так же, как и в RAID 3, циклически записываются на все диски массива, то есть отсутствует выделенный диск для хранения информации о контрольных суммах.

В случае RAID 5 все диски массива имеют одинаковый размер, однако общая емкость дисковой подсистемы, доступной для записи, становится меньше ровно на один диск. Например, если пять дисков имеют размер 10 Гбайт, то фактический размер массива составляет 40 Гбайт, так как 10 Гбайт отводится на контрольную информацию.

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

Главным же различием между RAID 5 и RAID 4 является способ размещения контрольных сумм.

Наличие отдельного (физического) диска, хранящего информацию о контрольных суммах, здесь, как и в трех предыдущих уровнях, приводит к тому, что операции считывания, не требующие обращения к этому диску, выполняются с большой скоростью. Однако при каждой операции записи меняется информация на контрольном диске, поэтому схемы RAID 2, RAID 3 и RAID 4 не позволяют проводить параллельные операции записи. RAID 5 лишен этого недостатка, поскольку контрольные суммы записываются на все диски массива, что обеспечивает возможность выполнения нескольких операций считывания или записи одновременно.

Практическая реализация

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

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

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

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

Другим различием между IDE RAID- и SCSI RAID-контроллерами является количество поддерживаемых ими уровней. SCSI RAID-контроллеры поддерживают все основные уровни и, как правило, еще несколько комбинированных и фирменных уровней. Набор уровней, поддерживаемых IDE RAID-контроллерами, значительно скромнее. Обычно это нулевой и первый уровни. Кроме того, встречаются контроллеры, поддерживающие пятый уровень и комбинацию первого и нулевого: 0+1. Такой подход вполне закономерен, поскольку IDE RAID-контроллеры предназначены в первую очередь для рабочих станций, поэтому основной упор делается на повышение сохранности данных (уровень 1) или производительности при параллельном вводе-выводе (уровень 0). Схема независимых дисков в данном случае не нужна, так как в рабочих станциях поток запросов на запись/чтение значительно ниже, чем, скажем, в серверах.

Основной функцией RAID-массива является не увеличение емкости дисковой подсистемы (как видно из его устройства, такую же емкость можно получить и за меньшие деньги), а обеспечение надежности сохранности данных и повышение производительности. Для серверов, кроме того, выдвигается требование бесперебойности в работе, даже в случае отказа одного из накопителей. Бесперебойность в работе обеспечивается при помощи горячей замены, то есть извлечения неисправного SCSI-диска и установки нового без выключения питания. Поскольку при одном неисправном накопителе дисковая подсистема продолжает работать (кроме уровня 0), горячая замена обеспечивает восстановление, прозрачное для пользователей. Однако скорость передачи и скорость доступа при одном неработающем диске заметно снижается из-за того, что контроллер должен восстанавливать данные из избыточной информации. Правда, из этого правила есть исключение - RAID-системы уровней 2, 3, 4 при выходе из строя накопителя с избыточной информацией начинают работать быстрее! Это закономерно, поскольку в таком случае уровень «на лету» меняется на нулевой, который обладает великолепными скоростными характеристиками.

До сих пор речь в этой статье шла об аппаратных решениях. Но существует и программное, предложенное, например, фирмой Microsoft для Windows 2000 Server. Однако в этом случае некоторая начальная экономия полностью нейтрализуется добавочной нагрузкой на центральный процессор, который помимо основной своей работы вынужден распределять данные по дискам и производить расчет контрольных сумм. Такое решение может считаться приемлемым только в случае значительного избытка вычислительной мощности и малой загрузки сервера.


Сергей Пахомов

КомпьютерПресс 3"2002