SQL Server: один массив RAID-10 из 12 дисков или 2 массива из 8 дисков и 4 дисков

SQL Server: один массив RAID-10 из 12 дисков или 2 массива из 8 дисков и 4 дисков

Настройка ящика для SQL Server 2008, который даст лучшую производительность (тяжелая OLTP)? Чем больше дисков в массиве RAID-10, тем выше производительность, но даст ли потеря 4 дисков, чтобы выделить их для журналов транзакций, большую производительность.

12 дисков в RAID-10 плюс один горячий резерв.

ИЛИ

8 дисков в RAID-10 для базы данных и 4 диска в RAID-10 для журналов транзакций плюс 2 «горячих» резерва (по одному на каждый массив).

У нас есть слоты для 14 дисков, и это старая модель PowerVault, которая не поддерживает глобальные горячие резервы.

решение1

Я бы выбрал 10/2. Журналы обычно небольшие и последовательные, и ваш RAID-контроллер должен быть в состоянии поставить их в очередь достаточно эффективно, чтобы записать их на 2 диска в RAID 1, не мешая остальным. Если ваш RAID-контроллер не может этого сделать, то забудьте о разделении и просто выберите 12, если вы торопитесь. Если у вас есть время, проведите несколько тестов и посмотрите, что сработает. Жаль, что нет глобальных горячих резервов, но в любом случае, похоже, у вас есть приличная коробка, с которой можно поиграться.

решение2

Насколько я знаю, есть два основных фактора, которые следует учитывать:

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

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

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

решение3

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

Также обратите внимание, что использование 8+4 или 10+2 также является хорошим вариантом, единственный недостаток, который я вижу в этом, это неэффективное использование хранилища. В остальном это надежно.

решение4

ТыдолженСначала определите свою рабочую нагрузку. И тестируйте, тестируйте, тестируйте (Не могу не подчеркнуть этого):

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

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

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

Связанный контент