Лучшая конфигурация рейда для моего SQL Server 2005

У меня есть база данных SQL SERVER 2005, работающая на Windows Server 2008 со следующей конфигурацией SERVER: ЦП ​​HP Proliant ML380 G7: 1 ОЗУ: 10 ГБ ОЗУ HHD: 3*300 ГБ HHD с конфигурацией RAID 5.

Он имеет 10 действующих баз данных и 10 баз данных истории с различными размерами от 500 МБ до 6 ГБ. Эти базы данных имеют около 100 пользователей, которые будут читать и писать.

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

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

  • Кто-нибудь может подсказать мне, какой RAID будет лучшим для моей системы?

  • RAID1 или RAID5 или RAID10?.

  • Должен ли я пойти на два RAID-массива?

Из моего поиска я обнаружил, что RAID 10 хорош, но также кто-то говорит: "Преимущество RAID 10 - это миф", см. Статью ниже.

http://www.zdnet.com/blog/ou/comprehensive-raid-performance-report/484

3 ответа

Решение

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

Просто наглядный пример. Согласно этому документу, MS SQL Server 2008 генерирует 29000 операций ввода-вывода в секунду в 3557 транзакциях SQL (в секунду). Предположим, у нас есть база данных с такими необходимыми IOPS, где 75% запросов - это READ IOPS, а 25% - WRITE IOPS (1 запрос READ или 1 запрос WRITE равен 1 IOPS). Этот пример не будет учитываться при попадании в кеш.

Теперь, сколько IOPS должно предоставить базовый дисковый массив / диски? Мы можем использовать эту простую формулу, чтобы оценить ее

TOTAL_IOPS = REQ_IOPS x READ_IOPS + REQ_IOPS x WRITE_IOPS x RAID_PENALTY

В нашем примере мы имеем REQ_IOPS = 29000, READ_IOPS = 0.75 а также WRITE_IOPS = 0.25, Единственная отсутствующая переменная - это так называемый штраф RAID. Один диск SAS (15000 об / мин) имеет в среднем около 200 IOPS. Но когда диск является частью группы RAID, мы не можем получить такое количество операций ввода-вывода в секунду, потому что для записи данных на диск необходимо выполнить какие-то вычисления, чтобы мы могли восстановиться после сбоя диска. Таким образом, RAID1/10 (с 2 субзеркалами) имеет штраф 2, потому что будет 2 записи, по одной записи на каждый из дисков, в то время как RAID5/50 имеет штраф 4, потому что для каждого изменения диска мы чтение данных, чтение четности, а затем запись данных и запись четности до завершения операции. RAID6 имеет штраф 6.

Что это значит для нас? Давайте иметь конфигурацию RAID10 с RAID_PENALTY = 2

TOTAL_IOPS = 29000 x 0.75 +29000 x 0.25 x 2 = 36250 IOPS
TOTAL_DISKS = 36250 / 200 ~ 182 disks

В конфигурации RAID5 с RAID_PENALTY = 4

TOTAL_IOPS = 29000 x 0.75 +29000 x 0.25 x 4 = 50750 IOPS
TOTAL_DISKS = 50750 / 200 ~ 254 disks

Приведенный выше пример показывает нам, что для достижения 29000 операций ввода-вывода в секунду, очевидно, требуется больше дисков в конфигурации RAID5, чем в RAID10. Другой вопрос: какая доступная емкость диска в таких конфигурациях? Если наш диск SAS имеет 500 ГБ, то в конфигурации RAID10 у нас будет 500 x 182 / 2 = 45,5 ТБ, а при RAID5 500 x (254 - 1) = 126,5 ТБ (для такой же конфигурации с RAID10 потребуется 506 дисков!!!). Довольно мило

Так вам нужны IOPS по лучшей цене? Затем перейдите с RAID10, поскольку он имеет лучшее соотношение цена / количество операций ввода-вывода в секунду. Или вы предпочитаете более высокую производительность, но с аналогичными IOPS? Затем перейдите с RAID5, поскольку он имеет лучшее соотношение цена / МБ.

Наконец, эта таблица суммирует общие характеристики различных уровней RAID и может помочь вам выбрать правильный:

введите описание изображения здесь

Как видите, RAID10 является наиболее подходящим с точки зрения производительности. RAID5 плохо работает в письменном виде, поскольку имеет штраф 4, но обеспечивает лучшую емкость.

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

Я бы пошел с RAID 10. Нередко иметь отдельные шпиндели для журналов транзакций, и они имеют характеристики последовательной записи. RAID 1 может быть хорошим для этого.

AFAIK для SQL Server рекомендуется RAID 0, RAID 1 и RAID 5.
Проверьте эту ссылку: 1

Другие вопросы по тегам