Понимание схем лицензирования Microsoft SQL Server критически важно для оптимизации затрат и соблюдения требований Microsoft. В этой статье мы разберем редакции SQL Server, модели лицензирования (Server+CAL и Per Core), а также особенности лицензирования в виртуальных средах и контейнерах. Информация актуальна для версий SQL Server 2016, 2017, 2019 и 2022.
Редакции Microsoft SQL Server
Microsoft SQL Server доступен в нескольких редакциях, каждая из которых предназначена для определенных сценариев использования:
1. Express Edition
– Бесплатная редакция для небольших приложений.
– Ограничения: размер базы данных до 10 ГБ, использование до 1 ГБ оперативной памяти, 1 физический сокет или 4 ядра.
– Подходит для обучения, небольших проектов или встраиваемых приложений.
2. Developer Edition
– Бесплатная редакция с полным функционалом Enterprise Edition.
– Ограничение: только для разработки, тестирования и демонстрации (не для продакшн-систем).
– Идеальна для разработчиков, создающих и тестирующих приложения.
3. Web Edition
– Специальная редакция для веб-хостингов, доступна только через Microsoft Services Provider License Agreement (SPLA).
– Подходит для веб-приложений с высокой масштабируемостью.
4. Standard Edition
– Предоставляет базовые возможности СУБД: управление базами данных, отчеты, аналитика.
– Ограничения: до 128 ГБ оперативной памяти, до 4 сокетов или 24 ядер.
– Поддерживает репликацию между экземплярами.
– Подходит для приложений среднего уровня и аналитических задач.
5. Enterprise Edition
– Полнофункциональная редакция для критически важных приложений.
– Включает все возможности Standard Edition, а также расширенные функции: Always On для отказоустойчивости, аналитику больших данных, Big Data Clusters (в SQL Server 2019 и выше).
– Не имеет ограничений по памяти или ядрам.
Express и Developer редакции бесплатны, тогда как Standard и Enterprise требуют лицензирования. Web Edition доступна только через провайдеров SPLA.
Модели лицензирования SQL Server
Microsoft предлагает две основные модели лицензирования:
– Server + CAL: лицензия на сервер плюс клиентские лицензии для каждого пользователя или устройства.
– Per Core: лицензирование по количеству ядер, без ограничений на число пользователей.
Standard Edition поддерживает обе модели, тогда как Enterprise Edition лицензируется только по модели Per Core (начиная с SQL Server 2012).
Модель Server + CAL
Модель Server + CAL подходит для сред с ограниченным и известным количеством пользователей или устройств.
Основные принципы:
– Для каждой операционной среды (физической или виртуальной) с SQL Server требуется одна серверная лицензия, независимо от числа ядер.
– Для каждого пользователя или устройства, подключающегося к SQL Server, нужна клиентская лицензия (CAL).
– CAL бывают двух типов:
1. User CAL: лицензия на пользователя, позволяет одному пользователю подключаться с любого устройства.
2. Device CAL: лицензия на устройство, позволяет любому количеству пользователей подключаться с одного устройства.
– Каждая CAL дает право доступа к любому количеству серверов SQL Server в организации.
– Версия CAL должна соответствовать или быть новее версии SQL Server (например, CAL 2019 подходит для SQL Server 2019 и старше, но не для SQL Server 2022).
Примеры расчета:
– 20 пользователей с 20 устройствами: можно купить 20 User CAL или 20 Device CAL — стоимость одинакова.
– 20 пользователей с 50 устройствами: выгоднее 20 User CAL.
– 50 пользователей с 20 устройствами: выгоднее 20 Device CAL.
Факторы, не влияющие на количество CAL:
– Число серверов SQL Server.
– Количество учетных записей или одновременных подключений.
– Наличие посредников (например, терминальных серверов или бизнес-приложений).
– Принадлежность пользователей или устройств к организации.
CAL можно переназначать другому пользователю или устройству не чаще одного раза в 90 дней.
Модель Per Core
Модель Per Core идеальна для серверов с большим или неизвестным числом пользователей, например, для веб-приложений или внешних клиентов.
Основные принципы:
– Лицензируются все ядра сервера или виртуальной машины, на которой работает SQL Server.
– Минимальное количество: 4 ядра на процессор (физический или виртуальный).
– Лицензии продаются в виде 2 Core Pack (одна лицензия покрывает 2 ядра).
– CAL не требуются, что упрощает доступ неограниченного числа пользователей или устройств.
Пример:
– Сервер с 2 процессорами по 8 ядер требует 16 ядер лицензий, то есть 8 2 Core Pack.
– Сервер с 1 процессором на 2 ядра все равно требует лицензирования 4 ядер (2 2 Core Pack).
Сравнение стоимости (SQL Server 2019)
Примерные цены (в долларах США):
– Enterprise Edition, 2 ядра: $7128.
– Standard Edition, 2 ядра: $1859.
– Standard Edition, серверная лицензия: $931.
– User/Device CAL: $209.
Пример для сервера с 8 ядрами и 50 пользователями:
– Per Core: 4 × $1859 = $7436 (Standard Edition).
– Server + CAL: $931 + (50 × $209) = $11,381.
Вывод: при большом количестве пользователей выгоднее модель Per Core. Если в организации много экземпляров SQL Server с одинаковым числом пользователей, модель Server + CAL может быть экономичнее.
Лицензирование компонентов SQL Server
SQL Server включает следующие лицензируемые компоненты:
– Database Engine (СУБД).
– Machine Learning Services.
– Master Data Services (MDS).
– Analysis Services (AS).
– Integration Services (IS).
– Reporting Services (RS).
– Data Quality Services (DQS).
Компоненты одной лицензии нельзя разделять между разными операционными средами (OSE). Например, если Database Engine работает на одном сервере, а Reporting Services — на другом, оба сервера должны быть полностью лицензированы.
Исключение: в режиме High Availability пассивная копия SQL Server (используемая только для failover) не требует отдельной лицензии.
Лицензирование в виртуальных машинах
Лицензирование SQL Server в виртуальных средах (например, на VMware, Hyper-V) имеет свои особенности, но базируется на тех же моделях: Per Core и Server + CAL. Виртуальная машина рассматривается как отдельная операционная среда (OSE).
Модель Per Core в виртуализации
Есть два подхода:
1. Лицензирование виртуальных ядер (vCPU) каждой виртуальной машины:
– Требуется лицензия на каждое виртуальное ядро, минимум 4 ядра на ВМ (2 2 Core Pack).
– Пример: ВМ с 6 vCPU требует 6 ядер лицензий (3 2 Core Pack), ВМ с 2 vCPU — 4 ядра (2 2 Core Pack).
2. Лицензирование всех физических ядер хоста:
– Лицензируются все физические ядра сервера.
– Для Enterprise Edition с Software Assurance (SA) предоставляется неограниченное количество виртуальных машин (Unlimited Virtualization).
– Без SA количество ВМ ограничено числом лицензированных ядер. Например, сервер с 8 ядрами (4 2 Core Pack) позволяет запускать 8 ВМ. Дополнительные лицензии увеличивают это число.
Пример:
– Сервер с 2 процессорами по 4 ядра (8 ядер) требует 4 2 Core Pack. Это позволяет запускать SQL Server Enterprise на 8 ВМ. Для 12 ВМ нужно 6 2 Core Pack.
– С активной SA на Enterprise Edition можно запускать неограниченное число ВМ на лицензированном хосте.
Модель Server + CAL в виртуализации
– Для каждой ВМ с SQL Server Standard требуется одна серверная лицензия.
– Для каждого пользователя или устройства, подключающегося к любой ВМ, нужна CAL.
– Правила аналогичны физическим серверам: CAL не зависят от числа ВМ или экземпляров.
Пример:
– 6 ВМ с SQL Server Standard требуют 6 серверных лицензий.
– Если 50 пользователей подключаются к этим ВМ, нужно 50 User CAL или, если используются 20 устройств, 20 Device CAL.
Лицензирование в контейнерах
Контейнеры (например, Docker) лицензируются так же, как виртуальные машины, так как считаются отдельными операционными средами (OSE).
– Per Core: лицензируется каждое виртуальное ядро, выделенное контейнеру, минимум 4 ядра (2 2 Core Pack).
– Server + CAL: одна серверная лицензия на контейнер, плюс CAL для каждого пользователя или устройства.
– Flexible Virtualization Benefit (доступен с SA или подпиской): упрощает перенос лицензий между контейнерами для динамического управления ресурсами.
Пример:
– Контейнер с 4 vCPU требует 2 2 Core Pack (Per Core) или 1 серверную лицензию + CAL (Server + CAL).
– 6 контейнеров с 4 vCPU каждый: 6 × 2 2 Core Pack или 6 серверных лицензий + CAL по числу пользователей/устройств.
Дополнительные преимущества Software Assurance
Software Assurance (SA) предоставляет дополнительные права:
– Unlimited Virtualization: для Enterprise Edition позволяет запускать неограниченное число ВМ или контейнеров на хосте, если все физические ядра лицензированы.
– License Mobility: разрешает перенос лицензий между серверами в пределах одной серверной фермы без ограничений (без SA — раз в 90 дней).
– Azure Hybrid Benefit: позволяет использовать существующие лицензии SQL Server для развертывания в Azure, оплачивая только вычислительные ресурсы.
– Disaster Recovery: право на бесплатное развертывание пассивных копий для восстановления данных.
– Big Data Node Licenses: для SQL Server 2019 и выше, клиенты с SA получают лицензии для Big Data Clusters
Рекомендации по выбору модели лицензирования
– Используйте Server + CAL для:
– Небольших организаций с известным числом пользователей (менее ~50).
– Сценариев с множеством экземпляров SQL Server и ограниченным числом пользователей.
– Используйте Per Core для:
– Веб-приложений или внешних клиентов, где число пользователей неизвестно.
– Крупных организаций с большим числом пользователей.
– Сценариев с высокой плотностью виртуализации, особенно с Enterprise Edition и SA.
– Для контейнеров или высоко-динамичных сред рассмотрите Flexible Virtualization Benefit с SA.
Правильное лицензирование Microsoft SQL Server позволяет минимизировать затраты и избежать штрафов за несоблюдение условий. Выбор между Server + CAL и Per Core зависит от числа пользователей, типа развертывания и бюджета. Для виртуализации и контейнеров учитывайте минимальные требования (4 ядра на ВМ/контейнер) и преимущества Software Assurance. Используйте Azure Hybrid Benefit для экономии в облаке и проверяйте лицензии, чтобы обеспечить соответствие требованиям Microsoft.