ES2734248T3 - Procedimiento para bifurcar o migrar una máquina virtual - Google Patents

Procedimiento para bifurcar o migrar una máquina virtual Download PDF

Info

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
Application number
ES03014873T
Other languages
English (en)
Inventor
Eric P Traut
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2734248T3 publication Critical patent/ES2734248T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision 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)

REIVINDICACIONES
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.
ES03014873T 2002-07-11 2003-06-30 Procedimiento para bifurcar o migrar una máquina virtual Expired - Lifetime ES2734248T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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) 情報処理装置