Und täglich grüßt die SQL Lizenzierung – oder: SQL Server in virtuellen Umgebungen korrekt lizenzieren

Mein letzter Blog Beitrag zum Thema SQL Server 2008 Lizenzierung in virtuellen Umgebungen ist schon ein Weilchen her und damit unser aller Wissen rund um diese zugegebenermaßen nicht ganz triviale Thematik nicht einschläft kommt hiermit ein Update zur Fragestellung: “Wie lizenziere ich SQL Server in virtuellen Umgebungen korrekt?”.

Eines gleich vorweg: die Lizenzierung ist teilweise super einfach (Server/CAL) oder ein bisschen – naja sagen wir mal flexibler (Prozessor). Fangen wir mit dem einfachen Teil an. Auf die Basis Fragen “was ist Server/CAL”, “was Prozessor Lizenz” gehe ich hier aus Gründen der Übersichtlichkeit nicht ein (dazu bitte bei Bedarf den SQL Server Licensing Guide reinziehen).

Server/CAL Lizenzierung

  • Standard und Workgroup Edition: es ist eine SQL Serverlizenz pro virtueller Umgebung notwendig, wenn auf dem pyhsikalischen Host auch ein SQL Server läuft muss auch dieser natürlich auch lizenziert werden.
  • Enterprise Edition: es ist eine SQL Serverlizenz pro pyhsikalischer Umgebung (= Host) notwendig, es dürfen auf dem Host beliebig viele VM’s mit SQL Server betrieben werden!
  • SQL CALs wie gehabt: eine SQL CAL pro Benutzer/Gerät welcher/s auf mind. einen SQL Server direkt oder indirekt zugreift

Prozessor Lizenzierung

Bei der Lizenzierung auf Prozessorbasis müssen, gleich wie in physikalischen Umgebungen, die tatsächlich verwendeten physikalischen Prozessoren (Sockets) lizenziert werden. Klingt logisch – nur wie stell ich fest welche VM wieviele Prozessoren benötigt? In einer nicht virtuellen Umgebung ist das einfach: die Anzahl der (bestückten) Sockets. Damit die Verwirrung nicht zu groß wird zuerst eine Begriffsbestimmung:

image

  • Standard, Web und Workgroup Edition: pro virtueller Umgebung müssen die Anzahl der von den virtuellen Prozessoren verwendeten physikalischen Prozessoren lizenziert werden.
  • Enterprise Edition: Grundsätzlich wie Standard Edition ABER: es muss maximal die Gesamtanzahl der physikalischen Prozessoren lizenziert werden. D.h. wenn alle physikalischen Prozessoren lizenziert sind, darf ich beliebig viele SQL-VM’s mit beliebig vielen virtuellen Prozessoren betreiben!

Wie berechne ich die Anzahl der tatsächlich von meinen virtuellen Prozessoren verwendeten physikalischen Prozessoren? Diese Fleißaufgabe ist ausführlich im SQL Server Licensing Guide erklärt – mit super Beispielen!

Das System funktioniert grundsätzlich folgendermaßen:

Ein virtueller Prozessor in einer VM verwendet ja meist nur einen Teil des Prozessors (bei Mulit-Core) und zwar entweder Cores oder Threads, je nach Prozessorart (Stichwort Hyper Threading), Betriebssytem und Einstellungen. Man berücksichtigt also die Anzahl der virtuellen Prozessoren in meiner VM und dividiere sie durch die Anzahl der Cores pro Prozessor oder der Threads pro Prozessor (je nach System) und man erhält die Anzahl der Prozessoren die verwendet werden (auf ganze Zahlen aufgerundet).

Beispiel: Eine VM mit 6 virtuellen Prozessoren auf einem 4 Prozessor Server mit Dualcore Prozessoren (= 2 Cores pro Prozessor) benötigt dann tatsächlich 6/2=3 Prozessoren. Sollte das Threading aktiviert sein stehen beispielsweise 2 Threads pro Core = 4 Threads pro Prozessor zur Verfügung: 6/4 = 2 Prozessoren.

Die Rechenaufgabe ist pro VM mit SQL Server durchzuführen, wobei bei einer SQL Enterprise Lizenz maximal die Anzahl aller zur Verfügung stehenden physikalischen Prozessoren lizenziert werden muss, was in umfangreichen virtuellen Umgebungen mit vielen SQL Servern tatsächlich Geld sparen kann. Sollten Sie einen Server noch nicht virtualisiert haben und dafür in Besitzt der entsprechenden SQL Enterprise Prozessor Lizenzen sein, können sie auf dieser Hardware bei einer Virtualisierung beliebig viele VMs mit SQL Servern betreiben ohne sich über die Lizenzierung Gedanken machen zu müssen.

Mein Tipp

Lizenzieren Sie daher einfach eine SQL Server Enterprise Prozessor Lizenz für alle physikalischen Prozessoren und Sie sind für alle Zeiten gerüstet und garantiert nicht unterlizenziert ;-). Oder aber Sie widmen sich dem SQL Server Licensing Guide und können Geld sparen in dem Sie die für Sie optimale Form der Lizenzierung finden. Bedenken Sie: die SQL Server Enterprise Lizenz ist nicht nur bei der Lizenzierung in virtuellen Umgebungen flexibler (Server und Prozessor) und unter Umständen sogar kostengünstiger wenn die VMs mehr werden, sie bietet auch geniale Features gerade wenn es darum geht Speicherplatz zu sparen, gleichzeitig die Performance zu erhöhen (Data Compression, Resource Governor, Hot-Add Memory und CPU) und wenn es um die Verwaltung von vielen SQL Servern geht (Policy-Based Management).

 

Weiterführende Ressourcen

Hinweis: Die angeführten Erklärungen und Beispiele sind Hilfestellungen und in keinster Weise verbindlich – bitte daher den SQL Server Licensing Guide studieren. Verbindlich sind immer nur der jeweilige Lizenzvertrag und die Produktnutzungsrechte!

 

Martin Pöckl
martin.poeckl@microsoft.com