OVM CPU Pinning - wozu?
OVM CPU Pinning ist eine - von Oracle anerkannte - Methode, um bei der Virtualisierung mittels OVM die Anzahl der benötigten Oracle (Datenbank) Lizenzen auf die für die einzelnen VMs zugewiesenen CPU Ressourcen zu beschränken.
Es werden dabei die virtuellen CPUs einer VM (vcpus) auf ein oder mehrere physische CPUs des/der OVM Server(s) gebunden. Damit wird verhindert, dass CPU Leistung von anderen CPUs für diese VM zur Verfügung gestellt werden kann. Somit werden die Bedingungen des sog. "Hard Partitioning" (siehe auch u.a. Dokument) erfüllt.
Bei den meisten anderen Virtualisierungen (z.B. VMWare, PowerVM) ist dies nicht möglich und führt dabei zu erhöhten Lizenzkosten.
Dazu gibt es von Oracle folgendes Dokument (URL kann sich ändern, wenn Oracle die Homepage umstrukturiert)
http://www.oracle.com/us/corporate/pricing/partitioning-070609.pdf
OVM CPU Pinning - wie geht das?
Die von Oracle präferierte (und anerkannte) Methode ist die Festschreibung des CPU Pinning in der vm.cfg der jeweiligen VM. Das entsprechende Attribut lautet "cpus" und kann wie folgt konfiguriert werden:
"Single-Value" - alle VCPUs laufen nur auf dieser physischen CPU, z.B. cpus = '4'
"List" - alle VCPUs werden auf die angegebenen physischen CPUs verteilt, z.B. cpus = '1,2'
"Range" - alle VCPUs werden auf die angegebenen physischen CPUs verteilt, z.B. cpus = '3-6'
Oracle liefert auch ein Werkzeug mit dem das CPU Pinning auf der Kommandozeile konfiguriert werden kann, nämlich die "Oracle VM Utilities", welche auf MOS unter Patch ID 13602094 bezogen werden können.
Die entsprechende Dokumentation der "Oracle VM Utilities" ist in der Dokumentation von "Oracle VM" enthalten.
Im OVM Manager gibt es derzeit keine Möglichkeit, CPU Pinning zu konfigurieren.
Auch die Verwendung von "xm|xl vcpu-pin" ist nicht anzuraten, da dies nicht die Voraussetzungen für "Hard Partitioning" erfüllt.
Wenn man das vm.cfg manuell erweitert (ist erlaubt) gehen diese Einstellungen regelmäßig verloren, daher ist von dieser Vorgehensweise abzuraten (auch wenn man dies im Internet immer wieder findet).
Einige Syntaxbeispiele
(für die Verwendung der "-E" Option muss das Environment entsprechend konfiguriert sein, siehe Dokumentation).
"Single-Value"
# ./ovm_vmcontrol -u <username> -E -h <ovm-manager-host> -v <vm> -c vcpuset -s 4
Oracle VM VM Control utility 2.0.1.
Connecting with a secure connection.
Connected.
Command : vcpuset
Pinning virtual CPUs
Pinning of virtual CPUs to physical threads '4' '<vm>' completed.
"List"
# ./ovm_vmcontrol -u <username> -E -h <ovm-manager-host> -v <vm> -c vcpuset -s 1,2
Oracle VM VM Control utility 2.0.1.
Connecting with a secure connection.
Connected.
Command : vcpuset
Pinning virtual CPUs
Pinning of virtual CPUs to physical threads '1,2' '<vm>' completed.
"Range"
# ./ovm_vmcontrol -u <username> -E -h <ovm-manager-host> -v <vm> -c vcpuset -s 3-6
Oracle VM VM Control utility 2.0.1.
Connecting with a secure connection.
Connected.
Command : vcpuset
Pinning virtual CPUs
Pinning of virtual CPUs to physical threads '3-6' '<vm>' completed.
Die aktuellen Einstellungen können am OVM Server wie folgt abgefragt werden:
# xm vcpu-list [VM]
Name ID VCPU CPU State Time(s) CPU Affinity
0004fb00000600002c912aa6002631ac 5 0 3 -b- 4518.4 any cpu
0004fb00000600002c912aa6002631ac 5 1 3 -b- 79.2 any cpu
0004fb0000060000aa081feaa7419a65 10 0 3 -b- 16952.1 0
0004fb0000060000aa081feaa7419a65 10 1 0 -b- 12665.3 1
0004fb0000060000c8ba635ec4cb2d04 9 0 2 -b- 3862.3 any cpu
0004fb0000060000c8ba635ec4cb2d04 9 1 3 -b- 51.4 any cpu
0004fb0000060000c8ba635ec4cb2d04 9 2 0 -b- 215.9 any cpu
0004fb0000060000de7a11b6495ea098 1 0 0 -b- 8366.7 0
0004fb0000060000de7a11b6495ea098 1 1 1 -b- 1786.1 1
Domain-0 0 0 2 r-- 69386.4 any cpu
Domain-0 0 1 0 -b- 79212.3 any cpu
Wird unter der Spalte "CPU Affinity" der Wert "any cpu" angezeigt, ist kein CPU Pinning aktiv.
Sind die "Oracle VM Utilities" verfügbar, kann die Information wie folgt abgerufen werden:
# ./ovm_vmcontrol -u <username> -E -h <ovm-manager-host> -v <vm> -c vcpuget
Oracle VM VM Control utility 2.0.1.
Connecting with a secure connection.
Connected.
Command : vcpuget
Current pinning of virtual CPUs to physical threads : 4
OVM CPU Pinning - worauf muß man aufpassen?
Folgende Funktionalität der OVM darf im Sinne der Einhaltung der Lizenzvorschriften nicht genutzt werden:
-
"Live Migration"
-
"DRS Policies" ("Distributed Ressource Scheduling")
-
"DPM Policies" ("Distributed Power Management")
Dazu ein Auszug aus der Dokumentation
Quelle: http://docs.oracle.com/cd/E50245_01/E50249/html/vmcon-vm-pinning.html
...
Warning
Live-migration of CPU pinned virtual machines to another Oracle VM Server is not permitted under the terms of the license. Consequently, DRS and DPM policies should not be enabled for server pools containing CPU pinned guests.
...
Live Migration deaktivieren
Um die "Live Migration" Funktionalität zu deaktivieren, empfiehlt es sich, bei allen Netzwerken die "Network Usage" für "Live Migration" im OVM Manager abzuwählen ("Network" -> "Configuration" -> "Network Usage"). Das bedeutet aber auch, dass auch VMs ohne Oracle Datenbank nicht mehr Online verschoben werden können.
Wichtiger Hinweis
Wir haben leider schon mehrfach festgestellt, dass nach Wartungsarbeiten das CPU Pinning verloren gegangen war. Daher sollte man nach Wartungsarbeiten und Konfigurationsänderungen ist immer zu prüfen, ob das CPU Pinning noch aktiv ist.
Wir haben folgende Konfigurationsänderungen unter OVM 3.3 und ihre Auswirkung auf das CPU Pinning einer VM geprüft:
-
"Memory hinzufügen" - CPU Pinning bleibt erhalten
-
"Memory verringern" - CPU Pinning bleibt erhalten
-
"CPUs hinzufügen" - CPU Pinning bleibt erhalten
-
"CPUs verringern" - CPU Pinning bleibt erhalten
-
"Live Migration" - CPU Pinning bleibt erhalten (darf aus Lizenzgründen nicht auf produktiven Servern durchgeführt werden!)
OVM CPU Pinning - Zusammenfassung
OVM CPU Pinning bietet eine einfache Möglichkeit, Oracle Lizenzkosten zu sparen.
Um dies auch zu nutzen, muss bei der Konfiguration genau nach Dokumentation vorgegangen werden und es müssen Einschränkungen der OVM Funktionalität in Kauf genommen werden.
Besonders zu beachten ist, dass die Konfiguration des CPU Pinning nach diversen Wartungsarbeiten und Konfigurationsänderungen verloren gehen kann und daher in solchen Situationen unbedingt geprüft und gegebenenfalls angepasst werden muss.
OVM CPU Pinning - weiterführende Hinweise
Zum Zeitpunkt des Erstellens dieses Artikels haben folgende Links funktioniert: