Microsoft SQL Server 2016 üçün lisenziyanın seçilməsi

Salam Dostlar.

Bugünkü məqalədə çox maraqlı bir mövzunu izah etməyə çalışacağam. Microsoft SQL Server Verilənlər Bazası İdarəetmə Sistemi üçün lisenziya seçimi çox vacib və məsuliyyət tələb edən məsələlərdən biridir. Bu barədə kifayət qədər yazılı və video materiallar var, lakin rəsmi ədəbiyyatda o qədər qarışıqlıq var ki, bu barədə verilən sualların ardı kəsilmir. Son zamanlar bu mövzu barədə çoxlu suallarla qarşılaşdım. Buna görə də yazılı şəkildə bu mövzuya daha ətraflı izah verməyə qərarına gəldim.

Qeyd etmək lazımdır ki, SQL Serverin versiyasının və nəşrinin seçilməsi və lisenziyalaşdırılması sorğuların (yuklənmələrin) müxtəlif tiplərinin xüsusiyyətlərindən, məlumat bazalarının təyinatından, istifadəçilərin sayından və s. asılıdır.

Verilənlər bazalarının tipləri

Bildiyiniz kimi, verilənlər bazalarının iki əsas tipi mövcuddur: OLTP və OLAP.

OLTP (Online Transaction Processing) – real zamanda əməliyyatların emalı verilənlər bazasında saxlanılan məlumatlar dinamikdir, yəni daim yenilənir və həmişə ən son məlumatlar saxlanılır. İstehsalat müəssisələri, satış şırkətləri, xəstəxanalar və s. əməliyyat verilənlər bazalarından istifadə edirlər, çünki onların məlumatları daim yenilənmə vəziyyətindədir. OLTP tipli verilənlər bazasında nisbətən kiçik tranzaksiyalar üstünlük təşkil edir.

Bunlardan fərqli olaraq OLAP (Online Analytical Processing) – məlumatların real zamanda analitik emalı verilənlər bazaları müəyyən vaxt ərzində yığılmış məlumatları dinamikasını və dəyişməsini izləmək üçün istifadə olunur. Saxlanılan məlumatların tipi statikdir, yəni heç vaxt dəyişmir və ya nadir hallarda dəyişir. Analitik verilənlər bazasından alınan məlumatlar müəyyən zaman daxilində olan məlumatlardır və adətən ən son məlumatlar deyil. OLAP tipli verilənlər bazaları bəzən DW (Data Warehouse) – “məlumat anbarı” da adlandırılır.

Qeyd 1. OLTP-yüklənmə bir CPU nüvəsinin məhsuldarlığına xüsusilə həssasdır. OLTP  sorğularının əksəriyyəti nisbətən kiçikdir və onlar adətən bir prosessor nüvəsində yerinə yetirilirlər. Buna görə də OLTP tipli verilənlər bazaları üçün bir CPU nüvəsinin tezliyi daha çox vacibdir. Tezlik nə qədər çox olsa kiçik tranzaksiyalar tez yerinə yetiriləcək. Eyni zamanda, nüvələrin sayının çoxluğu OLAP yüklənmə üçün əhəmiyyətlidir. CPU nüvələrinin sayı nə qədər çox olsa OLAP sorğuları bir o qədər tez yerinə yetiriləcək. Sadəcə yadda saxlamaq lazımdır ki, bu zaman sistemin digər parametrlərinin  də lazım olan səviyyədə olmalıdır.

Qeyd 2. SQL server qurulurkən ilk növbədə prosessora daha çox diqqət ayrılır, çünki gələcəkdə genişlənmə nəzərdə tutulursa lisenziyalaşmada bu çox ciddi problemlər yarada bilər. Məsələn: ilkin mərhələdə OLTP tipli verilənlər bazası üçün həddindən artıq çoxnüvəli prosessorun seçilməsi prosessora görə lisenziyalaşma zamanı ciddi əngəllər yarada bilər.

Microsoft SQL Serverin nəşrləri

Növbəti vacib məsələ SQL Serverin nəşrinin seçilməsidir. SQL Server 2016 sistemi 5 əsas nəşrdə təqdim edilir: Enterprise, Standart, Developer, Web və Express. ASP.NET proqramları üçün əlavə olaraq Compact versiya da mövcuddur. Bunlardan üçü: Developer, Express və Compact tamamilə pulsuzdur. Web versiya yalnız Web hosting service provayderlərinə təqdim edilir. Əvvəlki versiyalarda olan “Business İntelligence” nəşri ləğv olunub. Bizi maraqlandıran iki nəşrdir: Enterprise və Standart.

 SQL Serverin nəşrinin seçilməsi çox vacib məsələdir. Seçim edərkən aşağıdakı suallara dəqiq cavab alınmalıdır:

  1. İstifadəçilərin sayı dəqiq məlumdur mu?
  2. İstifadəçilərin sayı nə qədərdir?
  3. Bazanın həcmi dəqiq məlundur mu?
  4. Genişlənmə nəzərdə tutulur mu?
  5. Verilənlər bazası hansı tipdədir?
  6. Gün ərzində tranzaksiyaların sayı nə qədər olur?
  7. Dayanaqlıq və bərpa edilmə tələbləri var mı?

Bu suallar cavablandırılandan sonra nəşrlər arasında olan fərqlər dəqiq təhlil edilməlidir. Diqqət olunmalı ən vacib məsələlər:

  1. “Microsoft”-un rəsmi sənədinə əsasən SQL Server Standart edition dayanaqlıq, genişlənmə üzrə yüksək tələbləri olmayan kiçik və orta biznes üçün nəzərdə tutulub. “Provide core data management capabilities including high availability, security, scalability and performance for small and medium businesses and departmental applications. ”
  2. SQL Server 2016 Standart edition cəmi 24 prosessor nüvəsi (CPU core) dəstəkləyir. SQL Server 2014 Standart edition isə 16 prosessor nüvəsi (CPU core) dəstəkləyir.
  3. SQL Server 2016 Standart edition cəmi 128 GB operativ yaddaş (RAM) dəstəkləyir. Mütləq nəzərə alınmalıdır ki, SQL Server operativ yaddaşında daha çox tələbatlıdır. RAM nə qədər çox olsa SQL bir o qədər tez işləyir. Həmçinin, SQL Server 2014 versiyasında yeni təqdim olunmuş İn-Memory OLTP texnologiyası məlumat bazalarının cədvəllərini birbaşa RAM yaddaşında yerləşdirmək imkanı verir və beləliklə də çox böyük sürət əldə etmək olur. 128 GB RAM limiti dəqiq analız edilməlidir. Bunun gələcəkdə genişlənmə zamanı hansı problemlər yaratması barədə dəqiq təsvir olmalıdır.
  4. SQL Server Standart edition-un digər limitləri də dəqiq təhlil edilməlidir. Bir neçəsini nəzərinizə çatdırıram:
Failover Cluster Instances Cəmi 2 node dəstəkləyir.
AlwaysOn Cluster Cəmi 2 node dəstəkləyir (sadə versiya)
Database Mirror Yalnız “FULL SAFATY” modda çalışır və gələcək versiyada istifadədən çıxarılacaq
Connetcion string for apps Failover Cluster və ya mirror qurulduqda Proqram təminatının kodunda “connetion string” göstərilməlidir
Database snapshot Dəstəkləmir. Reportlar, təhlükəsizlik və digər məqsədləri üçün isitfadə olunur.
Connection Director Dəstəkləmir. Müxtəlif data access texnologiyaları (NET və ya doğma Win32) əsasında proqramlarda eyni keçid informasiya ilə bölüşmək üçün.
Online page and file restore Dəstəkləmir. Mirror və digər replication tətbiq edildikdə asas baza zədələndikdə mirrorda olan salamat məlumatları ilə online sinxronlaşdırmaqla asas baza bərpa edilir
Online indexing Dəstəkləmir
Online schema change Dəstəkləmir
Fast recovery Dəstəkləmir
Mirrored backups Dəstəkləmir
Hot Add Memory and CPU2 Dəstəkləmir
In-Memory Column Store Dəstəkləmir
In-Memory OLTP Dəstəkləmir
Operational analytics Dəstəkləmir
Always Encrypted Dəstəkləmir

Microsoft SQL Serverin lisenziyalarının növləri

Microsoft SQL Serverin iki cür lisenziyası mövcuddur: Prosessorun nüvələrinə görə və Server + CAL (İstifadəçi lisenziyası).

SQL Server Enterprise edition yalnız prosessorun nüvələrinin sayına görə lisenziyalaşdırılır. SQL Server Standart edition isə iki cür lisenziyalaşır: prosessorun nüvələrinin sayına görə və Server + CAL.

Qeyd etmək lazımdır ki, Server+CAL lisenziyası istifadəçi sayı dəqiq məlum olduqda tətbiq edilir. İstifadəçi sayı dəqiq məlum deyilsə və genişlənmə nəzərdə tutulursa prosessora görə lisenziya seçilir.

Prosessorun nüvələrinin sayına görə (Per Core) lisenziya modeli aşağıdakı hallarda seçilir:

  • SQL Server Enterprise Edition istifadə edildikdə;
  • Istifadəçi sayı dəqiq məlum olmadıqda, məsələn çoxlu istifadəçi tərəfindən müraciət olunan sistemlər və s.;
  • SQL Server Standart Edition Server + CAL lisenziyasından daha ucuz başa gəldikdə.

Server + CAL lisenziya modeli aşağıdakı hallarda seçilir:

  • SQL Server Standart Edition istifadə edildikdə və istifadəçilərin sayı məlum olduqda;
  • Hər dəfə yeni serverin əlavə edilməsi zərurəti yarandıqda;

Qeyd 3.Microsoft SQL Server 2016 Licensing Guide”  sənədinin 26-cı səhifəsində “Licensing SQL Server in a Multiplexed Application Environment” əsasən SQL serverə qoşulan istifadəçilərin (cihazların) sayına bərabər CAL lisenziyası olmalıdır. Hal-hazırki və planlaşdırılan istifadəçi (cihaz) sayı dəqiq analiz edilməlidir. Bir daha təkrar etmək lazımdır ki, Server+CAL lisenziyası istifadəçi sayı dəqiq məlum olduqda tətbiq edilir. İstifadəçi sayı dəqiq məlum deyilsə və genişlənmə nəzərdə tutulursa prosessora görə lisenziya seçilir. Məsələn: 200 nəfərlik server – CAL lisenziya alınıb. 2 -3 ildən sonra istifadəçi sayı 500 nəfərə çatsa qiymətdə Standart edition Enterprise edition-dan baha başa gəlir.

SQL Server 2016 Standart edition Server+CAL lisenziyasını hesablayaq. Qiymətləri “Microsoft”un rəsmi saytından götürək:

931 + 209 x 200 = 42 731 USD

3 ildən sonra:

931 + 209 x 500 = 105 431 USD

SQL Server 2016 Standart edition “Per Core” lisenziyasını hesablayaq:

1 Serverdə 2 CPU x 6 Core = 12 Core

SQL Server “Per Core” lisenziya SKU paketlərlə satılır. 1 paketə 2 core daxildir.

1 SKU qiyməti 3 717 USD

12 Core / 2 = 6 SKU

6 SKU  x 3 717 = 22 302 USD

Göründüyü kimi, 200 nəfər üçün və 12 nüvəlik prosessora malik serverlərdə SQL Server Standart edition “Per Core” lisenziyasının seçilməsi daha məqsədəuyğundur.

SQL Server 2016 Enterpise edition “Per Core” lisenziyasını hesablanması

Yuxarıda qeyd etdik ki, SQL Server lisenziyalaşdırılması sorğuların (yuklənmələrin) müxtəlif tiplərinin xüsusiyyətlərindən, məlumat bazalarının təyinatından, istifadəçilərin sayından və s. asılıdır. OLTP tipli verilənlər bazası üçün CPU tezliyi vacibdir. Buna görə də bu tip serverlər üçün nüvələri sayı az olan və tezliyi çox olan CPU seçilir. Beləliklə, düzgün CPU seçməklə SQL Server Enterprise Edition qiymətlərini azaltmaq mümkündür.

Məsələn, İntel V4 prosessorlara baxaq:

Fərz edək ki, ilkin mərhələdə server üçün 2 ədəd 10 nüvəsi olan Intel Xeon E5-4620 v4 (25M Cache, 2.10 GHz) processoru seçilib. Serverdə cəmi 20 CPU core alınır. Biz bilirik ki, SQL Server Enterprise Edition prosessor nüvələrinin sayına görə lisenziyalaşır. Buna görə də qərara gəlirik ki, bu prosessor bizim üçün yaramır. Bunun əvəzinə digər bir prosessor seçsək: Intel Xeon Processor E5-2643 v4 (20M Cache, 3.40 GHz) və serverə bunun ikisini quraşdırsaq cəmi 12 CPU core alırıq.

Birinci prosessorun nüvə sayı çoxdur – bu daha çox OLAP tipli məlumatı  idarə etmək üçün yararlıdır, ikinci prosessorun nüvəsinin tezliyi daha yüksəkdir və bir nüvə üzərində gedən əməliyyat daha tez işləyir – bu isə daha çox OLTP tipli bazalar üçün yararlıdır. Tezliklərin toplusunu müqayisə etsək: 1-ci CPU- 2.1 GHz x 20 core =  42 GHz və ikinci CPU -3.40 Hz x 12 = 40.8 GHz.  Demək olar ki, tezliklərin cəmində fərq azdır, nəticədə isə daha az nüvə və bir nüvədə daha yüksək sürət əldə edirik.

E5-2643 v4 Prosessoruna görə SQL Server 2016 Enterpise edition “Per Core” lisenziyasını hesablayaq:

1 Serverdə 2 CPU x 6 Core = 12 Core

SQL Server “Per Core” lisenziya SKU paketlərlə satılır. 1 paketə 2 core daxildir

1 SKU qiyməti 14 256 USD

12 Core / 2 = 6 SKU

6 SKU x 14 256 = 85 536 USD

Digər bir prosessor seçək və lisenziyanı hesablayaq: 4 nüvəli Intel Xeon E5-2637 v4 (15M Cache, 3.50 GHz) Processoru:

1 Serverdə 2 CPU x 4 Core = 8 Core

SQL Server “Per Core” lisenziya SKU paketlərlə satılır. 1 paketə 2 core daxildir

1 SKU qiyməti 14 256 USD

12 Core / 2 = 4 SKU

4 SKU x 14 256 = 57 024 USD

Həmçinin “Microsoft SQL Server 2016 Licensing Guide”  sənədə əsasən ikinci SQL nüsxəsi (Node) tam passivdirsə, yəni yalnız qəza vəziyyətini (failover) gözləyirsə, bu zaman ikinci serverin lisenziyalaşmasına ehtiyac yoxdur.

SA (Software Assurance) müqaviləsi üzrə Enterprise lisenziya bir ədəd passiv SQL Nodun lisenziyasız istifadəsinə icazə verir.

Virtual mühitdə Microsoft SQL Server 2016 lisenziyaşdırılması

Virtual maşınlarda çalışan SQL Serverlər hər bir individual virtual server üzrə və bütün fiziki prosessorları üzrə lisenziyalaşır. Hər bir individual virtual server üzrə “Per Core” lisenziya yalnız SQL Server Standart edition üçün keçərlidir. Bu zaman virtual maşının daxilində görsənən bütün prosessorlar üçün lisenziya alınmalıdır. SQL Server Enterprise edition istifadə edildikdə virtual maşınlar qurulan serverin (hostun) fiziki prosessorunun bütün nüvələri üçün lisenziya alınmalıdır. Məsələn: 16 nüvəli fiziki serverdə istənilən sayda nüvəsi olan 16 ədəd virtual serverində SQL server qurmaq olar. SQL Server Standart edition Server + CAL lisenziya modeli virtual mühitdə fiziki serverlərdə olduğu kimi istifadə edilir.

Beləliklə, bugünkü məqalənin də sonuna gəlib çatdıq. Microsoft SQL Server Verilənlər Bazası İdarəetmə Sistemi üçün lisenziya seçimi barədə bəhs etdik və real nümunələr üzərində hesabladıq.

Növbəti məqalələrdə görüşənədək.

Diqqətinizə görə təşəkkür edirəm.

Səs: +20. Bəyənilsin Zəifdir

Müəllif: Rauf Khalafov

Şərh yazın