Stripe size какой выбрать

Stripe size какой выбрать

Мы столкнулись с такой проблемой, что большинство серверов, приобретаемых пользователями наших программ, поставляются с дисковым массивом, сконфигурированным в уровень RAID 5. Впоследствии системные администраторы не хотят тратить время на переконфигурирование, или просто боятся что-то менять в уже настроенном и работающем компьютере. В результате производительность работы с базой данных, установленной на такой сервер, оказывается меньше, чем была на старом, который проработал на предприятии 3-4 года. Наверное, стремление поставщиков сконфигурировать дисковый массив именно в RAID пятого уровня можно объяснить желанием удивить клиента огромным размером дискового пространства. Сисадмины, в свою очередь, часто просто не обладают достаточными знаниями о том как работает RAID массив того или иного уровня. Цель данной статьи дать ответы на два вопроса:

Почему нельзя использовать RAID 5 для сервера базы данных?

Как оптимальным образом сконфигурировать RAID контроллер для размещения базы данных сервера Firebird?

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

Как работает RAID 5?

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

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


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

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

D = A xor B xor C

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


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

B = A xor C xor D

Сервер Firebird обменивается с дисковой подсистемой страницами данных. Оптимальный размер страницы в большинстве случаев составляет 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 способен пережить потерю только одного диска, то RAID 10 из m зеркал по два диска выживет в случае потери от одного до m дисков, при условии, что откажут не более чем по одному диску в каждом зеркале.

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


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

Как настроить RAID контроллер?

Размер кэш памяти

Чем больше – тем лучше. Главное, чтобы контроллер имел батарейку (аккумулятор) для сохранения содержимого памяти при аварийном отключении питания. Во многих контроллерах батарейка не входит в стандартную поставку и ее необходимо заказывать отдельно. Без батарейки кэш на запись будет отключен.

Уровень RAID

RAID 10. Если количество дисков меньше четырех, то RAID 1 (зеркало). Почему? Читайте статью с самого начала.

Размер страйпа

Размер страницы базы данных умноженный на количество зеркал в массиве. Например, если в массиве 8 дисков, объединенных в четыре зеркала по два диска, а размер страницы базы данных равен 8К, то размер страйпа следует выставить в 8 * 4 = 32К.

Упреждающее чтение

Так как последовательное обращение к страницам базы данных весьма редко, да и сами они в результате фрагментации могут находиться в разных местах диска, упреждающее чтение следует отключить, или использовать режим adaptive (упреждающее чтение в случае последовательного обращения к двум подряд идущим страницам).

Политика кэша на запись

Выбрать режим write back. Данные будут помещаться в кэш, а потом записываться на диск. Операция записи будет считаться завершенной сразу же после помещения данных в кэш.

Резервный (spare) диск

Если возможности контроллера позволяют, то рекомендуется включить в массив резервный диск. Такой диск в обычном режиме работы пребывает в состоянии stand by. В случае выхода из строя одного из рабочих винчестеров, резервный диск автоматически добавляется в массив.

Энтузиасты наверняка знают, как выполнять эти действия, но для тех, кто только собирается знакомиться с массивами, подобный материал может быть полезным. Да простят меня сторонники AMD, объяснять я буду на примере указанного выше стенда «Wintelidia».

Прежде всего, необходимо переключить в BIOS режим работы чипсетного контроллера в режим RAID.

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

Предположим, с этим все хорошо. Если ОС еще не установлена, можно войти в меню самого контроллера и создать массив в его утилите. Для этого нужно успеть нажать CTRL+I во время загрузки.

Если же есть возможность загрузиться с отдельного диска, проще всего поставить фирменные драйверы Intel и воспользоваться консолью Rapid Storage Technology. При наличии подходящих дисков будет доступна кнопка «Создать».

На первом шаге необходимо выбрать тип массива.

Затем выполнить непосредственно настройку. Есть возможность не создавать RAID с нуля, а взять за основу одиночный диск с данными. Кроме того, для всех массивов (кроме «зеркала») можно выбрать размер полосы данных, он же размер страйпа (stripe size). Это определяет размер блоков, на которые разбиваются данные. Большие значения полезны для работы с большими файлами, маленькие – прежде всего для маленьких транзакций в стиле СУБД (хотя все сильно зависит от СУБД, типа массива, вида нагрузки, настроения разработчиков прошивки контроллера и прочих особенностей). Обычно лучше оставлять настройку по умолчанию.

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

Таким образом, повышается скорость операций записи, но одновременно увеличивается риск потери данных в случае сбоев. Мы все делаем «бэкапы» (правда ведь???) и ждем от RAID-0 максимальной производительности, так что во всех тестах этих массивов кэш будет включен.

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

Кстати, сценарий не такой уж экзотический. Windows Server, будучи контроллером домена, всегда отключает кэш системного диска. Если нет дискретного RAID контроллера, который слушается только своего драйвера, скорость жестких дисков упадет в несколько раз. Посмотрим, как ведут себя SSD.

В моем случае отключение кэша через Intel RST почему-то не работало – после перезагрузки он включался вновь. Пришлось воспользоваться «Диспетчером устройств», а именно снять галку «Разрешить кэширование записей для этого устройства» в свойствах RAID массива.

Эта настройка и Intel RST взаимосвязаны, после снятия галки параметр «Кэш данных диска» также переходит в состояние «Выключен» и остается таким после перезагрузок.

В итоге будут протестированы следующие конфигурации:

  • Vertex 3 RAID-0, размер страйпа 32 Кбайта;
  • Vertex 3 RAID-0, размер страйпа 128 Кбайт;
  • Vertex 3 RAID-0, подключение через порты SATA-II;
  • Vertex 3 RAID-0, медленный ЦП (активны два ядра, HT отключен, частота 2400 МГц, память 1066 МГц CL7);
  • Vertex 3 RAID-1, кэш массива и дисков включен;
  • Vertex 3 RAID-1, кэш массива и дисков выключен;
  • Crucial M4 RAID-0, размер страйпа 32 Кбайта;
  • Crucial M4 RAID-1, кэш массива и дисков включен;
  • Crucial M4 RAID-1, кэш массива и дисков выключен;
  • Одиночный Vertex 3;
  • Одиночный Crucial M4;
  • Жесткий диск WD5000AAKX.

Тестирование в классических бенчмарках

Crystal Disk Mark

Скорость линейного чтения, Мбайт/с

Почти двукратный прирост скорости в RAID-0 вполне ожидаем. Размер страйпа не оказывает практически никакого влияния на больших файлах, процессорозависимость бенчмарка отсутствует. А вот SATA-II подключение резко ограничивает возможности системы до уровня одиночного устройства, подключенного через SATA-III.

Удивительно быстро работает RAID-1, не иначе как чтение осуществляется с двух накопителей одновременно. Раньше в тестах жестких дисков такого не наблюдалось, но то была более старая платформа и старые драйверы. При случае надо будет проверить парочку HDD. Скорость линейной записи, Мбайт/с

Включите JavaScript, чтобы видеть графики

На записи все меняется. Маленькие M4 слабы на запись, поэтому даже одиночный Vertex 3 обходит RAID-0 из двух дисков Crucial. Можно заметить, что отключенный кэш несущественно снижает скорость «зеркал». Скорость случайного чтения (блок 512 Кбайт), Мбайт/с

Включите JavaScript, чтобы видеть графики

Удивительно, но на чтении крупными блоками «страйпы» существенно замедляются и лидерами оказываются массивы RAID-1, причем без кэшей. На ошибку не похоже – и Vertex 3, и M4 ведут себя одинаково. Скорость случайной записи (блок 512 Кбайт), Мбайт/с

Включите JavaScript, чтобы видеть графики

В данном случае картина осталась похожей на ту, что была на линейной записи. Разве что механический диск замедлился почти вдвое. Скорость случайного чтения (блок 4 Кбайт), Мбайт/с

Включите JavaScript, чтобы видеть графики

Обычно так оно и происходит: во время проверки чистого времени доступа на чтение массивы только мешают. Скорость случайной записи (блок 4 Кбайт), Мбайт/с

Включите JavaScript, чтобы видеть графики

Маленькие запросы на запись можно кэшировать, поэтому производительность большинства систем значительно выше, чем на чтении. Исключение составляют конфигурации без кэша, особенно плачевно смотрится M4. Судя по всему, настройка отключает его 128-мегабайтный кэш, без которого SSD сваливается до уровня жесткого диска. А SandForce’ам кэш не ставят, им и так хорошо.

Кстати, обратите внимание, насколько сильно проявилась процессорозависимость. Загрузка ЦП в этом тесте действительно высока. Скорость случайного чтения (блок 4 Кбайт, длина очереди 32), Мбайт/с

Включите JavaScript, чтобы видеть графики

На глубокой очереди «марвеловские герои» просто потрясающи – сто тысяч IOPS за смешные деньги. Скорость случайной записи (блок 4 Кбайт, длина очереди 32), Мбайт/с

Включите JavaScript, чтобы видеть графики

Множество параллельных операций записи позволяют одиночному Vertex’у, зеркалам без кэша и системе с медленным CPU восстановить свою производительность. Все участники (кроме жесткого диска) работают как в сценарии с крупными блоками.

PCMark 7

Windows Defender, Мбайт/с

Включите JavaScript, чтобы видеть графики


importing pictures, Мбайт/с

Включите JavaScript, чтобы видеть графики


Video editing, Мбайт/с

Включите JavaScript, чтобы видеть графики


Windows Media Center, Мбайт/с

Включите JavaScript, чтобы видеть графики


adding music, Мбайт/с

Включите JavaScript, чтобы видеть графики


starting applications, Мбайт/с

Включите JavaScript, чтобы видеть графики


gaming, Мбайт/с

Включите JavaScript, чтобы видеть графики


storage score, баллы

Включите JavaScript, чтобы видеть графики

Разнообразие есть только в тесте importing pictures, в нем доминируют Vertex’ы.

В интернете есть масса статей с описанием RAID. Например, эта описывает все очень подробно. Но как обычно, читать все не хватает времени, поэтому надо что-нибудь коротенькое для понимания - а надо оно или нет, и что лучше использовать применительно к работе с СУБД (InterBase, Firebird или что то иное - на самом деле все равно). Перед вашими глазами - именно такой материал.

В первом приближении RAID это объединение дисков в один массив. SATA, SAS, SCSI, SSD - неважно. Более того, практически каждая нормальная материнская плата сейчас поддерживает возможность организации SATA RAID. Пройдемся по списку, какие бывают RAID и зачем они. (Хотел бы сразу заметить, что в RAID нужно объединять одинаковые диски. Объединение дисков от разных производителей, от одного но разных типов, или разных размеров - это баловство для человека, сидящего на домашнем компьютере).

RAID 0 (Stripe)

Грубо говоря, это последовательное объединение двух (или более) физических дисков в один "физический" диск. Годится разве что для организации огромных дисковых пространств, например, для тех, кто работает с редактированием видео. Базы данных на таких дисках держать нет смысла - в самом деле, если даже у вас база данных имеет размер 50 гигабайт, то почему вы купили два диска размером по 40 гигабайт, а не 1 на 80 гигабайт? Хуже всего то, что в RAID 0 любой отказ одного из дисков ведет к полной неработоспособности такого RAID, потому что данные записываются поочередно на оба диска, и соответственно, RAID 0 не имеет средств для восстановления в случае сбоев.

Конечно, RAID 0 дает ускорение в работе из-за чередования чтения/записи.

RAID 0 часто используют для размещения временных файлов.

RAID 1 (Mirror)

Зеркалирование дисков. Если Shadow в IB/FB это программное зеркалирование (см. Operations Guide.pdf), то RAID 1 - аппаратное зеркалирование, и ничего более. Упаси вас от использования программного зеркалирования средствами ОС или сторонним ПО. Надо или "железный" RAID 1, или shadow.

При сбое тщательно проверяйте, какой именно диск сбойнул. Самый частый случай погибания данных на RAID 1 - это неверные действия при восстановлении (в качестве "целого" указан не тот диск).

Насчет производительности - по записи выигрыш 0, по чтению - возможно до 1.5 раз, т. к. чтение может производиться "параллельно" (поочередно с разных дисков) . Для баз данных ускорение мало, в то время как при параллельном обращении к разным (!) частям (файлам) диска ускорение будет абсолютно точно.

RAID 1+0

Под RAID 1+0 имеют в виду вариант RAID 10, когда два RAID 1 объединяются в RAID 0. Вариант, когда два RAID 0 объединяются в RAID 1 называется RAID 0+1, и "снаружи" представляет собой тот же RAID 10.

RAID 2-3-4

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

RAID 5

Для него нужно минимально 3 диска. Данные четности распределяются по всем дискам массива

Обычно говорится, что "RAID5 использует независимый доступ к дискам, так что запросы к разным дискам могут выполняться параллельно". Следует иметь в виду, что речь идет, конечно, о параллельных запросах на ввод-вывод. Если такие запросы идут последовательно (в SuperServer), то конечно, эффекта распараллеливания доступа на RAID 5 вы не получите. Разумеется, RAID5 даст прирост производительности, если с массивом будут работать операционная система и другие приложения (например, на нем будет находиться виртуальная память, TEMP и т. п.).

Вообще RAID 5 раньше был наиболее часто используемым массивом дисков для работы с СУБД. Сейчас такой массив можно организовать и на SATA дисках, причем он получится существенно дешевле, чем на SCSI. Цены и контроллеры вы можете посмотреть в статьях
Причем, следует обратить внимание на объем покупаемых дисков - например, в одной из упомянутых статей RAID5 собирается из 4-х дисков объемом 34 гиг, при этом объем "диска" получается 103 гигабайта.

Тестирование пяти контроллеров SATA RAID - http://www.thg.ru/storage/20051102/index.html .

Adaptec SATA RAID 21610SA в массивах RAID 5 - http://www.ixbt.com/storage/adaptec21610raid5.shtml .

Почему RAID 5 - это плохо - https://geektimes.ru/post/78311/

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

Объем дискового массива RAID5 расчитывается по формуле (n-1)*hddsize, где n - число дисков в массиве, а hddsize - размер одного диска. Например, для массива из 4-х дисков по 80 гигабайт общий объем будет 240 гигабайт.

Есть по поводу "непригодности" RAID5 для баз данных. Как минимум его можно рассматривать с той точки зрения, что для получения хорошей производительности RAID5 необходимо использовать специализированный контроллер, а не то, что есть по умолчанию на материнской плате.

Статья RAID-5 must die . И еще о потерях данных на RAID5 .

Примечание. На 05.09.2005 стоимость SATA диска Hitachi 80Gb составляет 60 долларов.

RAID 10, 50

Дальше идут уже комбинации из перечисленных вариантов. Например, RAID 10 это RAID 0 + RAID 1. RAID 50 - это RAID 5 + RAID 0.

Интересно, что комбинация RAID 0+1 в плане надежности оказывается хуже, чем RAID5. В копилке службы ремонта БД есть случай сбоя одного диска в системе RAID0 (3 диска) + RAID1 (еще 3 таких же диска). При этом RAID1 не смог "поднять" резервный диск. База оказалась испорченной без шансов на ремонт.

Для RAID 0+1 требуется 4 диска, а для RAID 5 - 3. Подумайте об этом.

RAID 6

В отличие от RAID 5, который использует четность для защиты данных от одиночных неисправностей, в RAID 6 та же четность используется для защиты от двойных неисправностей. Соответственно, процессор более мощный, чем в RAID 5, и дисков требуется уже не 3, а минимум 5 (три диска данных и 2 диска контроля четности). Причем, количество дисков в raid6 не имеет такой гибкости, как в raid 5, и должно быть равно простому числу (5, 7, 11, 13 и т. д.)

Допустим одновременный сбой двух дисков, правда, такой случай является весьма редким.

По производительности RAID 6 я данных не видел (не искал), но вполне может быть, что из-за избыточного контроля производительность может быть на уровне RAID 5.

Rebuild time

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

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

Время восстановления функционирования массива в нормальном режиме напрямую зависит от объема дисков. Например, Sun StorEdge 3510 FC Array при размере массива 2 терабайта в монопольном режиме делает rebuild в течение 4.5 часов (при цене железки около $40000). Поэтому, при организации массива и планировании восстановления при сбое нужно в первую очередь думать именно о rebuild time. Если ваша база данных и бэкапы занимают не более 50 гигабайт, и рост в год составляет 1-2 гигабайта, то вряд ли имеет смысл собирать массив из 500-гигабайтных дисков. Достаточно будет и 250-гигабайтных, при этом даже для raid5 это будет минимум 500 гигабайт места для размещения не только базы данных, но и фильмов. Зато rebuild time для 250 гигабайтных дисков будет примерно в 2 раза меньше, чем для 500 гигабайтных.

Резюме

Получается, что самым осмысленным является использование либо RAID 1, либо RAID 5. Однако, самая частая ошибка, которую делают практически все - это использование RAID "подо все". То есть, ставят RAID, на него наваливают все что есть, и... получают в лучшем случае надежность, но никак не улучшение производительности.

Еще часто не включают write cache, в результате чего запись на raid происходит медленнее, чем на обычный одиночный диск. Дело в том, что у большинства контроллеров эта опция по умолчанию выключена, т.к. считается, что для ее включения желательно наличие как минимум батарейки на raid-контроллере, а также наличие UPS.

Текст
В старой статье hddspeed.htmLINK (и в doc_calford_1.htmLINK) показано, как можно получить существенное увеличение производительности путем использования нескольких физических дисков, даже для IDE. Соответственно, если вы организуете RAID - положите на него базу, а остальное (temp, OS, виртуалка) делайте на других винчестерах. Ведь все равно, RAID сам по себе является одним "диском", пусть даже и более надежным и быстродействующим.
признан устаревшим. Все вышеупомянутое вполне имеет право на существование на RAID 5. Однако перед таким размещением необходимо выяснить - каким образом можно делать backup/restore операционной системы, и сколько по времени это будет занимать, сколько времени займет восстановление "умершего" диска, есть ли (будет ли) под рукой диск для замены "умершего" и так далее, т. е. надо будет заранее знать ответы на самые элементарные вопросы на случай сбоя системы.

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

Размещение базы, shadow и backup

Несмотря на все преимущества RAID, категорически не рекомендуется, например, делать backup на этот же самый логический диск. Мало того что это плохо влияет на производительность, но еще и может привести к проблемам с отсутствием свободного места (на больших БД) - ведь в зависимости от данных файл backup может быть эквивалентным размеру БД, и даже больше. Делать backup на тот же физический диск - еще куда ни шло, хотя самый оптимальный вариант - backup на отдельный винчестер.

Объяснение очень простое. Backup - это чтение данных из файла БД и запись в файл бэкапа. Если физически все это происходит на одном диске (даже RAID 0 или RAID 1), то производительность будет хуже, чем если чтение производится с одного диска, а запись - на другой. Еще больше выигрыш от такого разделения - когда backup делается во время работы пользователей с БД.

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

Накопителя Intel DC S3700 100ГБ, а также тестирование массива RAID-0 на базе двух подобных накопителей, где размер Strip"а был выбран по умолчанию, то есть 128 КБ, но чипсет С226 позволяет изменять данный размер. В теории размер страйпа/полосы должен оказывать влияние на производительность массива - большой strip выгоден для последовательных операций, малый - при работе с маленькими файлами. Но это в теории, проверим это на практике.

RAID-контроллер Intel в чипсете С226 позволяет выбрать следующие размеры полосы: 4, 8, 16, 32, 64 и 128 КБ. Протестируем все возможные режимы.

Тестовый стенд: Intel Xeon E3-1276v3, Supermicro X10SAE, Kingston DDR3-1600 ECC 8GB, Intel DC S3700

Детализация

Процессор: (HT on; TB on);
- Материнская плата: ;
- Оперативная память: 4x (KVR16LE11/8);
- Накопители: 2x ;
- ОС: .

Методика тестирования

CrystalDiskMark v5.1 x64;
- ATTO Disk Benchmark v3.05;
- PCMark 7 v1.4;
- PCMark 8 v2.3.

CrystalDiskMark (500MB)

На последовательную запись без глубокой очереди размер strip"a не оказывает особого влияния - результаты находятся в рамках погрешности, а с последовательным чтением картина несколько иная: наиболее производительным оказываются массивы с размером страйпа 128 и 32 КБ, а наименее - 64 КБ. То есть для последовательных операций чтения всё-таки наиболее предпочтителен большой размер страйпа.

Операции с 4-килобайтными блоками без глубокой очереди не позволяют реализовать весь потенциал как отдельного накопителя, так и RAID-массива. Но главное здесь то, что на скорость записи размер страйпа имеет влияние - 16- и 64- килобайтные полосы показывают наихудшие результаты при чтении, а при записи худший результат за 8-килобайтной. Посмотрим как ситуация изменится с использованием очереди.

Использование очереди уровняло всех - ощутимой разницы между режимами нет: разница между самым быстрым (128 КБ) и самым медленным (8 КБ) режимами составила около 3,5% (что примечательно, наибольшую производительность при последовательных операциях показывает режим с большой полосой, а наименьшую - с малой).

А вот операции с 4-килобайтными блоками показывают иную картину - наибольшую производительность показывает массив с 8-килобайтным страйпом, а наименьшую - 128 (разница составила 5%), но... это касается лишь чтения, операции записи оказались равнодушными к размеру страйпа. То есть в операциях последовательного чтения выгодно смотрится большой размер strip, а в операциях с блоками 4КБ - малый размер strip.

ATTO Disk Benchmark

Бенчмарк ATTO более информативен - он показывает производительность на разных блоках. И здесь можно наблюдать резкие провалы производительности: наиболее стабильные кривые без резких провалов показывают режимы с 4- и 64- килобайтными полосами. Примечательно, что в области от 16 до 128 КБ 64-килобайтная полоса показывает меньшую производительность, чем 4-килобайтная, но отыгрывается после 256КБ.

График записи имеет немного другую зависимость - самым стабильным оказывается режим с 128-килобайтной полосой, который показывает лишь небольшой провал и лишь в области выше 32МБ.

PCMark 7

Бенчамарк PCMark 7 отдает предпочтение 4-килобайтной полосе. Причем данный бенчмарк эмулирует определенные сценарии работы... то есть является менее синтетическим, чем АТТО.

Основной вклад в победу малой полосы внесли сценарии starting applications и Windows Media Center. Но это RAW-результат...

Здесь ситуация в целом не меняется, разве что сами результаты стали на порядок меньше.

PCMark 8

PCMark 8 не заметил изменения параметров массива, уровняв всех в общем зачете. А замеренная пропускная способность отличается - наибольшая у 4-килобайтной полосы.

Заключение

Подводя итог... можно сказать, что в большинстве приложений, как ни странно, показал большую производительность массив с размером полосы 4 КБ. Но по большому счету разница не превысила 10%, то есть размер полосы нет такая уж и критичная величина. По крайней мере это можно сказать про сочетание чипсета C226 и двухдискового RAID-массива из накопителей Intel DC S3700 100 GB в выбранных бенчмарках.
Продолжение следует...
Остальные материалы по RAID-массивам на базе SSD - .



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows