RAID (Redundant Array of Independent Disks), первоначально известный как Redundant Array of Inexpensive Disks, был впервые предложен профессором Д. А. Паттерсоном из Калифорнийского университета в Беркли в статье «A Case of Redundant Array of Inexpensive Disks» в 1988 году. В то время диски большой емкости были дорогими, поэтому основная идея RAID заключалась в органичном объединении нескольких дисков малой емкости и относительно недорогих для получения емкости, производительности и надежности, эквивалентных дорогим дискам большой емкости, при более низкой стоимости. Поскольку стоимость и цена дисков продолжали снижаться, термин «недорогой» стал бессмысленным, и Консультативный совет RAID (RAB) решил заменить «недорогой» на «независимый».
Эта идея дизайна RAID была быстро принята промышленностью. Технология RAID, как высокопроизводительная и высоконадежная технология хранения данных, получила широкое применение. RAID в основном использует технологии чередования данных, зеркалирования и контроля четности для достижения высокой производительности, надежности, отказоустойчивости и масштабируемости. В зависимости от стратегий и архитектур использования или комбинирования этих трех технологий, RAID может быть разделен на различные уровни для удовлетворения потребностей различных приложений данных. Исходные уровни RAID RAID1-RAID5 были определены в статье Д. А. Паттерсона и др., а RAID0 и RAID6 были расширены с 1988 года. В последние годы поставщики систем хранения данных постоянно вводят уровни RAID, такие как RAID7, RAID10/01, RAID50, RAID53 и RAID100, но единого стандарта нет. В настоящее время признанные промышленностью стандарты — это RAID0-RAID5, а четыре уровня, кроме RAID2, были установлены как промышленные стандарты. Наиболее часто используемые уровни RAID в области фактического применения — это RAID0, RAID1, RAID3, RAID5, RAID6 и RAID10.
С точки зрения реализации, RAID в основном делится на три типа: программный RAID, аппаратный RAID и гибридный RAID. Для программного RAID все функции выполняются операционной системой и ЦП, и нет независимого чипа управления/обработки RAID и чипа обработки ввода-вывода, поэтому эффективность самая низкая. Аппаратный RAID оснащен специальным чипом управления/обработки RAID и чипом обработки ввода-вывода, а также буфером массива, и не занимает ресурсы ЦП, но стоимость очень высока. Гибридный RAID имеет чип управления/обработки RAID, но не имеет чипа обработки ввода-вывода, и требует ЦП и драйверов для завершения, а его производительность и стоимость находятся между программным RAID и аппаратным RAID.
Каждый уровень RAID представляет собой метод реализации и технологию, и нет различия между высокими и низкими уровнями. На практике следует выбирать соответствующий уровень RAID и конкретный метод реализации в соответствии с характеристиками пользовательских приложений данных, а также всесторонне учитывать доступность, производительность и стоимость.
RAID, то есть Redundant Array of Independent Disks, обычно сокращается как дисковый массив. Вкратце, RAID — это подсистема дисков, состоящая из нескольких независимых высокопроизводительных дисковых накопителей, которая обеспечивает более высокую производительность хранения и технологию избыточности данных, чем один диск. RAID — это технология управления несколькими дисками, которая обеспечивает экономичное, высоконадежное и высокопроизводительное хранение данных для хост-среды. Определение RAID от SNIA: дисковый массив, в котором часть физического пространства хранения используется для записи избыточной информации пользовательских данных, хранящихся в оставшемся пространстве. При сбое диска или пути доступа избыточная информация может быть использована для восстановления пользовательских данных. Хотя чередование дисков не соответствует определению RAID, оно обычно также называется RAID (т.е. RAID0).
Первоначальное намерение RAID заключалось в предоставлении функций хранения данных высокого класса и избыточной безопасности данных для больших серверов. Во всей системе RAID рассматривается как пространство хранения, состоящее из двух или более дисков, а производительность ввода-вывода системы хранения улучшается за счет одновременного чтения и записи данных на нескольких дисках. Большинство уровней RAID имеют полные меры проверки и коррекции данных, и даже методы зеркалирования, которые значительно повышают надежность системы, и именно отсюда происходит слово «Redundant» (избыточный).
Здесь стоит упомянуть JBOD (Just a Bunch of Disks). Изначально JBOD использовался для обозначения набора дисков без управляющего программного обеспечения для обеспечения скоординированного управления, что является основным фактором, отличающим RAID от JBOD. В настоящее время JBOD часто относится к корпусу дисков, независимо от того, предоставляет ли он функциональность RAID.
Двумя ключевыми целями RAID являются повышение надежности данных и производительности ввода-вывода. В дисковом массиве данные распределяются между несколькими дисками, но для компьютерной системы он выглядит как один диск. Избыточность достигается путем записи одних и тех же данных на несколько дисков (обычно зеркалирование) или записи вычисленных данных четности в массив, так что потеря данных не произойдет при сбое одного диска. Некоторые уровни RAID допускают одновременный сбой нескольких дисков, например RAID6, где два диска могут быть повреждены одновременно. При таком механизме избыточности отказавший диск может быть заменен новым диском, и RAID автоматически восстановит потерянные данные в соответствии с данными и данными четности на оставшихся дисках для обеспечения согласованности и целостности данных. Данные распределены и хранятся на нескольких различных дисках в RAID, а одновременное чтение и запись данных намного лучше, чем у одного диска, поэтому можно получить более высокую агрегированную пропускную способность ввода-вывода. Конечно, дисковый массив уменьшит общее доступное дисковое пространство всех дисков, жертвуя пространством в обмен на более высокую надежность и производительность. Например, использование дискового пространства RAID1 составляет всего 50%, а RAID5 теряет емкость одного диска, и использование пространства составляет (n-1)/n.
Дисковый массив может обеспечить непрерывную работу системы без перебоев при повреждении некоторых дисков (одного или нескольких, в зависимости от реализации). В процессе восстановления данных отказавшего диска на новый диск система может продолжать работать нормально, но производительность будет снижена в определенной степени. Некоторые дисковые массивы должны быть выключены при добавлении или удалении дисков, в то время как некоторые поддерживают горячую замену, позволяя заменять дисковые накопители без выключения. Этот дисковый массив высокого класса в основном используется в прикладных системах с высокими требованиями к надежности, и систему нельзя выключать или время простоя должно быть как можно короче. В целом, RAID не может заменить резервное копирование данных. Он бессилен против потери данных, вызванной сбоями, не связанными с диском, такими как вирусы, преднамеренное уничтожение, случайное удаление и т. д. В этом случае потеря данных относится к операционной системе, файловой системе, менеджеру томов или прикладной системе. Для самой системы RAID данные неповреждены и потерь не произошло. Поэтому резервное копирование данных, аварийное восстановление и другие меры защиты данных очень необходимы, которые дополняют RAID и защищают безопасность данных на разных уровнях для предотвращения потери данных.
Существует три ключевых концепции и технологии в RAID: зеркалирование, чередование данных и контроль четности. Зеркалирование копирует данные на несколько дисков. С одной стороны, это может повысить надежность, а с другой — одновременное чтение данных из двух или более копий для повышения производительности чтения. Очевидно, что производительность записи при зеркалировании немного ниже, и требуется больше времени, чтобы гарантировать правильную запись данных на несколько дисков. Чередование данных хранит фрагменты данных на нескольких различных дисках, и несколько фрагментов данных вместе образуют полную копию данных, что отличается от множественных копий при зеркалировании и обычно используется для соображений производительности. Чередование данных имеет более высокую гранулярность параллелизма. При доступе к данным возможно одновременное чтение и запись данных на разных дисках, тем самым достигая очень значительного улучшения производительности ввода-вывода. Контроль четности использует избыточные данные для обнаружения и исправления ошибок данных. Избыточные данные обычно вычисляются с помощью алгоритмов, таких как код Хэмминга и операция XOR. Использование функции четности может значительно повысить надежность, устойчивость и отказоустойчивость дискового массива. Однако контроль четности требует чтения данных из нескольких мест и выполнения вычислений и сравнений, что повлияет на производительность системы. Различные уровни RAID используют одну или несколько из вышеуказанных трех технологий для получения различной надежности данных, доступности и производительности ввода-вывода. Что касается того, какой тип RAID (даже новые уровни или типы) следует разрабатывать или какой режим RAID использовать, необходимо сделать разумный выбор на основе глубокого понимания системных требований и всесторонней оценки надежности, производительности и стоимости для достижения компромиссного решения.
-
Большая емкость: Это очевидное преимущество RAID. Он расширяет емкость диска, а система RAID, состоящая из нескольких дисков, имеет огромное пространство для хранения. Теперь емкость одного диска может достигать более 1 ТБ, поэтому емкость хранения RAID может достигать уровня ПБ, и большинство требований к хранению могут быть удовлетворены. В целом, доступная емкость RAID меньше общей емкости всех дисков-членов. Различные уровни алгоритмов RAID требуют определенного накладного расхода на избыточность, и конкретный накладной расход по емкости связан с используемым алгоритмом. Если известны алгоритм RAID и емкость, можно рассчитать доступную емкость RAID. Обычно использование емкости RAID составляет от 50% до 90%.
-
Высокая производительность: Высокая производительность RAID обусловлена технологией чередования данных. Производительность ввода-вывода одного диска ограничена компьютерными технологиями, такими как интерфейс и пропускная способность, и часто является узким местом производительности системы. Благодаря чередованию данных RAID распределяет ввод-вывод данных по каждому диску-члену, тем самым получая агрегированную производительность ввода-вывода, в несколько раз превышающую производительность одного диска.
-
Надежность: Доступность и надежность — еще две важные характеристики RAID. Теоретически, надежность системы RAID, состоящей из нескольких дисков, должна быть хуже, чем у одного диска. Здесь есть неявное предположение: сбой одного диска приведет к недоступности всего RAID. RAID использует технологии избыточности данных, такие как зеркалирование и контроль четности, чтобы нарушить это предположение. Зеркалирование — это самая примитивная технология избыточности, которая полностью копирует данные на определенной группе дисковых накопителей на другую группу дисковых накопителей, чтобы гарантировать, что всегда будет доступна копия данных. По сравнению с 50% накладных расходов на избыточность при зеркалировании, контроль четности намного меньше, и он использует избыточную информацию четности для проверки и исправления данных. Технология избыточности RAID значительно повышает доступность и надежность данных и гарантирует, что при сбое нескольких дисков данные не будут потеряны, а непрерывная работа системы не будет затронута.
-
Управляемость: Фактически, RAID — это технология виртуализации, которая виртуализирует несколько физических дисковых накопителей в логический диск большой емкости. Для внешней хост-системы RAID представляет собой один, быстрый и надежный диск большой емкости. Таким образом, пользователи могут организовывать и хранить данные прикладной системы на этом виртуальном диске. С точки зрения пользовательского приложения, это может сделать систему хранения простой в использовании и управлении. Поскольку RAID выполняет большой объем работы по управлению хранилищем внутри себя, администратору нужно управлять только одним виртуальным диском, что может сэкономить много работы по управлению. RAID может динамически добавлять или удалять дисковые накопители и автоматически выполнять проверку данных и восстановление данных, что может значительно упростить работу по управлению.