Visión general de la memoria compartida

La memoria compartida es la memoria física que se asigna a la agrupación de memoria compartida y se comparte entre varias particiones lógicas. El término agrupación de memoria compartida es una colección definida de bloques de memoria física que el hipervisor gestiona como una agrupación de memoria individual. Las particiones lógicas que configure para utilizar memoria compartida, memoria compartida en la agrupación con otras particiones de memoria compartida.

Por ejemplo, puede crear una partición de memoria compartida con 16 GB de memoria física. A continuación, crea tres particiones lógicas, las configura para que utilicen la memoria compartida y activa las particiones de memoria compartida. Cada partición de memoria compartida puede utilizar los 16 GB que hay en la agrupación de memoria compartida.

El hipervisor determina la cantidad de memoria que se asigna de la agrupación de memoria compartida a cada partición de memoria compartida basándose en la carga de trabajo y la configuración de memoria de cada partición de memoria compartida. Cuando se asigna la memoria física a las particiones de memoria compartida, el hipervisor garantiza que cada partición de memoria compartida pueda acceder sólo a la memoria que se ha asignado a dicha partición de memoria compartida en todo momento. Una partición de memoria compartida no puede acceder a la memoria física que se ha asignado a otra partición de memoria compartida.

La cantidad de memoria que asigna a las particiones de memoria compartida puede ser mayor que 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. En conjunto, las particiones de memoria compartida utilizan 24 GB de memoria, pero la agrupación de memoria compartida sólo tiene 16 GB de memoria. En este caso, la configuración de memoria se considera que está comprometida en exceso.

Las configuraciones de memoria comprometidas en exceso son posibles porque el hipervisor virtualiza y gestiona toda la memoria de las particiones de memoria compartida en la agrupación de memoria compartida de la siguiente manera:

  1. Cuando las particiones de memoria compartida no están utilizando activamente sus páginas de memoria, el hipervisor asigna las páginas de memoria no utilizadas a las particiones de memoria compartida que las necesiten actualmente. Cuando la suma de la memoria física que utilizan actualmente las particiones de memoria compartida es menor o igual que la cantidad de memoria de la agrupación de memoria compartida, la configuración de memoria está comprometida en exceso lógicamente. En una configuración de memoria comprometida en exceso lógicamente, la agrupación de memoria compartida tiene suficiente memoria física para contener la memoria utilizada por todas las particiones de memoria compartida en cualquier momento. No es necesario que el hipervisor almacene datos en ningún almacenamiento auxiliar.
  2. Cuando una partición de memoria compartida necesita más memoria de la que puede proporcionar el hipervisor asignando las partes no utilizadas de la agrupación de memoria compartida, el hipervisor almacena una parte de la memoria que pertenece a una partición de memoria compartida en la agrupación de memoria compartida y el resto de la memoria que pertenece a la partición de memoria compartida en el almacenamiento auxiliar. Cuando la suma de la memoria física que utilizan actualmente las particiones de memoria compartida es mayor que la cantidad de memoria de la agrupación de memoria compartida, la configuración de memoria está comprometida en exceso físicamente. En una configuración de memoria comprometida en exceso físicamente, la agrupación de memoria compartida no tiene suficiente memoria física para contener la memoria utilizada por todas las particiones de memoria compartida en cualquier momento. 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, el hipervisor es posible que deba recuperarlos del almacenamiento auxiliar antes de que el sistema operativo pueda acceder a ellos.

Como la memoria que asigna a una partición de memoria compartida no siempre residirá en la agrupación de memoria compartida, la memoria que se asigna a una partición de memoria compartida es la memoria lógica. La memoria lógica es el espacio de direcciones asignado a una partición lógica, que el sistema operativo reconoce como su almacenamiento principal. Para una partición de memoria compartida, se hace una copia de seguridad de un subconjunto de la memoria lógica en el almacenamiento principal físico (o la memoria física de la agrupación de memoria compartida) y el resto de la memoria lógica se mantiene en un almacenamiento auxiliar.

Una partición lógica del Servidor de E/S virtual proporciona acceso al almacenamiento auxiliar o los dispositivos de espacio de paginación que se necesitan para las particiones de memoria compartida en una configuración de memoria comprometida en exceso. Un dispositivo de espacio de paginación es un dispositivo físico o lógico que utiliza un Servidor de E/S virtual para proporcionar el espacio de paginación de una partición de memoria compartida. El espacio de paginación es un área de almacenamiento no volátil que se utiliza para mantener partes de la memoria lógica de una partición de memoria compartida que no residen en la agrupación de memoria compartida. Cuando el sistema operativo que se ejecuta en una partición de memoria compartida intenta acceder a datos que están ubicados 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 recuperar los datos y grabarlos en la agrupación de memoria compartida para que el sistema operativo pueda acceder a ellos.

En los sistemas gestionados mediante una Hardware Management Console (HMC), puede asignar hasta dos particiones lógicas del Servidor de E/S virtual (VIOS). Cuando asigna dos particiones de VIOS de paginación a la agrupación de memoria compartida, puede configurar los dispositivos de espacio de paginación para que las dos particiones de VIOS de paginación tengan acceso a los mismos dispositivos de espacio de paginación. Cuando una partición de VIOS de paginación deja de estar disponible, el hipervisor envía una solicitud a la otra partición de VIOS de paginación para recuperar los datos en el dispositivo de espacio de paginación.

No puede configurar las particiones de VIOS de paginación para que utilicen la memoria compartida. Las particiones de VIOS de paginación no utilizan la memoria de la agrupación de memoria compartida. Las particiones de VIOS de paginación se asignan a la agrupación de memoria compartida para que puedan proporcionar acceso a los dispositivos de espacio de paginación de las particiones de memoria compartida asignadas a la agrupación de memoria compartida.

Según la demanda de carga de trabajo de las particiones de memoria compartida, para gestionar las configuraciones de memoria comprometida en exceso, el hipervisor realiza continuamente las siguientes tareas:

  • Asignación de partes de memoria física de la agrupación de memoria compartida a las particiones de memoria compartida, según sea necesario.
  • Solicitud de una partición de VIOS de paginación que lea y grabe los datos entre la agrupación de memoria compartida y los dispositivos de espacio de paginación, según sea necesario.

La prestación de compartir memoria entre varias particiones lógicas se conoce como tecnología de PowerVM Active Memory Sharing. La tecnología de PowerVM Active Memory Sharing está disponible con PowerVM Enterprise Edition para el que se debe obtener e introducir 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.