О:
RAID - путь комбинирования нескольких дисков в одно целое
для увеличения скорости и/или надежности. Существует
несколько различных типов и реализаций RAID, каждый
со своими преимуществами и недостатками. Например,
помещая копию одинаковых данных на два диска (называется
зеркализация дисков, или RAID уровня 1), скорость чтения может быть
повышена поочередным считыванием с каждого диска зеркала.
В среднем, каждый диск менее занят, т.к. он обрабатывает только половину
операций чтения (для двух дисков), или 1/3 (для трех дисков), и т.д.
В дополнение, зеркало может повышать надежность: если один диск
выходит из строя, другой диск содержит копию данных. Различные пути
комбинирования дисков в один, обозначаются уровнями RAID,
могут обеспечить большую эффективность хранения,
чем просто зеркализация, или могут изменить производительность по задержкам (времени доступа),
или производительность пропускной способности (скорости передачи), для
чтения или записи, в то же время поддерживается избыточность - это
полезно для противодействия отказам.
Хотя RAID может защитить от отказа, он не защищает от
ошибок оператора и администратора (человека), или потерь
вызванных ошибками программ (возможно и ошибками собственно программной реализации
RAID). Сеть изобилует трагическими историями о системных администраторах, которые неправильно
устанавливали RAID, и потеряли все свои данные. RAID - не
заменяет необходимость частого, регулярного планового резервного
копирования.
RAID может быть реализован аппаратно,
в виде специальных дисковых контроллеров, или
программно, как модуль ядра который связывает
низкоуровневый драйвер диска, и файловую систему,
которая находится на нем.
Аппаратный RAID - всегда "дисковый контроллер", - это устройство
к которому могут подсоединяться диски. Обычно он представляет
собой плату, которая вставляется в слот
ISA/EISA/PCI/S-Bus/MicroChannel. Однако, некоторые RAID
контроллеры - в виде ящика, который соединяется кабелями
с используемым дисковым контроллером, и
дисками. Меньшие из них помещаются в дисковой стойке; большие
могут быть встроены в дисковый шкаф со своими собственными
стойками и источником
питания. Последние аппаратные RAID используют с
последними и быстрейшими процессорами, что обеспечивает обычно
лучшую общую производительность,
несмотря на значительную цену. Это потому, что большинство
RAID контроллеров поставляются с встроенными процессорами на борту
и кеш-памятью,
которые могут значительно разгрузить суммарную обработку
главного процессора, насколько позволяет скорость поступления данных
в большой кеш контроллера. Старые аппаратные RAID могут работать как
"тормоз" когда используются с новейшими процессорами: вчерашние
модные встроенные процессоры и кеш могут быть бутылочным
горлышком, и их
производительность часто превосходится чисто-программными RAID
и новыми,
но простыми в других отношениях, дисковыми контроллерами.
Аппаратные RAID могут иметь преимущество над чисто-программными
RAID, если используют синхронизацию шпинделей дисков
и знают позицию дисковых пластин относительно
головок диска и желаемого дискового блока.
Однако, большинство современных (дешевых) дисков не предоставляют
эту информацию, во всяком случае, средства управления этим и т.о.,
большинство аппаратных RAID не имеет этих преимуществ.
Аппаратные RAID различных производителей, версий и моделей обычно не
совместимы:
если RAID контроллер отказывает, он должен быть заменен на другой
контроллер того-же самого типа. На момент написания (Июнь 1998),
широкое разнообразие аппаратных контроллеров используется под Linux;
однако, никакой из них, на текущий момент, не поставляется с
утилитами конфигурации
и управления, которые запускаются под Linux.
Software-RAID - набор модулей ядра, вместе с утилитами управления,
которые реализуют чисто программный RAID,
и не требуют необычной аппаратуры. Подсистема Linux RAID
реализована в ядре, как уровень над низкоуровневыми
драйверами дисков (для IDE, SCSI и Paraport устройств),
и интерфейсом блочных устройств. Файловая система, будь то ext2fs,
DOS-FAT, или другая, работает поверх блочного интерфейса.
Программный RAID, по своей программной природе, склонен быть более
гибким, чем аппаратная реализация. Обратная сторона этого -
требуется больше процессорного времени, по сравнению с аппаратной
реализацией.
Конечно, цена не превзойденная. Кроме того программный RAID имеет
одну важную
отличительную особенность: он оперирует базируясь на разделах,
где несколько отдельных дисковых разделов собираются вместе для
создания разделов RAID. В этом отличие
от большинства аппаратных решений RAID, которые объединяют вместе
целые диски в массив. В аппаратных RAID, факт, что
массив RAID - прозрачен для операционной системы,
упрощает управление.
В программном, гораздо больше конфигурационных опций и вариантов,
что запутывает дело.
На момент написания (Июнь 1998), администрирование RAID
под Linux далеко от простоты, и это лучше пробовать
опытным системным администраторам. Теория функционирования
сложна. Системные инструменты требуют модификации загрузочных скриптов.
И восстановление дискового отказа непростая задача,
и способствует ошибкам человека. RAID не для новичков,
и полученный прирост в надежности и производительности,
может запросто перевеситься излишней сложностью. Действительно,
современные диски - невероятно надежны и современные
процессоры и контроллеры вполне мощные. Вы можете более
просто получить желаемую надежность и производительность
купив диск высшего качества и/или быструю аппаратуру.
В:
Что такое уровни RAID? Почему так много? Чем различаются?
О:
Различные уровни RAID имеют различную производительность,
избыточность, емкость, надежность и ценовые характеристики.
Большинство, но не все, из уровней RAID
предоставляют повышенную защиту от отказов диска. Из тех, которые предоставляют
избыточность, RAID-1 и RAID-5 более популярны.
RAID-1 предлагает лучшую производительность, в то же время RAID-5 применяется
для более продуктивного использования имеющихся емкостей накопителей.
Однако, настройка производительности - совсем иное дело,
так как производительность зависит от множества различных факторов,
от типа приложения, до размеров
stripe-ов, блоков, и файлов. Более трудные аспекты настройки производительности
откладываются до более поздних разделов этого HOWTO.
Далее описывается разница между уровнями RAID в контексте реализации программного RAID в Linux.
RAID-linear
простое объединение разделов для создания большого виртуального раздела.
Это применяется если у Вас несколько маленьких дисков,
и Вы хотите создать один большой раздел.
Это объединение не предлагает избыточности, и фактически уменьшает общую
надежность: если один из дисков выходит из строя, весь раздел выходит из строя.
RAID-1 так же называемый "зеркализацией"("mirroring").
Два (или более) раздела, все одинакового размера, каждый содержит
точную копию всех данных, блок в блок.
Зеркализация дает сильную защиту от отказов диска:
если один диск отказывает, есть другой с точной копией данных.
Зеркализация также может помочь увеличить производительность
подсистемы ввода-вывода, так как запросы на чтение могут
быть разделены между несколькими дисками. К несчастью,
зеркализация также менее эффективна в смысле емкости:
два зеркальных раздела могут вместить не больше данных, чем один раздел.
Striping - базовая концепция всех других уровней RAID.
stripe - непрерывная последовательность дисковых блоков.
stripe может быть размером с один дисковый блок,
или может состоять из тысяч. Устройства RAID разделяют содержащие их разделы дисков на stripe-ы;
различные уровни RAID различаются в том, как они организуют stripe-ы, и как данные размещаются на них.
Взаимодействие между размером stripe-ов, типичными размерами файлов
в системе, и их положением на диске - определяет общую производительность подсистемы RAID.
RAID-0 подобна RAID-linear, исключая то, что
компоненты разделов делятся на strip-ы и затем
чередуются. Подобно RAID-linear, результат - один
большой виртуальный раздел. Так же как и в RAID-linear, это не
предполагает избыточности, и тоже уменьшает общую надежность:
отказ одного диска ударит по всему.
RAID-0 часто претендует на увеличение производительности по сравнению
RAID-linear. Однако, это может быть или не быть справедливо,
в зависимости от характеристик файловой системы, типичного размера
файла по сравнению с размером stripe, и типа рабочей нагрузки.
Файловая система ext2fs
уже рассеивает файлы по разделу,
стараясь минимально фрагментировать. Итак, на простейшем уровне,
любой доступ может быть выполнен к одному из нескольких дисков,
и таким образом, чередование stripe-ов по многим
дискам предоставляет реальные преимущество. Однако,
существует разница в производительности, она зависит от данных,
рабочей загрузки, и размера stripe.
RAID-4 чередует stripe-ы подобно RAID-0, но
требуется дополнительный раздел для размещения информации о четности.
Четность используется для получения избыточности:
если один из дисков отказывает, данные на оставшихся дисках
могут быть использованы для воссоздания данных на отказавшем диске.
Получаем N дисков с данными, и один диск с четностью,
stripe четности вычисляется так - берется один stripe из каждого
диска с данными, и XOR-ятся вместе. Итак,
емкость (N+1)-дисков массива RAID-4 равна N, что намного лучше чем зеркализация (N+1) дисков,
и почти так же хорошо, как RAID-0 на N.
Заметьте, что для N=1, где один диск с данными, и один паритетный,
RAID-4 эквивалентен зеркализации, при этом каждый из двух дисков
копирует друг друга. Однако,
RAID-4 НЕ дает производительности чтения зеркализации,
и имеет пониженную производительность записи. По просту, это потому, что обновление
паритета требует чтения старого паритета, перед тем, ка новый паритет
может быть вычислен и записан. При большом количестве операций записи,
паритетный диск может стать "бутылочным горлышком", т.к. каждая операция записи
должна обращаться к паритетному диску.
RAID-5 освободжден от "бутылочного горлышка" при записи на RAID-4
размещением паритетных stripe вперемешку на каждом диске. Однако,
производительность записи все еще не столь хороша, как при зеркализации,
так как паритетный stripe все же должен быть считан и XOR-ен перед записью.
Производительность чтения тоже не так хороша, как при зеркализации, так как, после этого,
есть только одна копия данных, не две или более.
Принципиальное преимущество RAID-5 над зеркализацией то, что он предоставляет
избыточность и защиту от отказа одного диска, в то же время предоставляет
намного больше емкости, когда используется с тремя или более дисками.
RAID-2 и RAID-3 редко используются, и
в некоторой степени стали устаревшими для современных дисковых технологий.
RAID-2 подобен RAID-4, но размещает ECC информацию вместо паритетной.
С тех пор как все современные диски реализуют ECC в себе, это предоставляет
маленькую дополнительную защиту. RAID-2 может дать большую
целостность данных, если пропало питание в процессе записи; однако,
резервные аккумуляторы и чистое завершение работы могут дать ту же выгоду.
RAID-3 подобен RAID-4, исключая то, что он использует
наименьший возможный размер stripe. Как результат, любая операция чтения
будет включать в себя все диски, делая перекрытие
запросов ввода-вывода трудным/невозможным. Для избежания
задержек при ожидания вращения, RAID-3 требует синхронизации всех
шпинделей дисков. Большинство современных дисков
не имеют способности синхронизировать шпиндели, или,
если и имеют, не имеют нужных соединителей, кабелей,
и документации производителей. Ни RAID-2 ни RAID-3
не поддерживаются драйверами программного RAID в Linux.
Прочие уровни RAID определены различными
исследователями и поставщиками. Многие из них представляют
наложение одного типа raid поверх другого. Некоторые требуют
специального оборудования, а другие защищены патентами.
Нет единой схемы именования этих уровней. Иногда преимущества этих
систем небольшие, или по крайне мере не проявляются
пока система не слишком нагружена. Исключая
размещение RAID-1 поверх RAID-0/linear, Программный RAID Linux
не поддерживает никакие друге варианты.
Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!