for startups

Команда СПбГУ победила в студенческом чемпионате мира по программированию

Команда Санкт-Петербургского государственного университета (СПбГУ) стала победителем 40-го ежегодного студенческого чемпионата мира по программированию «Ассоциации вычислительной техники» (ACM ICPC), глобальным спонсором которого выступает компания IBM.

Компания Дата8 - серебряный партнер корпорации Microsoft
Серебряный партнер Облакотеки

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

 

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

Итак разобьём статью на три раздела:

  1. Уровни RAID (рассмотрим только наиболее популярные 0,1,10,5,6)
  2. Типы RAID контроллеров (Аппаратный Raid, Программный Raid, Полуаппаратный Raid так же известный как Fake raid)
  3. Заключение

01. Уровни RAID

Существует несколько уровней RAID, одни из них отказоустойчивые т.е. если ломается некоторое кол-во жестких дисков в массиве, то данные не теряются, и не отказоустойчивые - если умирает жёсткий диск вместе с ним умирает и информация которая на нём хранилась. Мы рассмотрим только наиболее популярные уровни массивов и не будет останавливаться сильно на их принципе работы, это уровни: 0, 1, 10, 5 и 6.

RAID 0 (STRIPE)

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

Основное назначение этого уровня - повышение скорости, для организации такого рэйда нужно минимум 2 диска. Система видит эти два диска как один, за счёт этого происходит и прирост производительности, контроллер может записывать к примеру крупный файл сразу на два диска, в результате чисто теоритически скорость чтения и записи может увеличиваться вдвое, но и надёжность также ниже чем у обычного диска. Объём жестких дисков складывается т.е. если у вас есть четыре диска по 1Tb то объединив их в массив вы получите 4Tb

RAID 1 (MIRROR)

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

RAID 10 (1+0)

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

RAID 5

Этот тип массива устроен не так как первые три, при операции записи и чтения контроллер производит операцию xor (не будет подробно рассматривать что это такое) которая некоторым образом напрягает контроллер. Массив отказоустойчив т.е. допускает выход из строя некоторого кол-ва дисков, по надёжности я считаю этот масив менее надёжен чем 10ый. Минимальное кол-во дисков - 3. Скорость в среднем выше чем у одиночного диска, но ниже чем у 0 и 10 рэйдов. Объём, от доступного кол-ва дисков отимаете один, т.е. на нашем примере из 4х дисков по 1Tb вы получаете 3Tb.

RAID 6

Это самый надёжный на мой взгляд тип массива, но и самый медленный (исключая разве что зеркало). Здесь так же как и в RAID 5 контроллер должен производить некоторые расчёты, но если в случае с 5м рэйдом контроллер производит только одну операцию xor, то 6ой рэйд производит два различных расчёта. Минимальное кол-во дисков - 4. Что касается объёма то здесь от доступных дисков надо отнять два, в нашем примере из 4х дисков по 1Tb, мы получаем 2Tb доступного объёма.

Здесь важно понимать несмотря на то что при 4х дисках доступный объём как у 10го рэйда, с ростом кол-ва дисков у 6 рэйда доступный объём в % от общего объёма будет расти, а у 10го так и останется половина.

Независимо от уровня RAID, чем больше задействовано дисков в масиве тем выше его скорость.

02. Типы RAID контроллеров

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

АППАРАТНЫЙ RAID (HARDWARE RAID)

Это самая надёжная реализация RAID контроллера, но также и самая дорогая (от 300$), чаще всего это отдельная плата которая вставляется в ваш ПК или сервер, имеет различные интерфейсы подключения PCI, PCIe, PCI-X итп. 

На таких контроллерах есть свой процеcсор, своя оперативная память, а так же обычно либо батарейка либо место для неё. Насколько мне известно 6 рэйд можно поднять только на аппаратном контроллере. Такие типы контроллеров обладают самым богатым функционалом, т.е. поддерживает обычно: горячую замену дисков (hot swap), кэширование записи (wite back cache), миграцию массиво, расширение массива, изменение уровня массива ну и тому подобные фишки. Такой рэйд представляет операционной системе ваши диски как один, т.е. ОС впринципе не будет знать что у вас там к примеру четыре диска фирмы например samsung. По скорости такие контроллеры обычно самые быстрые, хотя иногда проигрывают полуаппаратным контроллерам. Все расчеты по операциям с жёсткими дисками производит сам контроллер, поэтому CPU ПК не нагружается.

ПРОГРАММНЫЙ RAID (SOFT RAID)

Самый ненадёжный на мой взгляд тип контроллера, при сбое операционной системы вы рискуете потерять все данные. Так же это самый медленный тип контроллера. Такой рэйд можно создать даже в Windows XP либо используя другое ПО, для Linux например это mdam. Не поддерживает грубо говоря ничего, ни горячей замены ни кэша, минимальный набор. Обычно поддерживает уровни RAID вплоть до 5го. Все операции обсчитываются на CPU ПК, что крайне негативно влияет на общую производительсность, в некоторых случаях обычные файловые операции способны положить вам одно ядро процессора в сотку (загрузка на 100%) и если проц однопроцссеорный машина будет жутко тупить, если же ядер несколько то просто уменьшится производительность. В Любом случае софтовый рэйд больше всех влияет на производительность ПК.

ПОЛУАППАРАТНЫЙ RAID (HOST RAID, FAKE RAID )

Если у аппратного контроллера все операции по обработке данных производит сам контроллер, а программном только ОС или ПО, то тут всё немного сложнее, часть задач по обработке данных берёт на себе контроллер, часть задач выполняет драйвер ОС. Такой тип контроллера немного надёжнее программного, но возможность сбоя остаётся, такой контроллер отвечает за создание рэйда но основная обработка операций по обсчёту ложится на плечи CPU (гораздо меньше нагрузка чем при софт рэйде), за счёт этого скорость может быть больше чем у аппратного контроллера, но не всегда. Так же частично поддерживает миграцию\изменение уровня массива, но можно сказать что не поддерживает увеличение массива, т.е. если вы будете добавлять другие диски к уже созданному массиву врядли у вас получится воспользоваться объёмом новых дисков. В теории должен поддерживать быструю замену (hot swap). Такой контроллер сейчас присутствует почти на каждой материнской плате (Nvidia Raid, Silicon Image, ICH9r, Matrix Storage, AMD Raid), поэтому докупать обычно ничего не надо. Производители называют этот тип контроллера Host RAID, линуксоиды предпочитают название Fake RAID. Обычно поддерживает уровни RAID вплоть до 5го. Несмотря на возможность включения кэша записи, делать этого не рекомендую, потому что не один из таких контроллеров не обладает возможностью установки батарейки, и в случае сбоя ОС или выключения света данные которые хранятся в кэше будут потеряны безвозвратно.

03. Заключение

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

Уровень RAID Плюсы Минусы
Raid 0 (stripe)
  • Один из самых быстрых
  • Самый большой доступный объём
  • Поддерживается всеми типами контроллеров
  • Отсутствует отказоусточивость
Raid 1 (mirror)
  • Отказоустойчив
  • Поддерживается всеми типами контроллеров
  • Скорость выше чем у одиночного диска
  • Самый маленький доступный объём
Raid 10 (1+0)
  • Отказоустойчив
  • Один из самых быстрых
  • Самый маленький доступный объём
Raid 5
  • Отказоустойчив
  • Скорость выше чем у одиночного диска
  • Теряется всего один диск от объёма
  • При выходе из строя одного диска массив будет работать крайне медленно
Raid 6
  • Отказоустойчив
  • Теряется всего два диска от объёма
  • Самый надёжный массив
  • Самая низкая скорость из всех массивов
  • При выходе из строя одного диска массив будет 
  • работать крайне медленно
  • Поддерживается малым количеством контроллеров

и табличка по типам контроллеров

Тип Плюсы Минусы
Аппаратный
  • Самый надёжный
  • Возможность использовать кеш
  • Поддержка большинства уровней RAID
  • Поддержка аппаратных фишек
  • Миграция\Расширение и т.п.
  • Дорогой
  • Может иметь проблемы совместимости
Программный
  • Универсальный
  • Самый дешёвый
  • Поддержка вплоть до RAID 5
  • Самый ненадёжный
  • Никаких аппаратных фишек
  • Самый медленный
  • Высокая нагрузка на процессор
Host, Fake
  • Недорогой
  • Поддержка некоторых аппаратных фишек
  • Поддержка вплоть до RAID 5
  • Драйвера есть не под все ОС
  • Не самый надёжный

Эта статья в первую очередь расчитана на новичков! В данной статье не ставились вопросы углублённо изучить RAID и всё что с ним связано, за подробной информацией лучше обратиться к поисковым системам! Но если есть какие-то вопросы или пожелания може

Отзывы наших клиентов