У нас есть новый сервер Dell R710, который поставляется со следующей конфигурацией хранилища:
8 дисков SAS 10k 6 Гбит / с по 146 ГБ
1 x интегрированный контроллер Perc H700 (2 x 4 диска - 2 порта, каждый с поддержкой 4 дисков)
Какой была бы оптимальная конфигурация, если бы мы были сразу после выступления?
Какой была бы оптимальная конфигурация, если бы мы хотели добиться производительности, но хотели обеспечить устойчивость данных.
Как в пункте 2 выше, но с диском горячего резервирования?
Мы планируем использовать Windows 2008 R2 и SQL Server 2008 R2.
Увеличение емкости хранилища не является главной задачей.
Просканировав Server Fault и другие ресурсы, я сначала подумал:
2 диска в RAID 1 для ОС
4 диска в RAID 10 для файлов данных
2 диска в RAID 1 для журналов транзакций
Я также подумал о том, чтобы поместить tempdb либо на диски журнала транзакций, либо на диски ОС?
Я знаю, что это старый вопрос, но он все еще актуален.
Сначала несколько замечаний по производительности. Как вы упомянули, есть три "части": файлы данных, файлы журналов и tempdb.
1) файлы данных: обычно произвольный ввод-вывод. Если это рабочая нагрузка с большим количеством операций чтения, RAID 5 - хороший выбор. Если есть значительные записи, то отдавайте предпочтение RAID 1 + 0
2) файлы журнала: обычно последовательная запись. RAID 1 + 0 является оптимальным, но, вероятно, излишним, учитывая ваши ограничения, к которым я вскоре перейду. Лучше всего разделить их по соображениям производительности и безопасности (http://support.microsoft.com/kb/2033523/en-us)
3) tempdb: часто является узким местом и требует большого количества случайных операций чтения / записи. Не обязательно быть «безопасным», потому что SQL воссоздает его при запуске.
Один из вариантов, который вы использовали, - это настроить два набора RAID 1 + 0. Файлы данных могут находиться на одном, файлы журналов и ОС - на другом. Что лучше поставить tempdb на первое или второе, зависит от вашей рабочей нагрузки. Если много записи, то поместите ее вместе с данными (чтобы файлы журналов не были узкими местами), но если файлы журналов не вызывают беспокойства, то tempdb лучше положить с ними.
Это также было бы безопасным вариантом, потому что многие диски должны выйти из строя, чтобы вы потеряли данные.
Другой вариант - RAID 1 для файлов журнала (2 диска). Тогда вы можете использовать RAID 1 + 0 / RAID 5 для файлов данных (3-4 диска). Затем вы можете выделить другие диски для tempdb. Вам не нужно использовать RAID 0, вы можете просто создать несколько файлов для tempdb и назначить по одному на каждый диск.
Если вы хотите добавить горячий резерв, вы окажетесь в сложной ситуации из-за количества дисков: RAID 1 + 0 требует четного числа. Обратите внимание, что RAID 5 имеет небольшой риск потери данных во время перестройки, потому что это длительный процесс и вам необходимо вычислить четность.
РЕДАКТИРОВАТЬ Я еще немного почитал, и RAID 5 больше не рекомендуется - это не совсем безопасно из-за перестройки. RAID 1 + 0 - действительно правильный выбор. См., Например: http://en.community.dell.com/dell-groups/dtcmedia/m/mediagallery/19861480/download.aspx (стр. 9-10 в PDF). Один (из нескольких) источников: http://www.reddit.com/r/sysadmin/comments/ydi6i/dell_raid_5_is_no_longer_recommended_for_any/.
Универсальные заметки
предохраняйте файлы журналов от фрагментации. Убедитесь, что вы размер их разумно с большим фактором автоматического роста.
http://www.sqlskills.com/blogs/kimberly/8-steps-to-better-transaction-log-throughput/
убедитесь, что ваши перегородки правильно выровнены.
Существуют две корреляции, выполнение которых является фундаментальным предварительным условием для оптимальной производительности дискового ввода-вывода. Результатом следующих вычислений должно быть целое число:
Partition_Offset ÷ Stripe_Unit_Size
Stripe_Unit_Size ÷ File_Allocation_Unit_Size
http://technet.microsoft.com/en-us/library/dd758814(v=sql.100).aspx
Я о таком же конфиге - здесь можно найти несколько ответов: 1 логический диск против 2 логических драйверов на 1 контроллере рейда для разделения данных из файлов журнала?
Я предполагаю, что:
Только для производительности: RAID 0 (это будет рассматриваться как только 1 диск с общим объемом памяти 1168 ГБ;
Для производительности, но с отказоустойчивостью данных: RAID 5 + 0 (требуется минимум 6 дисков), или вы также можете выбрать конфигурацию RAID 1 + 0, сделав 4 пары RAID 1 и сделав массив из 4x2 дисков в RAID 0 ;
RAID 0
║
╔═════════════════╦═════════════╩═══════════╦══════════════════════╗
║ ║ ║ ║
RAID 1 RAID 1 RAID 1 RAID 1
(2x146GB) (2x146GB) (2x146GB) (2x146GB)
Для общего дискового пространства 584 ГБ, который будет рассматриваться как один единственный диск из-за функции очистки RAID 0.
В 3, если вы предпочитаете иметь диск с горячим резервом, вам может пригодиться RAID 0 + 5.
РЕДАКТИРОВАТЬ # 1
Прочитав ваше предложение по конфигурации диска 2-4-2, я думаю, в этом нет необходимости. Я лично предпочел бы конфигурацию RAID 1 + 0, как показано выше. Не думаю, что выигрыш будет таким большим, так как у вас 8 дисков одинаковой скорости. Все было бы иначе, если бы у вас были два диска медленнее, чем шесть других, тогда я бы подумал об использовании этих двух для ОС. Но в текущей ситуации, полагаю, выигрыш будет ничтожным.
Более того, это очень незначительно, если ваши администраторы баз данных или программисты создают правильные индексы для правильных данных в своей базе данных. Имея четыре диска, которые быстро удаляются вместе, и обеспечивая отказоустойчивость с помощью RAID 1, я считаю, что у вас не возникнет проблем.
Надеюсь, это поможет! знак равно
Это помогает?