Всем привет! Сегодня я постараюсь ответить на вопрос: что такое RAID-массивы, для чего они нужны и где используются? Я постараюсь объяснить тему как можно проще, не перегружая вас большим количеством новых терминов.
Если кто застал 90-е, те люди помнят, что в те давние времена вычислительная скорость процессоров не была такой высокой, как сейчас. При этом все данные, как и в наше время, хранились на жестких дисках. В то время скорость чтения составляла примерно 12 мс (миллисекунд) с периодической задержкой в 5 мс. Максимальное количество оборотов в минуту было 5000. Время шло, производительность процессора увеличивалась в десятки раз, но винчестеры так далеко не ушли. Сейчас топовые винчестеры имеют примерно одинаковые характеристики. Количество оборотов немного увеличилось до 10 — 12 000 в минуту.
В итоге имеем проблему, что процессор очень быстро обрабатывает информацию, а у хранилища данных просто нет времени на такие вычисления. Увеличить количество оборотов пока нельзя. Поэтому перед инженерами стояла большая задача по быстрому доступу к базам данных, которые хранятся на одних и тех же физических хранилищах. Эта проблема решается с помощью рейд-массивов, о которых мы поговорим подробнее в статье.
Принцип
Если вы посмотрите на рисунок ниже, вы уже поймете, как работают RAID-массивы. У нас есть база данных. Определенные данные хранятся не на одном устройстве, а на нескольких одновременно. Таким образом, вычислительные процессы сразу обращаются к нескольким жестким дискам и получают несколько потоков данных. Поэтому скорость работы БД возрастает ровно во столько раз, сколько жестких дисков в системе. Такая система называется — Parallel Access Matrix (матрица с параллельным доступом).
Существует также системно-независимый массив доступа (массив с независимым доступом). Необходим в тех случаях, когда обрабатываются запросы с небольшим весом. Предыдущая версия нужна для обработки большого количества данных по запросу, а здесь мы обрабатываем небольшую информацию, которую можно записать на устройство (без разделения).
Но у этих систем есть один большой недостаток: с увеличением количества дисков параметр отказоустойчивости снижается. Проще говоря, это увеличивает вероятность выхода из строя хотя бы одного жесткого диска.
Но этот недостаток решается специальной кодировкой диска. Зеркалирование данных используется очень часто; в результате информация с одного устройства будет дублироваться и на втором. При этом на каждом диске ровно половина собственных данных и половина данных, продублированных из другого хранилища.
История
Аббревиатура RAID расшифровывается как Redundant Arrays of Inexpensive Disks, что в переводе с английского означает «избыточный массив недорогих дисков». Самое интересное, что именно так изначально расшифровывалась аббревиатура. Дело в том, что тогда были недорогие диски, которые устанавливались на обычный ПК. Самые дорогие ставились на более мощные машины.
В результате от недорогих жестких дисков отказались из-за их отказоустойчивых свойств. В результате аббревиатура изменилась на «Избыточный массив независимых дисков» — избыточный массив независимых дисков. Система была придумана в Беркли в 1987 году. Тогда были придуманы так называемые уровни RAID:
- RAID 0 не является отказоустойчивым.
- Зеркальный RAID 1, в котором зеркалируются данные.
- RAID 2: Массив кода Хэмминга
- RAID 3, 4, 5 — Использование единого алгоритма, когда слова записываются в определенном порядке. Код дублируется, но пишется по-другому.
RAID 3, 4, 5 — имеет один недостаток, система работает только с небольшим сбоем. В результате в систему был добавлен так называемый кеш для повышения отказоустойчивости. Поэтому, если место на диске в данный момент было занято записью, данные записывались в кэш и ждали своей очереди. Система устранила случаи потери данных в результате простоя. Далее мы рассмотрим отдельные рейды более подробно.
RAID 0
Самая простая система. У нас есть несколько жестких дисков, заполненных общей информацией. То есть чтение идет параллельно со всех дисков, но это вы и так знаете. Система получается быстрой, дешевой, но не имеет отказоустойчивости.
RAID1
У каждой оболочки есть двойник, как у близнеца. В случае неудачи сработает зеркальный или зеркальный массив. В результате мы имеем отличную производительность, высокую отказоустойчивость, но высокую стоимость внедрения, так как нам нужно покупать в два раза больше дисков.
RAID 2
В работе используется так называемый код Хэмминга, позволяющий быстро исправлять ошибки при обработке данных на двоичном уровне. Проблема в том, что диски отдают данные быстро, а вот обработка занимает много времени. Поэтому такие системы не подходят для обработки транзакций или аналогичной информации.
RAID 3
Все данные разбиты на блоки по жестам, а в конце есть диск, на котором хранится заданная четность. Именно в нем проверяются данные всего блока.
RAID 4
Все жесткие диски хранят здесь свою информацию. Эта система необходима, когда вам нужно обрабатывать несколько данных с разных дисков одновременно. То есть идет быстрая обработка мелких запросов. Большие данные здесь не используются.
RAID 5
По сути, это все тот же RAID4, но есть возможность использовать несколько данных параллельно за счет последней дисковой и секторной четности.
RAID 6
Система аналогична системе РЭИД (3, 4, 5), но для обнаружения сбоя в работе используется вторая схема. В результате повышается отказоустойчивость, но увеличивается время отклика, так как для получения необходимых данных необходимо отправить 6 запросов.
RAID 10
По сути, это комбинированная система RAID 1 и RAID 0, поэтому она так и называется. У нас есть обычная система RAID 0 на базе, а вторая система жестких дисков, RAID 1, поставляется в качестве поддержки.
RAID30
Я думаю, многие уже догадались, что за основу здесь взят обычный RAID 0, а в качестве поддержки взято несколько блоков RAID 3. При этом система может обрабатывать большие данные и небольшие запросы с быстрым доступом.
RAID 50
Здесь вместо RAID 3 используется RAID 5. В результате запросы обрабатываются еще быстрее, а отказоустойчивость чуть выше, чем у RAID 30. Главный минус — такая система будет самой дорогой.
RAID 7
Он был разработан Storage Computer Corporation (SCC), и они являются владельцами этого массива. Эта система включает в себя большое количество преимуществ и незначительные недостатки. Все запросы обрабатываются независимо, а это значит, что блок может принять любой запрос в любое время.
Для уменьшения ошибок при обработке запросов используется кэширование. Благодаря высокоскоростной шине скорость обработки запросов в 5 раз выше, чем у других систем. Недостатком является то, что эта система принадлежит одной компании. В результате он покупает его за большие деньги, но также не может его отремонтировать, как это делают сотрудники компании.