В этой статье мы познакомимся c существующими схемами лицензирования Microsoft SQL Server, а также рассмотрим особенности лицензирования SQL Server в среде виртуализации и контейнерах (статья актуальна для последних версий SQL Server 2016/2017/2019).
Редакции MS SQL Server и модели лицензирования
Microsoft SQL Server доступна в пяти редакциях.
- Express Edition – бесплатная редакция для небольших инсталляций, максимальный размер БД на диске – 10 Гб, использование RAM до 1 Гб, 1 физический сокет или 4 ядра;
- Developer Edition – бесплатная редакция для разработчиков. Включает в себя весь стек технологий SQL Server. Можно установить и использовать только для разработки, тестов и демонстрации на непродуктивных системах;
- Web Edition – специальная редакция для веб-хостингов (провайдеров), распространяется только в рамках Microsoft Services Provider License Agreement (SPLA);
- Standard Edition – в этой редакции доступен базовый функционал СУБД, отчеты, аналитика. Максимальное использование RAM– до 128 Гб, 4 сокета или 24 ядра (возможна настройка репликации между несколькими экземплярами SQL Server);
- Enterprise Edition – самая полная редакция СУБД, включает функционал редакции Standard, а также дополнительные возможности по анализу, отказоустойчивости (в том числе Always On) и обработки данных (весь функционал доступен в ознакомительной версии SQL Server).
Редакции Developer и Express распространяются бесплатно. Редакции Standard и Enterprise требуют лицензирования.
Для SQL Server существуют две модели лицензирования:
- Модель «Сервер + Клиенты» (Server+CAL)
- Модель «По количеству ядер» (Per Core)
SQL Server Standard может быть лицензирована по любой из двух моделей (Server+CAL или Per Core).
Редакция SQL Server Enterprise лицензируется только по модели: «По количеству ядер».
Лицензирование SQL Server по ядрам
Данная модель используется для серверов с большим или неизвестным количеством клиентов. Эта модель лицензирования предоставляет доступ неограниченному числу пользователей или устройств для подключения изнутри или снаружи организации.
Клиентские лицензии приобретать не требуется.
В модели лицензирования по ядрам, вам нужно “закрыть” лицензиями все процессорные ядра сервера, на котором запущен SQL Server. Основные требования и ограничения:
- Одна лицензия выпускается на два ядра (2Lic Core);
- Для лицензирования сервера вам нужно приобрести минимум 2 двух-ядерных лицензии на каждый физический процессор сервера;
- При запуске на физическом сервере (physical operating system environment — POSE), все ядра сервера нужно лицензировать.
Лицензирование SQL Server по модели «Сервер + Клиенты»
Согласно это модели лицензирования, на каждый экземпляр SQL Server приобретается одна серверная лицензия, которая привязывается к физическому (виртуальному) серверу (не зависит от количества ядер сервера). Затем вам нужно приобрести отдельные клиентские лицензии (CAL) на каждое устройство или пользователя, которые подключаются к SQL Server.
Клиентские лицензии SQL Server CAL (как и RDS CAL) бывают двух видов:
- User CAL – “на пользователя”. Приобретается для учетных записей пользователей, которые подключаются к SQL Server с серверной лицензией.
- Device CAL – “на устройство“. Приобретается для всех устройств, с которых выполняется подключение к SQL Server с серверной лицензией.
Каждая лицензия SQL Server CAL позволяет подключаться к неограниченному количеству баз SQL Servers.
Т.к. лицензии User CAL и Device CAL стоят одинаково, необходимо заранее рассчитать экономическую целесообразность покупки клиентских лицензий “на пользователя” или “на устройство”.
Примеры.
- SQL Server используют 20 человек с 20 известных устройств. Здесь нет разницы какие CAL лицензии покупать.
- SQL Server используют 20 человек с 50 устройств. В данном случае выгоднее купить лицензии “на пользователя”.
- SQL Server используют 50 человек с 20 устройств. Здесь экономически целесообразно купить лицензии “на устройство”.
Для расчета клиентских лицензий SQL Server CAL не имеют значения:
- количество серверов SQL Server в вашей организации;
- количество учетных записей на серверах;
- количество одновременных подключений к серверам;
- наличие всего одного коннекта к серверу на всех пользователей;
- количество бизнес-приложений между SQL Server и клиентами;
- количество терминальных серверов между SQL Server и клиентами;
- нахождение пользователей в штате каких-либо организаций;
- принадлежность устройств каким-либо людям или организациям.
Обратите внимание, что лицензии CAL можно переназначать другому пользователю или другому устройству не чаще, чем 1 раз в 90 дней. Лицензии CAL позволяют использовать SQL Server предыдущих версий.
Для корректного лицензирования вы должны использовать SQL Server CAL той же или более новой версии. Например, чтобы получить доступ к SQL Server 2017 Standard Edition, вам нужен SQL CAL 2019 или SQL CAL 2017.
Стоимость лицензий для SQL Server 2019
- SQL Server Enterprise Edition за 2 ядра — 7128 $
- SQL Server Standard Edition за 2 ядра — 1859 $
- SQL Server Standard Edition — 931 $ + нужно число CAL
- SQL Server Device/User CAL — 209 $
Например, для лицензирования 8-ядерного сервера SQL Standard с 50 пользователями можно:
- Купить лицензии по ядрам (SQLSvrStdCore 2019 SNGL OLV 2Lic NL Each AP CoreLic — 7NQ-01562):
1859*4= 7436$
- Купить серверную лицензию (SQLSvrStd 2019 SNGL OLV NL Each AP — 228-11476) и необходимое количество CAL (SQLCAL 2019 SNGL OLV NL Each AP UsrCAL — 359-06864):
931 + 50*209 = 11381$
Как вы видите, при большом количестве пользователей выгодно лицензировать SQL Server по ядрам. Однако, если у вас большое количество экземпляров SQL Server в производственной среде при неизменном количестве пользователей, выгоднее использовать Server + CAL лицензии.
Лицензирование компонентов SQL Server
SQL Server включает в себя ряд лицензионных серверных компонентов:
- SQL Server Database Engine (DB)
- SQL Server Machine Learning Services
- Machine Learning Server Standalone,
- Master Data Services (MDS)
- Analysis Services (AS)
- Integration Services (IS)
- Reporting Services (RS)
- Data Quality Services (DQS).
Программные компоненты одной лицензии SQL Server не могут быть разделены. Любой операционной среде, в которой работают лицензионные компоненты SQL Server, требуется лицензия. Например, если база данных SQL Server развернута в одной операционной среде, а SQL Server RS развернута в другой, то обе операционные среды должны быть полностью лицензированы.
Если вы используете SQL сервер в режиме High Availability, вам не нужно отдельно лицензировать пассивную копию SQL Server на другом хосте (если она используется только для failover, а не любых других нужд).
Лицензирование SQL Server в виртуальных машинах и контейнерах
Как и лицензирование Windows Server, лицензирование SQL Server в среде виртуализации имеет ряд особенностей.
Модель лицензирования по ядрам
Как и в модели лицензирования “на ядро” в физическом сервере, вы должны лицензировать все виртуальные ядра (vCPU) виртуальной машины, на которой запущен экземпляр SQL Server. Вы можете лицензировать только виртуальные ядра ВМ, либо все физические ядра физического хоста (имеет смылс, если вы запускаете на хосте только ВМ с SQL Server).
На одну ВМ нужно приобрести не менее 2 лицензий (каждая на 2 ядра). В примере ниже лицензии считаются на каждое ядро, затем это количество делится на 2 (14 лицензируемых ядер делим на 2 — нуобходимо приобрести 7 лицензий SQL Server).
Обратите внимание. В первой виртуальной машине всего 2 ядра, но лицензии приобретаются на необходимый минимум – 4.
При использовании SQL Server Enterprise Edition вы можете лицензировать все физические ядра сервера и запускать неограниченное количество экземпляров SQL в количестве операционных сред (физических и/или виртуальных), равном количеству лицензий на одно ядро.
Например, двухпроцессорный сервер с четырьмя ядрами на каждом процессоре, полностью лицензированный восемью лицензиями SQL (4 лицензии на каждые 2 ядра), может запускать SQL Server на восьми виртуальных машинах, независимо от количества виртуальных ядер, выделенных для каждой виртуальной машины.
Клиенты, которые лицензировали все физические ядра на сервере и хотят запустить SQL Server в большем количестве виртуальных машин, чем разрешено, могут назначить дополнительные лицензии на ядро лицензированному серверу.
Каждая дополнительная лицензия на ядро позволяет развертывать SQL Server на дополнительной виртуальной машине, поэтому в предыдущем примере клиент, который хочет запустить SQL Server Enterprise Edition на двенадцати виртуальных машинах, может приобрести и назначить двенадцать лицензий этому серверу (6 на каждые 2 ядра).
При использовании Software Assurance (SA) с лицензиями Enterprise Edition, вы можете развернуть неограниченное количество виртуальных машин для обработки динамических рабочих нагрузок и полного использования аппаратных вычислительных мощностей.
Модель лицензирования “Сервер + клиенты”
Данная модель лицензирования для виртуальных не отличается от схемы лицензирования физического сервера. Для каждой виртуальной машины с SQL Server, приобретается серверная лицензия. Для каждого пользователя или устройства приобретается клиентская лицензия SQL CAL.
Лицензирование контейнеров ничем не отличается от лицензирования виртуальных машин – вам нужно лицензировать все ядра, которые используются в контейнере SQL Server. Либо использовать модель лицензирования с CAL.