Memoria compartida
La memoria compartida es memoria física asignada a la agrupación de memoria compartida y que se comparte entre varias particiones lógicas. La agrupación de memoria compartida es una colección definida de bloques de memoria física gestionados como una única agrupación de memoria por el hipervisor. Las particiones lógicas que configura para utilizar memoria compartida comparten la memoria de la agrupación con otras particiones de memoria compartida.
Por ejemplo, el usuario crea una agrupación de memoria compartida con 16 GB de memoria física. A continuación crea tres particiones lógicas, las configura para que utilicen memoria compartida y activa las particiones de memoria compartida. Cada partición de memoria compartida puede utilizar los 16 GB que se encuentran en la agrupación de memoria compartida.
El hipervisor determina la cantidad de memoria de la agrupación de memoria compartida asignada a cada partición de memoria compartida en función de la carga de trabajo y la configuración de memoria de cada partición de memoria compartida. Al asignar la memoria física a las particiones de memoria compartida, el hipervisor se asegura de que cada partición de memoria compartida pueda acceder en un momento dado sólo a la memoria asignada a ella. Una partición de memoria compartida no puede acceder a la memoria física asignada a otra partición de memoria compartida.
La cantidad de memoria asignada a las particiones de memoria compartida puede ser superior a la cantidad de memoria de la agrupación de memoria compartida. Por ejemplo, puede asignar 12 GB a la partición de memoria compartida 1, 8 GB a la partición de memoria compartida 2 y 4 GB a la partición de memoria compartida 3. Conjuntamente, las particiones de memoria compartida utilizan 24 GB de memoria, pero la agrupación de memoria compartida contiene sólo 16 GB de memoria. En esta situación, la configuración de memoria se considera sobrecomprometida.
Las configuraciones de memoria sobrecomprometidas son posibles porque el hipervisor virtualiza y gestiona toda la memoria de las particiones de memoria compartida de la agrupación de memoria compartida del siguiente modo:
- Cuando las particiones de memoria compartida no están utilizando activamente sus páginas de memoria, el hipervisor asigna esas páginas de memoria inutilizadas a las particiones de memoria compartida que actualmente las necesitan. Cuando la suma de la memoria física utilizada actualmente por las particiones de memoria compartida es inferior o igual a la cantidad de memoria de la agrupación de memoria compartida, la configuración de memoria está sobrecomprometida lógicamente. En una configuración de memoria sobrecomprometida lógicamente, la agrupación de memoria compartida tiene memoria física suficiente para contener la memoria utilizada por todas las particiones de memoria compartida en un momento dado. El hipervisor no necesita almacenar datos en almacenamiento auxiliar.
- Cuando una partición de memoria compartida necesita más memoria de la que el hipervisor puede suministrarle asignándole partes no utilizadas de la agrupación de memoria compartida, el hipervisor almacena parte de la memoria de la agrupación de memoria compartida perteneciente a una partición de memoria compartida y almacena el resto de la memoria perteneciente a la partición de memoria compartida en almacenamiento auxiliar. Cuando la suma de la memoria física utilizada actualmente por las particiones de memoria compartida es superior a la cantidad de memoria de la agrupación de memoria compartida, la configuración de memoria está sobrecomprometida físicamente. En una configuración de memoria sobrecomprometida físicamente, la agrupación de memoria compartida no tiene memoria física suficiente para contener la memoria utilizada por todas las particiones de memoria compartida en un momento dado. El hipervisor almacena la diferencia de la memoria física y compartida en el almacenamiento auxiliar. Cuando el sistema operativo intenta acceder a los datos, puede que el hipervisor necesite recuperarlos del almacenamiento auxiliar para que el sistema operativo pueda acceder a ellos.
Dado que es posible que la memoria asignada a una partición de memoria compartida no siempre resida en la agrupación de memoria compartida, la memoria que se asigna a una partición de memoria compartida es memoria lógica. La memoria lógica es el espacio de direcciones asignado a una partición lógica que el sistema operativo percibe como su almacenamiento principal. Para una partición de memoria compartida, el almacenamiento principal físico (o la memoria física de la agrupación de memoria compartida) conserva un subconjunto de la memoria lógica, y el resto de la memoria lógica se conserva en almacenamiento auxiliar.
Una partición lógica del Servidor de E/S virtual proporciona acceso al almacenamiento auxiliar, o a los dispositivos de espacio de paginación, necesarios para las particiones de memoria compartida en una configuración de memoria sobrecomprometida. Un dispositivo de espacio de paginación es un dispositivo físico o lógico utilizado por un Servidor de E/S virtual para suministrar el espacio de paginación a una partición de memoria compartida. El espacio de paginación es un área de almacenamiento no volátil utilizada para contener partes de la memoria lógica de una partición de memoria compartida que no residen en la agrupación de memoria compartida. Si el sistema operativo que se ejecuta en una partición de memoria compartida intenta acceder a los datos, y éstos se encuentran en el dispositivo de espacio de paginación asignado a la partición de memoria compartida, el hipervisor envía una solicitud a un Servidor de E/S virtual para que recupere los datos y los grabe en la agrupación de memoria compartida para que el sistema operativo pueda acceder a ellos.
En los sistemas gestionados por una Hardware Management Console (HMC) puede asignar hasta dos particiones lógicas de Servidor de E/S virtual (VIOS) a la agrupación de memoria compartida simultáneamente. Al asignar dos particiones VIOS de transferencia de páginas a la agrupación de memoria compartida, puede configurar los dispositivos de espacio de paginación de forma que ambas particiones VIOS de transferencia de páginas tengan acceso a los mismos dispositivos de espacio de paginación. Si una partición VIOS de transferencia de páginas no está disponible, el hipervisor envía una solicitud a la otra partición de VIOS de transferencia de páginas para recuperar los datos del dispositivo de espacio de paginación.
No puede configurar particiones VIOS de transferencia de páginas para que utilicen memoria compartida. Las particiones VIOS de transferencia de páginas no utilizan la memoria de la agrupación de memoria compartida. Las particiones VIOS de transferencia de páginas se asignan a la agrupación de memoria compartida para que puedan suministrar acceso a los dispositivos de espacio de paginación para las particiones de memoria compartida asignadas a la agrupación de memoria compartida.
Controlado por las demandas de carga de trabajo procedentes de las particiones de memoria compartida, el hipervisor gestiona las configuraciones de memoria sobrecomprometidas realizando continuamente las tareas siguientes:
- Asignando partes de memoria física de la agrupación de memoria compartida a las particiones de memoria compartida según sea necesario.
- Solicitando a una partición VIOS de transferencia de páginas que lea y grabe datos entre la agrupación de memoria compartida y los dispositivos de espacio de paginación según sea necesario.
La capacidad de compartir memoria entre varias particiones lógicas se conoce como tecnología PowerVM Active Memory Sharing. La tecnología PowerVM Active Memory Sharing está disponible con PowerVM Enterprise Edition, para la que debe obtener y especificar un código de activación de PowerVM Editions. Solo están soportados los dispositivos de bloque de 512 bytes para PowerVM Active Memory Sharing.