RAID ( / r eɪ d / ; « избыточный массив недорогих дисков » [1] или « избыточный массив независимых дисков » [2] ) — технология виртуализации хранения данных , которая объединяет несколько физических дисковых компонентов в один или несколько логических блоков для целей избыточности данных , повышения производительности или того и другого. Это контрастирует с предыдущей концепцией высоконадежных мэйнфреймовых дисковых накопителей, называемых «один большой дорогой диск» (SLED). [3] [1]
Данные распределяются по дискам одним из нескольких способов, называемых уровнями RAID, в зависимости от требуемого уровня избыточности и производительности. Различные схемы или макеты распределения данных называются словом «RAID» с последующим числом, например RAID 0 или RAID 1. Каждая схема или уровень RAID обеспечивает различный баланс между ключевыми целями: надежностью , доступностью , производительностью и емкостью . Уровни RAID выше RAID 0 обеспечивают защиту от неисправимых ошибок чтения секторов , а также от сбоев целых физических дисков.
История
Термин «RAID» был изобретен Дэвидом Паттерсоном , Гартом Гибсоном и Рэнди Кацем в Калифорнийском университете в Беркли в 1987 году. В своей статье «Дело об избыточных массивах недорогих дисков (RAID)», представленной в июне 1988 года на конференции SIGMOD , они утверждали, что самые производительные дисковые накопители для мэйнфреймов того времени могут быть превзойдены по производительности массивом недорогих накопителей, разработанных для растущего рынка персональных компьютеров . Хотя количество отказов будет расти пропорционально количеству накопителей, при настройке избыточности надежность массива может значительно превзойти надежность любого большого одиночного накопителя. [4]
Хотя эта терминология еще не использовалась, технологии пяти уровней RAID, названные в статье за июнь 1988 года, применялись в различных продуктах до публикации статьи [3] , включая следующие:
Зеркальное отображение (RAID 1) было широко распространено в 1970-х годах, например, в системах Tandem NonStop .
В 1977 году Норман Кен Оучи из IBM подал патент, раскрывающий то, что впоследствии было названо RAID 4. [5]
Около 1983 года компания DEC начала поставлять зеркальные подсистемы дисковых накопителей RA8X (теперь известные как RAID 1) как часть своей подсистемы HSC50. [6]
В 1986 году Кларк и др. из IBM подали патент, раскрывающий то, что впоследствии было названо RAID 5. [7]
Около 1988 года DataVault компании Thinking Machines использовал коды исправления ошибок (теперь известные как RAID 2) в массиве дисковых накопителей. [ 8] Похожий подход использовался в начале 1960-х годов на IBM 353. [9] [10]
Позднее производители отрасли переосмыслили аббревиатуру RAID, назвав ее «избыточный массив независимых дисков». [2] [11] [12] [13]
Обзор
Многие уровни RAID используют схему защиты от ошибок, называемую « четность », широко используемый метод в информационных технологиях для обеспечения отказоустойчивости в заданном наборе данных. Большинство используют простое XOR , но RAID 6 использует две отдельные четности, основанные соответственно на сложении и умножении в определенном поле Галуа или исправлении ошибок Рида-Соломона . [14]
RAID также может обеспечить безопасность данных с помощью твердотельных накопителей (SSD) без расходов на систему, состоящую только из SSD. Например, быстрый SSD может быть зеркалирован с помощью механического накопителя. Чтобы эта конфигурация обеспечивала значительное преимущество в скорости, необходим соответствующий контроллер, который использует быстрый SSD для всех операций чтения. Adaptec называет это «гибридным RAID». [15]
Стандартные уровни
Первоначально существовало пять стандартных уровней RAID, но затем появилось множество вариаций, включая несколько вложенных уровней и множество нестандартных уровней (в основном фирменных ). Уровни RAID и связанные с ними форматы данных стандартизированы Ассоциацией индустрии сетевых устройств хранения данных (SNIA) в стандарте Common RAID Disk Drive Format (DDF): [16] [17]
RAID 0 состоит из чередования на уровне блоков, но без зеркалирования или четности . По сравнению с составным томом , емкость тома RAID 0 такая же; она представляет собой сумму емкостей дисков в наборе. Но поскольку чередование распределяет содержимое каждого файла по всем дискам в наборе, отказ любого диска приводит к потере всего тома RAID 0 и всех файлов. Для сравнения, составной том сохраняет файлы на исправных дисках. Преимущество RAID 0 заключается в том, что пропускная способность операций чтения и записи для любого файла умножается на количество дисков, поскольку, в отличие от составных томов, чтение и запись выполняются одновременно . [11] Стоимость заключается в повышенной уязвимости к отказам дисков — поскольку отказ любого диска в настройке RAID 0 приводит к потере всего тома, средняя частота отказов тома возрастает с количеством подключенных дисков.
RAID 1 состоит из зеркалирования данных, без контроля четности или чередования. Данные записываются идентично на два или более дисков, тем самым создавая «зеркальный набор» дисков. Таким образом, любой запрос на чтение может быть обслужен любым диском в наборе. Если запрос транслируется на каждый диск в наборе, он может быть обслужен диском, который первым обращается к данным (в зависимости от времени поиска и задержки вращения ), что повышает производительность. Устойчивая пропускная способность чтения, если контроллер или программное обеспечение оптимизированы для этого, приближается к сумме пропускных способностей каждого диска в наборе, как и для RAID 0. Фактическая пропускная способность чтения большинства реализаций RAID 1 медленнее, чем у самого быстрого диска. Пропускная способность записи всегда медленнее, потому что каждый диск должен обновляться, а самый медленный диск ограничивает производительность записи. Массив продолжает работать до тех пор, пока функционирует хотя бы один диск. [11]
RAID 2 состоит из чередования на уровне битов с выделенной четностью кода Хэмминга . Все вращение шпинделя диска синхронизировано, и данные чередуются таким образом, что каждый последовательный бит находится на другом диске. Четность кода Хэмминга вычисляется по соответствующим битам и сохраняется по крайней мере на одном диске четности. [11] Этот уровень имеет только историческое значение; хотя он использовался на некоторых ранних машинах (например, Thinking Machines CM-2), [18] по состоянию на 2014 год[обновлять]он не используется ни одной коммерчески доступной системой. [19]
RAID 3 состоит из байтового страйпинга с выделенной четностью. Все вращение шпинделя диска синхронизировано, и данные страйпингуются таким образом, что каждый последовательный байт находится на другом диске. Четность вычисляется по соответствующим байтам и сохраняется на выделенном диске четности. [11] Хотя существуют реализации, [20] RAID 3 на практике обычно не используется.
RAID 4 состоит из блочного страйпинга с выделенной четностью. Этот уровень ранее использовался NetApp , но теперь в значительной степени заменен фирменной реализацией RAID 4 с двумя дисками четности, называемой RAID-DP . [21] Главным преимуществом RAID 4 над RAID 2 и 3 является параллелизм ввода-вывода: в RAID 2 и 3 одна операция чтения ввода-вывода требует чтения всей группы дисков с данными, тогда как в RAID 4 одна операция чтения ввода-вывода не должна распространяться на все диски с данными. В результате больше операций ввода-вывода могут выполняться параллельно, что повышает производительность небольших передач. [1]
RAID 5 состоит из блочного чередования с распределенной четностью. В отличие от RAID 4, информация о четности распределяется между дисками, требуя для работы наличия всех дисков, кроме одного. При отказе одного диска последующие чтения могут быть рассчитаны на основе распределенной четности, так что данные не будут потеряны. RAID 5 требует не менее трех дисков. [11] Как и все концепции с одинарной четностью, большие реализации RAID 5 подвержены системным сбоям из-за тенденций, касающихся времени восстановления массива и вероятности отказа диска во время восстановления (см. раздел «Увеличение времени восстановления и вероятности отказа» ниже). [22] Восстановление массива требует чтения всех данных со всех дисков, что открывает возможность для отказа второго диска и потери всего массива.
RAID 6 состоит из блочного чередования с двойной распределенной четностью. Двойная четность обеспечивает отказоустойчивость до двух отказавших дисков. Это делает более крупные группы RAID более практичными, особенно для систем с высокой доступностью, поскольку восстановление дисков большой емкости занимает больше времени. RAID 6 требует минимум четырех дисков. Как и в случае с RAID 5, отказ одного диска приводит к снижению производительности всего массива до тех пор, пока неисправный диск не будет заменен. [11] С массивом RAID 6, использующим диски из разных источников и производителей, можно смягчить большинство проблем, связанных с RAID 5. Чем больше емкость дисков и размер массива, тем важнее становится выбор RAID 6 вместо RAID 5. [23] RAID 10 также минимизирует эти проблемы. [24]
Вложенный (гибридный) RAID
В том, что изначально называлось гибридным RAID , [25] многие контроллеры хранения позволяют вкладывать уровни RAID. Элементами RAID могут быть как отдельные диски, так и сами массивы. Массивы редко вкладывают более чем на один уровень.
Последний массив называется верхним массивом. Когда верхний массив — это RAID 0 (например, RAID 1+0 и RAID 5+0), большинство поставщиков опускают «+» (получая RAID 10 и RAID 50 соответственно).
RAID 0+1: создает две полосы и зеркалирует их. Если происходит сбой одного диска, то одно из зеркал выходит из строя, в этот момент оно работает эффективно как RAID 0 без избыточности. Значительно более высокий риск возникает во время перестроения, чем RAID 1+0, поскольку все данные со всех дисков в оставшейся полосе должны быть считаны, а не только с одного диска, что увеличивает вероятность неустранимой ошибки чтения (URE) и значительно расширяет окно перестроения. [26] [27] [28]
RAID 1+0: (см.: RAID 10 ) создает чередующийся набор из серии зеркальных дисков. Массив может выдерживать множественные потери дисков, пока ни одно зеркало не потеряет все свои диски. [29]
JBOD RAID N+N: С JBOD ( просто куча дисков ) можно объединять диски, а также тома, такие как RAID-наборы. При большей емкости дисков задержка записи и время восстановления резко возрастают (особенно, как описано выше, с RAID 5 и RAID 6). Разделив большой набор RAID N на меньшие поднаборы и объединив их с линейным JBOD, [ необходимо разъяснение ] время записи и восстановления сократится. Если аппаратный RAID-контроллер не способен вкладывать линейный JBOD с RAID N, то линейный JBOD может быть достигнут с помощью программного RAID на уровне ОС в сочетании с отдельными томами поднаборов RAID N, созданными в одном или нескольких аппаратных RAID-контроллерах. Помимо резкого увеличения скорости, это также дает существенное преимущество: возможность запустить линейный JBOD с небольшим набором дисков и иметь возможность расширить общий набор дисками разного размера позже (со временем на рынке появятся диски большего размера). Еще одно преимущество заключается в возможности аварийного восстановления (если подмножество RAID N выйдет из строя, то данные на других подмножествах RAID N не будут потеряны, что сократит время восстановления). [ необходима цитата ]
Нестандартные уровни
Возможны многие конфигурации, отличные от базовых нумерованных уровней RAID, и многие компании, организации и группы создали свои собственные нестандартные конфигурации, во многих случаях разработанные для удовлетворения специализированных потребностей небольшой нишевой группы. Такие конфигурации включают следующее:
Linux MD RAID 10 предоставляет общий драйвер RAID, который в своей "ближней" компоновке по умолчанию использует стандартный RAID 1 с двумя дисками и стандартный RAID 1+0 с четырьмя дисками; однако он может включать любое количество дисков, включая нечетные числа. Благодаря своей "дальней" компоновке MD RAID 10 может работать как с чередованием, так и с зеркалированием, даже если в f2компоновке всего два диска; это запускает зеркалирование с чередующимися чтениями, обеспечивая производительность чтения RAID 0. Обычный RAID 1, предоставляемый программным RAID Linux , не чередует чтения, но может выполнять чтения параллельно. [29] [30] [31]
Hadoop имеет RAID-систему, которая генерирует файл четности путем выполнения операции xor над полосой блоков в одном файле HDFS. [32]
BeeGFS , параллельная файловая система, имеет внутренние возможности чередования (сравнимые с файловым RAID0) и репликации (сравнимые с файловым RAID10) для объединения пропускной способности и емкости нескольких серверов и, как правило, базируется на базовом RAID, что делает сбои дисков прозрачными.
Декластеризованный RAID распределяет двойные (или более) копии данных по всем дискам (возможно, сотням) в подсистеме хранения, при этом удерживая достаточно свободной емкости, чтобы допустить отказ нескольких дисков. Рассеивание основано на алгоритмах, которые создают видимость произвольности. Когда один или несколько дисков выходят из строя, недостающие копии восстанавливаются в этой свободной емкости, снова произвольно. Поскольку восстановление выполняется со всех оставшихся дисков и на все оставшиеся диски, оно работает намного быстрее, чем традиционный RAID, что снижает общее воздействие на клиентов системы хранения.
Реализации
Распределение данных по нескольким дискам может управляться либо выделенным компьютерным оборудованием , либо программным обеспечением . Программное решение может быть частью операционной системы, частью прошивки и драйверов, поставляемых со стандартным контроллером диска (так называемый «аппаратно-ассистируемый программный RAID»), или оно может полностью находиться в аппаратном RAID-контроллере.
Аппаратный
Аппаратные RAID-контроллеры можно настроить через BIOS карты или Option ROM до загрузки операционной системы , а после загрузки операционной системы фирменные утилиты настройки доступны от производителя каждого контроллера. В отличие от сетевых интерфейсных контроллеров для Ethernet , которые обычно можно настроить и обслуживать полностью через общие парадигмы операционной системы, такие как ifconfig в Unix , без необходимости использования каких-либо сторонних инструментов, каждый производитель каждого RAID-контроллера обычно предоставляет свои собственные фирменные программные инструменты для каждой операционной системы, которую он считает поддерживаемой, обеспечивая привязку к поставщику и способствуя проблемам надежности. [33]
Например, в FreeBSD , чтобы получить доступ к конфигурации RAID-контроллеров Adaptec , пользователям необходимо включить уровень совместимости Linux и использовать инструментарий Linux от Adaptec, [34] что потенциально ставит под угрозу стабильность, надежность и безопасность их настройки, особенно если рассматривать долгосрочную перспективу. [33]
Некоторые другие операционные системы реализовали собственные общие фреймворки для взаимодействия с любым RAID-контроллером и предоставляют инструменты для мониторинга состояния тома RAID, а также упрощения идентификации дисков с помощью мигания светодиодов, управления сигналами тревоги и обозначения дисков горячего резерва из операционной системы без необходимости перезагрузки в BIOS карты. Например, такой подход был принят OpenBSD в 2005 году с ее псевдоустройством bio(4) и утилитой bioctl , которые предоставляют статус тома и позволяют управлять светодиодами/сигналами тревоги/горячим резервом, а также датчиками (включая датчик диска ) для мониторинга работоспособности; [35] этот подход впоследствии был принят и расширен NetBSD в 2007 году. [36]
Программное обеспечение
Реализации программного RAID предусмотрены многими современными операционными системами . Программный RAID может быть реализован как:
Уровень, который абстрагирует несколько устройств, тем самым предоставляя единое виртуальное устройство (например, md ядра Linux и softraid OpenBSD)
Более универсальный менеджер логических томов (входит в состав большинства операционных систем серверного класса, таких как Veritas или LVM )
Уровень, который находится над любой файловой системой и обеспечивает защиту четности пользовательских данных (например, RAID-F) [37]
Некоторые современные файловые системы предназначены для организации данных на нескольких устройствах хранения напрямую, без необходимости использования стороннего менеджера логических томов:
ZFS поддерживает эквиваленты RAID 0, RAID 1, RAID 5 (RAID-Z1) с одинарной четностью, RAID 6 (RAID-Z2) с двойной четностью и версию с тройной четностью (RAID-Z3), также называемую RAID 7. [38] Поскольку она всегда чередует данные по vdev верхнего уровня, она поддерживает эквиваленты вложенных уровней RAID 1+0, 5+0 и 6+0 (а также чередующиеся наборы с тройной четностью), но не другие вложенные комбинации. ZFS является собственной файловой системой в Solaris и illumos , а также доступна в FreeBSD и Linux. Реализации ZFS с открытым исходным кодом активно разрабатываются в рамках зонтичного проекта OpenZFS . [39] [40] [41] [42] [43]
Spectrum Scale , изначально разработанный IBM для потоковой передачи мультимедиа и масштабируемой аналитики, поддерживает декластеризованные схемы защиты RAID до n+3. Особенностью является динамический приоритет перестройки, который работает с низким влиянием в фоновом режиме, пока фрагмент данных не достигнет избыточности n+0, в этом случае этот фрагмент быстро перестраивается по крайней мере до n+1. Кроме того, Spectrum Scale поддерживает RAID 1 на метро-расстоянии. [44]
Btrfs поддерживает RAID 0, RAID 1 и RAID 10 (RAID 5 и 6 находятся в стадии разработки). [45] [46]
XFS изначально был разработан как интегрированный менеджер томов, который поддерживает объединение, зеркалирование и чередование нескольких физических устройств хранения. [47] Однако реализация XFS в ядре Linux не имеет интегрированного менеджера томов. [48]
Многие операционные системы предоставляют реализации RAID, включая следующие:
Операционная система OpenVMS компании Hewlett-Packard поддерживает RAID 1. Зеркальные диски, называемые «теневым набором», могут находиться в разных местах для помощи в аварийном восстановлении. [49]
MacOS и сервер MacOS от Apple поддерживают RAID 0, RAID 1 и RAID 1+0. [50] [51]
FreeBSD поддерживает RAID 0, RAID 1, RAID 3 и RAID 5, а также все вложения через модули GEOM и ccd. [52] [53] [54]
Linux md поддерживает RAID 0, RAID 1, RAID 4, RAID 5, RAID 6 и все вложения. [55] Также поддерживаются некоторые операции по изменению формы/размера/расширению. [56]
Microsoft Windows поддерживает RAID 0, RAID 1 и RAID 5 с использованием различных программных реализаций. Logical Disk Manager , представленный в Windows 2000 , позволяет создавать тома RAID 0, RAID 1 и RAID 5 с использованием динамических дисков , но это было ограничено только профессиональными и серверными выпусками Windows до выпуска Windows 8. [ 57] [58] Windows XP можно модифицировать, чтобы разблокировать поддержку RAID 0, 1 и 5. [59] Windows 8 и Windows Server 2012 представили функцию, похожую на RAID, известную как Storage Spaces , которая также позволяет пользователям указывать зеркалирование, четность или отсутствие избыточности для каждой папки. Эти параметры аналогичны RAID 1 и RAID 5, но реализованы на более высоком уровне абстракции. [60]
NetBSD поддерживает RAID 0, 1, 4 и 5 через свою программную реализацию, называемую RAIDframe. [61]
OpenBSD поддерживает RAID 0, 1 и 5 через свою программную реализацию, называемую softraid. [62]
Если загрузочный диск выходит из строя, система должна быть достаточно сложной, чтобы иметь возможность загрузиться с оставшегося диска или дисков. Например, рассмотрим компьютер, диск которого настроен как RAID 1 (зеркальные диски); если первый диск в массиве выходит из строя, то загрузчик первого этапа может быть недостаточно сложным, чтобы попытаться загрузить загрузчик второго этапа со второго диска в качестве резерва. Загрузчик второго этапа для FreeBSD способен загружать ядро с такого массива. [63]
На основе прошивки и драйвера
Программно-реализованный RAID не всегда совместим с процессом загрузки системы, и, как правило, непрактичен для настольных версий Windows. Однако аппаратные RAID-контроллеры дороги и являются фирменными. Чтобы заполнить этот пробел, были введены недорогие «RAID-контроллеры», которые не содержат выделенный чип RAID-контроллера, а просто стандартный чип контроллера диска или встроенную в чипсет функцию RAID с фирменной прошивкой и драйверами. Во время ранней загрузки RAID реализуется прошивкой, и после того, как операционная система будет полностью загружена, драйверы берут на себя управление. Следовательно, такие контроллеры могут не работать, когда поддержка драйверов недоступна для операционной системы хоста. [64] Примером является технология Intel Rapid Storage , реализованная на многих материнских платах потребительского уровня. [65] [66]
Поскольку задействована некоторая минимальная аппаратная поддержка, эта реализация также называется «аппаратно-ассистируемым программным RAID», [67] [68] [69] RAID «гибридной модели» [69] или даже «поддельным RAID». [70] Если поддерживается RAID 5, оборудование может предоставлять аппаратный ускоритель XOR. Преимущество этой модели перед чисто программным RAID заключается в том, что — при использовании режима избыточности — загрузочный диск защищен от сбоя (из-за прошивки) во время процесса загрузки, даже до того, как драйверы операционной системы возьмут на себя управление. [69]
Честность
Очистка данных (в некоторых средах называемая патрульным чтением ) включает периодическое чтение и проверку RAID-контроллером всех блоков в массиве, включая те, к которым не осуществляется доступ иным образом. Это обнаруживает плохие блоки перед использованием. [71] Очистка данных проверяет наличие плохих блоков на каждом устройстве хранения в массиве, но также использует избыточность массива для восстановления плохих блоков на одном диске и переназначения восстановленных данных в запасные блоки в другом месте на диске. [72]
Часто RAID-контроллер настроен на «отказ» от компонента диска (то есть на предположение, что компонент диска вышел из строя), если диск не отвечает в течение восьми секунд или около того; это может привести к тому, что контроллер массива откажет от исправного диска, поскольку этому диску не было предоставлено достаточно времени для завершения внутренней процедуры восстановления после ошибки. Следовательно, использование дисков потребительского назначения с RAID может быть рискованным, и так называемые диски «корпоративного класса» ограничивают это время восстановления после ошибки, чтобы снизить риск. [ необходима цитата ] Настольные диски Western Digital раньше имели специальное исправление. Утилита под названием WDTLER.exe ограничивала время восстановления диска после ошибки. Утилита включала TLER (восстановление после ошибки с ограничением по времени) , что ограничивает время восстановления после ошибки семью секундами. Примерно в сентябре 2009 года Western Digital отключила эту функцию в своих настольных дисках (например, линейке Caviar Black), что сделало такие диски непригодными для использования в конфигурациях RAID. [73] Однако диски корпоративного класса Western Digital поставляются с завода с включенным TLER. Похожие технологии используют Seagate, Samsung и Hitachi. Для использования не в RAID диск корпоративного класса с коротким временем ожидания восстановления после ошибки, которое нельзя изменить, поэтому менее подходит, чем диск для настольного компьютера. [73] В конце 2010 года программа Smartmontools начала поддерживать конфигурацию ATA Error Recovery Control, что позволяет инструменту настраивать множество жестких дисков настольного класса для использования в установках RAID. [73]
Хотя RAID может защитить от отказа физического диска, данные по-прежнему подвержены разрушению оператором, программным обеспечением, оборудованием и вирусами. Во многих исследованиях ошибка оператора упоминается как распространенный источник неисправности, [74] [75] например, когда оператор сервера заменяет неправильный диск в неисправном RAID и отключает систему (даже временно) в процессе. [76]
Массив может быть перегружен катастрофическим отказом, который превышает его способность к восстановлению, и весь массив подвержен риску физического повреждения от пожара, стихийного бедствия и человеческих сил, однако резервные копии могут храниться вне площадки. Массив также уязвим к отказу контроллера, поскольку не всегда возможно перенести его на новый, другой контроллер без потери данных. [77]
Слабые стороны
Коррелированные неудачи
На практике диски часто имеют одинаковый возраст (со схожим износом) и подвергаются воздействию одной и той же среды. Поскольку многие отказы дисков вызваны механическими проблемами (которые более вероятны на старых дисках), это нарушает предположения о независимой, одинаковой частоте отказов среди дисков; отказы фактически статистически коррелированы. [11] На практике вероятность второго отказа до того, как первый будет восстановлен (что приведет к потере данных), выше, чем вероятность случайных отказов. В исследовании около 100 000 дисков вероятность отказа двух дисков в одном кластере в течение одного часа была в четыре раза больше, чем предсказывает экспоненциальное статистическое распределение , которое характеризует процессы, в которых события происходят непрерывно и независимо с постоянной средней скоростью. Вероятность двух отказов в тот же 10-часовой период была в два раза больше, чем предсказывает экспоненциальное распределение. [78]
Неустранимые ошибки чтения во время перестройки
Невосстановимые ошибки чтения (URE) присутствуют как сбои чтения сектора, также известные как скрытые ошибки сектора (LSE). Соответствующая мера оценки носителя, уровень невосстановимых битовых ошибок (UBE), обычно гарантированно составляет менее одного бита из 10 15 [ оспаривается – обсудить ] для дисков корпоративного класса ( SCSI , FC , SAS или SATA) и менее одного бита из 10 14 [ оспаривается – обсудить ] для дисков настольного класса ( IDE/ATA/PATA или SATA). Увеличение емкости дисков и большие экземпляры RAID 5 привели к тому, что максимальные уровни ошибок стали недостаточными для гарантии успешного восстановления из-за высокой вероятности возникновения такой ошибки на одном или нескольких оставшихся дисках во время перестройки набора RAID. [11] [ устаревший источник ] [79] При перестройке схемы на основе четности, такие как RAID 5, особенно подвержены влиянию URE, поскольку они влияют не только на сектор, в котором они возникают, но и на реконструированные блоки, использующие этот сектор для вычисления четности. [80]
Схемы с двойной защитой на основе четности, такие как RAID 6, пытаются решить эту проблему, обеспечивая избыточность, которая допускает отказы двух дисков; в качестве недостатка такие схемы страдают от повышенного штрафа за запись — количества раз, которое необходимо получить доступ к носителю данных во время одной операции записи. [81] Схемы, которые дублируют (зеркалируют) данные с диска на диск, такие как RAID 1 и RAID 10, имеют меньший риск от URE, чем те, которые используют вычисление четности или зеркалирование между чередующимися наборами. [24] [82] Очистка данных, как фоновый процесс, может использоваться для обнаружения и восстановления из URE, эффективно снижая риск их возникновения во время перестроений RAID и вызывая отказы двух дисков. Восстановление URE включает в себя переназначение затронутых базовых секторов диска с использованием пула переназначения секторов диска; В случае обнаружения URE во время фоновой очистки избыточность данных, обеспечиваемая полностью работоспособным RAID-набором, позволяет восстановить недостающие данные и перезаписать их в переназначенный сектор. [83] [84]
Увеличение времени восстановления и вероятности отказа
Емкость дисков росла гораздо быстрее, чем скорость передачи данных, а частота ошибок снизилась лишь немного по сравнению с этим. Поэтому для восстановления дисков большей емкости могут потребоваться часы, если не дни, в течение которых другие диски могут выйти из строя или могут появиться необнаруженные ошибки чтения. Время восстановления также ограничено, если весь массив все еще работает с уменьшенной емкостью. [85] При наличии массива только с одним избыточным диском (что относится к уровням RAID 3, 4 и 5, а также к «классическому» двухдисковому RAID 1) отказ второго диска приведет к полному отказу массива. Несмотря на то, что среднее время между отказами (MTBF) отдельных дисков со временем увеличилось, это увеличение не поспевает за ростом емкости хранения дисков. Время восстановления массива после отказа одного диска, а также вероятность второго отказа во время восстановления со временем увеличились. [22]
Некоторые комментаторы заявили, что RAID 6 является лишь «пластырем» в этом отношении, поскольку он лишь немного отодвигает проблему в сторону. [22] Однако, согласно исследованию NetApp 2006 года Берримана и др., вероятность отказа уменьшается примерно в 3800 раз (по сравнению с RAID 5) при правильной реализации RAID 6, даже при использовании обычных дисков. [86] [ цитата не найдена ] Тем не менее, если наблюдаемые в настоящее время технологические тенденции останутся неизменными, в 2019 году массив RAID 6 будет иметь такую же вероятность отказа, как и его аналог RAID 5 в 2010 году. [86] [ ненадежный источник? ]
Схемы зеркалирования, такие как RAID 10, имеют ограниченное время восстановления, поскольку они требуют копии одного отказавшего диска, по сравнению со схемами четности, такими как RAID 6, которые требуют копии всех блоков дисков в наборе массива. Схемы тройной четности, или тройное зеркалирование, были предложены в качестве одного из подходов для повышения устойчивости к дополнительному отказу диска в течение этого большого времени восстановления. [86] [ ненадежный источник? ]
Атомарность
Сбой системы или иное прерывание операции записи может привести к состояниям, в которых четность не соответствует данным из-за неатомарности процесса записи, так что четность не может быть использована для восстановления в случае сбоя диска. Это обычно называется дырой записи , которая является известной проблемой повреждения данных в старых и недорогих RAID, вызванной прерванной дестаджинговой записью на диск. [87] Дыру записи можно устранить несколькими способами:
Аппаратные RAID-системы используют для этой цели встроенный энергонезависимый кэш. [88]
Для этой цели mdadm может использовать выделенное устройство журналирования (чтобы избежать снижения производительности, обычно предпочтительны SSD и NVM ). [89] [90]
Регистрация намерений записи . mdadm использует «write-intent-bitmap». Если он находит какое-либо местоположение, отмеченное как не полностью записанное при запуске, он повторно синхронизирует их. Он закрывает дыру записи, но не защищает от потери данных в пути, в отличие от полного WAL. [88] [91]
Частичная четность. mdadm может сохранять «частичную четность», которая в сочетании с измененными фрагментами восстанавливает исходную четность. Это закрывает дыру записи, но опять же не защищает от потери данных в пути. [92]
Динамический размер полосы. RAID-Z гарантирует, что каждый блок является собственной полосой, поэтому каждый блок является полным. Семантика транзакций копирования при записи ( COW ) защищает метаданные, связанные с полосами. [93] Недостатком является фрагментация ввода-вывода. [94]
Избегание перезаписи используемых полос. bcachefs , который использует копирующий сборщик мусора, выбирает эту опцию. COW снова защищает ссылки на полосатые данные. [94]
Дыра записи — это малоизученный и редко упоминаемый режим отказа для избыточных систем хранения, которые не используют транзакционные функции. Исследователь баз данных Джим Грей написал «Обновление на месте — это ядовитое яблоко» в ранние дни коммерциализации реляционных баз данных. [95]
Надежность записи в кэш
Существуют опасения по поводу надежности кэша записи, особенно в отношении устройств, оснащенных кэшем обратной записи , который является системой кэширования, которая сообщает о данных как записанных, как только они записываются в кэш, а не когда они записываются на энергонезависимый носитель. Если система испытывает потерю питания или другой серьезный сбой, данные могут быть безвозвратно утеряны из кэша до того, как достигнут энергонезависимого хранилища. По этой причине хорошие реализации кэша обратной записи включают механизмы, такие как избыточное питание от батареи, для сохранения содержимого кэша при системных сбоях (включая сбои питания) и для очистки кэша при перезапуске системы. [96]
^ abc Паттерсон, Дэвид ; Гибсон, Гарт А.; Кац , Рэнди (1988). Дело в пользу избыточных массивов недорогих дисков (RAID) (PDF) . Конференции SIGMOD . Получено 03.01.2024 .
^ ab "Первоначально называемый избыточным массивом недорогих дисков, термин RAID был впервые опубликован в конце 1980-х годов Паттерсоном, Гибсоном и Кацем из Калифорнийского университета в Беркли. (С тех пор Консультативный совет RAID заменил термин недорогая на независимая.)" Основы сетей хранения данных; Мита Гупта; Cisco Press; ISBN 978-1-58705-065-7 ; Приложение A.
^ ab Katz, Randy H. (октябрь 2010 г.). "RAID: Личное воспоминание о том, как хранилище стало системой" (PDF) . eecs.umich.edu . IEEE Computer Society . Получено 18.01.2015 . Мы были не первыми, кто придумал идею замены того, что Паттерсон описал как медленный большой дорогой диск (SLED), массивом недорогих дисков. Например, концепция зеркалирования дисков, впервые предложенная Tandem, была хорошо известна, и некоторые продукты хранения уже были построены вокруг массивов небольших дисков.
^ Хейс, Фрэнк (17 ноября 2003 г.). «The Story So Far». Computerworld . Получено 18 ноября 2016 г. Паттерсон вспомнил начало своего проекта RAID в 1987 году . [...] 1988: Дэвид А. Паттерсон возглавляет команду, которая определяет стандарты RAID для повышения производительности, надежности и масштабируемости.
↑ Патент США 4092732, Норман Кен Оучи, «Система восстановления данных, хранящихся в неисправном блоке памяти», выдан 30 мая 1978 г.
^ "HSC50/70 Hardware Technical Manual" (PDF) . DEC . Июль 1986. стр. 29, 32. Архивировано из оригинала (PDF) 2016-03-04 . Получено 2014-01-03 .
^ Патент США 4761785, Брайан Э. Кларк и др., «Распределение четности для улучшения доступа к хранилищу», выдан 02.08.1988
^ Патент США 4899342, Дэвид Поттер и др., «Метод и устройство для работы с многоблочной матрицей памяти», выдан 06.02.1990. См. также The Connection Machine (1988)
^ "IBM 7030 Data Processing System: Reference Manual" (PDF) . bitsavers.trailing-edge.com . IBM . 1960. стр. 157 . Получено 17.01.2015 . Поскольку большое количество битов обрабатывается параллельно, практично использовать биты проверки и исправления ошибок (ECC), и каждый 39-битный байт состоит из 32 бит данных и семи битов ECC. Биты ECC сопровождают все данные, передаваемые на высокоскоростные диски или с них, и при чтении используются для исправления одиночной битовой ошибки в байте и обнаружения двойных и большинства множественных ошибок в байте.
^ "IBM Stretch (также известная как IBM 7030 Data Processing System)". brouhaha.com . 2009-06-18 . Получено 2015-01-17 . Типичная IBM 7030 Data Processing System могла состоять из следующих блоков: [...] IBM 353 Disk Storage Unit – похож на IBM 1301 Disk File, но гораздо быстрее. 2 097 152 (2^21) 72-битных слов (64 бита данных и 8 бит ECC), 125 000 слов в секунду
^ Дональд, Л. (2003). MCSA/MCSE 2006 JumpStart Computer and Network Basics (2-е изд.). Глазго: SYBEX.
^ Хоу, Денис (ред.). Избыточные массивы независимых дисков из FOLDOC. Имперский колледж, факультет вычислительной техники . Получено 10 ноября 2011 г.{{cite book}}: |work=проигнорировано ( помощь )
↑ Докинз, Билл и Джонс, Арнольд. «Спецификация формата данных Common RAID Disk» Архивировано 24 августа 2009 г. в Wayback Machine [Ассоциация индустрии сетевых систем хранения данных], Колорадо-Спрингс, 28 июля 2006 г. Получено 22 февраля 2011 г.
^ "FreeBSD Handbook, Глава 20.5 GEOM: Модульная структура преобразования дисков" . Получено 20.12.2012 .
^ Уайт, Джей; Льюет, Крис (май 2010 г.). "RAID-DP: реализация NetApp RAID с двойной четностью для защиты данных. Технический отчет NetApp TR-3298" . Получено 2013-03-02 .
^ abc Newman, Henry (2009-09-17). "Дни RAID могут быть сочтены". EnterpriseStorageForum . Получено 2010-09-07 .
^ «Почему RAID 6 перестает работать в 2019 году». ZDNet . 22 февраля 2010 г. Архивировано из оригинала 15 августа 2010 г.
^ ab Lowe, Scott (16.11.2009). "Как защитить себя от неисправимых ошибок чтения (URE), связанных с RAID. Techrepublic" . Получено 01.12.2012 .
^ Виджаян, С.; Селвамани, С.; Виджаян, С. (1995). «Двухмерный дисковый массив с перекрестной штриховкой: высоконадежная гибридная архитектура RAID». Труды Международной конференции по параллельной обработке 1995 г.: том 1. CRC Press . стр. I–146 и далее . ISBN978-0-8493-2615-8– через Google Книги .
^ Раадт, Тео де (2005-09-09). "Поддержка управления RAID появится в OpenBSD 3.8". misc@ (Список рассылки). OpenBSD .
^ Муренин, Константин А. (2010-05-21). "1.1. Мотивация; 4. Драйверы датчиков; 7.1. NetBSD envsys / sysmon". Аппаратные датчики OpenBSD — мониторинг окружающей среды и управление вентиляторами ( диссертация на степень магистра математики ). Университет Ватерлоо : UWSpace. hdl :10012/5234. Идентификатор документа: ab71498b6b1a60ff817b29d56997a418.
^ "RAID через файловую систему". Архивировано из оригинала 2013-11-09 . Получено 2014-07-22 .
^ "ZFS Raidz Performance, Capacity and Integrity". calomel.org . Получено 26 июня 2017 г. .
^ "Создание и уничтожение пулов хранения ZFS – Руководство по администрированию Oracle Solaris ZFS". Корпорация Oracle . 2012-04-01 . Получено 2014-07-27 .
^ "20.2. Файловая система Z (ZFS)". freebsd.org . Архивировано из оригинала 2014-07-03 . Получено 2014-07-27 .
^ "Double Parity RAID-Z (raidz2) (Руководство по администрированию Solaris ZFS)". Oracle Corporation . Получено 27 июля 2014 г.
^ "Triple Parity RAIDZ (raidz3) (Руководство по администрированию Solaris ZFS)". Oracle Corporation . Получено 27 июля 2014 г.
^ Динадхаялан, Вира (2011). "General Parallel File System (GPFS) Native RAID" (PDF) . UseNix.org . IBM . Получено 28.09.2014 .
^ "Btrfs Wiki: Список функций". 2012-11-07 . Получено 2012-11-16 .
^ "Поддержка жестких дисков с большим сектором в Windows Vista". Microsoft . 2007-05-29. Архивировано из оригинала 2007-07-03 . Получено 2007-10-08 .
^ «Вы не можете выбрать или отформатировать раздел жесткого диска при попытке установки Windows Vista, Windows 7 или Windows Server 2008 R2». Microsoft . 14 сентября 2011 г. Архивировано из оригинала 3 марта 2011 г. Получено 17 декабря 2009 г.
^ "Использование Windows XP для создания RAID 5". Tom's Hardware . 19 ноября 2004 г. Получено 24 августа 2010 г.
^ Синофски, Стивен (5 января 2012 г.). «Виртуализация хранилища для масштабирования, отказоустойчивости и эффективности». Блог Building Windows 8. Архивировано из оригинала 9 мая 2013 г. Получено 6 января 2012 г.
^ Мецгер, Перри (1999-05-12). "Объявление о выпуске NetBSD 1.4". NetBSD.org . Фонд NetBSD . Получено 2013-01-30 .
^ "Страница руководства OpenBSD softraid". OpenBSD.org . Получено 2018-02-03 .
^ "FreeBSD Handbook". Глава 19 GEOM: Modular Disk Transformation Framework . Получено 2009-03-19 .
^ "Red Hat Enterprise Linux – Руководство администратора хранилища – Типы RAID". redhat.com .
^ Рассел, Чарли; Кроуфорд, Шарон; Эдни, Эндрю (2011). Работа с Windows Small Business Server 2011 Essentials. O'Reilly Media, Inc. стр. 90. ISBN978-0-7356-5670-3– через Google Книги .
^ Блок, Уоррен. "19.5. Программные RAID-устройства". freebsd.org . Получено 27 июля 2014 г.
^ abc «Аппаратный RAID против программного RAID: какая реализация лучше всего подходит для моего приложения? Техническая документация Adaptec» (PDF) . adaptec.com .
^ Ульф Троппенс, Вольфганг Мюллер-Фридт, Райнер Эркенс, Райнер Волафка, Нильс Хауштайн. Объяснение сетей хранения данных: основы и применение Fibre Channel SAN, NAS, ISCSI, InfiniBand и FCoE. John Wiley and Sons, 2009. стр. 39
^ Dell Computers, Background Patrol Read для контроллеров Dell PowerEdge RAID, Дрю Хабас и Джон Сибер, перепечатано из Dell Power Solutions, февраль 2006 г. http://www.dell.com/downloads/global/power/ps1q06-20050212-Habas.pdf
^ abc "Error Recovery Control with Smartmontools". 2009. Архивировано из оригинала 28 сентября 2011 г. Получено 29 сентября 2017 г.
^ Грей, Джим (октябрь 1990 г.). «Перепись доступности систем Tandem между 1985 и 1990 гг.» (PDF) . Труды IEEE по надежности . 39 (4). IEEE: 409–418. doi :10.1109/24.58719. S2CID 2955525. Архивировано из оригинала (PDF) 20.02.2019.
^ Мерфи, Брендан; Гент, Тед (1995). «Измерение надежности систем и программного обеспечения с использованием автоматизированного процесса сбора данных». Quality and Reliability Engineering International . 11 (5): 341–353. doi :10.1002/qre.4680110505.
^ Паттерсон, Д., Хеннесси, Дж. (2009), 574.
^ "Приключение RAID-миграции". 10 июля 2007 г. Получено 10 марта 2010 г.
^ Отказы дисков в реальном мире: что означает для вас MTTF в 1 000 000 часов? Бьянка Шредер и Гарт А. Гибсон
^ Харрис, Робин (27.02.2010). «Перестанет ли RAID 6 работать в 2019 году?». StorageMojo.com . TechnoQWAN . Получено 17.12.2013 .
^ JL Hafner, V. Dheenadhayalan, K. Rao и JA Tomlin. «Матричные методы восстановления потерянных данных в кодах стирания». Конференция USENIX по технологиям хранения и хранения файлов, 13–16 декабря 2005 г.
^ Миллер, Скотт Алан (2016-01-05). "Понимание производительности RAID на различных уровнях". Зона восстановления . StorageCraft . Получено 2016-07-22 .
^ Kagel, Art S. (2 марта 2011 г.). "RAID 5 против RAID 10 (или даже RAID 3, или RAID 4)". miracleas.com . Архивировано из оригинала 3 ноября 2014 г. . Получено 30 октября 2014 г. .
^ Бейкер, М.; Шах, М.; Розенталь, ДШ; Руссопулос, М.; Маниатис, П.; Джули, Т.; Бунгейл, П (апрель 2006 г.). «Новый взгляд на надежность долгосрочного цифрового хранения». Труды 1-й Европейской конференции по компьютерным системам ACM SIGOPS/EuroSys 2006 г. С. 221–234. doi :10.1145/1217935.1217957. ISBN1595933220. S2CID 7655425.
^ Bairavasundaram, LN; Goodson, GR; Pasupathy, S.; Schindler, J. (12–16 июня 2007 г.). «Анализ скрытых ошибок секторов в дисководах» (PDF) . Труды международной конференции ACM SIGMETRICS 2007 г. по измерению и моделированию компьютерных систем . стр. 289–300. doi :10.1145/1254882.1254917. ISBN9781595936394. S2CID 14164251.
^ Паттерсон, Д., Хеннесси, Дж. (2009). Организация и проектирование компьютеров . Нью-Йорк: Morgan Kaufmann Publishers. С. 604–605.
^ abc Левенталь, Адам (2009-12-01). "Triple-Parity RAID и далее. Очередь ACM, Ассоциация вычислительной техники" . Получено 2012-11-30 .
^ ""Write Hole" в RAID5, RAID6, RAID1 и других массивах". Команда ZAR . Получено 15 февраля 2012 г.