Пример применение RAID–технологии при проектировании баз данных ORACLE

Лекция «Применение RAID-технологии при проектировании систем баз данных (на примере ORACLE)»     RAID (redundant array of inexpensive disks) – способ создания логического диска (тома) большого объёма и высокой пропускной способности путём объединения нескольких недорогих физических дисков в группу (массив). Применение технологии RAID переопределило методы проектирования, используемые для построения систем хранения, поддерживающих базы данных (в том числе и Oracle). В контексте производительности основными причинами перехода на RAID-массивы являются: - масштабируемость; - высокая доступность данных. Современные системы хранения данных требуют масштабирования производительности ввода/вывода, соразмерно увеличению объемов данных и без какой-либо потери доступности.

Основные понятия и определения

 

MTTR (mean time to repair) – среднее время восстановления (время, необходимое в случае отказа какого-либо диска для восстановления информации на новом диске за счёт имеющейся избыточности данных).

При работе с RAID-массивами в обязанности администратора входит:

- определение отказавшего диска,

- устранение отказа без останова обработки;

- восстановление потерянных данных на резервном диске;

- периодическая замена отказавших дисков на новые.

 

MTTF ( mean time to failure ) – среднее время безотказной работы.

Надежность матрицы любых устройств падает при увеличении числа этих устройств. При условии, что интенсивность отказов постоянна, т.е. при экспоненциальном законе распределения наработки на отказ, и при условии, что отказы независимы, среднее время безотказной работы матрицы дисков будет равно:

.

Страйпинг – это процесс разделения данных на отдельные части и распределение их на несколько дисков, которые составляют логический том (stripe-том).

При этом увеличение пропускной способности является  результатом способа выполнения операции чтения/записи в stripe-томе. Отдельный диск может обслуживать заданное количество операций ввода/вывода в секунду. При недостатке пропускной способности запросы начинают вставать в очередь.

Создавая отдельный том из порций данных, размещенных на нескольких дисках, можно линейно увеличивать возможности обработки запросов ввода/вывода, суммируя пропускную способность каждого диска. Теперь при обработке многочисленных запросов к файлу, расположенному на stripe-томе, они обслуживаются несколькими дисковыми устройствами одновременно.

Страйпинг сам по себе не уменьшает «время отклика» для обслуживаемых запросов ввода/вывода. Он лишь обеспечивает предсказуемое время отклика и способствует достижению лучшей производительности за счет балансирования запросов ввода/вывода между несколькими дисковыми устройствами в stripe-томе.

Нижеприведённая таблица показывает 4х-секционный stripe-том: данные будут разделены на 4 части и распределены между 4 дисками , ,  и .

 

 

Зеркалирование (mirroring) – это процесс одновременной записи данных на другой диск того же логического тома.

Зеркалирование обеспечивает защиту данных путем записи абсолютно одинаковой информации на каждый диск тома. Дополнительно зеркалирование может обеспечить улучшение операций чтения, поскольку запросы на чтение могут быть обработаны с любого диска тома.

Пример зеркалирования приведён ниже. Здесь представлен 4х-секционный зеркалированный stripe-том из 8 дисков. Данные будет распределены между дисками , ,  и и затем зеркально отображена на дисках , ,  и .

 

 

Контроль по четности – способ определения места расположения записи и проверки достоверности каждой полосы данных, записываемой в stripe-том.

Контроль по четности применяется в тех типах RAID, которые не поддерживают зеркалирование.

Алгоритмы контроля по четности поддерживают возможности кода коррекции ошибок (ECC – Error Correction Cod), который для заданной полосы данных в пределах RAID–массива вычисляет код четности. Размер порции данных зависит от операционной системы и аппаратного обеспечения. Коды, генерируемые алгоритмом контроля по четности, используются для воссоздания данных в случае дискового сбоя.

Вариант хранения кода по чётности представлен в нижеследующей таблице. В ней приведён пример 4х-секционного stripe-том с контролем по четности: данные  разделены между дисками , ,  и , а  код четности  для них будет храниться на диске .

 

Существуют другие типы RAID, хранящие код четности по-другому.

Виды реализации  RAID

RAID может быть реализован:

- как программное решение;

- как аппаратное решение;

- с использованием внешних контроллеров.

При реализации RAID как программного решения используется  управляющее программное обеспечение, поставляемое обычно вместе с операционной системой или в виде дополнительного ПО. Такой тип реализации потребляет ресурсы памяти, пропускной способности и CPU сервера, что должно быть учтено при проектировании  загрузки ресурсов сервера.

При реализации RAID в виде аппаратного решения используются микрокоманды в выделенных контроллерных модулях, которые подключают к серверу. Эти контроллеры являются внутренними по отношению к серверу, на котором реализован RAID.

RAID, реализованный с использованием внешних контроллеров, приводит к более длительным временам обслуживания запросов ввода/вывода. Это обусловлено более длинным каналом ввода/вывода между дисками и сервером.

 

 

Уровни RAID

В настоящее время наиболее популярны уровни RAID от 0 до 7:

- RAID 0

- RAID1: зеркальные диски;

- RAID 2: матрица с поразрядным расслоением

- RAID 3: аппаратное обнаружение ошибок и четность

- RAID 4: внутригрупповой параллелизм

- RAID 5: четность вращения для распараллеливания записей

- RAID 6: двумерная четность для обеспечения большей надежности

- RAID 7.

-  

Различия между уровнями основаны на различных конфигурациях ввода/вывода с различными уровнями и типами защиты данных, а также характеристиками производительности.

 

RAID 0. Этот уровень RAID считают «обычной» файловой системой, в которой реализован страйпинг. Потеря данных возможна при сбое любого диска. Данные просто разносятся по нескольким дискам. Этот уровень предоставляет хорошую производительность чтения/записи, но без возможности восстановления данных.

RAID1: Зеркальные диски. Зеркальные диски представляют традиционный способ повышения надежности магнитных дисков. Это наиболее дорогостоящий из рассматриваемых способов, так как все диски дублируются, и при каждой записи информация записывается также и на проверочный диск. Таким образом, обеспечивают более высокую надежность.

Дублирование всех дисков может означать удвоение стоимости всей системы или, иначе, использование лишь 50% емкости диска для хранения данных. Повышение емкости, на которое приходится идти, составляет 100%. Такая низкая экономичность привела к появлению следующего уровня RAID.

RAID 2: матрица с поразрядным расслоением. Один из путей достижения надежности при снижении потерь емкости памяти может быть подсказан организацией основной памяти, в которой для исправления одиночных и обнаружения двойных ошибок используются избыточные контрольные разряды (коды чётности). Такое решение можно повторить путем поразрядного расслоения данных и записи их на диски группы, дополненной достаточным количеством контрольных дисков для обнаружения и исправления одиночных ошибок. Один диск контроля четности позволяет обнаружить одиночную ошибку, но для ее исправления требуется больше дисков.

При передаче небольших порций данных производительность теряется, так как требуется записать либо считать группу целиком, независимо от конкретных потребностей. RAID уровня 2 не подходят для обработки транзакций.

RAID 3: аппаратное обнаружение ошибок и четность. Большинство контрольных дисков, используемых в RAID уровня 2, нужны для определения положения неисправного разряда. Эти диски становятся полностью избыточными, так как большинство контроллеров в состоянии определить, когда диск отказал при помощи специальных сигналов, поддерживаемых дисковым интерфейсом, либо при помощи дополнительного кодирования информации, записанной на диск и используемой для исправления случайных сбоев.

По существу, если контроллер может определить положение ошибочного разряда, то для восстановления данных требуется лишь один бит четности. Уменьшение числа контрольных дисков до одного на группу снижает избыточность емкости до вполне разумных размеров. Часто количество дисков в группе равно 5 (4 диска данных плюс 1 контрольный).

RAID 4: внутригрупповой параллелизм. RAID уровня 4 повышает производительность передачи небольших объемов данных за счет параллелизма, давая возможность выполнять более одного обращения по вводу/выводу к группе в единицу времени. Логические блоки передачи в данном случае не распределяются между отдельными дисками, вместо этого каждый индивидуальный блок попадает на отдельный диск.

Достоинство поразрядного расслоения состоит в простоте вычисления кода Хэмминга, что необходимо для обнаружения и исправления ошибок в системах уровня 2. В RAID уровня 3 обнаружение ошибок диска с точностью до сектора осуществляется дисковым контроллером. Следовательно, если записывать отдельный блок передачи в отдельный сектор, то можно обнаружить ошибки отдельного считывания без доступа к дополнительным дискам. Главное отличие между системами уровня 3 и 4 состоит в том, что в последних расслоение выполняется на уровне сектора, а не на уровне битов или байтов.

В системах уровня 4 обновление контрольной информации реализовано следующим образом: ,

где  – исключающее «или» (xor).

В системах уровня 4 для записи небольших массивов данных используются два диска, которые выполняют четыре выборки (чтение данных плюс четности, запись данных плюс четности). Производительность групповых операций записи и считывания остается прежней, но при небольших (на один диск) записях и считываниях производительность существенно улучшается. RAID уровня 4 позволяли добиться параллелизма при считывании отдельных дисков, но запись по-прежнему ограничена возможностью выполнения одной операции на группу, так как при каждой операции должны выполняться запись и чтение контрольного диска.

RAID 5: четность вращения для распараллеливания записей. Система уровня 5 улучшает возможности системы уровня 4 посредством распределения контрольной информации между всеми дисками группы. Это небольшое изменение оказывает огромное влияние на производительность записи небольших массивов информации.

Если операции записи могут быть спланированы так, чтобы обращаться за данными и соответствующими им блоками четности к разным дискам, появляется возможность параллельного выполнения N/2 записей,

где N - число дисков в группе.

Данная организация имеет одинаково высокую производительность при записи и при считывании как небольших, так и больших объемов информации, что делает ее наиболее привлекательной в случаях смешанных применений.

RAID 6: Двумерная четность для обеспечения большей надежности. Этот вариант реализации  можно рассмотреть в контексте соотношения отказоустойчивость/пропускная способность. RAID 5 предлагают, по существу, лишь одно измерение дисковой матрицы, вторым измерением которой являются секторы.

 Теперь рассмотрим объединение дисков в двумерный массив таким образом, чтобы секторы являлись третьим измерением. Мы можем иметь контроль четности по строкам, как в системах уровня 5, а также по столбцам, которые, в свою очередь. могут расслаиваться для обеспечения возможности параллельной записи.

 При такой организации можно преодолеть любые отказы двух дисков и многие отказы трех дисков. Однако при выполнении логической записи реально происходит шесть обращений к диску: за старыми данными, за четностью по строкам и по столбцам, а также для записи новых данных и новых значений четности. Для некоторых применений с очень высокими требованиями к отказоустойчивости такая избыточность может оказаться приемлемой, однако для традиционных суперкомпьютеров и для обработки транзакций данный метод не подойдет.

В общем случае, если доминируют короткие записи и считывания и стоимость емкости памяти не является определяющей, наилучшую производительность демонстрируют системы RAID уровня 1. Однако если стоимость емкости памяти существенна, либо если можно снизить вероятность появления коротких записей (например, при высоком коэффициенте отношения числа считываний к числу записей, при эффективной буферизации последовательностей считывания-модификации-записи, либо при приведении коротких записей к длинным с использованием стратегии кэширования файлов), RAID уровня 5 могут обеспечить очень высокую производительность, особенно в терминах отношения стоимость/производительность.

RAID 7 позволяет выполнять асинхронные операции чтения и записи, которые в свою очередь улучшают общую производительность ввода/вывода. RAID 7 имеет те же характеристики, что и RAID 3, где все коды четности хранятся на выделенном диске. RAID 7 – относительно новое устройство, может заменить RAID 3.

 

Уровень RAID Функциональность
RAID 0 Страйпинг. Нет возможностей восстановления. Требуется производительность при операциях чтения/записи без возможностей восстановления данных.
RAID 1 Зеркалирование. Предоставляет возможности восстановления. Требуется производительность при операциях записи.
RAID 0+1/1+0 Комбинация уровней 0 и 1. Возможности восстановления данных. Требуется производительность при операциях чтения и записи. Очень широко распространен, 1+0 лучше, чем 0+1 по критерию доступности данных.
RAID 2 Ранняя реализация страйпинга с контролем по четности. Для вычисления четности используется код Хемминга. Был замещен RAID 3, RAID 5 и RAID 7. Применяется очень редко.
RAID 3 Страйпинг с контролем по четности на бит/байт уровне. Выделенный диск для хранения кодов четности. Возможности восстановления данных. Требуется производительность при операциях массированного чтения. Не широко распространен, но набирает популярность.
RAID 4 Страйпинг с контролем по четности на уровне блока. Выделенный диск для хранения кодов четности. Возможности восстановления данных. Применяется очень редко.
RAID 5 Страйпинг с контролем по четности на уровне блока. Коды четности распределены по дискам тома вместе с данными. Возможности восстановления данных. Используется для повышения  производительность небольших по размеру операций чтения случайной природы. Очень широко распространен.
RAID 6 Страйпинг с алгоритмом многомерного контроля по четности на уровне блока. Возможности восстановления. Более медленная запись данных по сравнению с RAID 5. Применяется очень редко.
RAID 7 То же самое, что и RAID 3, но с поддержкой возможности асинхронных операций чтения и записи. По сравнению с RAID 3 общая производительность ввода/вывода значительно лучше. Гораздо дороже, чем RAID 3.

 

Качественная характеристика производительности ввода/вывода в зависимости от профиля ввода/вывода и используемого уровня RAID приведена в следующей таблице:

 

 

Характеристика системы

  RAID 1 RAID 0+1/ RAID 1+0 RAID 5

Произвольное чтение Лучшая Хорошая Средняя

Последовательное чтение (большие блоки) Средняя Хорошая Лучшая

Последовательное чтение (малые блоки) Средняя Хорошая (RAID 0+1) Лучшая (RAID 1+0) Хорошая

Произвольная запись (низкая и средняя активность) Хорошая Хорошая (RAID 0+1) Лучшая (RAID 1+0) Хорошая

Произвольная запись (высокая активность) Лучшая Хорошая Средняя

Последовательное чтение Средняя Хорошая Хорошая

 

 

Пример применение RAID–технологии при проектировании баз данных ORACLE

Базы данных работают на двоичных устройствах и файловых системах. При работе с БД установить усовершенствованные файловые системы (JFS, VXFS, QFS, XFS), поддерживающие асинхронный ввод-вывод на уровне ядра или прямой ввод-вывод. Асинхронный ввод/вывод позволяет самой БД, а не ОС, управлять блокировкой файлов при параллельном доступе. Прямой ввод-вывод позволяет записывать данные из буфера БД прямо на диск, минуя кэш файловой системы; за счет этого экономятся ресурсы ЦПУ и память.

Рис. 2. 20–дисковый RAID–массив, размеченный для ORACLE.

 

Приведенная схема размещения данных включает комбинацию нескольких уровней RAID. В интенсивно используемых OLTP-системах рекомендуется распределять файлы журналов на два или более диска, чтобы запись информации в один файл журнала не мешала чтению из другого. Поскольку журналы записываются при каждой транзакции, в OLTP-системах рекомендуется физически изолировать журналы от всех остальных файлов БД.

Технология RAID помогает обойти узкие места БД. Запись в журналы идет последовательно, поэтому применение RAID 1 сокращает время поиска. Результаты сортировки и временные таблицы не представляют ценности, поэтому для пространства temp или БД tempdb подойдет и RAID 0. При проектировании БД нужно предусмотреть устройства для выгрузки архивных файлов и моментальных снимков. Для этого лучше задействовать RAID 5.

Для построения систем хранения Oracle и SQL Server можно использовать и другие методы. Цель новой методологии Oracle — Stripe And Mirror Everything (SAME) — максимально упростить проектирование среды хранения для БД.

Четыре правила SAME:

- чередование всех файлов по всем дискам с глубиной блока 1 Мб

- зеркальное отображение данных для высокой доступности

- размещение часто используемых данных на внешних дорожках дисков

- разбиение данных по разделам, а не дискам

Чередование файлов БД по нескольким дискам — простой, но эффективный способ снижения нагрузки на подсистему ввода-вывода. Большая ширина блоков чередования обеспечивает хорошую производительность произвольного ввода-вывода, а глубина чередования в 1 Мб оптимальна для последовательных операций ввода-вывода. Фактически, поскольку технология изготовления дисков продолжает совершенствоваться, глубину чередования можно делать больше, так как скорость форматированной передачи (в Mб/с) в новых моделях дисков растет быстрее, чем скорость позиционирования головок. В результате хранилище следует приобретать, исходя из требований ввода-вывода БД, а не ее емкости. Дополнительные дисководы, как правило, призваны расширять пропускную способность ввода-вывода, а не емкость хранилища.

SAME предписывает чередовать зеркальные диски (RAID 1+0) для повышения доступности, а не зеркально отображать чередуемые диски (RAID 0+1) для защиты на случай отказа нескольких дисков. SAME также рекомендует размещать данные на внешних дорожках дисков: они вращаются быстрее внутренних, поэтому скорость передачи выше. При этом уменьшается и время поиска, так как половина объема диска приходится на внешние края поверхности диска.

Последнее правило — разбивка по разделам, а не дискам, т. е. лучше распределять несколько томов по множеству дисков, чем отдельные тома по нескольким дискам.

Методология SAME сочетает в себе современные средства управления томами и технологию RAID для повышения производительности, а также упрощает настройку хранилищ БД. Она идеально подходит для многих сред с хранилищами БД, но в случае многопользовательских сред будьте осторожны.

Самый простой подход в развертывании SAME — создать несколько томов и распределить их по всем доступным дискам. Для восстановления данных создайте зеркальное отображение дисков.

Часто используемые файлы БД (например, журналы довыполнения и резервного копирования, области временного хранения данных и т. п.), можно размесить на томах ближе к внешним дорожкам, а такие системные файлы или файлы сегментов отката — на томах ближе к середине. При высокой интенсивности ввода-вывода глубина чередования должна превышать максимальный размер блока ввода-вывода.

 


Дата добавления: 2018-09-23; просмотров: 237; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!