MX2014007678A - Tomas de pantalla consistentes con aplicacion de un volumen compartido. - Google Patents

Tomas de pantalla consistentes con aplicacion de un volumen compartido.

Info

Publication number
MX2014007678A
MX2014007678A MX2014007678A MX2014007678A MX2014007678A MX 2014007678 A MX2014007678 A MX 2014007678A MX 2014007678 A MX2014007678 A MX 2014007678A MX 2014007678 A MX2014007678 A MX 2014007678A MX 2014007678 A MX2014007678 A MX 2014007678A
Authority
MX
Mexico
Prior art keywords
node
group
writer
command
notification
Prior art date
Application number
MX2014007678A
Other languages
English (en)
Other versions
MX343276B (es
Inventor
Joydeep Buragohain
Vinod R Shankar
Andrea D Amato
Original Assignee
Microsoft Corp
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 Corp filed Critical Microsoft Corp
Publication of MX2014007678A publication Critical patent/MX2014007678A/es
Publication of MX343276B publication Critical patent/MX343276B/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

La presente solicitud se extiende a métodos, sistemas y productos de programa de computadora para crear una toma de pantalla de un volumen compartido que es consistente con la aplicación a través de varios nodos de un grupo. La invención permite que se inicie una toma de pantalla de un volumen en un nodo que hace que todas las aplicaciones en el grupo que utilizan el volumen persistan sus datos al volumen antes que se cree la toma de pantalla. Por consiguiente, la toma de pantalla es consistente con la aplicación para todas las aplicaciones en el grupo que utilizan el volumen. La invención también permite que aplicaciones en varios nodos realicen post-procesamiento de toma de pantalla en la toma de pantalla creada. La invención puede utilizarse en un sistema de respaldo existente que no está consciente del grupo para permitir que el sistema de respaldo existente cree tomas de pantalla consistentes con la aplicación de un volumen compartido con aplicaciones a través de múltiples nodos de un grupo.

Description

TOMAS DE PANTALLA CONSISTENTES CON APLICACION DE UN VOLUMEN COMPARTIDO ANTECEDENTES 1. Antecedentes v Técnica Relevante Los sistemas de computadora y tecnología relacionada afectan muchos aspectos de la sociedad. De hecho, la capacidad de sistemas de computadora para procesar información ha transformado la forma en que vivimos y trabajamos. Los sistemas de computadora ahora realizan comúnmente un grupo de tareas (por ejemplo, procesamiento, programación, conteo de palabras, etc.) que antes de la llegada del sistema de computadora se realizaban manualmente. Más recientemente, los sistemas de computadora han sido acoplados entre sí a otros dispositivos electrónicos para formar tanto redes de computadora por cable como inalámbricas en las cuales los sistemas de computadora y otros dispositivos electrónicos puedan transferir datos electrónicos. Por consiguiente, el desempeño de muchas tareas de cómputo se distribuye a través de un número de diferentes sistemas de computadora y/o un número de diferentes ambientes de cómputo.
Se ha vuelto cada vez más común al aplicaciones dentro de un ambiente distribuido. Por ejemplo, las aplicaciones están frecuentemente alojadas en un nodo (por ejemplo, un servidor) de un grupo de nodos. En el grupo, diferentes aplicaciones pueden ser alojadas en diferentes nodos pero cada una puede acceder a uno o más volúmenes de almacenamiento comunes. En otras palabras, puede accederse a un almacenamiento por muchas aplicaciones diferentes aplicaciones distribuidas a través de varios nodos del grupo.
La Figura 1 ilustra este tipo de ambiente. Como se muestra, el grupo 100 incluye un nodo 101-103. En este grupo ilustrativo, cada nodo incluye un coordinador, una aplicación de respaldo, un proveedor de almacenamiento, y dos aplicaciones. Sin embargo, un nodo puede incluir cualquier número de aplicaciones así como múltiples proveedores de almacenamiento. En este ejemplo, cada aplicación utiliza volumen 104a en el almacenamiento 104 para almacenar datos.
Los componentes ilustrados en la Figura 1 representan un sistema de respaldo de la técnica previa que ha sido utilizado para realizar respaldos en grupo así como ambientes sin grupo. El Servicio de Copia de Sombra de Volumen (VSS) de Microsoft es un ejemplo de un coordinador que puede utilizarse en este tipo de sistema de respaldo. En este sistema de respaldo, se utilizan coordinadores 110-130 para coordinar respaldos de volúmenes compartidos tal como volumen 104a. Este respaldo puede comprender una toma de pantalla de punto en el tiempo (es decir, toma de pantalla) del volumen 104a. Aunque la creación de una toma de pantalla se describirá como ocurriendo en el nodo 101, se pueden llevar a cabo pasos similares en cada nodo para crear una toma de pantalla de volumen 104a en el nodo. En otras palabras, cada coordinador en los nodos 101-103 funciona s imilarmente para crear tomas de pantalla de un volumen.
Para crear una toma de pantalla en nodo 101, la aplicación de respaldo 114 envía una solicitud al coordinador 110 para crear una toma de pantalla. En esta solicitud, la aplicación de respaldo 114 especifica un proveedor de almacenamiento (en este ejemplo, proveedor de almacenamiento 113) que debe utilizarse para crear la toma de pantalla. El coordinador 110 se comunica con el escritor de cada aplicación en el nodo 101 (escritores 111a y 112a) que los instruye para preparar una toma de pantalla. Esta comunicación se indica como un comando de congelación.
Tal preparación incluye descargar en memoria caché al disco y suspender (es decir, congelar) escrituras por la aplicación hasta que se crea la toma de pantalla. De esta forma, cada escritor asegura que todos los datos de aplicación se persisten al volumen 104a antes que se cree una toma de pantalla. Una vez que cada escritura ha regresado del comando de congelación, el coordinador 110 instruye al volumen 104a a preparar para la toma de pantalla tal como al persistir metadatos de sistema de archivo al volumen 104a y suspender escrituras al volumen 104a. E sta c omunicacion se indica como un comando de descarga y mantenimiento.
Una vez que el volumen 104a ha regresado desde el comando de descarga y mantenimiento, el coordinador 110 instruye al proveedor de almacenamiento 113 a crear la toma de pantalla del volumen 104a. Esto se indica como un comando compromiso. Aunque se muestra un proveedor de almacenamiento, un nodo puede emplear múltiples proveedores de almacenamiento tal como un proveedor de almacenamiento de hardware para interconectarse directamente con un controlador de hardware para almacenamiento 104, o un proveedor de almacenamiento de software para interconectarse con un sistema operativo (por ejemplo, el sistema de archivo). Para propósitos de la presente invención, el tipo de proveedor de almacenamiento utilizado para crear una toma de pantalla no es importante.
El proveedor de almacenamiento 113 crea una toma de pantalla de volumen 104a. Esta toma de pantalla es una copia de los contenidos del volumen 104a como existieron en un punto en el tiempo individual (por ejemplo, el punto en el tiempo después de que cada escritor ha persistido los datos de cada aplicación en el nodo 101 al volumen 104a y el volumen 104a ha descargado su memoria cache). Una vez que se crea esta toma de pantalla y el proveedor de almacenamiento 113 regresa desde el comando de compromiso, el coordinador 110 instruye al volumen 104a que puede volver a comenzar el procesamiento (indicado como un comando de liberación), y entonces instruye a cada escritor que las aplicaciones pueden volver a comenzar la escritura al volumen 104a (indicado como un comando de descongelación). Como se puede observar, este procedimiento de respaldo permite a las aplicaciones continuar ejecutándose durante la creación de la toma de pantalla. Las aplicaciones ahora se previenen únicamente de escritura al volumen 104a entre la recepción de los comandos de congelación y descongelación. Sin embargo, las aplicaciones pueden continuar leyendo el volumen 104a durante este tiempo.
Este procedimiento de respaldo produce una toma de pantalla de punto en el tiempo del volumen 104a que tiene consistencia de sistema de archivo debido a que el comando de descarga y mantenimiento c ausa que todos los datos de sistema de archivo se persistan antes de que se cree la toma de pantalla, la toma de pantalla de punto en el tiempo también tiene consistencia de aplicación para cada aplicación que corre en el nodo en donde se inició la toma de pantalla, que en este ejemplo es el nodo 101, debido a que el comando de congelación causa que cada aplicación persista sus datos al volumen 104a.
Sin embargo, cuando se utiliza este procedimiento de respaldo de la técnica previa en un ambiente de grupo, la toma de pantalla de punto en el tiempo del volumen 104a no tiene consistencia de aplicación para cada aplicación que corre en los nodos 102 o 103. Esto es debido a que el coordinador 110 no se comunica con otros nodos en el grupo (por ejemplo, nodos 102 y 103). Más específicamente, este sistema de respaldo de la técnica previa no está configurado para permitir a un coordinador en un nodo comunicarse con un coordinador o escritures en otro nodo. Por consiguiente, las aplicaciones 121, 122, 131, y 132 contendrán memoria caché en memoria (u otros datos no persistidos) que no se persistieron al volumen 104a antes de la creación de la toma de pantalla en el nodo 101, y por lo tanto, estos datos no persistidos no serán incluidos en la toma de pantalla.
Debido a esto, en este sistema de respaldo de la técnica previa, para crear una toma de pantalla de punto en el tiempo para cada aplicación en el grupo, se obliga a un usuario a iniciar una toma de pantalla en cada uno de los nodos en el grupo. Por ejemplo, un usuario utilizaría las aplicaciones de respaldo 124 y 134 en cada uno de los nodos 102 y 103 para comunicarse con coordinadores 120 y 130 respectivamente para crear tomas de pantalla de punto en el tiempo separadas del volumen 104a después del mismo procedimiento descrito anteriormente. Esto resulta en que se crea una toma de pantalla separada en cada nodo en el grupo.
BREVE DESCRIPCION DE LA INVENCION La presente invención se extiende a métodos, sistemas, y productos de programa de computadora para crear una toma de pantalla de un volumen compartido que es consistente con la aplicación a través de varios nodos, la invención permite que se inicie una toma de pantalla de un volumen en un nodo que hace que todas las aplicaciones en el grupo utilicen el volumen para persistir sus datos al volumen antes de que se cree la toma de pantalla. Por consiguiente, la toma de pantalla es consistente con la aplicación para todas las aplicaciones en el grupo que utilizan el volumen. La invención también permite a las aplicaciones en los otros nodos realizar post-procesamiento en la toma de pantalla creada en el nodo.
En una modalidad, se recibe una solicitud en un coordinador de respaldo en un primer nodo de un grupo. La solicitud se recibe desde una aplicación de respaldo y solicita que se cree una toma de pantalla de un volumen compartido utilizado por al menos una aplicación en el primer nodo y en al menos algún otro nodo en el grupo. Cada una de al menos una aplicación en el primero y al menos otro nodo incluye un escritor. Cada uno del primero y al menos otro nodo incluye un escritor de grupo.
El coordinador de respaldo envía un comando de congelación al escritor de grupo y cada escritor en el primer nodo. El comando de congelación instruye al escritor de grupo y a cada escritor en el primer nodo para persistir datos de aplicación al volumen compartido. El escritor de grupo en el primer nodo entonces envía una notificación del comando de congelación al servicio de grupo en el primer nodo. El servicio del grupo en el primer nodo envía una notificación al comando de congelación al servicio de grupo en cada uno de al menos otro nodo. La notificación instruye al servicio de grupo en cada uno de al menos otro nodo al iniciar un procedimiento de respaldo del volumen compartido en cada uno de al menos otro nodo.
El escritor de grupo en el primer nodo espera una notificación del servicio de grupo en uno de al menos otro nodo antes de regresar desde el comando de congelación. Esta notificación indica que cada escritor en el nodo correspondiente ha persistido datos de aplicación correspondientes al volumen compartido. Al recibir la notificación desde el servicio de grupo en cada uno de al menos otro nodo, el escritor de grupo en el primer nodo regresa desde el comando de congelación.
Una vez que el escritor de grupo del primer nodo regresa desde el comando de congelación, el coordinador de respaldo envía una solicitud a un proveedor de almacenamiento en el primer nodo. La solicitud hace que el proveedor de almacenamiento cree una toma de pantalla de un volumen compartido, la toma de pantalla tiene consistencia de aplicación para cada aplicación en el primer nodo y ai menos en el otro nodo que utiliza el volumen compartido.
En otra modalidad, se recibe una notificación en un servicio de grupo en un primer nodo. La notificación indica que un procedimiento de respaldo de un volumen compartido ha sido iniciado en un segundo nodo en el grupo. El volumen compartido se utiliza por al menos una aplicación en cada uno del primer y segundo nodos. Se recibe la notificación desde un servicio de grupo en el segundo nodo e indica que se recibió un comando de congelación por un escritor de grupo en el segundo nodo.
El servicio de grupo en el primer nodo envía una solicitud a un coordinador de respaldo en el primer nodo. La solicitud solicita que se cree una toma de pantalla del volumen compartido. El coordinador de respaldo envía un comando de congelación al escritor de grupo y un escritor de al menos una aplicación en el primer nodo. El comando de congelación i nstruye al escritor d e grupo y al menos a un escritor a persistir los datos de aplicación al volumen compartido.
Después que el escritor de grupo y el por lo menos un escritor regresan desde el comando de congelación, el coordinador de respaldo envía un comando de compromiso a un proveedor ayudante o auxiliar desde el primer nodo, el proveedor auxiliar sobre el primer nodo envía una notificación del comando de compromiso al servicio de grupo en el primer nodo. El proveedor auxiliar bloquea el comando de compromiso. El servicio de grupo en el primer nodo entonces envía una notificación al escritor de grupo en el segundo nodo que ha recibido el comando de compromiso indicando de esa forma que cada escritor en el primer nodo ha persistido los datos de la aplicación correspondiente al volumen compartido.
Esta Breve Descripción se proporciona para introducir una selección de conceptos en una forma simplificada que además se describe a continuación en la Descripción Detallada. Esta Breve Descripción no pretende identificar características clave o características esenciales del tema reclamado, ni pretende utilizarse como un auxiliar al determinar el alcance del tema reclamado.
Características y ventajas adicionales de la invención se describirán en la descripción a continuación, y en parte serán obvias a partir de la descripción, o pueden aprenderse por la práctica de la invención. Las características y ventajas de la invención pueden realizarse y obtenerse por medio de los instrumentos y combinaciones particularmente señalados en las reivindicaciones anexas. Estas y otras características de la presente invención serán más completamente evidentes a partir de la siguiente descripción y reivindicaciones anexas, o pueden aprenderse por la práctica de la invención como se describe aquí en lo sucesivo.
BREVE DESCRIPCION DE LOS DIBUJOS Con el fin de describir la forma en la cual pueden obtenerse ventajas y características mencionadas anteriormente y otras de la invención, se presentará una descripción más particular de la invención previamente descrita en lo anterior por referencia a modalidades específicas de la mismas que se ilustran en los dibujos anexos. Al entender que estos dibujos describen únicamente modalidades típicas de la invención y por lo tanto no se van a considerar limitantes de su alcance, la invención se describirá y explicará con especificidad y detalle adicionales a través del uso de los dibujos anexos en donde: La Figura 1 muestra un grupo ilustrativo de nodos que tienen componentes de un sistema de respaldo de la técnica previa; La Figura 2 muestra un grupo ilustrativo de nodos que tienen componentes de un sistema de respaldo de acuerdo con modalidades de la presente invención; La Figura 3 muestra un grupo ilustrativo de nodos que muestran una secuencia de comunicaciones durante un procedimiento de respaldo; La Figura 4 muestra un grupo ilustrativo de nodos que muestra otra secuencia de comunicaciones durante el procedimiento de respaldo; La Figura 5 muestra un cuadro de flujo de un método ilustrativo para iniciar la creación de una toma de pantalla de un volumen compartido utilizado por aplicaciones en múltiples nodos en un grupo; y La Figura 6 muestra un cuadro de flujo de un método ilustrativo para responder a una notificación que la creación de una toma de pantalla de un volumen compartido ha iniciado en otro nodo del grupo.
DESCRIPCION DETALLADA La presente invención se extiende a métodos, sistemas, y productos de programa de computadora para crear una toma de pantalla de un volumen compartido que es consistente con aplicación a través de varios nodos. La invención permite que se inicie una toma de pantalla de un volumen en un nodo que hace que todas las aplicaciones en el grupo que utiliza el volumen persistan sus datos para el volumen antes de que se cree la toma de pantalla. Por consiguiente, la toma de pantalla es consistente con la aplicación para todas las aplicaciones en el grupo que utilizan el volumen. La invención también permite que aplicaciones en los otros nodos realicen post-procesamiento de toma de pantalla en la toma de pantalla creada en el nodo.
En una modalidad, se recibe una solicitud en un coordinador de respaldo en un primer nodo de un grupo. Se recibe la solicitud desde una aplicación de respaldo y solicita que se cree una toma de pantalla de un volumen compartido utilizado por al menos una aplicación en el primer nodo y al menos en otro nodo en el grupo. Cada una d e al menos una aplicación en el primer y al menos otro nodo incluye un escritor. Cada uno del primero y al menos otro nodo también incluye un escritor de grupo.
El coordinador de respaldo envía un comando de congelación al escritor de grupo y cada escritor en el primer nodo. El comando de congelación instruye al escritor de grupo y a cada escritor sobre el primer nodo para persistir datos de aplicación al volumen compartido. El escritor de grupo en el primer nodo entonces envía una notificación del comando de congelación al servicio de grupo en el primer nodo. El servicio de grupo en el primer nodo envía una notificación del comando de congelación al servicio de grupo en cada uno de al menos otro nodo. La notificación instruye al servicio de grupo en cada uno de al menos otro nodo para iniciar un procedimiento de respaldo del volumen compartido en cada uno de al menos otro nodo.
El escritor de grupo en el primer nodo espera una notificación del servicio de grupo en cada uno de al menos otro nodo antes de regresar del comando de congelación. Esta notificación indica que cada escritor en el nodo correspondiente ha persistido datos de aplicación correspondientes al volumen compartido. Después de recibir la notificación del servicio de grupo en cada uno de al menos otro nodo, el escritor de grupo en el primer nodo regresa desde el comando de congelación.
Una vez que el escritor de grupo en el primer nodo regresa desde el comando de congelación, el coordinador de respaldo envía una solicitud a un proveedor de almacenamiento en el primer nodo. La solicitud hace que el proveedor de almacenamiento cree una toma de pantalla del volumen compartido. La toma de pantalla tiene consistencia de aplicación a cada aplicación en el primer nodo y al menos en otro nodo que utiliza el volumen compartido.
En otra modalidad, se recibe una notificación en un servicio de grupo en un primer nodo. La notificación indica que se ha iniciado un procedimiento de respaldo de un volumen compartido en un segundo nodo en el grupo. Se utiliza el volumen compartido por al menos una aplicación en cada uno del primer y segundo nodos. Se recibe la notificación desde un servicio de grupo en el segundo nodo e indica que se ha recibido un comando de congelación en un escritor de grupo en el segundo nodo.
El servicio de grupo en el primer nodo envía una solicitud a un coordinador de respaldo en el primer nodo. La solicitud solicita que se cree una toma de pantalla en el volumen compartido. El coordinador de respaldo envía un comando de congelación al escritor de grupo y a un escritor de al menos una aplicación en el primer nodo. El comando de congelación i nstruye a I escritor de grupo y al menos a un escritor a persistir datos de aplicación al volumen compartido.
Después el escritor de grupo y al menos un escritor regresa desde el comando de congelación, el coordinador de respaldo envía un comando de compromiso a un proveedor auxiliar en el primer nodo, el proveedor auxiliar en el primer nodo envía una notificación del comando de compromiso al servicio de grupo en el primer nodo. El proveedor auxiliar bloquea el comando de compromiso. El servicio de grupo en el primer nodo entonces envía una notificación al escritor de grupo en el segundo nodo que el comando de compromiso ha sido recibido indicando de esa forma que cada escritor en el primer nodo ha persistido los datos de la aplicación correspondiente al volumen compartido.
Las modalidades de la presente invención pueden comprender o utilizar una computadora de propósito especial o de propósito general que incluye hardware de computadora, tal como, por ejemplo, uno o más procesadores y memoria de sistema, como se discute con mayor detalle a continuación. Las modalidades dentro del alcance de la presente invención también incluyen medios legibles por computadora físicos u otros para transportar o almacenar instrucciones ejecutables por computadora y/o estructuras de datos. Tales medios legibles por computadora pueden ser cualquier medio disponible que puede accedido por un sistema de computadora de propósito general o de propósito especial. Los medios legibles por computadora que almacenan instrucciones ejecutables por computadora son medios de almacenamiento por computadora (dispositivos). Los medios legibles por computadora que transportan instrucciones ejecutables por computadora son medios de transmisión. De esa forma, a manera de ejemplo, y no de limitación, las modalidades de la invención pueden comprender al menos dos clases totalmente diferentes de medios legibles por computadora: medios de almacenamiento por computadora (dispositivos) y medios de transmisión.
Los medios de almacenamiento por computadora (dispositivos) incluyen RAM, ROM, EEPROM, CD-ROM, unidades d e estado sólido ("SSD") (por ejemplo, basándose en RAM), memoria flash, memoria de cambio de fase ("PCM"), otros tipos de memoria, otro almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede utilizarse para almacenar medios de código de programa deseados en la forma de instrucciones ejecutables por computadora o estructuras de datos y que pueden accederse por una computadora de propósito general o de propósito especial.
Una "red" se define como uno o más enlaces de datos que permiten el transporte de datos electrónicos entre sistemas y/o módulos de computadora y/u otros dispositivos electrónicos. Cuando se transfiere o proporciona información a través de una red u otra conexión de comunicaciones (por cable, inalámbrica, o una combinación de por cable o inalámbrica) a una computadora, la computadora observa apropiadamente la conexión como un medio de transmisión. Los medios de transmisión pueden incluir una red y/o enlaces de datos que pueden utilizarse para transportar medios de código de programa deseados en la forma de instrucciones ejecutables por computadora o estructuras de datos y que pueden accederse por una computadora de propósito general o de propósito especial. También deben incluirse combinaciones de los anteriores dentro del alcance de medios legibles por computadora.
Además, al alcanzar varios componentes de sistema de computadora, los medios de código de programa en la forma de pueden transferirse instrucciones ejecutables por computadora o estructuras de datos automáticamente desde medios de transmisión hacia medios de almacenamiento por computadora (dispositivos) (o viceversa). Por ejemplo, las instrucciones ejecutables por computadora o estructuras de datos recibidas en una red o enlace de datos pueden guardarse en memoria intermedia en RAM dentro de un módulo de interfase de red (por ejemplo, un "NIC"), y entonces transferirse eventualmente a RAM de sistema de computadora y/o a medios de almacenamiento por computadora menos volátiles (dispositivos) en un sistema de computadora. De esa forma, se debe entender que los medios de almacenamiento por computadora (dispositivos) pueden incluirse en componentes de sistema de computadora que también (o incluso principalmente) utilizan medios de transmisión.
Instrucciones ejecutables por computadora comprenden, por ejemplo, instrucciones y datos que, cuando se ejecutan en un procesador, hacen que una computadora de propósito general, computadora de propósito especial, o dispositivo de procesamiento de propósito especial realicen cierta función o grupo de funciones. Las instrucciones ejecutables por computadora pueden ser, por ejemplo, binarios, instrucciones de formato intermedio tal como lenguaje de ensamble, o incluso código de fuente. Aunque el tema ha sido descrito en lenguaje específico a características estructurales y/o actos metodológicos, se entenderá que el tema definido en las reivindicaciones anexas no necesariamente está limitado a las características descritas o actos d escritos anteriormente. Más bien, las características y actos descritos se describen como formas ilustrativas para implementar las reivindicaciones.
Aquellos expertos en la técnica apreciarán que la invención puede practicarse en ambientes de cómputo de red con muchos tipos de configuraciones de sistema de computadora, incluyendo, computadoras personales, computadoras de escritorio, computadoras laptop, procesadores de mensaje, dispositivos portátiles, sistemas de multiprocesador, electrónica a base de microprocesador de consumidor programable. PC de red, minicomputadoras, macrocomputadoras, teléfonos móviles, PDA, tabletas, buscadores, enrutadores, interruptores, y similares. La invención también puede practicarse en ambientes de sistema distribuidos en donde sistemas de computadora locales y remotos que están enlazados (ya sea por enlaces de datos por cable, enlaces de datos inalámbricos, o por una combinación de enlaces de datos por cable e inalámbricos) a través de una red, ambos realizan tareas. En un ambiente de sistema distribuido, los módulos de programa pueden estar localizados tanto en dispositivos de almacenamiento de memoria locales como remotos.
La Figura 2 ilustra un grupo 200 que incluye los mismos nodos que el grupo 100 mostrado en la Figura 1. Cada nodo en el grupo 200 incluye los mismos componentes excepto que las aplicaciones de respaldo 124 y 134 y proveedores de almacenamiento 123 y 133 no se muestran para claridad (aunque aún podrían existir en estos nodos tal como si se desea iniciar respaldos de los nodos 102 y 103). Además, cada nodo se muestra como incluyendo un servicio de grupo y u n escritor de grupo. Estos servicios de grupo y escritores de grupo permiten que se cree una toma de pantalla de volumen 104a que es consistente con la aplicación para todas las aplicaciones en el grupo 200 que utilizan el volumen 104a. Los servicios de grupo y escritores de grupo están configurados para ejecutarse dentro del sistema de respaldo de la técnica previa descrito en la Figura 1 para permitir que el sistema de respaldo de la técnica previa cree tomas de pantalla consistentes con la aplicación extendidas en el grupo.
Como se describió con respecto a la Figura 1, la aplicación de respaldo 114 puede iniciar la creación de una toma de pantalla d el volumen 104a al comunicarse con el coordinador 110. Esta comunicación incluye especificar el proveedor de almacenamiento 113 que se debe utilizar para crear la toma de pantalla. En respuesta a la solicitud de la aplicación de respaldo 114, el coordinador 110 envía un comando de congelación a escritores 111a y 112a así como a escritores de grupo 201 (debido a que el escritor de grupo 201, como escritores 111a y 112a, está registrado con el coordinador 110 como un escritor).
Los escritores 111a y 112a responden al comando de congelación como se describió anteriormente con respecto a la Figura 1. Sin embargo, en respuesta al comando de congelación, el escritor de grupo 201 se comunica con el servicio de grupo 204 en el nodo 101 quién entonces se comunica con los servicios de grupo en los otros nodos del grupo. Por consiguiente, una notificación de la ocurrencia del comando de congelación en el nodo 101 se transmite por el servicio de grupo 204 a servicios de grupo 205 y 206.
Después de notificar al servicio de grupo 204 del comando de congelación, el escritor de grupo 201 espera (es decir, no regresa desde el comando de congelación) hasta que recibe una respuesta de cada uno de los servicios de grupo 205 y 206. Al esperar para responder al comando de congelación, el escritor de grupo 201 previene que el coordinador 110 proceda con el procedimiento de respaldo.
Cuando un servicio de grupo recibe notificación de la ocurrencia de un comando de congelación en otro nodo en el grupo, el servicio de grupo actúa como una aplicación de respaldo para iniciar la creación de una toma de pantalla en el nodo correspondiente. Por ejemplo, cuando el servicio de grupo 205 recibe la aplicación desde el servicio de grupo 204, el servicio de grupo 205 se comunicará con el coordinador 120 para iniciar la creación de una toma de pantalla en el nodo 102. El servicio de grupo 205 especifica que el proveedor auxiliar 223 debe utilizarse para crear la toma de pantalla e n el nodo 102. Similarmente, cuando el servicio de grupo 206 envía la notificación desde el servicio de grupo 204, el servicio de grupo 206 se comunicará con el coordinador 130 para iniciar la creación de una toma de pantalla en el nodo 103. El servicio de grupo 206 especifica que el proveedor auxiliar 233 debe utilizarse para crear la toma de pantalla en el nodo 103.
Como un resultado, los coordinadores 120 y 130 comienzan la creación de una toma de pantalla en los nodos 102 y 103 respectivamente al e nviar comandos de congelación a cada escritor en el nodo. Por ejemplo, el coordinador 120 envía un comando de congelación a escritores 121a y 122a, así como el escritor de grupo 202, mientras que el coordinador 130 envía un comando de congelación a escritores 131a y 132a, así como a escritor de grupo 203. Como se describió con respeto a la Figura 1, el comando de congelación causa que cada escritor se prepare para la creación de una toma de pantalla tal como al persistir sus datos en memoria. Los escritores de grupo 202 y 203 simplemente regresan desde el comando de congelación.
Después que los escritores en los nodos 102 y 103 regresan desde el comando de congelación, los coordinadores 120 y 130 envían un comando de descarga y de mantenimiento al volumen 104a. Cómo se procesan estos comandos de descarga y mantenimiento no es esencial para la invención. Para propósitos de esta invención, se entiende que estos comandos de descarga y mantenimiento de coordinadores 120 y 130 finalmente no se enrutan al volumen 104a (debido a que se enviará un comando de descarga y mantenimiento al volumen 104a por el coordinador 110 como se describe a continuación).
Después, los coordinadores 120 y 130 envían un comando de compromiso a proveedores ayudantes 223 y 233 respectivamente (debido a que se especificaron proveedores ayudantes 223 y 233 en las solicitudes respectivas para iniciar una toma de pantalla). Los proveedores ayudantes 223 y 233 responden al comando de compromiso mediante bloqueo. En otras palabras, los proveedores ayudantes 223 y 233 no responden inicialmente a coordinadores 120 y 130. Adicionalmente, los proveedores ayudantes 223 y 233 no crean una toma de pantalla de volumen 104a (como se haría si se enviará el comando de compromiso a un proveedor de almacenamiento).
En lugar de esto, los proveedores ayudantes 223 y 233 notifican a los servicios de grupo 205 y 206 respectivamente del comando de compromiso. En respuesta, cada uno de los servicios de grupo 205 y 206 notifica al escritor de grupo 201. Estas notificaciones informan al escritor de grupo 201 que el comando de congelación se completó exitosamente en cada uno de los nodos 102 y 103 indicando de esa forma que las aplicaciones en los nodos 102 y 103 han persistido exitosamente sus datos al volumen 104a.
Debido a que los proveedores ayudantes 223 y 233 bloquean el comando de compromiso, los coordinadores 120 y 130 no enviarán una liberación o un comando de descongelación al volumen 104a o a los escritores respectivos previendo de esa forma que los escritores modifiquen el volumen 104a hasta que se ha creado la toma de pantalla en el nodo 101.
Una vez que el escritor de grupo 101 ha recibido las notificaciones de escritores de grupo 202 y 203, el escritor de grupo 201 regresa del comando de congelación (es decir, informa al coordinador 110 que ha completado el procesamiento en respuesta al comando de congelación). El coordinador 110 entonces procede con el comando de descarga y mantenimiento y el comando de compromiso, como se describió anteriormente, resultando en que el proveedor de almacenamiento 113 cree una toma de pantalla del volumen 104a. Esta toma de pantalla es consistente con la aplicación para todas las aplicaciones en el grupo que utilizan volumen 104a debido a que cada aplicación persistió sus datos al volumen 104a antes que se cree la toma de pantalla.
La Figura 3 ilustra otro grupo 300. El grupo 300 es un grupo simplificado (es decir, un subgrupo de los componentes mostrados en el grupo 200) que se indicaron por describir mejor el procedimiento de respaldo empleado por la presente invención para crear tomas de pantalla consistentes con la aplicación extendida en grupo. Los siguientes pasos numerados corresponden con las flechas numeradas en la Figura 3. (1) La aplicación de respaldo 314 solicita que el coordinador 310 inicie la creación de una toma de pantalla de volumen 304a utilizando proveedor de almacenamiento 313. (2) El coordinador 310 envía un comando de congelación al escritor 311a y el escritor de grupo 351. El escritor 311a procesa el comando de congelación y regresa en algún punto. (3) El escritor de grupo 351 notifica al servicio de grupo 361 del comando de congelación en el nodo 301 y lo bloquea. (4) El servicio de grupo 361 notifica al servicio de grupo 362 del comando de congelación. (5) El servicio de grupo 362 solicita que el coordinador 320 inicie la creación de una toma de pantalla de volumen 304a utilizando un proveedor auxiliar 323. (6) El coordinador 320 envía un comando de congelación al escritor 321a y al escritor de grupo 352. El escritor 321a procesa el comando de congelación y regresa en algún punto. El escritor de grupo 352 simplemente regresa del comando de congelación. (7) El coordinador 320 envía un comando de descarga y mantenimiento al volumen 304a. El comando de descarga y mantenimiento se procesa sin enviarse al volumen 304a. (8) El coordinador 320 envía un comando de compromiso al proveedor auxiliar 323. (9) El proveedor auxiliar 323 envía una notificación del comando de compromiso al servicio de grupo 362 y lo bloquea. (10) El servicio de grupo 362 notifica al escritor de grupo 351 del comando de compromiso. (11) El escritor de grupo 351 regresa del comando de congelación. (12) El coordinador 310 envía comando de descarga y mantenimiento al volumen 304a. El volumen 304a procesa el comando de descarga y mantenimiento y regresa. (13) El coordinador 310 envía el comando de compromiso al proveedor de almacenamiento 313. (14) El proveedor de almacenamiento 313 crea una toma de pantalla del volumen 304a.
Regresando de nuevo a la Figura 2, después de que se ha creado la toma de pantalla del volumen 104a, se llevan a cabo varios pasos adicionales para terminar el procedimiento de respaldo. Después de que se crea la toma de pantalla, el coordinador 110 envía un comando post-toma de pantalla al menos a algunos de los escritores (por ejemplo, un escritor de hipervisor y el escritor de grupo) para permitir a los escritores realizar algún procesamiento mínimo en la toma de pantalla creada antes de que se finalice la toma de pantalla (por ejemplo, escrito en cinta). Este procesamiento mínimo generalmente está limitado a las modificaciones en los propios datos de una aplicación (por ejemplo, regresando una transacción parcialmente comprometida).
Cuando el escritor de grupo 201 recibe el comando post-toma de pantalla, el escritor de grupo 201 notifica al servicio de grupo 204 quién entonces envía una notificación del comando post-toma de pantalla a los servicios de grupo 205 y 206. El escritor de grupo 201 entonces se espera hasta que se recibe una respuesta de cada uno de los servicios de grupo 205 y 206 antes de regresar desde el comando post-toma de pantalla. En este sentido, el escritor de grupo 201 maneja el comando post-toma de pantalla en gran parte de la misma forma que maneja el comando de congelación (es decir, mediante bloqueo).
La razón para notificar a los otros nodos del comando posttoma de pantalla es permitir a los escritores en los otros nodos realizar el procesamiento post-toma de pantalla en la toma de pantalla. Debido a que la toma de pantalla real está localizada en el nodo 101, se crea una toma de pantalla v irtual en cada uno de los nodos 102 y 103. La Solicitud de Patente de E.U.A. de propiedad comúnmente cedida No. 12/971,981, presentada el 17 de diciembre, 2010, titulada RESPALDO Y ALMACENAMIENTO DE DATOS DESDE CUALQUIER NODO DE GRUPO, describe como se utilizan tomas de pantalla virtuales para realizar post-procesamiento de toma de pantalla.
Después de recibir la notificación del comando de post-toma de pantalla, los servicios de grupo 205 y 206 entonces notifican a los proveedores ayudantes 223 y 233 respectivamente. Hasta este punto, los proveedores ayudantes 223 y 233 han estado bloqueando el comando de compromiso. La notificación de que el comando post- toma de pantalla s e envió en el nodo 101 indica a los proveedores ayudantes 223 y 233 que pueden regresar desde el comando de compromiso.
Una vez que los proveedores ayudantes 223 y 233 regresan desde el comando de compromiso, cada uno de los coordinadores 120 y 130 envía un comando post-toma de pantalla a al menos algunos de los escritores en el nodo respectivo. De esta forma, a cada escritor en cada nodo se le proporciona la oportunidad de realizar procesamiento adicional en la toma de pantalla creada. Como en el caso del comando de congelación, los escritores de grupo 202 y 203 también reciben el comando post-toma de pantalla y simplemente regresan.
Una vez que cada escritor en los nodos 102 y 103 ha regresado desde el comando post-toma de pantalla, coordinadores 120 y 130 pueden terminar el procedimiento de respaldo (por ejemplo, al enviar una liberación y un comando de descongelación), y entonces notificar a los servicios de grupo 205 y 206 respectivamente que la toma de pantalla está completa. Los servicios de grupo 205 y 206 reciben esta notificación debido a que están actuando como las aplicaciones de respaldo en nodos 102 y 103 (es decir, iniciar en el procedimiento de respaldo). Los servicios de grupo 205 y 206 entonces notifican al escritor de grupo 201 del término del procedimiento de respaldo en los nodos 102 y 103.
Una vez que el escritor de grupo 201 ha recibido la notificación del término del procedimiento de respaldo en cada uno de los otros nodos, el escritor del grupo 201 regresa del comando post-toma de pantalla permitiendo de esa forma al coordinador 110 termina el procedimiento de respaldo en el nodo 101 (por ejemplo, al enviar una liberación y comando de descongelación). El coordinador 110 entonces notifica a la aplicación de respaldo 114 que la toma de pantalla se ha creado exitosamente. La aplicación de respaldo 114 entonces puede ser lo que sea que desee con la toma de pantalla (por ejemplo, copiarla a cinta).
La Figura 4, similar como la Figura 3, ilustra el grupo 300 y por lo tanto se indicará para describir mejor los pasos de realizar postprocesamiento de post-toma de pantalla. Los siguientes pasos numerados pueden realizarse después que se han realizado los pasos 1-13 de la Figura 3. (1) El coordinador 310 envía un comando post-toma de pantalla al escritor 311a y al escritor de grupo 351. El escritor 311a procesa el comando post-toma de pantalla y regresa en algún punto. (2) El escritor de grupo 351 notifica al servicio de grupo 361 del comando post-toma de pantalla y lo bloquea. (3) El servicio de grupo 361 notifica al servicio de grupo 362 del comando de post-toma de pantalla. (4) El servicio de grupo 362 notifica al proveedor de ayudante 323 que el comando post-toma de pantalla se recibió por el escritor de grupo 351 en el nodo 301. (5) El proveedor auxiliar 323 regresa desde el comando de compromiso. (6) El coordinador 320 envía un comando post-toma de pantalla al escritor 321a y el escritor de grupo 352. El escritor 321a procesa el comando de post-toma de pantalla y regresa en algún punto. El escritor de grupo 352 simplemente regresa. (7) Una vez que cada escritor ha regresado del comando post-toma de pantalla, el coordinador 320 notifica el servicio de grupo 362 (quién solicitó el respaldo en el nodo 302) que la toma de pantalla está completa. (8) El servicio de grupo 362 notifica al escritor de grupo 351 del término del procedimiento de respaldo en el nodo 302. (9) El escritor de grupo 351 regresa del comando post-toma de pantalla. (10) El coordinador 310 notifica a la aplicación de respaldo 314 que se ha creado exitosamente la toma de pantalla.
Como se puede observar, por este procedimiento de utilizar un escritor de grupo en un nodo para comunicar la ocurrencia de congelación y comandos post-tomas de pantalla a escritores de grupo en otros nodos, los escritores en estos nodos son capaces de persistir los datos de las aplicaciones correspondientes en estos otros nodos. El resultado es que la toma de pantalla creada en un nodo tiene consistencia de aplicación, no solamente para las aplicaciones en el nodo en el cual se inició el respaldo, si no para todas las aplicaciones, en cualquier nodo en el grupo, que utilizan el volumen que se respaldó.
Además, este procedimiento permite que el sistema de respaldo de la técnica previa descrito en la Figura 1 se utilice para crear estas tomas de pantalla consistentes con la aplicación extendida sin grupo sin tener que modificar el flujo de control básico del sistema de respaldo. En otras palabras, los coordinadores en cada nodo no necesitan modificarse para implementar la invención. Los escritores de grupo y proveedores ayudantes oscurecen, de los coordinadores, los pasos adicionales para crear la toma de pantalla consistente con la aplicación extendida en grupo (es decir, para el coordinador, el escritor de grupo parece ser un escritor, y el proveedor auxiliar parece ser un proveedor de almacenamiento).
La Figura 5 muestra un cuadro de flujo de un método ilustrativo 500 para iniciar la creación de una toma de pantalla de un volumen compartido utilizado para aplicaciones en múltiples nodos en un grupo. El método 500 se describirá con respecto al grupo 200 de la Figura 2.
El método 500 incluye un acto 501 de recibir una solicitud, desde una aplicación de respaldo, en un coordinador de respaldo en un primer nodo. La solicitud solicita que se cree una toma de pantalla de un volumen compartido utilizado por al menos una aplicación en el primer nodo y por al menos una aplicación en al menos otro nodo en el grupo. Cada una de al menos una aplicación en el primer nodo y al menos otro nodo incluye un escritor. Cada uno del primer nodo y al menos otro nodo también incluye un servicio de grupo y un escritor de grupo. Por ejemplo, el coordinador 110 puede recibir una solicitud de la aplicación de respaldo 114 que solicita que se cree una toma de pantalla del volumen 104a.
El método 500 incluye un acto 502 para enviar, mediante el coordinador de respaldo, un comando de congelación al escritor de grupo y cada escritor en el primer nodo. El comando de congelación instruye al escritor de grupo y a cada escritor en el primer nodo para persistir datos de aplicación al volumen compartido. Por ejemplo, el coordinador 110 puede enviar un comando de congelación a escritores 111a y 112a así como al escritor de grupo 201.
El método 500 incluye un acto 503 de enviar, mediante el escritor de grupo en el primer nodo, una notificación del comando de congelación al servicio de grupo en el primer nodo. Por ejemplo, el escritor de grupo 201 puede notificar al servicio de grupo 204 del comando de congelación.
El método 500 incluye un acto 504 de enviar, mediante el servicio de grupo en el primer nodo, una notificación del comando de congelación al servicio del grupo en cada uno de al menos otro nodo. La notificación instruye al servicio de grupo en cada uno de al menos otro nodo a iniciar un procedimiento de respaldo del volumen compartido en cada uno de al menos otro nodo. Por ejemplo, el servicio del grupo 204 puede enviar una notificación a servicios de grupo 205 y 206.
El método 500 incluye un acto 505 de esperar, mediante el escritor de grupo en el primer nodo, una notificación del servicio de grupo en cada uno de al menos otro nodo antes de regresar desde el comando de congelación. La notificación indica que cada escritor en el nodo correspondiente ha persistido datos de aplicación correspondientes al volumen compartido. Por ejemplo, el escritor de grupo 201 puede bloquear el comando de congelación hasta que el servicio de grupo 205 y el servicio de grupo 206 notifican al escritor de grupo 201 que los escritores 121a y 122a, y escritores 131a y 132a respectivamente han persistido sus datos de aplicación correspondientes al volumen 104a.
El método 500 incluye un acto 506 de, al recibir la notificación desde el servicio de grupo en cada uno de al menos otro nodo, regresar, mediante el escritor de grupo en el primer nodo, desde el comando de congelación. Por ejemplo, el escritor de grupo 201 puede regresar desde el comando de congelación al recibir la notificación de servicios de grupo 205 y 206.
El método 500 incluye un acto 507 de, cuando el escritor de grupo en el primer nodo regresa desde el comando de congelación, enviar, mediante el coordinador de respaldo, una solicitud al proveedor de almacenamiento. La solicitud hace que el proveedor de almacenamiento cree una toma de pantalla del volumen compartido, la toma de pantalla tiene consistencia de aplicación a cada aplicación en el primer nodo y el por lo menos otro nodo que utiliza el volumen compartido. Por ejemplo, el coordinador 110 puede solicitar que el proveedor de almacenamiento 113 cree una toma de pantalla del volumen 104a.
La Figura 6 muestra un cuadro de flujo de un método ilustrativo 600 para responder a una notificación de que se ha iniciado la creación de una toma de pantalla de un volumen compartido en otro nodo del grupo. El método 600 se describirá con respecto al grupo 200 de la Figura 2.
El método 600 incluye un acto 601 de recibir una notificación, en un servicio de grupo en el primer nodo, que un procedimiento de respaldo de un volumen compartido se ha iniciado en un segundo nodo en el grupo. El volumen compartido se utiliza por al menos una aplicación en cada uno del primer y segundo nodos. La notificación se recibe desde un servicio de grupo en el segundo nodo e indica que se recibió un comando de congelación por un escritor de grupo en el segundo nodo. Por ejemplo, el servicio de grupo 205 puede recibir una notificación desde el servicio de grupo 204 que indica que el escritor de grupo 201 recibió un comando de congelación, de un procedimiento de respaldo, desde el coordinador 110.
El método 600 incluye un acto 602 de enviar, mediante el servicio de grupo en el primer nodo, una solicitud a un coordinador de respaldo en el primer nodo. La solicitud solicita que se cree una toma de pantalla del volumen compartido. Por ejemplo, el servicio de grupo 205 puede enviar una solicitud al coordinador 120 para solicitar que se cree una toma de pantalla del volumen 104a en el nodo 102.
El método 600 incluye un acto 603 de enviar, mediante el coordinador de respaldo, un comando de congelación a un escritor de grupo y un escritor de al menos una aplicación en el primer nodo. El comando de congelación instruye al escritor de grupo y al menos a un escritor para persistir datos de aplicación al volumen compartido. Por ejemplo, el coordinador 120 puede enviar un comando de congelación a los escritores 121a y 122a así como al escritor de grupo 202.
El método 600 incluye un acto 604 de, después que el escritor de grupo y al menos un escritor regresan al comando de congelación, enviar, mediante el coordinador de respaldo, un comando de compromiso a un proveedor auxiliar en el primer nodo. Por ejemplo, el coordinador 120 puede enviar un comando de compromiso al proveedor auxiliar 223.
El método 600 incluye un acto 605 de enviar, mediante el proveedor auxiliar en el primer nodo, una notificación del comando de compromiso al servicio de grupo en el primer nodo. El proveedor auxiliar bloquea el comando de compromiso. Por ejemplo, el proveedor auxiliar 223 puede notificar al servicio de grupo 205 del comando de compromiso y luego bloquearlo.
El método 600 incluye un acto 606 de enviar, mediante el servicio de grupo en el primer nodo, una notificación al escritor de grupo en el segundo nodo de que el comando de compromiso se ha recibido indicando de esa forma que cada escritor en el primer nodo ha persistido los datos de la aplicación correspondiente al volumen compartido. Por ejemplo, el servicio de grupo 205 puede enviar una notificación al escritor de grupo 201 indicando que los escritores 121a y 122a han persistido sus datos de aplicación al volumen 104a.
La presente invención puede representarse en otras formas específicas sin apartarse de su espíritu o características esenciales. Las modalidades descritas se van a considerar en todos los aspectos únicamente como ilustrativas y no restrictivas. El alcance de la invención, por lo tanto se indica por las reivindicaciones anexas en lugar de por la descripción anterior. Todos los cambios que vienen dentro del significado y alcance de equivalencia de las reivindicaciones se van a abarcar dentro de su alcance.

Claims (15)

REIVINDICACIONES
1.- En un primer nodo de un grupo, el primer nodo incluye una aplicación de respaldo, un coordinador de respaldo, al menos una aplicación, un proveedor de almacenamiento, un servicio de grupo, y un escritor de grupo, y un método para crear una toma de pantalla de un volumen compartido que tiene consistencia de aplicación para aplicaciones en más de un nodo del grupo que utilizan el volumen compartido, el método comprende: recibir una solicitud, desde una aplicación de respaldo, en un coordinador de respaldo en un primer nodo, la solicitud solicita que se cree una toma de pantalla de un volumen compartido utilizado por al menos una aplicación en el primer nodo y por al menos una aplicación en al menos otro nodo en el grupo, cada una de al menos una aplicación en el primer nodo y en el por lo menos otro nodo incluye un escritor, y en donde cada uno del primer nodo y al menos otro nodo también incluye un escritor de grupo y un servicio de grupo; enviar, mediante el coordinador de respaldo, un comando de congelación al escritor de grupo y cada escritor en el primer nodo, el comando de congelación instruye al escritor de grupo y a cada escritor en el primer nodo a persistir datos de aplicación al volumen compartido; enviar, mediante el escritor de grupo en el primer nodo, una notificación del comando de congelación al servicio de grupo en el primer nodo; enviar, mediante el servicio de grupo en el primer nodo, una notificación del comando de congelación al servicio de grupo en cada uno de al menos otro nodo, la notificación instruye al servicio de grupo en cada uno de al menos otro nodo a iniciar un procedimiento de respaldo del volumen compartido en cada uno de al menos otro nodo; esperar, por el escritor de grupo del primer nodo, una notificación del servicio de grupo en cada uno de al menos otro nodo antes de regresar desde el comando de congelación, la notificación indica que cada escritor en el nodo correspondiente ha persistido datos de aplicación correspondientes al volumen compartido; después de recibir la notificación del servicio de grupo en cada uno de al menos otro nodo, regresar, mediante el escritor de grupo en el primer nodo, desde el comando de congelación; y cuando el escritor de grupo en el primer nodo regresa desde el comando de congelación, enviar, mediante el coordinador de respaldo, una solicitud al proveedor de almacenamiento, la solicitud haciendo que el proveedor de almacenamiento cree una toma de pantalla del volumen compartido, la toma de pantalla teniendo consistencia de aplicación para cada aplicación en el primer nodo y el por lo menos otro nodo que utiliza el volumen compartido.
2.- El método de acuerdo con la reivindicación 1, que además comprende: antes de enviar la solicitud al proveedor de almacenamiento haciendo que el proveedor de almacenamiento cree una toma de pantalla del volumen compartido, enviar, mediante el coordinador de respaldo, un comando de descarga y mantenimiento al volumen compartido causando de esa forma que el volumen compartido persista metadatos de sistema de archivo
3.- El método de acuerdo con la reivindicación 1, que además comprende: después que se crea la toma de pantalla, enviar, mediante el coordinador de respaldo, un comando post-toma de pantalla al escritor de grupo y al menos uno de los escritores en el primer nodo; y enviar, mediante el escritor de grupo en el primer nodo, una notificación del comando post-toma de pantalla al servicio de grupo en el primer nodo; y enviar, mediante el servicio de grupo en el primer nodo, una notificación del comando post-toma de pantalla al servicio de grupo en cada uno de al menos otro nodo.
A.- El método de acuerdo con la reivindicación 3, en donde por lo menos uno de los escritores en el primer nodo al que se envió el comando post-toma de pantalla comprende un escritor de una aplicación de hipervisor.
5.- El método de acuerdo con la reivindicación 3, que además comprende: esperar, mediante el escritor de grupo en el primer nodo, una notificación del servicio de grupo en cada uno de al menos otro nodo, la notificación indicando que se ha completado el procedimiento de respaldo en cada uno del por lo menos otro nodo; y recibir, mediante el escritor de grupo en el primer nodo, la notificación de que se ha completado el procedimiento de respaldo desde el servicio de grupo en cada uno de al menos otro nodo.
6. - El método de acuerdo con la reivindicación 5, que además comprende: después de recibir la notificación de que se ha completado e I procedimiento de respaldo desde el servicio de grupo en cada uno de al menos otro nodo, regresar, mediante el escritor de grupo en el primer nodo, desde el comando post-toma de pantalla.
7. - El método de acuerdo con la reivindicación 6, que además comprende: después que el escritor de grupo y el por lo menos un escritor en el primer nodo regresan desde el comando post-toma de pantalla, el coordinador de respaldo notifica la aplicación de respaldo que se ha completado exitosamente la toma de pantalla.
8. - En un nodo de un grupo, el nodo incluye un coordinador de respaldo, al menos una aplicación, un proveedor auxiliar, un servicio de grupo, y un escritor de grupo, un método para responder a la notificación que un procedimiento de respaldo de un volumen compartido se ha iniciado en otro nodo del grupo, el método comprende: recibir una notificación, en un servicio de grupo en el primer nodo, que un procedimiento de respaldo de un volumen compartido se ha iniciado en un segundo nodo en el grupo, el volumen compartido siendo utilizado por al menos una aplicación en cada uno del primer y segundo nodos, la notificación se recibe desde un servicio de grupo en el segundo nodo e indica que se recibió un comando de congelación por un escritor de grupo en el segundo nodo; enviar, mediante el servicio de grupo en el primer nodo, una solicitud a un coordinador de respaldo en el primer nodo, la solicitud solicitando que se cree una toma de pantalla del volumen compartido; enviar, mediante el coordinador de respaldo, un comando de congelación a un escritor de grupo y un escritor de al menos una aplicación en el primer nodo, el comando de congelación instruye al escritor de grupo y al menos a un escritor para persistir datos de aplicación al volumen compartido; después que el escritor de grupo y al menos un escritor regresan desde el comando de congelación, enviar, mediante el coordinador de respaldo, un comando de compromiso a un proveedor auxiliar en el primer nodo; enviar, mediante el proveedor auxiliar en el primer nodo, una notificación del comando de compromiso al servicio de grupo en el primer nodo, en donde el proveedor auxiliar bloquea el comando de compromiso; y enviar, mediante el servicio de grupo en el primer nodo, una notificación al escritor de grupo en el segundo nodo de que el comando de compromiso se ha recibido indicando de esa forma que cada escritor en el primer nodo ha persistido los datos de la aplicación correspondiente al volumen compartido.
9. - El método de acuerdo con la reivindicación 8, en donde la solicitud enviada por el servicio de grupo en el primer nodo que se creó una toma de pantalla en el volumen compartido especifica que el escritor auxiliar no se va a utilizar para crear la toma de pantalla.
10. - El método de acuerdo con la reivindicación 8, que además comprende: recibir, mediante el servicio de grupo en el primer nodo, una notificación desde el servicio de grupo en el segundo nodo que un comando post-toma de pantalla se ha recibido por el escritor de grupo en el segundo nodo.
11. - El método de acuerdo con la reivindicación 10, que además comprende: enviar, mediante el servicio de grupo en el primer nodo, notificación al proveedor auxiliar que el comando post-toma de pantalla se recibió por el escritor de grupo en el segundo nodo.
12. - El método de acuerdo con la reivindicación 11, que además comprende: regresar, mediante el proveedor auxiliar, desde el comando de compromiso.
13. - El método de acuerdo con la reivindicación 12, que además comprende: recibir, mediante el escritor de grupo y al menos un escritor de grupo, un comando post-toma de pantalla; y realizar, mediante al menos un escritor, post-procesamiento en una toma de pantalla virtual.
14. - El método de acuerdo con la reivindicación 13, que además comprende: después que el escritor de grupo y el por lo menos un escritor en el primer nodo regresan desde el comando post-toma de pantalla, el coordinador de respaldo notifica al servicio de grupo en el primer nodo que la toma de pantalla se ha creado exitosamente en el primer nodo; y en respuesta a la notificación, el servicio de grupo en el primer nodo notifica al escritor de grupo en el segundo nodo que la toma de pantalla se completó exitosamente en el primer nodo indicando de esa forma al escritor de grupo en el segundo nodo que cada uno de al menos un escritor procesó el comando post-toma de pantalla en el primer nodo.
15. - El método de acuerdo con la reivindicación 14, que además comprende: el escritor de grupo en el primer nodo eliminando la toma de pantalla virtual en el primer nodo.
MX2014007678A 2011-12-21 2012-12-12 Tomas de pantalla consistentes con aplicacion de un volumen compartido. MX343276B (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/333,722 US8516210B2 (en) 2011-12-21 2011-12-21 Application consistent snapshots of a shared volume
PCT/US2012/069029 WO2013096022A1 (en) 2011-12-21 2012-12-12 Application consistent snapshots of a shared volume

Publications (2)

Publication Number Publication Date
MX2014007678A true MX2014007678A (es) 2014-07-30
MX343276B MX343276B (es) 2016-10-31

Family

ID=48495925

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2014007678A MX343276B (es) 2011-12-21 2012-12-12 Tomas de pantalla consistentes con aplicacion de un volumen compartido.

Country Status (13)

Country Link
US (1) US8516210B2 (es)
EP (1) EP2795476B1 (es)
JP (1) JP6238309B2 (es)
KR (1) KR102006513B1 (es)
CN (1) CN103136073B (es)
AU (1) AU2012355673B2 (es)
BR (1) BR112014014791B1 (es)
CA (1) CA2858981A1 (es)
ES (1) ES2602143T3 (es)
IN (1) IN2014CN04219A (es)
MX (1) MX343276B (es)
RU (1) RU2606052C2 (es)
WO (1) WO2013096022A1 (es)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201887B1 (en) * 2012-03-30 2015-12-01 Emc Corporation Cluster file server proxy server for backup and recovery
US20140075170A1 (en) * 2012-09-12 2014-03-13 International Business Machines Corporation Automated firmware voting to enable multi-enclosure federated systems
US9740563B2 (en) * 2013-05-24 2017-08-22 International Business Machines Corporation Controlling software processes that are subject to communications restrictions by freezing and thawing a computational process in a virtual machine from writing data
US9430649B2 (en) * 2013-12-17 2016-08-30 Microsoft Technology Licensing, Llc Automatic strong identity generation for cluster nodes
US10936545B1 (en) * 2013-12-20 2021-03-02 EMC IP Holding Company LLC Automatic detection and backup of primary database instance in database cluster
US9411811B2 (en) 2014-01-06 2016-08-09 International Business Machines Corporation Coordinated point-in-time snapshots of multiple computing platforms
US9639428B1 (en) * 2014-03-28 2017-05-02 EMC IP Holding Company LLC Optimized backup of clusters with multiple proxy servers
US9411628B2 (en) * 2014-11-13 2016-08-09 Microsoft Technology Licensing, Llc Virtual machine cluster backup in a multi-node environment
US9778994B1 (en) * 2015-06-26 2017-10-03 EMC IP Holding Company LLC Parallel node backup for CSV
US10133617B2 (en) 2016-07-01 2018-11-20 Hewlett Packard Enterprise Development Lp Failure notifications in multi-node clusters
US10664357B1 (en) * 2016-12-20 2020-05-26 EMC IP Holding Company LLC Single agent backup for cloud networks
US10860427B1 (en) * 2016-12-23 2020-12-08 EMC IP Holding Company LLC Data protection in a large-scale cluster environment
CN110704249A (zh) * 2016-12-30 2020-01-17 成都华为技术有限公司 一种保证应用一致性的方法、装置及系统
CN110058962B (zh) * 2018-01-18 2023-05-23 伊姆西Ip控股有限责任公司 确定虚拟机快照的一致性级别的方法、设备和计算机程序产品
US10705927B2 (en) * 2018-07-19 2020-07-07 Hewlett Packard Enterprise Development Lp Freeze a volume of a replication set and unfreeze the volume based on at least one of a snapshot permit message, a snapshot abort message, and expiration of a timeout
US11442893B2 (en) 2018-08-29 2022-09-13 Red Hat, Inc. Database-aware snapshotting
US11461121B2 (en) 2019-07-26 2022-10-04 Red Hat, Inc. Guest-driven virtual machine snapshots
CN111209343B (zh) * 2020-01-22 2022-02-22 腾讯科技(深圳)有限公司 节点数据同步方法、装置、设备以及存储介质
US20220057947A1 (en) * 2020-08-20 2022-02-24 Portworx, Inc. Application aware provisioning for distributed systems
KR20230034005A (ko) 2021-09-02 2023-03-09 주식회사 나눔기술 엣지 클라우드 컴퓨팅 환경에서 멀티 클러스터 스냅샷 생성 및 복구 장치
US20230273742A1 (en) * 2022-02-28 2023-08-31 Nebulon, Inc. Recovery of clustered storage systems

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5857208A (en) 1996-05-31 1999-01-05 Emc Corporation Method and apparatus for performing point in time backup operation in a computer system
US6014669A (en) * 1997-10-01 2000-01-11 Sun Microsystems, Inc. Highly-available distributed cluster configuration database
US6154852A (en) 1998-06-10 2000-11-28 International Business Machines Corporation Method and apparatus for data backup and recovery
US6952741B1 (en) 1999-06-30 2005-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
US6708227B1 (en) 2000-04-24 2004-03-16 Microsoft Corporation Method and system for providing common coordination and administration of multiple snapshot providers
US7231461B2 (en) 2001-09-14 2007-06-12 International Business Machines Corporation Synchronization of group state data when rejoining a member to a primary-backup group in a clustered computer system
US7117324B2 (en) 2002-10-18 2006-10-03 International Business Machines Corporation Simultaneous data backup in a computer system
US6993603B2 (en) * 2002-12-09 2006-01-31 Microsoft Corporation Managed file system filter model and architecture
US20060206677A1 (en) 2003-07-03 2006-09-14 Electronics And Telecommunications Research Institute System and method of an efficient snapshot for shared large storage
US20050097179A1 (en) * 2003-09-16 2005-05-05 Orme Gregory M. Spam prevention
GB0410540D0 (en) * 2004-05-12 2004-06-16 Ibm Write set boundary management for heterogeneous storage controllers in support of asynchronous update of secondary storage
US7475296B2 (en) * 2004-05-20 2009-01-06 International Business Machines Corporation Serviceability and test infrastructure for distributed systems
US7660879B2 (en) * 2004-05-20 2010-02-09 Ananthan Bala Srinivasan System and method for application deployment service
JP4325524B2 (ja) * 2004-09-29 2009-09-02 日本電気株式会社 スイッチ装置とシステム並びにバックアップ及びリストア方法とプログラム
US7779295B1 (en) * 2005-06-28 2010-08-17 Symantec Operating Corporation Method and apparatus for creating and using persistent images of distributed shared memory segments and in-memory checkpoints
US7685459B1 (en) 2006-04-13 2010-03-23 Symantec Operating Corporation Parallel backup
US7441092B2 (en) 2006-04-20 2008-10-21 Microsoft Corporation Multi-client cluster-based backup and restore
JP4902289B2 (ja) * 2006-07-31 2012-03-21 株式会社日立製作所 バックアップシステム及びバックアップ方法
US7587565B1 (en) * 2006-09-28 2009-09-08 Emc Corporation Generating automated and scheduled SAN copy sessions for ISB protocol systems
US7992036B2 (en) * 2007-01-22 2011-08-02 International Business Machines Corporation Apparatus, system, and method for volume-level restoration of cluster server data
US8307154B2 (en) * 2009-03-03 2012-11-06 Kove Corporation System and method for performing rapid data snapshots
US20110082832A1 (en) 2009-10-05 2011-04-07 Ramkumar Vadali Parallelized backup and restore process and system
US20110252208A1 (en) 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
JP5541149B2 (ja) * 2010-12-27 2014-07-09 富士通株式会社 スナップショット採取プログラム、サーバおよびスナップショット採取方法

Also Published As

Publication number Publication date
MX343276B (es) 2016-10-31
EP2795476A1 (en) 2014-10-29
AU2012355673A1 (en) 2014-07-10
RU2014125081A (ru) 2015-12-27
RU2606052C2 (ru) 2017-01-10
CA2858981A1 (en) 2013-06-27
EP2795476B1 (en) 2016-08-10
JP2015506507A (ja) 2015-03-02
ES2602143T3 (es) 2017-02-17
EP2795476A4 (en) 2015-06-24
JP6238309B2 (ja) 2017-11-29
WO2013096022A1 (en) 2013-06-27
KR20140106588A (ko) 2014-09-03
IN2014CN04219A (es) 2015-07-17
BR112014014791A2 (pt) 2017-06-13
AU2012355673B2 (en) 2017-09-07
CN103136073B (zh) 2015-11-25
KR102006513B1 (ko) 2019-08-01
CN103136073A (zh) 2013-06-05
US20130166863A1 (en) 2013-06-27
US8516210B2 (en) 2013-08-20
BR112014014791B1 (pt) 2022-02-15

Similar Documents

Publication Publication Date Title
MX2014007678A (es) Tomas de pantalla consistentes con aplicacion de un volumen compartido.
US11349915B2 (en) Distributed replication and deduplication of an object from a source site to a destination site
CN107111533B (zh) 虚拟机集群备份
US10114706B1 (en) Backup and recovery of raw disks [RDM] in virtual environment using snapshot technology
US20200125410A1 (en) Dynamic allocation of worker nodes for distributed replication
US20190243547A1 (en) Distributed object replication architecture
CN111078147B (zh) 一种缓存数据的处理方法、装置、设备及存储介质
US10445186B1 (en) Associating a guest application within a virtual machine to create dependencies in backup/restore policy
EP3234772B1 (en) Efficiently providing virtual machine reference points
CN107257957B (zh) 至次级应用的应用高速缓存复制
US10572350B1 (en) System and method for improved application consistency in a distributed environment
CN107408078B (zh) 应用高速缓存热度的自动恢复
US11119685B2 (en) System and method for accelerated data access
EP3825865A2 (en) Method and apparatus for processing data
WO2020060620A1 (en) Storage segment server covered cache
US11275601B2 (en) System and method for auto recovery of deleted virtual machines identified through comparison of virtual machine management application snapshots and having corresponding backups at a storage device
US8738873B2 (en) Interfacing with a point-in-time copy service architecture
US20190215363A1 (en) Dynamic pool-based tiering for synchronization storage
US10831621B2 (en) Policy-driven high availability standby servers
US10346422B2 (en) Use of proxy objects for integration between a content management system and a case management system
US20150248352A1 (en) Methods and systems for optimization of storage performance across multiple compute devices
CN113761075A (zh) 切换数据库的方法、装置、设备和计算机可读介质
US20140059538A1 (en) Virtual machine state tracking using object based storage
US11630584B2 (en) Storage management system and method
US11892914B2 (en) System and method for an application container prioritization during a restoration

Legal Events

Date Code Title Description
GB Transfer or rights

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC

FG Grant or registration