Sql Server Lisanslama Modelleri

SQL SERVER LİSANSLAMASI

SQL Server Microsoft tarafından satılan yazılım ürünleri arasında en pahalı olanıdır ve lisanslaması konusunda en az anlaşılan üründür. Lisanslamanın genel olarak zor olduğunu ve teknik adamlar için sıkıcı bir konu olduğunu söylemek de sanırım yanlış olmaz. Buna rağmen teknik adam ve sistem mimarlarının doğru SQL Server lisanslamasını bilmesi, projelerinde ve çalıştıkları kurumlara maddi anlamda yüksek fayda sağlayacaktır.

SQL Server, sıklıkla ağ üzerinde her ihtiyaç duyulduğunda kurulan ancak yazılım kaynakları yönetimi adına üzerinde fazla düşünülmeyen bir üründür. Microsoft telif hakları kuralları çerçevesinde yazılım kurulumlarınızı incelemek istediğinde de en fazla sürprizin yaşandığı üründür. Çünkü tek bir sunucunun on binlerce dolara mal olabildiği faturaların ortaya çıkması muhtemeldir. Bu tip durumlarla karşılaşmamanız için bu makalede sizlere SQL sunucu lisanslaması ile ilgili bilmeniz gerekenleri anlatıyor olacağım.

Sql Server sürümlerinden başlayarak, elinizdeki mevcut Sql Server’ın değil, olması gereken Sql Server kurulumu ve lisanslaması hakkında bilgiler aktarmaya çalışacağım. Makalede yazılanlar, bilgi amaçlı olup, kesin bilginin “Microsoft Volume Licensing Product Terms” içerisinde olduğunun altını çizmek gerekir. Bu makalede sizlere lisanslama modellerinin yanı sıra, örnek senaryolar ile Sql Server Lisanslaması hakkında bilgiler aktarmaya çalışacağım.

Sql Server Sürümleri:

    Sql Server 2014’te 3 ana sürüm bulunmaktadır.

  • Enterprise Edition: Kritik iş uygulamaları ve büyük data warehouse için gerekli özelliklere sahip sürümdür. En önemli ayırt edici özellikleri, In-Memory OLTP ve Always On’dur.
  • Business Intelligence Edition: İş zekası uygulamaları için uygun olan sürümdür.
  • Standart Edition: Temel veritabanı hizmetleri, raporlama ve analitik özelliklere sahip olan sürümdür.

Bu 3 sürüm arasında en kapsamlısı Enterprise Edition’dır. Business Intelligence Edition da Standart Edition’nın özelliklerini kapsamaktadır.

Diğer editionlar ise, Developer ve Express Editionlardır. Developer Edition, production ortamlarında kullanılmayan sadece test amaçlı yazılımcılara Msdn hesabı üzerinden dağıtılan sürümdür.

ÖNEMLİ: Desktop işletim sistemleri üzerinde SQL Server ile ilişkili deneme, uygulama testleri ve SQL Server yetenek testleri yapacaksanız, Developer edition kullanmalısınız. Bu sürüm Enterprise Edition ile aynı yeteneklere sahiptir fakat lisanslama açısından sadece test amaçlı sunulan bir sürümdür. Express ise 10 gb database boyut sınırı ve 1 gb memory kullanan küçük işletmeler için ücretsiz sunulan editiondır. Bu iki edition dışında satışı sadece hosting ve cloud firmalarına yapılan Web edition vardır.

Aşağıdaki tablo, 3 ana edition arasındaki özelliklerin farklarını bizlere göstermektedir:


SSL – 1

Sql Server Editionlarının kapasite limitleri de aşağıdaki tabloda gösterilmiştir.


SSL – 2

Kapasite limitasyonun detaylı hesaplaması için aşağıdaki linki ziyaret ediniz;

https://msdn.microsoft.com/en-us/library/ms143760(v=sql.130).aspx

Sql Server Lisansı Nasıl Satın Alınır?:

    Sql Server lisansı satın almanın birden çok yöntemi vardır. Satın alma yöntemi dediğimiz, satış kanalınızdan talep edeceğiniz Full Packaged Product (FPP) satın alınması veya donanım ile birlikte önceden yüklenmiş bir şekilde Sql lisansı satın alınmasıdır.

    Paket ve donanım seçeneklerinin dışında, Software Assurance (Yazılım Güvencesi) kapsamında farklı seçenekler bulunmaktadır. Bu seçenekler, Open Value, Open Value Subscription, Enterprise Agreement (EA), Enterprise Subscription Agreement (ESA) ve Server and Cloud Enrollment (SCE) seçenekleridir. Bu seçenekler Microsoft ile müşteri arasında yapılan anlaşmalara göre şekillenmektedir. Sql Server için temel olan FPP veya Open adı altında satın alınan lisanslardır.

    Satın alma yöntemlerinlerde hangi seçeneklerin kullanıldığı aşağıdaki tabloda gösterilmiştir. Bu tablo Sql Server 2014 için hazırlanmış olup, diğer mevcut versiyonlar ve yeni çıkacak Sql Server 2016 için farklılık gösterebilir.


SSL – 3

Sql Server Lisanslama Modelleri:

    Sql Server 2014 ile birlikte, Microsoft müşterilerine lisanslama modelleri için farklı seçenekler sunmuştur. Server+CAL lisanslama modeli, kullanıcı sayısı kadar User Cal lisansı alınarak daha az maliyetle Sql Server’ın lisanslamasını sağlamaktadır. Büyük yapılarda kullanıcı sayısı arttıkça User Cal lisanslaması yerine core-based tercih edilerek işlemci çekirdek sayısına göre lisanslama yapılmaktadır. Bu lisanslama modelinde kullanıcı sayısının limiti yoktur.

    Lisanslama modelleri ile ilgili seçeneklerin sunulduğu özet tablo


SSL – 4

Tabloda ilk dikkatimizi çeken, Enterprise lisanslama da sadece Core-based seçeneği vardır. Hem core-based hem de Server+CAL olan tek edition Standart editiondır.

Core-Based Lisanslama:

    Sql Server’ın çalıştığı server başına yapılan lisanslamadır. Fiziksel veya sanal ortamlarda kurulan Sql Server’lar için farklılık göstermektedir. Server+CAL lisanslama modeline göre, kullanıcı sayısı limiti yoktur. Kullanıcı sayısı arttığında, ilave CAL lisans almasını gerektirmeyen bir lisanslama modelidir.

    Core-based modelinde, ihtiyaçlar doğrultusunda Sql core lisansı alınarak Sql Server’da büyüme gerçekleştirebilir. En fazla karışıklığın olduğu ve dolayısı ile en fazla hata yapılan lisanslama modelidir. Temel sebebi, fiziksel ve sanal ortamlarda core faktörün devreye girmesiyle hata yapılmaktadır.

    Core-based lisanslamada, fiziksel server, fiziksel işlemci, fiziksel çekirdek (core), sanal işlemci ve Hyper-Thread kavramlarının iyi anlaşılması gerekmektedir. Lisanslama sırasında bu kavramlar çokça karıştırılmaktadırlar.


SSL – 5

Physical Server – Fiziksel sunucu üzerine Windows işletim sistemi direkt kurulabildiği gibi, hypervisor ile de sanal sistem üzerine de kurulmaktadır.

Physical Processor – Sunucu üzerinde bulunan fiziksel işlemci soketlerinden her birine verilen isimdir.

Physical Core – Fiziksel işlemcideki, fiziksel çekirdeklerin her birine verilen isimdir.

Virtaul Cpu vCpu – Sanal işlemci olarak geçer ve en çok karıştırılan kavramlardandır. Fiziksel çekirdeklerin sanal ortamdaki işlemci sayıları vCpu olarak tabir edilir.

Hyper-Thread – Fiziksel çekirdeklerin yazılım ile x2 çekirdek olarak artar.

    Yukardaki kavramları anlattıktan sonra, fiziksel işletim sistemi üzerine kurulan Sql Server’ın lisanslamasından bahsedelim. Eğer Sql Server bir fiziksel işletim sistemi üzerine kuruldu ise, bu fiziksel sunucuda bulunan tüm fiziksel çekirdekler kadar lisanslanma gerekmektedir. Bir başka deyişle fiziksel sunucudaki fiziksel cpu’ların tüm fiziksel çekirdekleri toplanarak, toplam alınacak Core-based lisans sayısı ortaya çıkar. Sanal sistemler ile fiziksel sistemlerin lisanslamasının en büyük farkı budur.

    Core-based lisanslar ikili paketler halinde satılır ve fiziksel cpu başına en az 4 tane alınması gerekmektedir. Toplam alınacak lisans sayısı ikiye bölünerek hesaplaması yapılır. Fiziksel sunucunuzda iki adet fiziksel cpu’nuz olduğunda bu fiziksel cpu’ların da en az 4 fiziksel çekirdeğe sahip olması gerekmektedir. Burada en çok yapılan hata, iki adet fiziksel cpu bulunan bir sunucuya 3 paket x 2 = 6 yani 6 adet core lisans alınmasıdır. Hâlbuki 4 paket x 2 = 8 yani toplamda 4 core pack alınması gerekmektedir.

    Yukardaki şekil SSL – 5’e göre nasıl bir lisans almalıyız bunu hesaplayalım. 2 adet Intel Xeon işlemcimiz ve bu işlemcilerin her birinde 6 fiziksel çekirdeğimiz var. Sunucuda toplam 12 fiziksel çekirdek var ve fiziksel sisteme olan kurulu Sql Server’lar için core factor 1’dir. 12 fiziksel core x 1 (core factor) = 12 core lisansa ihtiyaç vardır. Lisanslar 2’li paketler halinde satıldığı için 6 x 2 core pack yani 6 core pack satın alınması gerekmektedir.

    Cpu Core factor tablosu aşağıdaki gibidir, Amd işlemcilerde 0,75 katsayısına sahiptir.


SSL – 6

Per Core lisanslama ile ilgili detaylı pdf’i aşağıdaki linkten indirebilirsiniz

https://www.microsoft.com/en-us/licensing/learn-more/brief-licensing-by-cores.aspx

Per Core lisanslama modelinin uygun olduğu koşullar şu şekildedir;

  • Sql Server 2014 Enterprise, Sql Server 2012 Parallel Data Warehouse veya Sql Server 2014 Web editionlarından birinin yüklü olması gereklidir.
  • Sql Server’ı kullanan kullanıcıların ve clientların kolayca sayılamadığı sistemler için uygundur.
  • Server+CAL lisanslama maliyetinin daha yüksek çıktığı durumlarda Per Core lisanslaması kullanılmalıdır.

Önemli not: Fiziksel sistemlere kurulan Sql Server’larda hyper-threading teknolojisinin getirdiği core sayıları dikkate alınmamaktadır. Örnekteki 6 core fiziksel işlemcinin HT özelliği açık olduğunda, işletim sistemi bunu 12 core olarak görmektedir, fakat fiziksel Per Core lisanslamada fiziksel çekirdek sayısı ne ise ona göre lisanslanır ve HT özelliğinden gelen core sayıları dikkate alınmaz.

 

Server+CAL Lisanslama:

    Sql Server yazılımının, sunucu başına ve kullanıcı erişimi başına lisanlandığı modeldir. Client access license dediğimiz CAL lisansı bir yazılım değildir. Kullanıcıların veya cihazların Sql Server’e erişmek için kullandıkları lisanslama modelidir. CAL lisanslaması Device CAL ve User CAL olarak ikiye ayrılmaktadır.


SSL – 7

    Bu lisanslama tipinde, hem Sql Server tarafı hem de kullanıcı tarafı lisanslanmaktadır. Sql Server bir adet, kullanıcı tarafı ise kullanıcı sayısına göre lisanslanmaktadır. Çok fazla kullanıcı ve cihaz sayısına sahip firmalar için bu lisanslamanın maliyeti daha fazla olacağından core-based lisanslama önerilmektedir.

    Her fiziksel sunucu için bir adet Sql Server lisansı alınması gereken bu modelde, blade sunucular için durum farklıdır. Aynı şase üzerinde olan her bir blade sunucu ortak kaynak kullansa bile her bir sunucu için ayrı ayrı Sql Server lisansı alınması gerekmektedir.

    Sql Server’a erişen her kullanıcının Sql Server versiyonu ile aynı lisansı veya daha yeni versiyonu alması gerekmektedir. Örneğin, Sql Server 2014 için Sql Server 2012 CAL lisansı kullanılamaz ve Sql Server 2014 CAL lisansı alınması gerekmektedir.

    Server+CAL lisanslama modeli, Sql Server Business Intelligence Edition ve Sql Server Standart Edition’larda geçerli olan lisanslama modelidir. Enterprise Edition sunucuların Server+CAL lisanslama modeli içerisinde kullanılması için Volume Licensing anlaşmasındaki downgrade hakkı ile önceki versiyonlara downgrade yapılarak kullanılabilmektedir.

Sanal Ortamlarda Sql Server Lisanslaması:

    Sanal ortamlardaki Sql Server lisanslaması en çok karıştırılan konulardan biridir. Sql Server lisanslaması sanal ortamlarda esneklik getirmiştir. Fiziksel sunularda fiziksel çekirdek sayılarına müdahale edilemediği için, Sql Server lisanslamasında ne kadar fiziksel çekirdek var ise o kadar lisanslanmaktaydı. Sanal ortamlarda ise fiziksel çekirdeklerin yerini sanal çekirdekler aldığından, sanal makinaların çekirdek sayıları istek doğrultusunda değiştirelebilmektedir. Bu esneklik Sql Server lisanslamasınıda daha kolay bir hale getirmiştir.

    Aşağıdaki örnekte, 2 sanal çekirdekten oluşan 2 farklı işletimi sistemi üzerine kurulmuş, 2 farklı Sql Server bulunmaktadır.


SSL – 8

    Sanal makinaların lisanslamasında en az 4 çekirdek ve her bir sanal çekirdeğin toplam lisans adedine eklenmelidir. Aşağıdaki örnekte 2, 4 ve 6 sanal çekirdek olan Sql Server’ların lisansları bulunmaktadır.


SSL – 9

    Yukardaki örnekte dikkat çeken nokta, VM 1 de 2 sanal çekirdek olmasına rağmen 4 çekirdek lisanslamasının yapılması gerekmektedir.

    Sanal ortamlarda Hyper-Threading özelliği kapalı ise lisanslama, her bir sanal çekirdeğin toplamı üzerinden yapılır. Hyper-Threading özelliği açık ise bir fiziksel çekirdek, sanal ortamda 2 sanal çekirdek olarak gözükecektir. Böyle bir durumda sanal çekirdek sayısına değil, fiziksel çekirdek sayısının toplamına bakılır ve Hyper-Threading özelliğinden gelen sanal çekirdekler lisanslamada yarıya bölünerek hesaplanır.

    Sanal ortamlar için, maksimum kapasitede çalışacak bir sunucu için örnek bir senaryo üzerinden gidelim. Bir fiziksel sunucumuz var ve bu fiziksel sunucumuza 6 tane Sql Server kuracağız. Sunucumuzun özellikleri, çift soket Cpu, her bir fiziksel Cpu’da 6 adet fiziksel çekirdek olsun. Toplamda 12 adet fiziksel çekirdek Sql Server 2014 Enterprise core-based lisansına ilave olarak Software Assurance yapıldığında, bu host üzerine sınırsız sayıda sanal makina ve Sql Server kurulabilmektedir. Sanal makialarda Hyper-Threading özelliği açılarak, istenilen miktarda sanal çekirdek kullanılabilir. Software Assurance anlaşması bitine kadar bu şekilde kullanılabilmektedir ve lisansların geçerli olması için tekrardan SA anlaşması yapılması gerekmektedir.


SSL – 10

High Availability Sql Server’larda Lisanslama:

    Sql Server sunucusu bir sorun yaşayıp erişelemez olduğu durumlarda, diğer replika denen Sql Server suncusunun devreye girdiği senaryoların geneline High Availability denmektedir. HA yapısında, mirroring, log shipping faiolver clustering ve Always On seçenekleri bulunmaktadır. Bu yapıda en az iki Sql Server sunucu bulunduğundan, lisanslama maliyeti de en az iki katına çıkmaktadır.

    Failover yapılarında genel olarak bilinmesi gereken her iki Sql Server’ın da Software Assurance kapsamında lisanslanmasının gerekliliğidir. Ancak, ikinci sunucu pasif modda ve bu sunucuya clientlar erişemiyor ise, ikinci sunucu için Sql lisansına gerek yoktur. Replike olan sunucu sadece failover durumunda devereye alınmak üzere olan bir sunucu olarak pasif modda çalışmaktadır. Burada dikkat edilmesi gereken Always On yapısında, replike sunucunun readable olmaması gerekmektedir. Always On kurulu olan yapılarda, genellikle replike sunucular raporlama için kullanılmaktadır. Bu gibi durumlarda replike sunucu primary sunucu gibi lisanslanmak durumundadır. Replike olan pasif sunucudan yedekleme de yapılmamalıdır. Eğer pasif moddaki Sql Server’dan yedekleme yapılırsa, bu sunucunun da lisanslaması gerekmektedir.


SSL – 11

    Pasif sunucu eğer cloud da ise, pasif mod da olsa dahi SSL – 11 deki örneğe göre 12 core lisanslaması gerekmektedir.

     Pasif mod daki Sql Server’ın lisansa ihtiyaç duymaması, sadece 1 adet ile sınırlıdır. İkinci replike Sql Server olan bir yapıda, 1. Replike sunucu lisansdan muhaf olur, fakar 2. Replike sunucu core saıyısı kadar lisanslanmalıdır. İkinci olan replike sunucu pasif dahi olsa Software Assurance kapsamına girmediği için lisanslanması gerekmektedir. Bu yapıda 1 adet primary, 2 adet de secondary Sql Server bulunmaktadır.


SSL – 12

    Pasif sunucu devreye girdiğinde, aktif sunucudaki Sql lisansları Software Assurance’de bulunan Licence Mobility özelliği ile pasif sunucuya geçmiş olur. Yani, pasif sunucu devreye girdi diye yeni lisans almaya gerek yoktur.

    AlwaysOn Availibility grupları için Sql Server Enterprise lisansı gerekmektedir. Sekiz Sql Server’a kadar desteği olan AlwaysOn gruplarında, iki sunucu senkron yapıda çalışmaktadır (Sql Server 2016’da senkron çalışan sunucu sayısı 3’e çıkartılmıştır). Secondary sunucular, primary sunucunun yükünü hafifletmek için, raporlamada ve yedeklemede kullanılmaktadır. Bu sebeple AlwaysOn gruplarındaki secondary sunucular readable olduğunda, lisanslanması gerekmektedır.


SSL – 13