Администрирование

Производительность сервера SYBASE на RAID 5 массиве

Производительность сервера SYBASE на RAID 5 массиве

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

Стремление поставщиков сконфигурировать дисковый массив именно в RAID пятого уровня можно объяснить желанием удивить клиента огромным размером дискового пространства. Сисадмины, в свою очередь, часто просто не обладают достаточными знаниями о том как работает RAID массив того или иного уровня.

Цель данной статьи - найти ответы на вопросы:

  1. Правильно ли использовать RAID 5 для сервера базы данных?
  2. Как оптимальным образом сконфигурировать RAID-контроллёр для размещения базы данных сервера Sybase?

Принцип работы RAID 5

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

Рассмотрим упрощенную схему работы массива из четырех дисков. Один из дисков выделяется для хранения контрольной суммы. Три – доступны для размещения данных. На рисунке ниже, диски с полезной информацией названы A, B и C. Диск D хранит контрольные суммы.

RAID 5 SYBASE

Минимальный объем информации, который контроллер считывает или записывает на оди диск, называется стрипом (strip). В параметрах большинства контроллеров, с которыми нам приходилось сталкиваться, указывается не размер стрипа, а размер страйпа (stripe) – блока информации, который распределяется на все диски массива. На рисунке ниже один страйп выделен более темным цветом.

RAID 5 SYBASE 2

Размер страйпа равен размеру стрипа умноженного на количество жёстких дисков в массиве. Таким образом в случае с четырьмя дисками и размером страйпа 64К, минимальное количество информации, которое контроллер способен записать или считать с диска, равен 64 / 4 = 16К.

Контрольная сумма, которая попадает на диск D, рассчитывается по следующей формуле:

D = A xor B xor C

Благодаря транзитивности операции xor в случае выхода из строя одного из дисков с полезной информацией её можно восстановить xor-ированием данных оставшихся дисков, включая диск с контрольной суммой. Например, вышел из строя диск B.

RAID 5 SYBASE 3

При запросе блока информации с диска B контроллер восстановит его по формуле:

B = A xor C xor D

Сервер Sybase обменивается с дисковой подсистемой страницами данных. Оптимальный размер страницы в большинстве случаев составляет 8К, что намного меньше размера страйпа и в большинстве случаев даже меньше чем размер стрипа. Ситуации, когда на диск записываются последовательно расположенные страницы, также достаточно редки. Таким образом, если в нашем примере происходит запись информации на диск А, то контроллеру придется выполнить следующие операции:

  1. Прочитать данные стрипов с дисков B и C. Две операции чтения.
  2. Рассчитать новую контрольную сумму. Две операции xor.
  3. Запись информацию на диск A и контрольную сумму на диск D. Две операции записи.

Итого, два чтения, две записи и две операции xor. Невозможно чтобы при таком объеме работы, общая производительность не падала. Становится очевидным почему RAID 5 не подходит для размещения файлов баз данных.

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

Впрочем, как и у любого правила, у нашего — тоже есть свое исключение. Производительность дискового массива RAID 5 не будет снижаться, если размер энергонезависимой кэш памяти контроллера сопоставим с размером файла базы данных. Например, при размере кэш памяти в 512 Мб вполне можно использовать RAID массив пятого уровня для баз до 1-1,5 Гб. При условии, что сервер выделен только для работы с базой данных и не выполняет других задач.

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

Выбор уровня RAID

Если RAID 5 не подходит, то какой уровень выбрать для размещения файла базы данных? При количестве дисков меньше четырех единственным вариантом является зеркало (mirror) – RAID 1. Если в массиве от четырех дисков и более, то оптимальным с точки зрения производительности и надежности в таком случае будет RAID 10 – объединение (RAID 0) нескольких зеркал (RAID 1). Иногда можно встретить написание как RAID 1+0. На рисунке ниже представлен массив RAID 10 из четырех дисков. Темным тоном выделены данные одного страйпа. Штриховка показывает дубликат этого страйпа.

RAID 5 SYBASE 4

Если массив RAID 5 способен пережить потерю только одного диска, то RAID 10 из m зеркал по два диска выживет в случае потери от одного до m дисков, конечно при условии, что выйдет из строя не более чем по одному диску в каждом зеркале.

Попробуем количественно сравнить массивы RAID 5 и RAID 10, в каждом из которых n дисков. n кратно двум. Примем размер читаемого/записываемого блока данных равным размеру стрипа. В таблице ниже приведено необходимое количество операций чтения/записи и xor-ирования данных.

Количественно сравнение массивов RAID 5 и RAID 10

Хорошо видно, что массив RAID 10 имеет не только более высокую производительность при записи, но и не допускает общего снижения производительности при выходе из строя одного диска.

Выходит что ответ очевиден. Для хранения файлов баз данных лучше использовать RAID 10.

Похожие статьи

Оставить комментарий