Технология RAID для повышения производительности диска и безопасности данных
RAID (Redundant Array of Independent Discs) – это технология хранения данных, которая распределяет данные между группой физически отдельных жестких дисков, логично настроенных как единая целая память. Поскольку RAID хранит все данные на резервных дисках, она обеспечивает значительный уровень отказоустойчивости хранилища. RAID может включать диски на нескольких серверах в кластере, подключенного через сеть хранения данных (SAN). Более простой и дешевый подход известен как просто набор дисков (JBOD), который, по сути, является связкой дисковых драйверов не настроенных как RAID.
Это дисковая подсистема, что увеличивает производительность или обеспечивает отказоустойчивость, или же обеспечивает обе опции. RAID использует два или больше регулярных жестких диска и контроллер RAID, который подключается к плате, которая не имеет RAID схем. Сегодня, большинство материнских плат имеют встроенные RAID, но не обязательно каждую из конфигураций RAID (см. ниже). В прошлом RAID- эффект был достигнут лишь на программном обеспечении, но был значительно медленнее. В конце 1980-х, буква “I” в слове «RAID» выступала как «inexpensive – недорого», но позже значение было изменено на «independent – независимый».
Мы часто хотим, чтобы пространство диска было больше, чем оно есть, поскольку диск постоянно наполняется новыми данными и все больше заполняется. Еще очень важна надежность диска, и, конечно же, чем более надежен диск, тем целее наши данные. И хотелось бы, чтобы, в случае сбоя диска, мы всегда сможем их восстановить с помощью специальных программ.
В этой статье мы представим такое понятие, как избыточный массив независимых дисков (RedundantArrayofIndependentDisks), более известное как RAID [P+88]. Это технология, в которой используется несколько дисков с целью построить более быструю, объемную и надежную систему на диске. Термин был введен в конце 1980 года группой исследователей в UC Беркли (под руководством профессоров Дэвида Паттерсона и Рэнди Кац, и студентом Гартом Гибсоном); это было в то время, когда многие исследователи одновременно пришли к идее использования нескольких жестких дисков для создания лучшей системы хранения [BG88, K86, K88, PB86, SG86]. Внешне система RAID выглядит как диск: группа блоков, которые могут считывать или записывать информацию. Внутренне RAID – это сложный механизм, состоящий из нескольких дисков (дисковый массив), запоминающего устройства (как энергозависимого, так и энергонезависимого), а также, одного или более процессора для управления системой. Система RAID очень похожа на компьютерную систему, которая специализирована под задачи управления группой дисков.
Дисковые массивы имеют ряд преимуществ по сравнению с одним диском. Одним из таких преимуществ является производительность. Использование нескольких дисков параллельно может значительно ускорить операции ввода и вывода информации в несколько раз. Еще одним преимуществом является объемы. Большие массивы данных требуют больших объемов дисков. Наконец, система RAID может повысить надежность диска.Распространение данных по нескольким дискам (без RAID) делает данные уязвимыми к потере диска или к его сбоям. С некоторой формой избыточности, система может «смириться» с потерями диска и продолжать работать, как будто сбоев не было, сохраняя Ваши данные целыми.
СистемаRAID также обеспечивает прозрачность системам, которые используют их, то есть, система выглядит как большой диск к хост-системе. Преимущества её также в том, что она позволяет просто заменить диск с RAID, и не изменять ни строчки программного обеспечения; операционная система и клиентские приложения продолжат работать без изменений. Таким образом, прозрачность значительно улучшает работу в RAID, позволяя пользователям и администраторам использовать RAID без проблем совместимости программного обеспечения.
Теперь мы обсудим некоторые важные аспекты работы RAID. Начнем с интерфейса, моделей сбоев, а затем обсудим, как можно оценить дизайн RAID в трех важных направлениях: емкость, надежность и производительность. Затем перейдем к ряду других вопросов, которые важны для разработки и реализации RAID.
Интерфейс и составляющие системы RAID
Для файловой системы система RAID выглядит как объемный, быстрый, и надежный диск. Так же, как и любой диск, система представляет собой линейный массив блоков, каждый из которых может быть прочитан или записан файловой системой (или другим пользователем).
Когда файловая система выдает логический запрос на операцию ввода или вывода в системе RAID. Внутри системы проходят вычисления, к какому диску (или дискам) необходимо совершить доступ с целью выполнения запроса, а затем выдается один или несколько физических операций ввода или вывода. Точное выполнение этих физических операций зависят от уровня системы RAID, о которых более детально мы расскажем ниже. Тем не менее, в качестве простого примера рассмотрим систему RAID, которая содержит две копии каждого блока (по одному на отдельном диске); при записи в такой зеркальной системе, RAID необходимо будет выполнить две физические операции ввода/вывода для каждой логической операции ввода/вывода.
Система RAID находиться в отдельном аппаратном блоке со стандартным соединением (например, SCSI или SATA) к общей системе. Однако изнутри система довольно сложная. Она состоит из микроконтроллера, энергонезависимой памяти, такой, как DRAM , для поддержки блоков данных, поскольку они считываются и записываются. В некоторых случаях, система имеет энергонезависимую память для буферизации и безопасности записей и, возможно, даже выполняет специализированные логические элементы для вычислений четности (полезно в некоторых уровнях RAID). На высоком уровне RAID является очень специализированной компьютерной системой: в ней есть процессор, память и диски, однако, вместо, запуска приложений, она запускает специальное программное обеспечение, предназначенное для работы в RAID.
Модели неисправностей в системе RAID
Чтобы понять, как работает RAID, и сравнить различные подходы, мы должны иметь представление о моделях неисправности. Дисковые массивы предназначены для обнаружения и восстановления определенных видов неисправностей дисков, основываясь на том, какие именно ошибки можно ожидать в процессе достижении рабочего проекта.
Первая модель достаточно проста, и была названа «стоп-сбой-модель» (S84). В этой модели, диск может находиться в одном из двух состояний: исправен и неисправен. С рабочего диска все блоки могут быть считаны или записаны. В обратном случае, принято считать, что если произошел сбой диска, то данные окончательно потеряны.
Одним из важнейших аспектов этой модели можно назвать то, что она предполагает обнаружение неисправностей. В частности, когда происходит сбой, его легко обнаружить. Например, в массиве RAID, RAID-контроллер аппаратного или программного обеспечения сразу отметит наличие неисправностей. Таким образом, система обеспечивает контроль различных сбоев и тех, которые могут быть незаметными, например, физическое повреждение диска. Также система защитит диск от блокирования (скрытие сектора).
В больших сетях хранения данных (SAN), напольные RAID-блоки имеют общий объем, измеряемый терабайтами дискового пространства и огромное количество кэш-памяти. Система RAID также может использоваться в настольных компьютерах геймеров для ускорения работы, а также, бизнес-пользователями для надежности. Многие из них зависят от диска четности. Диск четности – это жесткий диск, который используется в массивах RAID для обеспечения отказоустойчивости. Например, RAID 3 использует диск четности, чтобы создать систему, которая и отказоустойчива, быстра ввиду чередования данных.
Уровни RAID
Одним из способов реализации диска четности в RAID-массиве является использование исключительной или, или XOR, функции. XOR-функция булевой логики, означает «один или другой, но не оба». XOR всех данных дисков в RAID-массиве записывается на диск четности. Если один из дисков с данными дает сбой, XOR оставшихся дисков идентична данным потерянных с привода. Поэтому в случае, если диск будет «потерян» вследствие сбоя, восстановить данные с него также просто, как скопировать XOR оставшихся дисков на диск со свежими данными.
Ниже в таблице приведены различные конфигурации RAID (уровни)
От RAID1 до RAID5 всякий раз, когда диск поврежден, мы можем извлечь поврежденный и вставить новый. При этом, данные и содержимое поврежденного диска остаются невредимыми и могут быть быстро восстановлены. Также можно проводить реконструкцию аппаратного или программного обеспечения массиваRAID. Но RAID0 не предоставляет функцию проверки на наличие ошибок, поэтому некоторые считают, что её нельзя отнести к уровням RAID. На самом деле, именно поэтому RAID0 называется RAID0, «0» представляет «none».
Существует три фактора, которые могут повлиять на ваш выбор RAID-уровня: удобство (избыточные данные), производительность и стоимость. Если не требуется удобство, RAID-0 подойдет лучше всего. Если производительность системы и удобство важнее, чем стоимость, RAID 1 или RAID-10(зависит от количества дисков) – хороший выбор. Если же важно, не только удобство использования и производительность, а и цена тоже, Вы можете выбрать RAID 3, RAID-30, RAID 5 или RAID-50(зависит от типа трансмиссии и количества дисков).