# rm-rf.es

Hard Partitioning en Oracle VM

El Hard Partitioning o CPU pinning permite, en arquitecturas x86, configurar una máquina virtual para que utilice únicamente los cores o CPU físicas que le indiquemos. Si no se especifica, Oracle VM repartirá la carga entre todas las CPU y cores del servidor físico en el que se esté ejecutando la VM mediante la CPU Affinity.

Normalmente este tipo de configuraciones se llevan a cabo en máquinas virtuales que tienen que cumplir unos requisitos estrictos de licenciamiento por CPU/cores.

Por línea de comandos en el servidor Oracle VM y utilizando comandos de Xen podemos ver claramente la configuración de CPUs de las VM:

# xm vcpu-list 
Name                                ID  VCPU   CPU State   Time(s) CPU Affinity
0004fb000006000024	            45     0     0   -b-    1243.1 0
0004fb000006000024		    45     1     0   -b-     372.5 0
0004fb000006000041                  44     0     0   -b-    1208.6 0
0004fb000006000041   		    44     1     0   -b-     368.6 0
0004fb0000060000e5		    32     0     3   -b-    8641.3 0-3
0004fb0000060000e5    	            32     1     1   -b-    6719.5 0-3
Domain-0                            0      0     2   -b-    9662.5 any cpu
Domain-0                            0      1     6   r--    6505.9 any cpu

En el ejemplo anterior tenemos 3 ejemplo diferenciados.

Como véis, configuraciones de CPU completamente distintas según los requisitos de la VM.

Para configurar estos parámetros podemos utilizar las utilidades de línea de comandos de Oracle VM 3 (patch ID 13602094). En el siguiente ejemplo visualizamos el pinning de vCPUs de la VM «testvm»:

# ./ovm_vmcontrol -u admin -p password -h localhost -v testvm -c vcpuget
Oracle VM VM Control utility 0.5.2.
Connected.
Command : vcpuget
Current pinning of virtual CPUs to physical threads : 0,1

Para configurar el pinning contra la CPU 0 utilizamos el siguiente comando:

# ./ovm_vmcontrol -u admin -p Manager1 -h localhost -v testvm -c vcpuset -s 0
Oracle VM VM Control utility 0.5.2.
Connected.
Command : vcpuset
Pinning virtual CPUs
Pinning of virtual CPUs to physical threads '0' 'testvm' completed.

En versiones anteriores a Oracle VM 3, lo que se hacía era directamente configurar el parámetro «cpus = » en el fichero de configuración de la máquina virtual vm.cfg:

cpus = '0-3'
cpus = '0,1'
Salir de la versión móvil