Каждый день мне приходится беседовать с пользователями SQL Server, и чаще всего мне задают один и тот же вопрос: как получить большую выгоду от SQL Server при меньших затратах? Я отвечаю, что секрет заметного снижения затрат при развертывании SQL Server прост: организуйте стек экземпляров.

Компания Microsoft разрешает пользователям организовать стек из 50 экземпляров для каждого сервера базы данных SQL Server (http://technet.microsoft.com/en-us/library/ms143432(v=sql.105).aspx). Однако большинство пользователей развертывают лишь один экземпляр на сервер. Это приемлемо, если у вас всего два или три экземпляра, но если их больше, то вы тратите деньги впустую. Пользователи, с которыми мне приходится общаться, обычно развертывают от 20 до 100 экземпляров, каждый на своем физическом или виртуальном сервере. Если каждый из этих экземпляров потребляет от 60 до 70% циклов процессора соответствующего хост-сервера, то модель развертывания «один экземпляр на сервер» оправдана, но на практике так не бывает. В среднем большинство экземпляров потребляет лишь от 5 до 7% ресурсов процессора. В этой ситуации открываются большие возможности для экономии.

Посмотрим, сколько можно сэкономить, организовав стек экземпляров. Допустим, у нас имеется 50 экземпляров, каждый из которых размещается на собственном сервере и потребляет только 10% ресурсов процессора хост-сервера. Кроме того, предположим, что для серверов базы данных установлен буфер использования процессора – 30%. Таким образом, на каждом сервере размещается 7 экземпляров; иными словами, можно уменьшить число серверов базы данных на 84%, с 50 до 8 (см. рисунок).

 

Модель совокупной стоимости владения SQL?Server
Рисунок. Модель совокупной стоимости владения SQL Server

Используя вариант модели совокупной стоимости владения SQL Server на одну виртуальную машину, представленный ранее (sqlmag.com/database-virtualization/virtualization-model-financial-trade-offs-virtual-os-environments), можно проанализировать затраты.

Мы указываем число экземпляров SQL Server, равное 50. Затем вводим уровень стека: число экземпляров, приходящихся на один физический узел. В данном случае уровень виртуализации 7, так как каждый экземпляр потребляет 10% ресурсов процессора сервера и нам нужен 30-процентный буфер использования процессора. Затем мы вводим число процессоров на узел, число ядер в одном процессоре и количество лет технической поддержки. В нашем примере это 2, 8 и 3, соответственно.

Затем вы вводите свою лицензию SQL Server 2014 и затраты по программе Software Assurance (SA). Я использовал цены SQL Server 2014 SE, действовавшие на момент подготовки статьи (они могут меняться). Остальное — дело модели.

За трехлетний период организация стека экземпляров позволяет сэкономить 2,5 млн. долл. «скрытых» лицензионных затрат SQL Server. Учитывая дополнительную экономию от менее масштабных обновлений оборудования и программных продуктов, а также сокращение административных расходов, выигрыш получается еще больше.

Так почему же, несмотря на такую эффективность, пользователи на спешат организовать стеки экземпляров? Это станет темой моей следующей статьи.