ES2734248T3 - Procedimiento para bifurcar o migrar una máquina virtual - Google Patents
Procedimiento para bifurcar o migrar una máquina virtual Download PDFInfo
- Publication number
- ES2734248T3 ES2734248T3 ES03014873T ES03014873T ES2734248T3 ES 2734248 T3 ES2734248 T3 ES 2734248T3 ES 03014873 T ES03014873 T ES 03014873T ES 03014873 T ES03014873 T ES 03014873T ES 2734248 T3 ES2734248 T3 ES 2734248T3
- Authority
- ES
- Spain
- Prior art keywords
- virtual machine
- primary virtual
- primary
- memory
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
- Forklifts And Lifting Vehicles (AREA)
Abstract
Un procedimiento para aumentar la eficiencia del procesamiento de máquinas virtuales, que comprende las etapas de: proporcionar en un primer sistema host una máquina virtual primaria, en la que la máquina virtual primaria es un sistema informático emulado que es emulado por un programa emulador (14) que se ejecuta en un sistema operativo host (12), en el que el sistema operativo host se ejecuta en el primer sistema host, el programa emulador emula un sistema informático invitado (16), que incluye un sistema operativo invitado (18), en el que los programas de aplicación invitados (20) se pueden ejecutar en el sistema operativo invitado; suspender temporalmente (202) la máquina virtual primaria; hacer (204) una copia de todas las piezas de la máquina virtual primaria a excepción de una memoria de la máquina virtual primaria; bifurcar la máquina virtual primaria moviendo la copia de la máquina virtual primaria a al menos una nueva ubicación para crear (206) al menos una máquina virtual secundaria y permitiendo, de este modo, el equilibrio de carga de los sistemas; y si se determina (306) que la máquina virtual secundaria acceda a la memoria de la máquina virtual primaria, suspender temporalmente (308) la máquina virtual secundaria y enviar una parte de la memoria de la máquina virtual primaria requerida por la máquina virtual secundaria desde la máquina virtual primaria a la máquina virtual secundaria.
Description
DESCRIPCIÓN
Procedimiento para bifurcar o migrar una máquina virtual
Campo técnico de la invención
La presente invención se refiere en general al campo de las máquinas virtuales y, más particularmente, a un procedimiento para aplicar los conceptos de bifurcación y migración a máquinas virtuales.
Antecedentes de la invención
Los ordenadores incluyen unidades de procesamiento central (CPU) de propósito general que están diseñadas para ejecutar un conjunto específico de instrucciones del sistema. Un grupo de procesadores que tienen una arquitectura o especificaciones de diseño similares pueden considerarse miembros de la misma familia de procesadores. Algunos ejemplos de familias de procesadores actuales incluyen la familia de procesadores Motorola 680X0, fabricada por Motorola, Inc. de Phoenix, Arizona; la familia de procesadores Intel 80X86, fabricada por Intel Corporation de Sunnyvale, California; y la familia de procesadores PowerPC, que es fabricada por Motorola, Inc. y utilizada en ordenadores fabricados por Apple Computer, Inc. de Cupertino, California. Aunque un grupo de procesadores puede estar en la misma familia debido a su arquitectura y diseño similares, los procesadores pueden variar ampliamente dentro de una familia de acuerdo con la velocidad de su reloj y otros parámetros de rendimiento.
Cada familia de microprocesadores ejecuta instrucciones que son exclusivas de la familia de procesadores. El conjunto colectivo de instrucciones que puede ejecutar un procesador o una familia de procesadores se conoce como el conjunto de instrucciones del procesador. Como ejemplo, el conjunto de instrucciones utilizado por la familia de procesadores Intel 80X86 es incompatible con el conjunto de instrucciones utilizado por la familia de procesadores PowerPC. El conjunto de instrucciones Intel 80X86 se basa en el formato de ordenador con conjunto de instrucciones complejo (CISC, Complex Instruction Set Computer). El conjunto de instrucciones de Motorola PowerPC se basa en el formato de ordenador con conjunto de instrucciones reducido (RISC, Reduced Instruction Set Computer). Los procesadores CISC utilizan una gran cantidad de instrucciones, algunas de las cuales pueden realizar funciones bastante complicadas, pero que generalmente requieren muchos ciclos de reloj para ejecutarse. Los procesadores RISC utilizan una cantidad menor de instrucciones disponibles para realizar un conjunto más simple de funciones que se ejecutan a una velocidad mayor.
La singularidad de la familia de procesadores entre los sistemas informáticos también suele dar como resultado una incompatibilidad entre los otros elementos de la arquitectura de hardware de los sistemas informáticos. Un sistema informático fabricado con un procesador de la familia de procesadores Intel 80X86 tendrá una arquitectura de hardware diferente a la arquitectura de hardware de un sistema informático fabricado con un procesador de la familia de procesadores PowerPC. Debido a la singularidad del conjunto de instrucciones del procesador y la arquitectura de hardware de un sistema informático, los programas de aplicación se escriben normalmente para ejecutarse en un sistema informático en particular que ejecuta un sistema operativo en particular.
Un fabricante de ordenadores querrá maximizar su funcionalidad haciendo que se ejecuten más aplicaciones en lugar de menos en la familia de microprocesadores asociados con la línea de productos del fabricante de ordenadores. Para ampliar la cantidad de sistemas operativos y programas de aplicación que se pueden ejecutar en un sistema informático, se ha desarrollado un campo de tecnología en el que un ordenador determinado con un tipo de CPU, denominada host, ejecutará un programa emulador que le permitirá a el ordenador host emular la recepción y ejecución de instrucciones de un tipo de CPU no relacionado, denominado invitado. Por lo tanto, el ordenador host ejecutará una aplicación que hará que se llame a una o más instrucciones de host en respuesta a una instrucción de invitado dada. En algunos casos, el ordenador host puede ejecutar software diseñado para su propia arquitectura de hardware, a excepción del programa de emulación, y software escrito para ordenadores que tienen una arquitectura de hardware no relacionada. Como ejemplo más específico, un sistema informático fabricado por Apple Computer, por ejemplo, puede ejecutar sistemas operativos y programas escritos para sistemas informáticos basados en PC. También puede ser posible usar un programa emulador para operar simultáneamente varios sistemas operativos incompatibles en una sola CPU. En esta disposición, aunque cada sistema operativo es incompatible con el otro, un programa emulador puede alojar uno de los dos sistemas operativos, lo que permite que los sistemas operativos incompatibles se ejecuten simultáneamente en el mismo sistema informático.
Cuando se emula un sistema informático invitado en un sistema informático host, se dice que el sistema informático invitado es una máquina virtual, ya que el sistema informático invitado solo existe como una representación de software del funcionamiento de la arquitectura de hardware del sistema informático invitado. Los términos “emulador” y “máquina virtual” a veces se usan indistintamente para denotar la capacidad de imitar o emular la arquitectura de hardware de un sistema informático completo. Como ejemplo, el software de PC virtual creado por Connectix Corporation de San Mateo, California, emula un ordenador completa que incluye un procesador Intel
80X86 Pentium y varios componentes y tarjetas de la placa base. El funcionamiento de estos componentes se emula en la máquina virtual que se está ejecutando en la máquina host. Un programa emulador que se ejecuta en el software del sistema operativo y la arquitectura de hardware del ordenador host, como un sistema informático con un procesador PowerPC, imita el funcionamiento de todo el sistema informático invitado. El programa emulador actúa como el intercambio entre la arquitectura de hardware de la máquina host y las instrucciones transmitidas por el software que se ejecuta dentro del entorno emulado.
Una ventaja de una máquina virtual sobre una máquina real es la capacidad de crear de forma rápida y económica múltiples instancias de máquinas virtuales. Si la implementación de la máquina virtual lo permite, pueden existir múltiples máquinas virtuales simultáneamente en un entorno de una sola máquina host (sistema informático host). Los recursos de la máquina host se pueden dividir entre las diversas máquinas virtuales. Por ejemplo, una sola máquina host con cuatro procesadores y 1 gigabyte de memoria de acceso aleatorio (RAM) podría dividirse de manera uniforme en cuatro máquinas virtuales, cada una de las cuales recibe un procesador y 256 megabytes de RAM. Otras divisiones de asignación de recursos son posibles.
Esta asignación de recursos flexible se vuelve aún más útil cuando se combina con la capacidad de mover máquinas virtuales de una máquina host a otra. Esto permite el "equilibrio de carga" de sistemas. Por ejemplo, si una máquina virtual requiere más potencia de procesamiento que la que está disponible en una máquina host, se puede mover a otra máquina host que tenga capacidad adicional.
En algunos entornos informáticos, es útil tener múltiples máquinas con una configuración casi idéntica (tanto en hardware como software). Por ejemplo, un gran sitio web de comercio electrónico como Amazon.com tiene docenas o cientos de servidores web que tienen una configuración casi idéntica. Esta configuración permite una fácil expansión. Cuando la capacidad actual es inadecuada, los servidores adicionales pueden ponerse rápidamente en línea.
Otro caso en el que son útiles configuraciones casi idénticas es en la prueba de modificaciones de configuración. Cuando se trata de aplicaciones de misión crítica, los gerentes de sistemas de información a menudo desean probar los cambios de configuración del software antes de aplicarlos al sistema de producción. Por ejemplo, si Microsoft Corporation puso a disposición un nuevo "parche de seguridad" para el sistema operativo Windows, es posible que un administrador desee probar este parche en una máquina de servidor independiente antes de instalar el parche en el servidor de producción.
El documento de Kozuch, M, et al.: "Internet suspend/resume (Suspensión/reanudación del Internet)" Procedimientos del Cuarto Taller del IEEE sobre Sistemas y Aplicaciones Informáticos Móviles, 20-21 de junio de 2002, Piscataway, NJ, EE. UU., IEEE, páginas 40-46, ISBN: 978-0-7695-1647-9, divulga un procedimiento para combinar la tecnología de máquinas virtuales en un sistema de archivos distribuidos. Un monitor de máquina virtual encapsula todo el estado de ejecución volátil de una máquina virtual y asigna el estado volátil a los archivos en el sistema de archivos local de su host. Si estos archivos se copian a un host remoto con una arquitectura de hardware similar, el monitor de la máquina virtual en ese host puede reanudar la máquina virtual.
Sumario
El objeto de la presente invención es acelerar y simplificar un procedimiento para bifurcar o migrar una máquina virtual.
Este objeto se resuelve mediante la materia objeto de las reivindicaciones independientes.
Las realizaciones preferentes se definen por las reivindicaciones dependientes.
La presente invención en una implementación proporciona un procedimiento para aumentar la eficiencia del procesamiento de una máquina virtual. Una etapa del procedimiento es proporcionar una máquina virtual primaria. Otra etapa es suspender temporalmente la máquina virtual primaria. Otra etapa es bifurcar la máquina virtual primaria para crear una máquina virtual secundaria en una nueva ubicación.
La presente invención proporciona otro procedimiento para aumentar la eficacia del procesamiento de una máquina virtual. Una etapa del procedimiento es proporcionar una máquina virtual primaria que esté asociada con los datos almacenados. Otra etapa del procedimiento es suspender temporalmente la máquina virtual primaria. Otra etapa es bifurcar la máquina virtual primaria para crear una máquina virtual secundaria en una nueva ubicación sin al menos una primera parte de los datos almacenados.
Además, la presente invención proporciona otro procedimiento para aumentar la eficiencia del procesamiento de una máquina virtual. Una etapa del procedimiento es proporcionar una máquina virtual primaria que esté asociada con los datos almacenados. Otra etapa del procedimiento es suspender permanentemente la máquina virtual primaria. Otra etapa es migrar la máquina virtual primaria para crear una máquina virtual secundaria en una nueva
ubicación sin al menos una primera parte de los datos almacenados.
Una ventaja de una implementación de la presente invención es que hace posible la bifurcación de una máquina virtual. La capacidad de bifurcar aumenta la utilidad de las múltiples instancias de máquinas virtuales antes mencionadas. La bifurcación puede, en algunas circunstancias, crear múltiples instancias con la misma rapidez de tal forma que la mayoría de las funciones y aplicaciones que se ejecutan en las máquinas virtuales no se vean afectadas de manera significativa.
Otra ventaja de una implementación de la presente invención es que aumenta la eficiencia del procesamiento de una máquina virtual.
Una implementación del procedimiento de la presente invención tiene la ventaja de un tiempo de bifurcación, que no se ve afectado por el tamaño de la memoria de la máquina virtual primaria. Cuando la porción sin memoria de la máquina virtual primaria consta de unos pocos cientos de kilobytes de datos, el tiempo de bifurcación es de aproximadamente un milisegundo en algunos sistemas.
Si se agrega la paginación por demanda al procedimiento, entonces el tiempo total de ejecución también puede depender del tamaño de la memoria de la máquina virtual primaria. Sin embargo, la paginación por demanda no causa conflictos con las aplicaciones que se ejecutan en las máquinas virtuales primarias y secundarias.
Ninguna de las ventajas anteriores es crítica para la invención. Las implementaciones particulares de la invención pueden lograr solamente un subconjunto de las ventajas. Por ejemplo, una implementación de la invención solo puede proporcionar la opción de bifurcar una máquina virtual. Otras ventajas técnicas de la presente invención serán fácilmente evidentes para un experto en la técnica a partir de las siguientes figuras, descripciones y reivindicaciones.
Descripción detallada de la invención
En el caso de un sistema informático emulado o una máquina virtual, un programa de emulación proporciona un entorno operativo emulado en el sistema informático host. En la Figura 1 se muestra un diagrama de las capas lógicas de la arquitectura de hardware y software para un entorno operativo emulado en un sistema informático 10. Un programa de emulación 14 se ejecuta en un sistema operativo host que se ejecuta en el hardware o procesador 11 del sistema host. El programa de emulación 14 emula un sistema informático invitado 16, que incluye un sistema operativo invitado 18. Los programas de aplicación de invitado se pueden ejecutar en el sistema operativo invitado 18. En el entorno operativo emulado de la Figura 1, debido a la operación del programa de emulación 14, la aplicación invitada 20 se puede ejecutaren el sistema informático 10, aunque la aplicación invitada 20 está diseñada para ejecutarse en un sistema operativo que generalmente es incompatible con el sistema operativo host 12 y el hardware del sistema informático host 11.
Con referencia ahora a las Figuras 2 y 3, "bifurcación" es un término usado por los programadores de UNIX para describir la duplicación de un proceso de UNIX y su espacio de direcciones. Tanto el proceso original como la bifurcación se pueden ejecutar como procesos independientes desde el punto de bifurcación. La implementación de la bifurcación a menudo implica una técnica llamada "copia en escritura", en la cual todas las páginas de memoria en ambos espacios de direcciones están marcadas como "protegidas contra escritura". Cuando el proceso original o bifurcado se escribe en una página, se realiza una copia para que cada proceso tenga su propia copia. Las páginas que no se modifican pueden seguir compartiéndose entre los dos procesos. Esta técnica no solo ahorra recursos de memoria, sino que también hace que la bifurcación sea mucho más rápida de lo que sería posible.
En la presente invención, el concepto de bifurcación de un solo proceso se combina con el concepto de una máquina virtual. La presente invención permite la conversión rápida de recursos compartidos a copias privadas entre una máquina virtual original y su bifurcación. Sin embargo, el uso compartido de recursos solo es posible si ambas máquinas virtuales se ejecutan en el mismo host.
La bifurcación de la máquina virtual se puede utilizar para replicar rápidamente una máquina virtual existente. Por ejemplo, si un usuario desea probar un nuevo parche, puede bifurcar la máquina virtual y aplicar el parche a la bifurcación de no producción. Una vez que se haya probado el parche, se puede aplicar a la copia original con un riesgo limitado. Alternativamente, las máquinas virtuales de producción y no producción podrían intercambiarse una vez que se completó la prueba del parche.
En la Figura 2 se muestra un diagrama de flujo de un procedimiento 20 para bifurcar una máquina virtual. En la etapa 202, se suspende una máquina virtual primaria. En la etapa 204, se realiza una copia o "instantánea" de todas las piezas de la máquina virtual primaria, a excepción de la memoria de la máquina virtual primaria. En la etapa 206, la instantánea se mueve a una nueva ubicación, es decir, a una ubicación distinta de la ubicación de la máquina virtual primaria. Mover la instantánea a una nueva ubicación crea una nueva máquina virtual secundaria.
La máquina virtual secundaria puede o no estar ubicada en el mismo sistema de ordenador host que la máquina virtual primaria. En la etapa 208, las partes de la memoria de la máquina virtual primaria se envían a la máquina virtual secundaria utilizando la paginación por demanda. La paginación por demanda, que se muestra en la Figura 3, es un procedimiento para enviar piezas o páginas de memoria de la máquina virtual primaria a la máquina virtual secundaria. En la paginación por demanda, la memoria principal se prioriza según lo que la máquina virtual secundaria requiera activamente.
La Figura 3 es un diagrama de flujo de la paginación por demanda de la etapa 208 utilizada para bifurcar una máquina virtual. En la etapa 302, se determina si la máquina virtual primaria está a punto de modificar o no una parte de la memoria principal que aún no se ha enviado a la máquina virtual secundaria. Si la máquina virtual primaria está a punto de modificar una pieza de memoria, en la etapa 304, antes de que se le permita modificar la pieza de memoria, la pieza se envía a la máquina virtual secundaria o se hace una copia temporal de la pieza. La máquina virtual primaria guarda la copia temporal hasta un punto posterior, aún no determinado, en el procedimiento de paginación por demanda, momento en el cual la copia se envía a la máquina virtual secundaria. Si la máquina virtual primaria no está a punto de modificar una pieza de memoria o si se completa la etapa 304, el procedimiento pasa a la etapa 306.
En la etapa 306, se determina si la máquina virtual secundaria está accediendo o no a la memoria de la máquina virtual primaria. Si la máquina virtual secundaria está accediendo a la memoria de la máquina virtual primaria, en la etapa 308, la máquina virtual secundaria se suspende temporalmente y la parte de la memoria de la máquina virtual primaria requerida por la máquina virtual secundaria se envía de la máquina virtual primaria a la máquina virtual secundaria. Si la máquina virtual secundaria no está accediendo a la memoria de la máquina virtual primaria, en la etapa 310, las piezas de la memoria de la máquina virtual primaria que la máquina virtual secundaria no requiere activamente pueden enviarse de la máquina virtual primaria a la máquina virtual secundaria. Si se completa la etapa 308 o la etapa 310, el procedimiento pasa a la etapa 312.
En la etapa 312, se determina si toda la memoria de la máquina virtual primaria se ha enviado o no a la máquina virtual secundaria. Si no se ha enviado toda la memoria, el procedimiento continúa con la etapa 302, descrita anteriormente. Si se ha enviado toda la memoria, el procedimiento de paginación por demanda finaliza.
Con referencia ahora a las Figuras 4 y 5, "migrar" es un término que se refiere al movimiento de una máquina virtual de una máquina host a otra. Cuando se migra una máquina virtual, la máquina virtual original se suspende permanentemente; y la copia se ejecuta en una nueva ubicación. Una forma de implementar la migración consiste en guardar todo el estado de la máquina virtual (incluida toda su RAM) en un archivo en disco, luego copiar el archivo en el nuevo host y restaurar el estado de la máquina.
En la presente invención, la migración es similar a la bifurcación en su implementación. Al igual que con una máquina virtual bifurcada, una máquina virtual migrada puede comenzar a ejecutarse casi inmediatamente después de su creación, es decir, dentro de uno o dos segundos después de la creación. Esta característica resulta del uso de la paginación por demanda y la "copia en acceso", en la que la copia en acceso se define como copiar la memoria de la máquina virtual primaria a la máquina virtual secundaria cuando la máquina virtual secundaria accede a la memoria de la máquina virtual primaria. La copia en acceso es un aspecto de la paginación por demanda para migrar una máquina virtual.
La copia en acceso también es una ventaja de la presente invención sobre las tecnologías existentes. Las tecnologías existentes guardan y restauran una copia completa de la memoria de acceso aleatorio (RAM) de la máquina virtual primaria. El ahorro y la restauración de las tecnologías existentes pueden llevar de 5 a 60 segundos, dependiendo del tamaño de la memoria asignada a la máquina virtual primaria.
Una aplicación de migración de una máquina virtual es el equilibrio de carga. Otra aplicación sería para la conmutación por error o el mantenimiento del hardware. Por ejemplo, si el hardware en la máquina host requiere mantenimiento (por ejemplo, se agregará más memoria), la máquina virtual puede migrarse temporalmente a una máquina de respaldo, lo que evita el tiempo de inactividad.
En la Figura 4 se muestra un diagrama de flujo de un procedimiento 40 para migrar una máquina virtual. En la etapa 402, una máquina virtual primaria se suspende permanentemente. En la etapa 204, se realiza una copia o "instantánea" de todas las piezas de la máquina virtual primaria, a excepción de la memoria de la máquina virtual primaria. En la etapa 206, la instantánea se mueve a una nueva ubicación, es decir, a una ubicación distinta de la ubicación de la máquina virtual primaria. Mover la instantánea a una nueva ubicación crea una máquina virtual secundaria. La máquina virtual secundaria puede o no estar ubicada en el mismo sistema informático que la máquina virtual primaria. En la etapa 404, las piezas de la memoria de la máquina virtual primaria se envían a la máquina virtual secundaria utilizando la paginación por demanda. La paginación por demanda, representada en la Figura 5, es un procedimiento para enviar piezas o páginas de memoria de la máquina virtual primaria a la máquina virtual secundaria. En la paginación por demanda, la memoria principal se prioriza según lo que la máquina virtual secundaria requiera activamente.
La Figura 5 es un diagrama de flujo de la paginación por demanda de la etapa 404 utilizada en la migración de una máquina virtual. En la etapa 306, se determina si la máquina virtual secundaria está accediendo o no a la memoria de la máquina virtual primaria. Si la máquina virtual secundaria está accediendo a la memoria de la máquina virtual primaria, en la etapa 308, la máquina virtual de la máquina virtual secundaria se suspende temporalmente y la pieza de la memoria de la máquina virtual primaria requerida por la máquina virtual secundaria se envía de la máquina virtual primaria a la máquina virtual secundaria. Si la máquina virtual secundaria no está accediendo a la memoria de la máquina virtual primaria, en la etapa 310, las piezas de la memoria de la máquina virtual primaria que la máquina virtual secundaria no requiere activamente pueden enviarse de la máquina virtual primaria a la máquina virtual secundaria. Si se completa la etapa 308 o la etapa 310, el procedimiento pasa a la etapa 312. En la etapa 312, se determina si toda la memoria de la máquina virtual primaria se ha enviado o no a la máquina virtual secundaria. Si no se ha enviado toda la memoria, el procedimiento continúa con la etapa 306, descrita anteriormente. Si se ha enviado toda la memoria, el procedimiento pasa a la etapa 502. En la etapa 502, se borra la memoria de la máquina virtual primaria. Después de la etapa 502, el procedimiento de paginación por demanda finaliza.
La presente invención no está limitada en su aplicación a la emulación de una arquitectura de sistema informático particular, en particular la arquitectura Intel 80X86.
Aunque la presente invención ha sido descrita en detalle, debe entenderse que se pueden realizar diversas modificaciones, sustituciones y alteraciones sin apartarse del alcance de la invención tal como se define en las reivindicaciones adjuntas.
Breve descripción de las figuras
Se puede adquirir una comprensión más completa de la presente invención y sus ventajas haciendo referencia a la siguiente descripción tomada en conjunto con las figuras adjuntas, en las que números de referencia similares indican características similares, y en las que:
La Figura 1 es un diagrama de la relación lógica de los elementos de un sistema informático emulado que se ejecuta en un sistema informático host;
La Figura 2 es un diagrama de flujo de un procedimiento para bifurcar una máquina virtual;
La Figura 3 es un diagrama de flujo de una paginación por demanda utilizada para bifurcar una máquina virtual;
La Figura 4 es un diagrama de flujo de un procedimiento para migrar una máquina virtual; y
La Figura 5 es un diagrama de flujo de una paginación por demanda utilizada en la migración de una máquina virtual.
Claims (21)
1. Un procedimiento para aumentar la eficiencia del procesamiento de máquinas virtuales, que comprende las etapas de:
proporcionar en un primer sistema host una máquina virtual primaria, en la que la máquina virtual primaria es un sistema informático emulado que es emulado por un programa emulador (14) que se ejecuta en un sistema operativo host (12), en el que el sistema operativo host se ejecuta en el primer sistema host, el programa emulador emula un sistema informático invitado (16), que incluye un sistema operativo invitado (18), en el que los programas de aplicación invitados (20) se pueden ejecutar en el sistema operativo invitado; suspender temporalmente (202) la máquina virtual primaria;
hacer (204) una copia de todas las piezas de la máquina virtual primaria a excepción de una memoria de la máquina virtual primaria;
bifurcar la máquina virtual primaria moviendo la copia de la máquina virtual primaria a al menos una nueva ubicación para crear (206) al menos una máquina virtual secundaria y permitiendo, de este modo, el equilibrio de carga de los sistemas; y
si se determina (306) que la máquina virtual secundaria acceda a la memoria de la máquina virtual primaria, suspender temporalmente (308) la máquina virtual secundaria y enviar una parte de la memoria de la máquina virtual primaria requerida por la máquina virtual secundaria desde la máquina virtual primaria a la máquina virtual secundaria.
2. El procedimiento según la reivindicación 1, en el que la al menos una nueva ubicación está en el primer sistema informático host.
3. El procedimiento según la reivindicación 1, en el que la al menos una nueva ubicación está en un segundo sistema informático host.
4. El procedimiento según la reivindicación 1, en el que las etapas de suspender temporalmente (202) la máquina virtual primaria y bifurcar la máquina virtual primaria se ejecutan en una duración de aproximadamente un milisegundo.
5. El procedimiento según la reivindicación 1, en el que la máquina virtual primaria es un servidor de red.
6. El procedimiento según la reivindicación 1, que además comprende la etapa de:
utilizar (208) la paginación por demanda para enviar una subporción de la memoria a la máquina virtual secundaria.
7. El procedimiento según la reivindicación 6, en el que la etapa de utilizar (208) paginación por demanda además comprende la etapa de:
si no toda la memoria asociada con la máquina virtual primaria ha sido enviada a la al menos una máquina virtual secundaria, enviar una segunda subporción de la primera porción a la al menos una máquina virtual secundaria.
8. El procedimiento según la reivindicación 6, en el que la etapa de utilizar (208) paginación por demanda comprende la etapa de:
si la al menos una máquina virtual secundaria no está accediendo a la al menos una memoria de la máquina virtual primaria, enviar (310) páginas de memoria de la al menos una máquina virtual secundaria.
9. El procedimiento según la reivindicación 1, en el que la primera porción son todas las piezas de la máquina virtual primaria.
10. El procedimiento según la reivindicación 6, en el que la etapa de utilizar (208) paginación por demanda comprende la etapa de:
si la máquina virtual primaria intenta modificar una primera subporción, enviar la primera subporción a la al menos una máquina virtual secundaria antes de que la primera subporción sea modificada por la máquina virtual primaria.
11. El procedimiento según la reivindicación 10, en el que la etapa de utilizar (208) paginación por demanda además comprende la etapa de:
si no toda la primera porción de la memoria de la máquina virtual primaria ha sido enviada a la al menos una
máquina virtual secundaria, enviar una segunda subporción de la primera porción a la al menos una máquina virtual secundaria.
12. El procedimiento según la reivindicación 6, en el que la etapa de utilizar (208) paginación por demanda comprende la etapa de:
si la máquina virtual primaria intenta modificar una primera subporción, realizar una copia de la primera subporción antes de que la máquina virtual primaria modifique la primera subporción.
13. El procedimiento según la reivindicación 12, en el que la copia de la primera subporción es una copia temporal.
14. El procedimiento según la reivindicación 12, en el que la etapa de utilizar (208) paginación por demanda además comprende la etapa de:
si no toda la primera porción de la memoria de la máquina virtual primaria ha sido enviada a la al menos una máquina virtual secundaria, enviar una segunda subporción de la primera porción a la al menos una máquina virtual secundaria.
15. Un procedimiento para aumentar la eficiencia del procesamiento de máquinas virtuales, que comprende las etapas de:
proporcionar en un primer sistema host una máquina virtual primaria, en la que la máquina virtual primaria es un sistema informático emulado que es emulado por un programa emulador (14) que se ejecuta en un sistema operativo host (12), en el que el sistema operativo host se ejecuta en el primer sistema host, el programa emulador emula un sistema informático invitado (16), que incluye un sistema operativo invitado (18), en el que los programas de aplicación invitados (20) se pueden ejecutar en el sistema operativo invitado;
suspender permanentemente (402) la máquina virtual primaria;
hacer (204) una copia de todas las piezas de la máquina virtual primaria a excepción de una memoria de la máquina virtual primaria;
migrar la máquina virtual primaria moviendo la copia de la máquina virtual primaria a al menos una nueva ubicación para crear (206) al menos una máquina virtual secundaria y, por lo tanto, permitir el equilibrio de carga de los sistemas; y
si se determina (306) que la máquina virtual secundaria accede a la memoria de la máquina virtual primaria, suspender temporalmente (308) la máquina virtual secundaria y enviar una parte de la memoria de la máquina virtual primaria requerida por la máquina virtual secundaria desde la máquina virtual primaria a la máquina virtual secundaria.
16. El procedimiento según la reivindicación 15, en el que la al menos una nueva ubicación está en el primer sistema informático host.
17. El procedimiento según la reivindicación 15, en el que la al menos una nueva ubicación está en un segundo sistema informático host.
18. El procedimiento según la reivindicación 15, en el que las etapas de suspender de forma permanente (402) la máquina virtual primaria y migrar la máquina virtual primaria se ejecutan en una duración de aproximadamente un milisegundo.
19. El procedimiento según la reivindicación 15, en el que la máquina virtual primaria es un servidor de red.
20. El procedimiento según la reivindicación 15, que además comprende la etapa de:
borrar la máquina virtual primaria.
21. El procedimiento según la reivindicación 15, que además comprende la etapa de:
utilizar (404) paginación por demanda para enviar una primera porción de la memoria a la al menos una máquina virtual secundaria.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/193,531 US7313793B2 (en) | 2002-07-11 | 2002-07-11 | Method for forking or migrating a virtual machine |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2734248T3 true ES2734248T3 (es) | 2019-12-05 |
Family
ID=29735332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES03014873T Expired - Lifetime ES2734248T3 (es) | 2002-07-11 | 2003-06-30 | Procedimiento para bifurcar o migrar una máquina virtual |
Country Status (4)
Country | Link |
---|---|
US (2) | US7313793B2 (es) |
EP (1) | EP1380947B1 (es) |
JP (4) | JP4942909B2 (es) |
ES (1) | ES2734248T3 (es) |
Families Citing this family (211)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8631066B2 (en) * | 1998-09-10 | 2014-01-14 | Vmware, Inc. | Mechanism for providing virtual machines for use by multiple users |
US7516453B1 (en) | 1998-10-26 | 2009-04-07 | Vmware, Inc. | Binary translator with precise exception synchronization mechanism |
US7213246B1 (en) | 2002-03-28 | 2007-05-01 | Veritas Operating Corporation | Failing over a virtual machine |
US7603670B1 (en) * | 2002-03-28 | 2009-10-13 | Symantec Operating Corporation | Virtual machine transfer between computer systems |
US7093086B1 (en) * | 2002-03-28 | 2006-08-15 | Veritas Operating Corporation | Disaster recovery and backup using virtual machines |
US6757778B1 (en) | 2002-05-07 | 2004-06-29 | Veritas Operating Corporation | Storage management system |
US7313793B2 (en) * | 2002-07-11 | 2007-12-25 | Microsoft Corporation | Method for forking or migrating a virtual machine |
US7478387B2 (en) * | 2002-09-25 | 2009-01-13 | International Business Machines Corporation | System and method for creating a restartable non-native language routine execution environment |
US8200072B2 (en) * | 2002-10-24 | 2012-06-12 | Shell Oil Company | Temperature limited heaters for heating subsurface formations or wellbores |
EP1418501A1 (fr) * | 2002-11-08 | 2004-05-12 | Dunes Technologies S.A. | Méthode d'administration d'applications sur des machines virtuelles |
US7484208B1 (en) * | 2002-12-12 | 2009-01-27 | Michael Nelson | Virtual machine migration |
US7424710B1 (en) * | 2002-12-18 | 2008-09-09 | Vmware, Inc. | TCP/IP offloading for virtual machines |
US7536688B2 (en) * | 2003-02-28 | 2009-05-19 | Azul Systems | Segmented virtual machine |
US7111145B1 (en) | 2003-03-25 | 2006-09-19 | Vmware, Inc. | TLB miss fault handler and method for accessing multiple page tables |
US8209680B1 (en) * | 2003-04-11 | 2012-06-26 | Vmware, Inc. | System and method for disk imaging on diverse computers |
US7299468B2 (en) * | 2003-04-29 | 2007-11-20 | International Business Machines Corporation | Management of virtual machines to utilize shared resources |
US7203944B1 (en) * | 2003-07-09 | 2007-04-10 | Veritas Operating Corporation | Migrating virtual machines among computer systems to balance load caused by virtual machines |
US20050060590A1 (en) * | 2003-09-16 | 2005-03-17 | International Business Machines Corporation | Power-aware workload balancing usig virtual machines |
US8560671B1 (en) | 2003-10-23 | 2013-10-15 | Netapp, Inc. | Systems and methods for path-based management of virtual servers in storage network environments |
US7246200B1 (en) | 2003-11-12 | 2007-07-17 | Veritas Operating Corporation | Provisioning and snapshotting using copy on read/write and transient virtual machine technology |
US7293267B1 (en) * | 2003-12-22 | 2007-11-06 | Sun Microsystems Inc | System and method for performing speculative initialization of application models for a cloned runtime system process |
US7529897B1 (en) | 2003-12-31 | 2009-05-05 | Vmware, Inc. | Generating and using checkpoints in a virtual computer system |
US7810092B1 (en) | 2004-03-02 | 2010-10-05 | Symantec Operating Corporation | Central administration and maintenance of workstations using virtual machines, network filesystems, and replication |
US8782654B2 (en) | 2004-03-13 | 2014-07-15 | Adaptive Computing Enterprises, Inc. | Co-allocating a reservation spanning different compute resources types |
WO2005089241A2 (en) | 2004-03-13 | 2005-09-29 | Cluster Resources, Inc. | System and method for providing object triggers |
US8156490B2 (en) * | 2004-05-08 | 2012-04-10 | International Business Machines Corporation | Dynamic migration of virtual machine computer programs upon satisfaction of conditions |
US7257811B2 (en) * | 2004-05-11 | 2007-08-14 | International Business Machines Corporation | System, method and program to migrate a virtual machine |
US20050283779A1 (en) * | 2004-05-19 | 2005-12-22 | Pronk Van Hoogeveen Joost W D | Method and apparatus for deploying software applications using a zone architecture |
US7370233B1 (en) * | 2004-05-21 | 2008-05-06 | Symantec Corporation | Verification of desired end-state using a virtual machine environment |
US20070266388A1 (en) | 2004-06-18 | 2007-11-15 | Cluster Resources, Inc. | System and method for providing advanced reservations in a compute environment |
US7577959B2 (en) * | 2004-06-24 | 2009-08-18 | International Business Machines Corporation | Providing on-demand capabilities using virtual machines and clustering processes |
US7383405B2 (en) * | 2004-06-30 | 2008-06-03 | Microsoft Corporation | Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity |
US7996785B2 (en) * | 2004-06-30 | 2011-08-09 | Microsoft Corporation | Systems and methods for integrating application windows in a virtual machine environment |
US8176490B1 (en) | 2004-08-20 | 2012-05-08 | Adaptive Computing Enterprises, Inc. | System and method of interfacing a workload manager and scheduler with an identity manager |
US7506338B2 (en) * | 2004-08-30 | 2009-03-17 | International Business Machines Corporation | Method and apparatus for simplifying the deployment and serviceability of commercial software environments |
US20060085784A1 (en) * | 2004-10-15 | 2006-04-20 | Microsoft Corporation | Systems and methods for authoring and accessing computer-based materials using virtual machines |
US7840963B2 (en) * | 2004-10-15 | 2010-11-23 | Microsoft Corporation | Marking and utilizing portions of memory state information during a switch between virtual machines to minimize software service interruption |
CA2486103A1 (en) * | 2004-10-26 | 2006-04-26 | Platespin Ltd. | System and method for autonomic optimization of physical and virtual resource use in a data center |
CA2586763C (en) | 2004-11-08 | 2013-12-17 | Cluster Resources, Inc. | System and method of providing system jobs within a compute environment |
US7536525B2 (en) * | 2004-11-09 | 2009-05-19 | Dell Products L.P. | Virtual machine hot cloning including freezing and unfreezing memory in a distributed network |
US8959299B2 (en) | 2004-11-15 | 2015-02-17 | Commvault Systems, Inc. | Using a snapshot as a data source |
US8863143B2 (en) | 2006-03-16 | 2014-10-14 | Adaptive Computing Enterprises, Inc. | System and method for managing a hybrid compute environment |
US9231886B2 (en) | 2005-03-16 | 2016-01-05 | Adaptive Computing Enterprises, Inc. | Simple integration of an on-demand compute environment |
US9015324B2 (en) | 2005-03-16 | 2015-04-21 | Adaptive Computing Enterprises, Inc. | System and method of brokering cloud computing resources |
EP1866767B1 (en) | 2005-03-16 | 2018-04-18 | III Holdings 12, LLC | Automatic workload transfer to an on-demand center |
EP1872249B1 (en) | 2005-04-07 | 2016-12-07 | Adaptive Computing Enterprises, Inc. | On-demand access to compute resources |
US7698706B2 (en) * | 2005-05-20 | 2010-04-13 | International Business Machines Corporation | Methods and apparatus for implementing an integrated user interface for managing multiple virtual machines operative in a computing system |
US7480908B1 (en) * | 2005-06-24 | 2009-01-20 | Azul Systems, Inc. | Segmented virtual machine transport mechanism |
EP1943594A4 (en) * | 2005-09-27 | 2009-12-16 | Onaro | METHOD AND SYSTEMS FOR VALIDATING ACCESSIBILITY AND UPDATED REPLICATED DATA |
WO2007036072A1 (en) * | 2005-09-29 | 2007-04-05 | Intel Corporation | Apparatus and method for expedited virtual machine (vm) launch in vm cluster environment |
US20070079307A1 (en) * | 2005-09-30 | 2007-04-05 | Puneet Dhawan | Virtual machine based network carriers |
US7761573B2 (en) * | 2005-12-07 | 2010-07-20 | Avaya Inc. | Seamless live migration of virtual machines across optical networks |
US8521912B2 (en) * | 2006-01-12 | 2013-08-27 | Broadcom Corporation | Method and system for direct device access |
US20070204271A1 (en) * | 2006-02-28 | 2007-08-30 | Andrew Gaiarsa | Method and system for simulating a multi-CPU/multi-core CPU/multi-threaded CPU hardware platform |
US7788665B2 (en) * | 2006-02-28 | 2010-08-31 | Microsoft Corporation | Migrating a virtual machine that owns a resource such as a hardware device |
US7536541B2 (en) * | 2006-03-07 | 2009-05-19 | Novell Inc. | Parallelizing multiple boot images with virtual machines |
US7802302B1 (en) | 2006-03-10 | 2010-09-21 | Symantec Corporation | Single scan for a base machine and all associated virtual machines |
US7370164B1 (en) * | 2006-03-21 | 2008-05-06 | Symantec Operating Corporation | Backup of virtual machines from the base machine |
US8296759B1 (en) * | 2006-03-31 | 2012-10-23 | Vmware, Inc. | Offloading operations to a replicate virtual machine |
US8056076B1 (en) * | 2006-03-31 | 2011-11-08 | Vmware, Inc. | Method and system for acquiring a quiesceing set of information associated with a virtual machine |
US8151263B1 (en) | 2006-03-31 | 2012-04-03 | Vmware, Inc. | Real time cloning of a virtual machine |
US8321377B2 (en) * | 2006-04-17 | 2012-11-27 | Microsoft Corporation | Creating host-level application-consistent backups of virtual machines |
US8886865B1 (en) | 2006-04-24 | 2014-11-11 | Vmware, Inc. | Virtual machine image management using delta trees |
US8141075B1 (en) * | 2006-05-08 | 2012-03-20 | Vmware, Inc. | Rule engine for virtualized desktop allocation system |
US20070283314A1 (en) * | 2006-06-05 | 2007-12-06 | Dennis Michael Browning | A Method and System for Performing a Change-Over to a Component of a Computing System |
US7823152B2 (en) * | 2006-06-06 | 2010-10-26 | International Business Machines Corporation | System and method for collaborative hosting of applications, virtual machines, and data objects |
US20070294364A1 (en) * | 2006-06-15 | 2007-12-20 | International Business Machines Corporation | Management of composite software services |
US7496893B2 (en) * | 2006-06-15 | 2009-02-24 | International Business Machines Corporation | Method for no-demand composition and teardown of service infrastructure |
US8607009B2 (en) | 2006-07-13 | 2013-12-10 | Microsoft Corporation | Concurrent virtual machine snapshots and restore |
US10013268B2 (en) * | 2006-08-29 | 2018-07-03 | Prometric Inc. | Performance-based testing system and method employing emulation and virtualization |
US20080126792A1 (en) * | 2006-09-19 | 2008-05-29 | Herington Daniel E | Systems and methods for achieving minimal rebooting during system update operations |
US9086917B1 (en) | 2006-10-17 | 2015-07-21 | Manageiq, Inc. | Registering and accessing virtual systems for use in a managed system |
US9038062B2 (en) | 2006-10-17 | 2015-05-19 | Manageiq, Inc. | Registering and accessing virtual systems for use in a managed system |
US8234641B2 (en) | 2006-10-17 | 2012-07-31 | Managelq, Inc. | Compliance-based adaptations in managed virtual systems |
US9015703B2 (en) * | 2006-10-17 | 2015-04-21 | Manageiq, Inc. | Enforcement of compliance policies in managed virtual systems |
US8458695B2 (en) | 2006-10-17 | 2013-06-04 | Manageiq, Inc. | Automatic optimization for virtual systems |
US9697019B1 (en) * | 2006-10-17 | 2017-07-04 | Manageiq, Inc. | Adapt a virtual machine to comply with system enforced policies and derive an optimized variant of the adapted virtual machine |
US8752045B2 (en) | 2006-10-17 | 2014-06-10 | Manageiq, Inc. | Methods and apparatus for using tags to control and manage assets |
US8949825B1 (en) | 2006-10-17 | 2015-02-03 | Manageiq, Inc. | Enforcement of compliance policies in managed virtual systems |
US8612971B1 (en) | 2006-10-17 | 2013-12-17 | Manageiq, Inc. | Automatic optimization for virtual systems |
US8949826B2 (en) * | 2006-10-17 | 2015-02-03 | Managelq, Inc. | Control and management of virtual systems |
US8234640B1 (en) | 2006-10-17 | 2012-07-31 | Manageiq, Inc. | Compliance-based adaptations in managed virtual systems |
US7707185B1 (en) * | 2006-10-19 | 2010-04-27 | Vmware, Inc. | Accessing virtual data storage units to offload operations from a computer system hosting a virtual machine to an offload server |
US8732699B1 (en) | 2006-10-27 | 2014-05-20 | Hewlett-Packard Development Company, L.P. | Migrating virtual machines between physical machines in a define group |
US8296760B2 (en) * | 2006-10-27 | 2012-10-23 | Hewlett-Packard Development Company, L.P. | Migrating a virtual machine from a first physical machine in response to receiving a command to lower a power mode of the first physical machine |
US8903888B1 (en) * | 2006-10-27 | 2014-12-02 | Hewlett-Packard Development Company, L.P. | Retrieving data of a virtual machine based on demand to migrate the virtual machine between physical machines |
US9092250B1 (en) | 2006-10-27 | 2015-07-28 | Hewlett-Packard Development Company, L.P. | Selecting one of plural layouts of virtual machines on physical machines |
US8185893B2 (en) * | 2006-10-27 | 2012-05-22 | Hewlett-Packard Development Company, L.P. | Starting up at least one virtual machine in a physical machine by a load balancer |
US20080127182A1 (en) * | 2006-11-29 | 2008-05-29 | Newport William T | Managing Memory Pages During Virtual Machine Migration |
US8826032B1 (en) | 2006-12-27 | 2014-09-02 | Netapp, Inc. | Systems and methods for network change discovery and host name resolution in storage network environments |
US8336046B2 (en) * | 2006-12-29 | 2012-12-18 | Intel Corporation | Dynamic VM cloning on request from application based on mapping of virtual hardware configuration to the identified physical hardware resources |
US8327350B2 (en) * | 2007-01-02 | 2012-12-04 | International Business Machines Corporation | Virtual resource templates |
US8108855B2 (en) * | 2007-01-02 | 2012-01-31 | International Business Machines Corporation | Method and apparatus for deploying a set of virtual software resource templates to a set of nodes |
US20080189700A1 (en) * | 2007-02-02 | 2008-08-07 | Vmware, Inc. | Admission Control for Virtual Machine Cluster |
US9043391B2 (en) | 2007-02-15 | 2015-05-26 | Citrix Systems, Inc. | Capturing and restoring session state of a machine without using memory images |
US9270781B2 (en) | 2007-02-15 | 2016-02-23 | Citrix Systems, Inc. | Associating virtual machines on a server computer with particular users on an exclusive basis |
JP5246388B2 (ja) | 2007-03-08 | 2013-07-24 | 日本電気株式会社 | 仮想装置構成システム、及びその方法 |
US8356297B1 (en) | 2007-03-21 | 2013-01-15 | Azul Systems, Inc. | External data source redirection in segmented virtual machine |
WO2008117470A1 (ja) * | 2007-03-27 | 2008-10-02 | Fujitsu Limited | 仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法 |
JP4739272B2 (ja) * | 2007-04-19 | 2011-08-03 | 株式会社富士通アドバンストエンジニアリング | 負荷分散装置、仮想サーバ管理システム、負荷分散方法および負荷分散プログラム |
US8479194B2 (en) | 2007-04-25 | 2013-07-02 | Microsoft Corporation | Virtual machine migration |
US8782322B2 (en) * | 2007-06-21 | 2014-07-15 | International Business Machines Corporation | Ranking of target server partitions for virtual server mobility operations |
US7747814B2 (en) * | 2007-06-26 | 2010-06-29 | Microsoft Corporation | Virtual machine state snapshots |
US8806480B2 (en) * | 2007-06-29 | 2014-08-12 | Microsoft Corporation | Virtual machine smart migration |
US20090013029A1 (en) * | 2007-07-03 | 2009-01-08 | Childress Rhonda L | Device, system and method of operating a plurality of virtual logical sites |
US8239646B2 (en) | 2007-07-31 | 2012-08-07 | Vmware, Inc. | Online virtual machine disk migration |
US8280974B2 (en) * | 2007-07-31 | 2012-10-02 | Hewlett-Packard Development Company, L.P. | Migrating workloads using networked attached memory |
US8661211B2 (en) * | 2007-08-27 | 2014-02-25 | International Business Machines Corporation | Method for migrating contents of a memory on a virtual machine |
US8694990B2 (en) * | 2007-08-27 | 2014-04-08 | International Business Machines Corporation | Utilizing system configuration information to determine a data migration order |
US20090063753A1 (en) * | 2007-08-27 | 2009-03-05 | International Business Machines Corporation | Method for utilizing data access patterns to determine a data migration order |
US8671256B2 (en) * | 2007-08-27 | 2014-03-11 | International Business Machines Corporation | Migrating contents of a memory on a virtual machine |
US9274949B2 (en) | 2007-08-27 | 2016-03-01 | International Business Machines Corporation | Tracking data updates during memory migration |
US20090063752A1 (en) * | 2007-08-27 | 2009-03-05 | International Business Machines Corporation | Utilizing data access patterns to determine a data migration order |
US8370802B2 (en) | 2007-09-18 | 2013-02-05 | International Business Machines Corporation | Specifying an order for changing an operational state of software application components |
US8041773B2 (en) | 2007-09-24 | 2011-10-18 | The Research Foundation Of State University Of New York | Automatic clustering for self-organizing grids |
US8191063B2 (en) * | 2007-09-30 | 2012-05-29 | Symantex Corporation | Method for migrating a plurality of virtual machines by associating files and state information with a single logical container |
US8407518B2 (en) * | 2007-10-26 | 2013-03-26 | Vmware, Inc. | Using virtual machine cloning to create a backup virtual machine in a fault tolerant system |
US7840839B2 (en) * | 2007-11-06 | 2010-11-23 | Vmware, Inc. | Storage handling for fault tolerance in virtual machines |
WO2009069573A1 (ja) * | 2007-11-26 | 2009-06-04 | Nec Corporation | 仮想計算機移行システム、仮想計算機移行方法および仮想計算機移行プログラム |
US8418173B2 (en) | 2007-11-27 | 2013-04-09 | Manageiq, Inc. | Locating an unauthorized virtual machine and bypassing locator code by adjusting a boot pointer of a managed virtual machine in authorized environment |
US8407688B2 (en) | 2007-11-27 | 2013-03-26 | Managelq, Inc. | Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets |
US8341626B1 (en) | 2007-11-30 | 2012-12-25 | Hewlett-Packard Development Company, L. P. | Migration of a virtual machine in response to regional environment effects |
JP4894745B2 (ja) * | 2007-12-14 | 2012-03-14 | 富士通株式会社 | 仮想マシン移動制御方式 |
US8667595B2 (en) * | 2007-12-31 | 2014-03-04 | Intel Corporation | Method, apparatus and system for containing and localizing malware propagation |
US8386610B2 (en) * | 2007-12-31 | 2013-02-26 | Netapp, Inc. | System and method for automatic storage load balancing in virtual server environments |
US8359593B2 (en) * | 2008-04-21 | 2013-01-22 | Vmware, Inc. | Computer machine migration of file system images using a redo-log file |
US9501305B2 (en) * | 2008-04-23 | 2016-11-22 | Inernational Business Machines Corporation | System for virtualisation monitoring |
US9501124B2 (en) * | 2008-05-22 | 2016-11-22 | Microsoft Technology Licensing, Llc | Virtual machine placement based on power calculations |
US9032397B2 (en) * | 2008-05-28 | 2015-05-12 | Hewlett-Packard Development Company, L.P. | Virtual machine migration with direct physical access control |
US20090296726A1 (en) * | 2008-06-03 | 2009-12-03 | Brocade Communications Systems, Inc. | ACCESS CONTROL LIST MANAGEMENT IN AN FCoE ENVIRONMENT |
US8577845B2 (en) * | 2008-06-13 | 2013-11-05 | Symantec Operating Corporation | Remote, granular restore from full virtual machine backup |
US8099615B2 (en) * | 2008-06-30 | 2012-01-17 | Oracle America, Inc. | Method and system for power management in a virtual machine environment without disrupting network connectivity |
JP5222651B2 (ja) * | 2008-07-30 | 2013-06-26 | 株式会社日立製作所 | 仮想計算機システムおよび仮想計算機システムの制御方法 |
WO2010038307A1 (ja) * | 2008-10-03 | 2010-04-08 | 富士通株式会社 | 仮想計算機システムのテスト方法、テストプログラム並びにその記録媒体、仮想計算機システム |
US8055736B2 (en) * | 2008-11-03 | 2011-11-08 | International Business Machines Corporation | Maintaining storage area network (‘SAN’) access rights during migration of operating systems |
JP5124430B2 (ja) * | 2008-12-04 | 2013-01-23 | 株式会社エヌ・ティ・ティ・データ | 仮想マシンの移行方法、サーバ、及び、プログラム |
US20100153946A1 (en) * | 2008-12-17 | 2010-06-17 | Vmware, Inc. | Desktop source transfer between different pools |
US9270785B2 (en) * | 2008-12-18 | 2016-02-23 | Citrix Systems, Inc. | System and method for a distributed virtual desktop infrastructure |
JP5333735B2 (ja) * | 2009-01-27 | 2013-11-06 | 日本電気株式会社 | 仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラム |
US8478801B2 (en) * | 2009-05-20 | 2013-07-02 | Vmware, Inc. | Efficient reconstruction of virtual disk hierarchies across storage domains |
JP5227887B2 (ja) * | 2009-05-21 | 2013-07-03 | 株式会社日立製作所 | バックアップ管理方法 |
US8234469B2 (en) * | 2009-07-09 | 2012-07-31 | Microsoft Corporation | Backup of virtual machines using cloned virtual machines |
US9043454B2 (en) * | 2009-08-26 | 2015-05-26 | Red Hat Israel, Ltd. | Auto suspense of virtual machine on client disconnection |
US8433682B2 (en) | 2009-12-31 | 2013-04-30 | Commvault Systems, Inc. | Systems and methods for analyzing snapshots |
US8635395B2 (en) * | 2009-09-14 | 2014-01-21 | Vmware, Inc. | Method of suspending and resuming virtual machines |
US11720290B2 (en) | 2009-10-30 | 2023-08-08 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US10877695B2 (en) | 2009-10-30 | 2020-12-29 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US8370560B2 (en) | 2009-11-16 | 2013-02-05 | International Business Machines Corporation | Symmetric live migration of virtual machines |
US8850426B2 (en) * | 2009-12-13 | 2014-09-30 | International Business Machines Corporation | Managing remote deployment of a virtual machine and service request to be processed by the virtual machines based on network bandwith and storage connectivity |
US8370473B2 (en) * | 2009-12-16 | 2013-02-05 | International Business Machines Corporation | Live multi-hop VM remote-migration over long distance |
US8726275B2 (en) * | 2009-12-18 | 2014-05-13 | International Business Machines Corporation | Selective partial cloning of virtual machines in a virtual computing environment |
JP5487951B2 (ja) * | 2009-12-22 | 2014-05-14 | 富士通株式会社 | 運用管理プログラム、運用管理装置および運用管理方法 |
AU2010339584B2 (en) | 2009-12-31 | 2014-06-26 | Commvault Systems, Inc. | Systems and methods for performing data management operations using snapshots |
US8996667B2 (en) | 2010-04-27 | 2015-03-31 | International Business Machines Corporation | Deploying an operating system |
GB2480599A (en) * | 2010-05-17 | 2011-11-30 | Tech Universit T Muenchen | Hybrid OLTP and OLAP database |
MY150910A (en) * | 2010-05-25 | 2014-03-14 | Mimos Berhad | System and method for virtual on-demand application |
US9317314B2 (en) * | 2010-06-29 | 2016-04-19 | Microsoft Techology Licensing, Llc | Techniques for migrating a virtual machine using shared storage |
WO2012020482A1 (ja) * | 2010-08-11 | 2012-02-16 | 富士通株式会社 | バックアップ方法、情報処理装置及びプログラム |
US8499114B1 (en) | 2010-09-30 | 2013-07-30 | Amazon Technologies, Inc. | Virtual machine memory page sharing system |
US8706947B1 (en) * | 2010-09-30 | 2014-04-22 | Amazon Technologies, Inc. | Virtual machine memory page sharing system |
GB2499956B (en) | 2010-11-23 | 2018-02-14 | Servicenow Inc | Direct migration of software images with streaming technique |
JP5904505B2 (ja) | 2010-12-09 | 2016-04-13 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 仮想ディスクを暗号化及び復号するためのコンピュータ可読ストレージ媒体 |
CN103250134B (zh) | 2010-12-13 | 2016-09-07 | 国际商业机器公司 | 基于流技术的软件映像更新 |
JP5767565B2 (ja) | 2010-12-14 | 2015-08-19 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理) |
US9110693B1 (en) * | 2011-02-17 | 2015-08-18 | Emc Corporation | VM mobility over distance |
US9223605B2 (en) | 2011-07-01 | 2015-12-29 | V3 Systems Holdings, Inc. | Virtual machine allocation internal and external to physical environment |
CN102736945B (zh) | 2011-03-31 | 2016-05-18 | 国际商业机器公司 | 一种运行应用程序的多个实例的方法和系统 |
CN102959555B (zh) * | 2011-04-27 | 2015-09-02 | 松下电器(美国)知识产权公司 | 虚拟计算机系统、虚拟计算机控制方法及半导体集成电路 |
US8924967B2 (en) | 2011-04-28 | 2014-12-30 | Vmware, Inc. | Maintaining high availability of a group of virtual machines using heartbeat messages |
US8621274B1 (en) * | 2011-05-18 | 2013-12-31 | Netapp Inc. | Virtual machine fault tolerance |
US9176781B2 (en) | 2011-07-14 | 2015-11-03 | Panasonic Intellectual Property Corporation Of America | Virtual machine system, memory management method, memory management program, recording medium, and integrated circuit |
CN103827823A (zh) | 2011-07-29 | 2014-05-28 | 惠普发展公司,有限责任合伙企业 | 迁移虚拟机 |
US20130097296A1 (en) * | 2011-10-18 | 2013-04-18 | Telefonaktiebolaget L M Ericsson (Publ) | Secure cloud-based virtual machine migration |
US20130111127A1 (en) * | 2011-10-28 | 2013-05-02 | Hitachi, Ltd. | Storage system and data processing method in storage system |
EP2807599B1 (en) * | 2012-01-23 | 2020-03-25 | Citrix Systems, Inc. | Storage encryption |
JP5518143B2 (ja) * | 2012-08-03 | 2014-06-11 | 株式会社エヌ・ティ・ティ・データ | 仮想マシンの移行方法、サーバ、プログラム、及び、仮想マシンシステム |
US10684875B2 (en) * | 2012-12-06 | 2020-06-16 | At&T Intellectual Property I, L.P. | Synchronization of a virtual machine across mobile devices |
US9250827B2 (en) | 2012-12-14 | 2016-02-02 | Vmware, Inc. | Storing checkpoint file in high performance storage device for rapid virtual machine suspend and resume |
US9378068B2 (en) | 2013-03-13 | 2016-06-28 | International Business Machines Corporation | Load balancing for a virtual networking system |
US9438670B2 (en) | 2013-03-13 | 2016-09-06 | International Business Machines Corporation | Data replication for a virtual networking system |
US9785527B2 (en) * | 2013-03-27 | 2017-10-10 | Ixia | Methods, systems, and computer readable media for emulating virtualization resources |
CA2918271C (en) | 2013-07-19 | 2022-10-18 | Altria Client Services Llc | Methods and systems for incorporating nicotine into oral products |
US9870268B2 (en) * | 2013-08-05 | 2018-01-16 | Amazon Technologies, Inc. | Virtual computing instance migration |
US9654411B2 (en) | 2013-08-27 | 2017-05-16 | Vmware, Inc. | Virtual machine deployment and management engine |
US9268610B2 (en) * | 2013-11-01 | 2016-02-23 | Vmware, Inc. | Rapid virtual machine cloning |
US9477507B2 (en) | 2013-12-20 | 2016-10-25 | Vmware, Inc. | State customization of forked virtual machines |
US9323565B2 (en) | 2013-12-20 | 2016-04-26 | Vmware, Inc. | Provisioning customized virtual machines without rebooting |
US10977063B2 (en) * | 2013-12-20 | 2021-04-13 | Vmware, Inc. | Elastic compute fabric using virtual machine templates |
US9823881B2 (en) | 2013-12-23 | 2017-11-21 | Vmware, Inc. | Ensuring storage availability for virtual machines |
US10097410B2 (en) | 2014-06-26 | 2018-10-09 | Vmware, Inc. | Methods and apparatus to scale application deployments in cloud computing environments |
US9578032B2 (en) * | 2014-08-23 | 2017-02-21 | Vmware, Inc. | Application publishing using memory state sharing |
US9619268B2 (en) | 2014-08-23 | 2017-04-11 | Vmware, Inc. | Rapid suspend/resume for virtual machines via resource sharing |
US9389901B2 (en) * | 2014-09-09 | 2016-07-12 | Vmware, Inc. | Load balancing of cloned virtual machines |
US10303782B1 (en) | 2014-12-29 | 2019-05-28 | Veritas Technologies Llc | Method to allow multi-read access for exclusive access of virtual disks by using a virtualized copy of the disk |
US9483360B1 (en) * | 2015-05-27 | 2016-11-01 | Red Hat Israel, Ltd. | Guest-driven virtual machine backups |
JP6458650B2 (ja) | 2015-06-08 | 2019-01-30 | 富士通株式会社 | 情報処理システム、情報処理プログラムおよび情報処理装置 |
US10027661B2 (en) * | 2015-11-05 | 2018-07-17 | International Business Machines Corporation | Biometric virtual machine image administration |
US10230785B1 (en) | 2015-12-28 | 2019-03-12 | Amazon Technologies, Inc. | Post data synchronization for domain migration |
JP6645275B2 (ja) * | 2016-03-04 | 2020-02-14 | 富士通株式会社 | 情報処理装置、仮想マシン移動方法、および仮想マシン制御プログラム |
US10341215B2 (en) | 2016-04-06 | 2019-07-02 | Keysight Technologies Singapore (Sales) Pte. Ltd. | Methods, systems, and computer readable media for emulating network traffic patterns on a virtual machine |
US20170371693A1 (en) * | 2016-06-23 | 2017-12-28 | Vmware, Inc. | Managing containers and container hosts in a virtualized computer system |
US20180027009A1 (en) * | 2016-07-20 | 2018-01-25 | Cisco Technology, Inc. | Automated container security |
US10564996B2 (en) * | 2016-08-28 | 2020-02-18 | Vmware, Inc. | Parentless virtual machine forking |
US10162559B2 (en) * | 2016-09-09 | 2018-12-25 | Veritas Technologies Llc | Systems and methods for performing live migrations of software containers |
US10268612B1 (en) | 2016-09-23 | 2019-04-23 | Amazon Technologies, Inc. | Hardware controller supporting memory page migration |
FI20165910L (fi) | 2016-11-30 | 2018-05-31 | AJR Solutions Oy | Virtuaalikoneiden siirtäminen |
US10528477B2 (en) | 2017-04-24 | 2020-01-07 | International Business Machines Corporation | Pseudo-invalidating dynamic address translation (DAT) tables of a DAT structure associated with a workload |
US10977066B2 (en) | 2018-04-06 | 2021-04-13 | Red Hat, Inc. | Virtual machine to container conversion and optimization |
US20220035905A1 (en) * | 2020-07-31 | 2022-02-03 | Palo Alto Networks, Inc. | Malware analysis through virtual machine forking |
US11323354B1 (en) | 2020-10-09 | 2022-05-03 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for network testing using switch emulation |
US11483227B2 (en) | 2020-10-13 | 2022-10-25 | Keysight Technologies, Inc. | Methods, systems and computer readable media for active queue management |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5313647A (en) * | 1991-09-20 | 1994-05-17 | Kendall Square Research Corporation | Digital data processor with improved checkpointing and forking |
JPH06187308A (ja) * | 1992-12-21 | 1994-07-08 | Toshiba Corp | 複合計算機システムに於ける分散共有記憶管理方式及び負荷分散方式 |
DE69431386T2 (de) | 1993-10-05 | 2003-05-15 | Seiko Epson Corp | Verfahren und Gerät zur Erzeugung eines Programms für parallele Verarbeitung |
JP3653159B2 (ja) * | 1997-04-01 | 2005-05-25 | 株式会社日立製作所 | 仮想計算機システム間の仮想計算機移動制御方法 |
US6802062B1 (en) * | 1997-04-01 | 2004-10-05 | Hitachi, Ltd. | System with virtual machine movable between virtual machine systems and control method |
US6795966B1 (en) | 1998-05-15 | 2004-09-21 | Vmware, Inc. | Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction |
US6704764B1 (en) * | 1998-06-18 | 2004-03-09 | Hewlett-Packard Development Company, L.P. | Method and apparatus for a servlet server class |
US6732220B2 (en) * | 1999-02-17 | 2004-05-04 | Elbrus International | Method for emulating hardware features of a foreign architecture in a host operating system environment |
US6850953B1 (en) * | 1999-08-23 | 2005-02-01 | Sun Microsystems, Inc. | Creating multiple sets of data by spawning a secondary virtual machine |
JP2002024048A (ja) * | 2000-07-10 | 2002-01-25 | Oki Electric Ind Co Ltd | 高可用性システム |
US7506265B1 (en) | 2000-07-17 | 2009-03-17 | Microsoft Corporation | System and method for displaying images of virtual machine environments |
IL158189A0 (en) | 2001-04-03 | 2004-03-28 | L 3 Comm Security & Detection | A remote baggage screening system, software and method |
US20020184287A1 (en) | 2001-06-01 | 2002-12-05 | Patrick Nunally | Method and device for executing network-centric program code with reduced memory |
GB2378535A (en) * | 2001-08-06 | 2003-02-12 | Ibm | Method and apparatus for suspending a software virtual machine |
US7698360B2 (en) | 2002-02-26 | 2010-04-13 | Novell, Inc. | System and method for distance learning |
US7093086B1 (en) * | 2002-03-28 | 2006-08-15 | Veritas Operating Corporation | Disaster recovery and backup using virtual machines |
US7065549B2 (en) | 2002-03-29 | 2006-06-20 | Illinois Institute Of Technology | Communication and process migration protocols for distributed heterogeneous computing |
US7313793B2 (en) | 2002-07-11 | 2007-12-25 | Microsoft Corporation | Method for forking or migrating a virtual machine |
US7299468B2 (en) | 2003-04-29 | 2007-11-20 | International Business Machines Corporation | Management of virtual machines to utilize shared resources |
US7257811B2 (en) | 2004-05-11 | 2007-08-14 | International Business Machines Corporation | System, method and program to migrate a virtual machine |
US20060085784A1 (en) | 2004-10-15 | 2006-04-20 | Microsoft Corporation | Systems and methods for authoring and accessing computer-based materials using virtual machines |
-
2002
- 2002-07-11 US US10/193,531 patent/US7313793B2/en not_active Expired - Lifetime
-
2003
- 2003-06-26 JP JP2003182219A patent/JP4942909B2/ja not_active Expired - Lifetime
- 2003-06-30 ES ES03014873T patent/ES2734248T3/es not_active Expired - Lifetime
- 2003-06-30 EP EP03014873.8A patent/EP1380947B1/en not_active Expired - Lifetime
-
2007
- 2007-12-21 US US11/963,067 patent/US7657888B2/en not_active Expired - Lifetime
-
2009
- 2009-03-03 JP JP2009049688A patent/JP5085590B2/ja not_active Expired - Fee Related
-
2012
- 2012-01-20 JP JP2012010295A patent/JP2012074090A/ja active Pending
-
2013
- 2013-10-11 JP JP2013213842A patent/JP5769212B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP5085590B2 (ja) | 2012-11-28 |
US20080098154A1 (en) | 2008-04-24 |
JP5769212B2 (ja) | 2015-08-26 |
EP1380947A3 (en) | 2008-11-05 |
US7313793B2 (en) | 2007-12-25 |
JP2009116914A (ja) | 2009-05-28 |
EP1380947B1 (en) | 2019-05-01 |
JP2014006935A (ja) | 2014-01-16 |
US20040010787A1 (en) | 2004-01-15 |
EP1380947A2 (en) | 2004-01-14 |
JP2004133894A (ja) | 2004-04-30 |
US7657888B2 (en) | 2010-02-02 |
JP2012074090A (ja) | 2012-04-12 |
JP4942909B2 (ja) | 2012-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2734248T3 (es) | Procedimiento para bifurcar o migrar una máquina virtual | |
US8370560B2 (en) | Symmetric live migration of virtual machines | |
US8191063B2 (en) | Method for migrating a plurality of virtual machines by associating files and state information with a single logical container | |
US8151263B1 (en) | Real time cloning of a virtual machine | |
US20160378530A1 (en) | Remote-direct-memory-access-based virtual machine live migration | |
US9239765B2 (en) | Application triggered state migration via hypervisor | |
US9256464B2 (en) | Method and apparatus to replicate stateful virtual machines between clouds | |
US20180024854A1 (en) | Technologies for virtual machine migration | |
US10970106B1 (en) | Storage device sharing among virtual machines | |
Im et al. | On-Demand Virtualization for Post-Copy OS Migration in Bare-Metal Cloud | |
Im et al. | On-demand virtualization for live migration in bare metal cloud | |
Zhang et al. | gha: An efficient and iterative checkpointing mechanism for virtualized gpus | |
Gangadhar et al. | Distributed memory and cpu management in cloud computing environment | |
US20240184612A1 (en) | Virtual machine live migration with direct-attached non-volatile memory express device | |
Pandey et al. | A mapreduce based algorithm for data migration in a private cloud environment | |
TWI733745B (zh) | 核心模式的虛擬機器(kvm)虛擬化下處理i/o請求的方法和裝置 | |
Sheuly | Resource Virtualization for Real-time Industrial Clouds | |
Jin et al. | Heterogeneous-ISA Application Migration in Edge Computing: Challenges, Techniques and Open Issues | |
Ronkainen | Server virtualization | |
JP2005056019A (ja) | 情報処理装置 |