En informática , la virtualización de memoria desacopla los recursos de memoria de acceso aleatorio (RAM) volátil de los sistemas individuales en el centro de datos y luego agrega esos recursos en un grupo de memoria virtualizada disponible para cualquier computadora en el clúster. [ cita requerida ] El sistema operativo o las aplicaciones que se ejecutan sobre el sistema operativo acceden al grupo de memoria. El grupo de memoria distribuida se puede utilizar como un caché de alta velocidad, una capa de mensajería o un gran recurso de memoria compartida para una aplicación de CPU o GPU.
Descripción
La virtualización de memoria permite que los servidores en red, y por lo tanto distribuidos, compartan un conjunto de memoria para superar las limitaciones de memoria física, un cuello de botella común en el rendimiento del software. [ cita requerida ] Con esta capacidad integrada en la red, las aplicaciones pueden aprovechar una gran cantidad de memoria para mejorar el rendimiento general, la utilización del sistema, aumentar la eficiencia del uso de la memoria y permitir nuevos casos de uso. El software en los nodos del conjunto de memoria (servidores) permite que los nodos se conecten al conjunto de memoria para contribuir con memoria y almacenar y recuperar datos. El software de gestión y las tecnologías de sobreasignación de memoria gestionan la memoria compartida, la inserción de datos, las políticas de desalojo y aprovisionamiento, la asignación de datos a los nodos contribuyentes y manejan las solicitudes de los nodos cliente. Se puede acceder al conjunto de memoria a nivel de aplicación o a nivel de sistema operativo. A nivel de aplicación, se accede al conjunto a través de una API o como un sistema de archivos en red para crear una caché de memoria compartida de alta velocidad. A nivel de sistema operativo, una caché de página puede utilizar el conjunto como un recurso de memoria muy grande que es mucho más rápido que el almacenamiento local o en red.
Las implementaciones de virtualización de memoria se distinguen de los sistemas de memoria compartida . Los sistemas de memoria compartida no permiten la abstracción de recursos de memoria, por lo que requieren la implementación con una única instancia del sistema operativo (es decir, no dentro de un entorno de aplicaciones en clúster).
La virtualización de memoria también es diferente del almacenamiento basado en memoria flash, como las unidades de estado sólido (SSD): las SSD y otras tecnologías similares reemplazan a los discos duros (en red o de otro tipo), mientras que la virtualización de memoria reemplaza o complementa la RAM tradicional.
Productos
- Plataforma de virtualización de memoria de redes de ARN: un grupo de memoria de baja latencia, implementado como un caché compartido y una solución de mensajería de baja latencia.
- ScaleMP: una plataforma para combinar recursos de múltiples computadoras con el fin de crear una única instancia informática.
- Wombat Data Fabric: una estructura de mensajería basada en memoria para la entrega de datos de mercado en servicios financieros.
- Oracle Coherence es un producto de cuadrícula de datos en memoria basado en Java de Oracle
- AppFabric Caching Service es una plataforma de caché distribuida para cachés en memoria repartidos en múltiples sistemas, desarrollada por Microsoft .
- IBM Websphere extremeScale es un caché distribuido basado en Java muy similar a Oracle Coherence
- GigaSpaces XAP es una plataforma de software de computación en memoria basada en Java como Oracle Coherence y VMware Gemfire
Implementaciones
Integración a nivel de aplicación
En este caso, las aplicaciones que se ejecutan en computadoras conectadas se conectan al grupo de memoria directamente a través de una API o del sistema de archivos.

Integración a nivel de sistema operativo
En este caso, el sistema operativo se conecta al grupo de memoria y pone la memoria agrupada a disposición de las aplicaciones.

Fondo
La tecnología de virtualización de memoria se deriva de las arquitecturas de gestión de memoria y las técnicas de memoria virtual . En ambos campos, el camino de la innovación ha pasado de relaciones estrechamente acopladas entre recursos lógicos y físicos a relaciones más flexibles y abstractas en las que los recursos físicos se asignan según sea necesario.
Los sistemas de memoria virtual hacen abstracción entre la RAM física y las direcciones virtuales, asignando direcciones de memoria virtual tanto a la RAM física como al almacenamiento basado en disco, expandiendo la memoria direccionable, pero a costa de la velocidad. Las arquitecturas NUMA y SMP optimizan la asignación de memoria dentro de sistemas multiprocesador. Mientras que estas tecnologías administran dinámicamente la memoria dentro de computadoras individuales, la virtualización de memoria administra la memoria agregada de múltiples computadoras en red como un solo conjunto de memoria.
Junto con las innovaciones en la gestión de la memoria , han surgido varias técnicas de virtualización para aprovechar al máximo los recursos de hardware disponibles. La virtualización de aplicaciones se demostró primero en los sistemas mainframe. La siguiente ola fue la virtualización del almacenamiento , en la que los servidores se conectaban a sistemas de almacenamiento como NAS o SAN además de, o en lugar de, unidades de disco duro integradas. La virtualización de servidores, o virtualización completa , divide un único servidor físico en varias máquinas virtuales , consolidando varias instancias de sistemas operativos en la misma máquina con el fin de lograr eficiencia y flexibilidad. Tanto en la virtualización del almacenamiento como en la del servidor, las aplicaciones no saben que los recursos que están utilizando son virtuales en lugar de físicos, por lo que se logra eficiencia y flexibilidad sin cambios en las aplicaciones. De la misma manera, la virtualización de la memoria asigna la memoria de un clúster completo de servidores en red entre las computadoras de ese clúster.
Véase también
- Memoria virtual : virtualización de memoria tradicional en una sola computadora, que generalmente utiliza la MMU para traducir entre direcciones de memoria virtual y física
- Base de datos en memoria : proporciona un rendimiento más rápido y predecible que las bases de datos basadas en disco
- Virtualización de E/S : crea puntos finales de almacenamiento y red virtuales que permiten que los datos de red y almacenamiento viajen a través de las mismas estructuras (XSigo I/O Director)
- Virtualización de almacenamiento : abstrae el almacenamiento lógico del almacenamiento físico (NAS, SAN, sistemas de archivos (NFS, clúster FS), administración de volúmenes, RAID)
- Disco RAM : Dispositivo de almacenamiento virtual dentro de una sola computadora, limitado a la capacidad de la RAM local.
- Banda Infinita
- Ethernet de 10 gigabits
- Memoria compartida distribuida
- Acceso directo a memoria remota (RDMA)
- Localidad de referencia
- Imagen de un solo sistema
- Caché distribuida
Referencias
- Oleg Goldshmidt, Virtualización: sistemas operativos avanzados
- "Startup RNA Networks virtualiza memoria en varios servidores". InformationWeek . 13 de febrero de 2009 . Consultado el 24 de marzo de 2009 .
- "Cinco tendencias de virtualización que debemos tener en cuenta". Computerworld . 3 de febrero de 2009. Archivado desde el original el 16 de marzo de 2009 . Consultado el 24 de marzo de 2009 .
- "Redes de ARN y virtualización de la memoria". ZDNet . 2 de febrero de 2009. Archivado desde el original el 14 de febrero de 2009 . Consultado el 24 de marzo de 2009 .
- Kusnetzky, Dan (28 de enero de 2007). "Ordenando las diferentes capas de virtualización". ZDNet . Archivado desde el original el 3 de julio de 2007. Consultado el 24 de marzo de 2009 .