Jump to content

SQL-2008-R2 Prozessor-Lizenz-Virtualisierung, ein sicheres Audit


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Moin,

 

SUPER wichtig !!! Bei der SQL-Prozessor-Virtualisierung gilt:

Bei der STD- + DC-Edition gibt es Fallstricke !

Hier ist die SQL-EE-Edition die einzige noch sinnvolle Edition !

( Wer angeblich meint, die Lizensierung aus den weiter unten aufgeführten PURs zu verstehen, viel Spaß! )

Wenn ein Kunde die STD oder DC-Edition bestellt, darf er nicht überrascht sein, wenn er ein Audit-Schreiben von MS/KPMG erhält !! Ich kenne kaum einen, der auf Anhieb die richtige Lizenz-Anzahl der legal benötigten CPU-Lics berechnen kann!

 

Aus PURs 12-2010 Seite 69 +70 von 169 : Für alle SQLs mit Prozessor-Lizensierung gilt:A.

Allgemeine Lizenzbestimmungen. Für jeden Server, den Sie ordnungsgemäß lizenzieren, haben Sie die folgenden Rechte.

I) Lizenzieren eines Servers. Bevor Sie Instanzen der Serversoftware auf einem Server ausführen, müssen Sie die Anzahl der erforderlichen Lizenzen bestimmen und sie diesem Server zuweisen.

a) Bestimmung der Anzahl der benötigten Lizenzen. Die Anzahl der erforderlichen Lizenzen richtet sich entweder nach der Gesamtanzahl der physischen Prozessoren auf dem Server (wie in Option (i) unten beschrieben) oder nach der Anzahl der verwendeten virtuellen und physischen Prozessoren (wie in Option (ii) unten beschrieben). Bei den Enterprise-Editionen der Software können Sie sich für eine dieser Optionen entscheiden. Bei allen anderen Editionen der Software müssen Sie sich nach der zweiten Option richten.

i) Unlimited Virtualization. Bei dieser Option entspricht die Anzahl der für einen Server erforderlichen Softwarelizenzen der Gesamtanzahl der physischen Prozessoren auf diesem Server. Die Berechnung und Zuweisung von Lizenzen auf der Grundlage dieser Option erlaubt es Ihnen, die Serversoftware in einer physischen und einer unbegrenzten Anzahl von virtuellen Betriebssystemumgebungen (oder OSEs) ungeachtet der Anzahl der verwendeten physischen und virtuellen Prozessoren auszuführen. Diese Option ist nur bei den Enterprise-Editionen der Software verfügbar.

ii) Lizenzierung auf Basis der verwendeten Prozessoren. Bei dieser Option entspricht die Gesamtanzahl der für einen Server erforderlichen Softwarelizenzen der Summe der unter den nachfolgenden Ziffern (A) und (B) erforderlichen Softwarelizenzen. Bei anderen Editionen als der Enterprise Edition ist dies die einzige Option.

(A) Zum Ausführen von Instanzen der Serversoftware in der physischen OSE auf einem Server benötigen Sie eine Softwarelizenz für jeden physischen Prozessor, den die physische OSE verwendet.

(B) Zum Ausführen von Instanzen der Serversoftware in virtuellen OSEs auf einem Server benötigen Sie eine Softwarelizenz für jeden virtuellen Prozessor1, den jede dieser virtuellen OSEs verwendet. Nutzt eine virtuelle OSE jedoch lediglich einen Teil eines virtuellen Prozessors, gilt dieser Teil als vollständiger virtueller Prozessor.

 

1 Bei einem virtuellen Prozessor handelt es sich um einen Prozessor in einem virtuellen (oder anderweitig emulierten) Hardwaresystem. Virtuelle Betriebssystemumgebungen verwenden virtuelle Prozessoren. Ausschließlich zu Lizenzierungszwecken wird bei einem virtuellen Prozessor davon ausgegangen, dass er über die gleiche Anzahl von Threads und Cores verfügt wie jeder physische Prozessor auf dem zugrunde liegenden Hardwaresystem. Bei einer virtuellen OSE auf einem Server, auf dem jeder physische Prozessor X logische Prozessoren bereitstellt, entspricht die Anzahl der erforderlichen Lizenzen also der Summe der nachfolgenden Ziffern a) und b):

a) eine Lizenz für alle X logischen Prozessoren, die die virtuelle OSE verwendet

b) eine Lizenz, wenn es sich bei der Anzahl der logischen Prozessoren, die sie verwendet, nicht um ein ganzzahliges Vielfaches von X handelt

Das oben verwendete „X“ entspricht der Anzahl der Cores oder gegebenenfalls der Anzahl der Threads in jedem physischen Prozessor.

VG, Franz

Link zu diesem Kommentar

Hi Franz,

 

kannst du mal ein Beispiel abgeben was falsch und richtig wäre? Prinzipiell hast du da jetzt viel Text gepostet, was du selber als etwas undurchsichtig beschreibst.

 

Verstanden habe ich das so, dass bei der Virtualisierung die durchgereichten Cores als einzelene Prozessoren zu verstehen sind und dementsprechend diese Cores auch mit entsprechenden Prozessorlizenzen ausgestattet werden müssen. Wäre ich dann z.B. bei einem Quadcore nur unterlizenziert wenn ich alle vier Cores durchreiche? Im Umkehrschluss wäre ich richtig lizenziert wenn ich nur einen Core durchreiche an das Gastsystem? (Wenn man bei beiden Fällen davon ausgeht, dass nur eine Prozessorlizenz SQL-Std. gekauft wurde)

 

Grüße

Link zu diesem Kommentar

Cschra, jetzt wird es interessant :)

 

Quelle: CPU-Auslastungsansicht

Teil-Auszug:

Die Hardwareunterstützung von simultanem Multithreading (beispielsweise Hyper-Threading) wird vom Betriebssystem Windows als logische Kerne behandelt. Deshalb wird ein System mit einem Quad-Core-Prozessor, bei dem jeweils zwei Hardwarethreads pro Kern unterstützt werden, als System mit acht logischen Kernen angezeigt.

 

Das hieße im STD-Fall (wenn ich mich nicht irre und alles falsch lese)

 

Wenn das „Blech“ 1x CPU-Socket mit Quad-Prozessor hat = 4 Kerne:

1x gekaufte SQL-STD-1 Proc-Lizenz = 1x in der physikalischen OSE okay,

 

In der virtuellen OSE darf dann auch nur 1x Kern mit auch nur 1x Thread „angeboten“ werden .

 

Aber

wenn man einen Quad, wie oben beschrieben hat und mit je 2 Threads unterstützt

und so auch anbietet, dann sind (weil 8x logische Kerne)

8x SQL-STD-1 Proc-Lizenzen zu lizensieren!

 

Da gehe ich doch lieber gleich auf die EE-Edition, oder?

 

VG, Franz

Link zu diesem Kommentar

Wenn man denn alle durchgereichten CPU's auch für den SQL Server aktiviert wird man wohl tatsächlich für jeden virtuellen Prozessor auch eine Lizenz benötigen. Die Virtualisierungssoftware jedenfalls unterscheidet hier nicht nach Cores, bisher jedenfalls.

 

 

Das war aber vor SQL 2008 R2 quasi meines Erachtens auch schon so, nur nicht so eindeutig formuliert, empfinde ich also nicht als wirklich neu, lediglich klarer formuliert bzw auch explizit für virtuelle Umgebungen aufgeführt.

 

Jedenfalls sind dafür aus technischer Sicht ja auch die Prozessorkonfigurationsoptionen in den Eigenschaften des SQL Servers mindestens seit SQL 2000 im Enterprise Manager bzw ab 2005 im Management Studio gerade gedacht. (Früher eher für die 4 Sockel Kisten mit einer 1 CPU SQL Standard Lizenz, heute sicherlich eher für die Quad-Core ESX, Hyper-V und was weiss ich noch ....)

 

Grüsse

 

Gulp

Link zu diesem Kommentar

Sorry Gulp,

wie ließt du denn diesen Auszug aus den PURs:

 

Das oben verwendete „X“ entspricht der Anzahl der Cores oder gegebenenfalls der Anzahl der Threads in jedem physischen Prozessor.

 

und das "X" ist der Multiplikator für die zu kaufenden Proc-Lizenzen ....

 

Früher wurden die CPU-Sockets als Lizensierungsgrundlage genommen, heute (seit 04-2010 )die Cores und dann auch noch die Threads.

 

VG, Franz

bearbeitet von lizenzdoc
Link zu diesem Kommentar

Bis vor kurzem gab es in den meisten Virtualisierern keinen Unterschied zwischen Sockel und Core, reintechnisch betrachtet waren dies eher Sockel, somit war die Regelung dort eigentlich auch genauso gültig.

 

Mit zB Vmware Workstation 7 kann man aber nun auch die Zahl der CPU Cores und der Sockel getrennt festlegen, daher wird aus Sicht von Microsoft es wohl nötig gewesen sein, die Kriterien etwas klarer beim Namen zu nennen und virtuelle Systeme seperat zu betrachten.

 

Dass hier in Zeiten von Core i5 und i7 mit Hyperthreading auch die Threads betrachtet werden ist, mag man bewerten wie man will.

 

Aus der virtuellen Sicht jedenfalls lässt sich die virtuelle Maschine ganz exakt auf die jeweils lizensierte Anzahl an CPU's konfigurieren, bei physikalischen Maschinen ändert sich ja auch gar nichts, da bleibt die Lizenz/Sockel Regeleung ja weiterhin gültig.

 

Grüsse

 

Gulp

Link zu diesem Kommentar

Okay,

dann wage ich mich mal zu einer Formel für die Berechnung der benötigten Lizenzen für die SQL-STD/DC-1-Proc-Editionen für die virtuelle OSE:

 

Anzahl der Lizenzen = Anzahl der logischen Prozessoren in der virtuellen OSE

 

= S x C x T

 

Wobei gilt:

S = Anzahl der belegte CPU-Sockets in der physikalischen OSE

C= Anzahl der bereitgestellten Cores in der virtuellen OSE

T = Anzahl der unterstützenden Threads in der virtuellen OSE

 

Kann ich das so sagen/schreiben ?

 

VG, Franz

Link zu diesem Kommentar

Kann man aus meiner Sicht machen.

 

Ein übliches Szenario bei Nutzung von 2 virtuellen CPU's mit jeweils einem Thread pro CPU wäre dann ja:

 

S = 0 (es wird keine physikalische Instanz der SQL Serverversion ausgeführt) x 2 x 0 = 2 SQL-Std-Proc

 

Also benötigt man aus meiner Sicht auch nicht mehr Lizenzen als sonst. :D

 

Grüsse

 

Gulp

Link zu diesem Kommentar

Ich zitiere Dich mal aus Post 1 und ergänze heute mal mit rot:

 

(A) Zum Ausführen von Instanzen der Serversoftware in der physischen OSE auf einem Server benötigen Sie eine Softwarelizenz für jeden physischen Prozessor, den die physische OSE verwendet.

 

Soweit ok und wohl verständlich, wenn man rein physikalische Server verwendet, pro physikalischem Prozessor eine Lizenz. Aber eben nicht gültig für eine virtuelle CPU da bei der Verwendung einer virtuellen OSE die Instanz der Serversoftware nur auf dem virtuellen Prozessor ausgeführt wird. Auf der physikalischen CPU wird zwar ein virtuelles Replikat ausgeführt, aber eben nicht als Instanz (quasi als EXE).

Damit behält dieser Passus nur bei einer auf der physikalischen OSE installierten Instanz seine Gültigkeit.

 

(B) Zum Ausführen von Instanzen der Serversoftware in virtuellen OSEs auf einem Server benötigen Sie eine Softwarelizenz für jeden virtuellen Prozessor1, den jede dieser virtuellen OSEs verwendet. Nutzt eine virtuelle OSE jedoch lediglich einen Teil eines virtuellen Prozessors, gilt dieser Teil als vollständiger virtueller Prozessor.

 

Hier wird nun explizit für virtuelle Umgebungen spezifiziert. Jeder in der VM verwendete virtuelle Prozessor muss mit einer Lizenz ausgestattet werden, auch Teile (Ressourcenmanagement: ein Blech mit 12 CPU's/Cores mit ESX hostet 10 VM's mit jeweils 2 virtuellen CPU's mit jeweils in den VM installierten Instanzen der Serversoftware: gerade dann müssen eben nicht die wenigen physikalischen CPU's gezählt, sondern die 20 virtuellen gerechnet werden auch wenn sie nur einen Teil einer physikalischen CPU nutzen.) müssen als ganze CPU lizensiert werden.

 

 

Also eher immer noch (multiplizieren is glaub ich nicht so gut, sondern weil "Bei dieser Option entspricht die Gesamtanzahl der für einen Server erforderlichen Softwarelizenzen der Summe der unter den nachfolgenden Ziffern (A) und (B) erforderlichen Softwarelizenzen." eher eine Summenformel).

 

 

S = 0 + C = 2 + T = 0 = 2

 

Der Vorteil bei der Enterprise ist, dass ich in dem Falle, wenn ich halt weniger physikalische CPU's als virtuelle CPU's habe ja auch nach deren Anzahl korrekt lizensieren kann, weil ich mir eine der Möglichkeiten aussuchen darf und die Option "i) Unlimited Virtualization" logischerweise nehme.

 

 

Grüsse

 

Gulp

Link zu diesem Kommentar

Moin,

 

kurzer Zwischenstopp ….da ich mich technisch nicht so aus kenne und bevor ich mich total verrenne und auch noch falsch berate:

 

Frage: auf der virt.-OSE >

 

VMware stellt sog. VMs zur Verfügung u. teilt diesen eine Anzahl von „virtuellen CPUs“ zu.

 

Denke ich jetzt richtig, dass es sein kann, dass bei einer physischen Situation von

2xQuad-CPUs in einem Blech,

VMware ohne weiteres daraus 20x VMs mit je 2x virtuellen CPUs bereitstellen kann, also hier 8 virt. Cores teilweise und somit mehrfach zuweisen kann, was ja dann hieße, dass hier 40x SQL-1-Proc-Lizenzen gekauft werden müssten ???

 

Läuft das generieren und zuweisen der VMs so auch bei MS-HyperV ?

 

VG, Franz

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...