BR112015019280B1 - Método para recuperar dados específicos de aplicativo e sistema - Google Patents

Método para recuperar dados específicos de aplicativo e sistema Download PDF

Info

Publication number
BR112015019280B1
BR112015019280B1 BR112015019280-7A BR112015019280A BR112015019280B1 BR 112015019280 B1 BR112015019280 B1 BR 112015019280B1 BR 112015019280 A BR112015019280 A BR 112015019280A BR 112015019280 B1 BR112015019280 B1 BR 112015019280B1
Authority
BR
Brazil
Prior art keywords
application
specific data
data container
read
recovery
Prior art date
Application number
BR112015019280-7A
Other languages
English (en)
Other versions
BR112015019280A2 (pt
Inventor
Andrea D'Amato
Vinod R. Shankar
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
Publication of BR112015019280A2 publication Critical patent/BR112015019280A2/pt
Publication of BR112015019280B1 publication Critical patent/BR112015019280B1/pt

Links

Images

Classifications

    • 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/1458Management of the backup or restore process
    • 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/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/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
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/825Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking
    • 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

Abstract

MÉTODO, PRODUTO DE PROGRAMA DE COMPUTADOR E SISTEMA PARA RECUPERAR DADOS ESPECÍFICOS DE APLICATIVO. A invenção refere-se à recuperação pretendida de dados específicos de aplicativo correspondendo a um aplicativo sem executar recuperação de todo o volume. A recuperação é iniciada por começar a copiar o estado anterior do conteúdo de um container de dados específico do aplicativo a partir de um instantâneo anterior do container de dados específico do aplicativo em um volume de operação acessível pelo aplicativo. Entretanto, enquanto o conteúdo do container de dados específico do aplicativo ainda está sendo copiado a partir do registro instantâneo do container de dados específico do aplicativo, ainda é permitido que o aplicativo execute operações de leitura e escrita em relação ao container de dados específico do aplicativo. Assim, o container de dados específico do aplicativo parece para o aplicativo como sendo totalmente acessível mesmo que, no entanto, a recuperação do conteúdo do container de dados específico do aplicativo ainda esteja continuando em segundo plano.

Description

ANTECEDENTES
[0001] Computadores e sistemas de computação têm afetado quase todos os aspectos da vida moderna. Os computadores geralmente estão envolvidos em trabalho, recreação, cuidados com a saúde, transporte, entretenimento, gerenciamento de eletrodomésticos, etc. A funcionalidade do computador tipicamente é o resultado de sistemas de computação executando código de software. O computador utiliza um volume para armazenar o código de software, e também para armazenar dados.
[0002] Ocasionalmente, o volume pode se tornar corrompido, ou o próprio volume pode ser danificado. Em qualquer caso, o volume se torna inutilizável. De modo a se preparar para tal evento de falha, um sistema de computação pode causar que instantâneos periódicos do volume sejam obtidos. Se ocorrer um evento de falha, o volume pode ser substituído se danificado, e um módulo de recuperação pode facilitar a recuperação do volume por copiar de volta o último instantâneo válido para o volume. Assim, independente da falha do volume, o volume é retornado para um estado anterior, permitindo que a funcionalidade do computador retorne.
SUMÁRIO
[0003] De acordo com pelo menos uma concretização descrita neste documento, a recuperação pretendida de dados específicos do aplicativo correspondendo a um aplicativo é descrita. Como um exemplo, o aplicativo pode ser uma máquina virtual, enquanto os dados específicos do aplicativo podem ser uma unidade de disco rígido virtual que corresponde à máquina virtual. A recuperação dos dados específicos do aplicativo é executada sem execução da recuperação de todo o volume.
[0004] A recuperação é iniciada por começar a cópia do estado anterior do conteúdo de um container de dados específicos do aplicativo a partir de um instantâneo anterior para container de dados específicos do aplicativo em um volume de operação acessível pelo aplicativo. Entretanto, apesar de o conteúdo do container de dados específicos do aplicativo ainda estar sendo copiado a partir do instantâneo para o container de dados específicos do aplicativo, ainda é permitido que o aplicativo execute operações de leitura e gravação em relação ao container de dados específicos do aplicativo. Assim, o container de dados específicos do aplicativo parece para o aplicativo como sendo totalmente acessível, mesmo que, no entanto, a recuperação do conteúdo do container de dados específicos do aplicativo ainda esteja continuando em segundo plano.
[0005] Este Sumário não é pretendido para identificar aspectos chave ou aspectos essenciais do assunto reivindicado, nem é pretendido para ser utilizado como um auxílio ao determinar o escopo do assunto reivindicado.
BREVE DESCRIÇÃO DOS DESENHOS
[0006] De modo a descrever a maneira na qual as vantagens aci ma e outras vantagens e aspectos podem ser obtidos, uma descrição mais particular de várias concretizações serão apresentada por referência aos desenhos anexos. Entendendo que estes desenhos representam somente concretizações ilustrativas e, portanto, não são para ser considerados como sendo limitativos do escopo da invenção, as concretizações serão descritas e explicadas com especificidade e detalhes adicionais através do uso dos desenhos acompanhantes, nos quais:
[0007] A Figura 1 de forma abstrata ilustra um sistema e computa ção no qual algumas concretizações descritas neste documento po- dem ser empregadas;
[0008] A Figura 2 esquematicamente ilustra um sistema ilustrativo no qual a recuperação pretendida de um aplicativo pode ocorrer sem recuperação de todo o sistema de acordo com os princípios descritos neste documento;
[0009] A Figura 3 ilustra um fluxograma de um método para recu perar dados específicos do aplicativo correspondendo a um aplicativo;
[00010] A Figura 4 ilustra um fluxograma de um método para executar uma operação de leitura enquanto uma operação de recuperação ainda está em andamento; e
[00011] A Figura 5 ilustra um fluxograma de um método para executar uma operação de gravação enquanto uma operação de recuperação ainda está em andamento.
DESCRIÇÃO DETALHADA
[00012] De acordo com concretizações descritas neste documento, é descrita a recuperação pretendida de dados específicos do aplicativo correspondendo a um aplicativo sem executar recuperação de todo o volume. A recuperação é iniciada por começar a copiar o estado anterior do conteúdo e um container de dados específicos do aplicativo a partir e um instantâneo anterior para o container de dados específicos do aplicativo em um volume de operação acessível pelo aplicativo. Entretanto, apesar de o conteúdo do container de dados específicos do aplicativo ainda estar sendo copiado a partir do instantâneo para o container de dados específicos do aplicativo, é permitido que o aplicativo ainda execute operações de leitura e gravação em relação ao container de dados específicos do aplicativo utilizando os princípios adici-onalmente descritos abaixo. Assim, o container de dados específicos do aplicativo parece para o aplicativo como sendo totalmente acessível mesmo que, no entanto, a recuperação do conteúdo do container de dados específicos do aplicativo ainda esteja continuando em segundo plano.
[00013] Alguma discussão introdutória de um sistema de computação será descrita com respeito à Figura 1. Então, a recuperação pretendida será descrita na ordem proporcionada acima com respeito às Figuras 2 até 5.
[00014] Atualmente, os sistemas de computação estão crescentemente assumindo uma ampla variedade de formas. Por exemplo, os sistemas de computação podem ser dispositivos portáteis, aparelhos elétricos, computadores laptop, computadores de mesa, computadores de grande porte, sistema de computação distribuída, ou mesmo dispositivos que não eram considerados convencionalmente um sistema de computação. Nesta descrição, o termo "sistema de computação" é definido amplamente como incluindo qualquer dispositivo ou sistema (ou combinação dos mesmos) que inclua pelo menos um processador físico e tangível, e uma memória física e tangível capaz de ter na mesma instruções executáveis por computador que podem ser executadas pelo processador. A memória pode assumir várias formas e pode depender da natureza e da forma do sistema de computação. Um sistema de computação pode ser distribuído através de um ambiente em rede e pode incluir vários sistemas de computador constituintes.
[00015] Como ilustrado na Figura 1, em sua configuração mais básica, um sistema de computação 100 inclui pelo menos uma unidade de processamento 102 e um meio legível por computador 104. O meio legível por computador 104 pode conceitualmente ser pensado como incluindo memória física do sistema, a qual pode ser volátil, não volátil, ou alguma combinação das duas. O meio legível por computador 104 também conceitualmente inclui armazenamento em massa não volátil. Se o sistema de computação for distribuído, a capacidade de processamento, de memória e/ou de armazenamento pode ser igualmente distribuída.
[00016] Como utilizado neste documento, o termo "módulo executável" ou "componente executável " pode se referir a objetos de software, roteamentos, ou métodos que podem ser executados no sistema de computação. Os diferentes componentes, módulos, mecanismos e serviços descritos neste documento podem ser implementados como objetos ou processos que executam no sistema de computação (por exemplo, como encadeamentos separados). Tais módulos executáveis podem ser código gerenciado no caso de serem executados em um ambiente gerenciado no qual a segurança de tipo é imposta, e no qual processos são alocados em seus próprios objetos de memória distintos. Tais módulos executáveis também podem ser não gerenciados no caso de módulos executáveis sendo escritos em código nativo tais como C ou C++.
[00017] Na descrição a seguir, são descritas concretizações com referência a atos que são executados por um ou mais sistemas de computação. Se tais atos forem implementados em software, um ou mais processadores do sistema de computação associado que executa o ato direcionam a operação do sistema de computação em resposta a ter instruções executáveis por computador executadas. Por exemplo, tais instruções executáveis por computador podem ser incorporadas em um ou mais meios legíveis por computador que formam um produto de programa de computador. Um exemplo de tal operação envolve a manipulação de dados. As instruções executáveis por computador (e os dados manipulados) podem ser armazenadas na memória 104 do sistema de computação 100. O sistema de computação 100 também pode conter canais de comunicação 108 que permitem ao sistema de computação 100 se comunicar com outros processadores através, por exemplo, da rede 110.
[00018] Concretizações descritas neste documento podem compreender ou utilizar um computador de propósito especial ou de propósito geral incluindo hardware de computador, tal como, por exemplo, um ou mais processadores e memória do sistema, como discutido em maiores detalhes abaixo. Concretizações descritas neste documento também incluem meio físico e outros meios legíveis por computador para transportar ou armazenar instruções e/ou estruturas de dados executáveis por computador. Tais meios legíveis por computador podem ser qualquer meio disponível que possa ser acessado por um sistema de computador de propósito geral ou de propósito especial. Meios legíveis por computador que armazenam instruções executáveis por computador são meios físicos de armazenamento. Os meios legíveis por computador que transportar instruções executáveis por computador são meios de transmissão. Assim, a título de exemplo e não de limitação, concretizações da invenção podem compreender pelo menos dois tipos distintamente diferentes de meio legível por computador: meios de armazenamento do computador e meios de transmissão.
[00019] O meio de armazenamento do computador inclui RAM, ROM, EEPROM, CD-ROM ou outro armazenamento em disco ótico, armazenamento em disco magnético ou outros dispositivos de armazenamento magnético, ou qualquer outro meio de armazenamento tangível que possa ser utilizado para armazenar meios de código de programa desejados na forma de instruções ou de estruturas de dados executáveis por computador e que possa ser acessado por um computador de propósito geral ou de propósito especial.
[00020] Uma "rede" é definida como uma ou mais ligações de dados que permitem o transporte de dados eletrônicos entre sistemas e/ou módulos de computador e/ou outros dispositivos eletrônicos. Quando informação é transferida ou proporcionada através de uma rede ou de outra conexão e comunicações (seja fisicamente ligada, sem uso de fios, ou uma combinação de fisicamente ligada ou sem uso de fios) para um computador, o computador apropriadamente vê a conexão como um meio de transmissão. Os meios de transmissão podem incluir uma rede e/ou ligações de dados que podem ser utilizadas para transportar meio de código de programa desejado na forma de instruções ou de estruturas de dados executáveis por computador e que possam ser acessados por um computador de propósito geral ou de propósito especial. Combinações do dito acima também devem estar incluídas dentro do escopo de meio legível por computador.
[00021] Adicionalmente, ao alcançar vários componentes do sistema de computador, os meios de código de programa na forma de instruções ou de estruturas de dados executáveis por computador podem ser transferidos automaticamente a partir do meio de transmissão para o meio de armazenamento do computador (ou vice-versa). Por exemplo, instruções ou estruturas de dados executáveis por computador recebidas através de uma rede ou ligação de dados podem ser colocadas em memória temporária na RAM dentro de um controlador de interface de rede (por exemplo, um "NIC"), e então eventualmente transferidas para a RAM do sistema de computador e/ou para meio de armazenamento do computador menos volátil em um sistema e computador. Assim, deve ser entendido que o meio de armazenamento do computador pode ser incluído nos componentes do sistema de computador que também (ou mesmo principalmente) utilizam o meio de transmissão.
[00022] Instruções executáveis por computador compreendem, por exemplo, instruções e dados que, quando executados em um processador, causam que um computador de propósito geral, computador de propósito especial, ou dispositivo de processamento de propósito especial execute alguma função ou grupo de funções. As instruções executáveis por computador podem ser, por exemplo, binários, instruções em formato intermediário tias como linguagem assembly, ou mesmo código fonte. Apesar de o assunto ter sido descrito em lingua gem específica para aspectos estruturais e/ou atos metodológicos, é para ser entendido que o assunto definido nas concretizações não está necessariamente limitado aos aspectos ou atos descritos acima. Ao invés disso, os aspectos e atos descritos são revelados como formas ilustrativas para implementar as concretizações.
[00023] Os versados na técnica irão apreciar que a invenção pode ser praticada em ambientes de computação em rede com vários tipos de configurações de sistema de computador, incluindo computadores pessoais, computadores de mesa, computadores laptop, processadores de mensagem, dispositivos portáteis, sistemas multiprocessador, eletroeletrônicos baseados em microprocessador ou programáveis, PCs de rede, minicomputadores, computadores de grande porte, telefones celulares, PDAs, pagers, roteadores, comutadores, dentre outros. A invenção também pode ser praticada em ambientes de sistema distribuído onde sistemas de computador, locais e remotos, os quais estão ligados (seja por ligações físicas de dados, ligações de dados sem uso de fios, ou por uma combinação de ligações de dados com uso de fios e sem uso de fios) através de uma rede, ambos executam tarefas. Em um ambiente de sistema distribuído, os módulos de programa podem estar localizados tanto em dispositivos de armazenamento em memória locais como remotos.
[00024] A Figura 2 esquematicamente ilustra um sistema ilustrativo 200 no qual a recuperação pretendida de um aplicativo pode ocorrer sem recuperação de todo o sistema de acordo com os princípios descritos neste documento. O sistema 200 inclui um volume operacional 210 acessível para vários aplicativos 201, de modo que os aplicativos 201 podem ler e gravar a partir do volume operacional 210. Por exemplo, os aplicativos 201 são ilustrados como incluindo quatro aplicativos 201A, 201B, 201C e 201D, apesar de as elipses 201E representarem que os princípios descritos neste documento não estão limi- tados de forma alguma a um sistema que opera um número particular de aplicativos. O sistema 200 pode operar um único aplicativo 201A ou talvez centenas de aplicativos, todos os quais compartilham o volume operacional 210. Um "volume" é um espaço para nome único que é reconhecido pelo sistema de arquivos como incluindo endereços lógicos e físicos contíguos.
[00025] O volume operacional 210 armazena um container de dados específicos do aplicativo 211A, apesar de o volume operacional 210 poder armazenar quantidades volumosas de dados diferentes do container de dados específicos do aplicativo como representado pelas elipses 211B. O container de dados específicos do aplicativo 211A é associado com o aplicativo 201A como representado pela linha 212. O container de dados específicos do aplicativo 211A pode ser, por exemplo, um arquivo específico do aplicativo.
[00026] Em um exemplo, cada um dos aplicativos 201 pode ser máquina virtual. Neste caso, o aplicativo 201A pode ser uma máquina virtual, e o container de dados específicos do aplicativo 211A pode ser uma unidade de disco rígido virtual associada com o aplicativo 201A. Neste caso, o sistema 200 pode ser uma parte de um sistema de computação hospedeiro que hospeda várias máquinas virtuais. O sistema de computação hospedeiro pode possuir vários volumes, apesar de somente o um volume 210 ser ilustrado na Figura 2.
[00027] Os princípios descritos neste documento permitem a recuperação conveniente de um container de dados específicos do aplicativo sem recuperação de todo o volume no qual o container de dados específicos do aplicativo está armazenado. Por exemplo, na Figura 2, o container de dados específicos do aplicativo 211A pode ser recuperado sem recuperação de todo o volume 210. Isto é útil pelo fato de que algumas vezes o container de dados específicos do aplicativo 211A pode se tornar corrompido ou não confiável, enquanto o próprio volume 210 permanece não corrompido como um todo. Adicionalmente, a recuperação de todo o volume pode demorar muito mais do que a recuperação de apenas uma parte do volume.
[00028] De forma significativa, o sistema 200 adicionalmente opera de modo que o aplicativo 201A possa continuar a operar em relação ao container de dados específicos do aplicativo 211A enquanto a recuperação do container de dados específicos do aplicativo 211A está ocorrendo em segundo plano. Assim, a partir da perspectiva do aplicativo 201A, a recuperação acontece rapidamente, e talvez, de uma quantidade de tempo imperceptível, apesar de a recuperação realmente ocorrer em segundo plano através de um período de tempo muito mais longo.
[00029] De modo a facilitar esta recuperação pretendida e rápida, o sistema 200 inclui vários módulos executáveis incluindo um módulo de gerenciamento 221, um módulo de instantâneo 222, e um módulo de recuperação 223. Cada um destes módulos será adicionalmente descrito abaixo.
[00030] Cada um dos módulos 221 até 223 pode ser instanciado e/ou operado por um sistema de computação (tal como o sistema de computação 100) em resposta aos processadores (por exemplo, processador (processadores) 102) do sistema de computação executando uma ou mais instruções executáveis por computador armazenadas em um meio de armazenamento legível por computador compreendendo um produto de programa de computador. Apesar de atos específicos serem descritos como estando associados com os módulos 221 e 223, tais atos não precisam ser executados pelos módulos específicos descritos.
[00031] De modo a se preparar para uma possível necessidade de recuperação, o módulo de instantâneo 222 tira um instantâneo pelo menos do container de dados específicos do aplicativo 211A, mas tal- vez de um segmento maior do volume 210 ou mesmo talvez de todo o volume 210 como um todo. Estes instantâneos podem ser periódicos e/ou em resposta a eventos particulares. Em qualquer caso, a Figura 2 ilustra um exemplo no qual o módulo de instantâneo tirou três instantâneos 231A, 231B e 231C do container de dados específicos do aplicativo 211A e proporcionou os instantâneos 231A, 231B e 231C em um volume instantâneo 230 como representado pela seta com várias pontas 241. Neste exemplo, o instantâneo 231A é o instantâneo mais antigo, o instantâneo 231B é o segundo instantâneo tirado, e o instantâneo 231C é o instantâneo mais recente do container de dados específicos do aplicativo 211A.
[00032] O módulo de gerenciamento 221 determina se e quando o container de dados específicos do aplicativo é para ser sujeito à recuperação a partir de um instantâneo dentro do volume instantâneo 230. Em resposta, o módulo de recuperação 223 executa a recuperação do container de dados específicos do aplicativo 211A a partir do instantâneo 231C no volume instantâneo 230 para popular novamente o conteúdo do container de dados específicos do aplicativo 221A como representado pela seta 242. Apesar de o container de dados específicos do aplicativo 211A poder momentaneamente não estar disponível para o aplicativo 201A enquanto a recuperação é iniciada, imediatamente após a recuperação ser iniciada, o módulo de gerenciamento 221 pode permitir que o aplicativo 201A execute operações de leitura e gravação em relação ao container de dados específicos do aplicativo 211A.
[00033] A Figura 3 ilustra um fluxograma de um método 300 para recuperar dados específicos do aplicativo correspondendo a um aplicativo. À medida que o método 300 pode ser executado dentro do sistema 200 da Figura 2, o método 300 agora será descrito com respeito à Figura 2.
[00034] O método 300 é iniciado quando da determinação de que um container de dados específicos do aplicativo particular de um aplicativo é para ser sujeito à recuperação a partir de um instantâneo (ato 301). Por exemplo, se referindo à Figura 2, o módulo de gerenciamento 221 determina que o container específico do aplicativo 211A do aplicativo 201A é para ser sujeito à recuperação a partir do instantâneo 231C.
[00035] Em resposta, o método temporariamente torna o container de dados específicos do aplicativo indisponível para o aplicativo, por exemplo, por fechar o container de dados específicos do aplicativo (ato 302). Por exemplo, na Figura 2, o componente de gerenciamento 221 pode fechar o container de dados específicos do aplicativo 211A. O container de dados específicos do aplicativo 211A irá permanecer fechado por apenas um breve tempo comparado com a duração total da operação de recuperação. Adicionalmente, o container de dados específicos do aplicativo 211A fica fechado sem fechamento do volume operacional 210, assim mantendo o volume operacional 210 disponível para pelo menos outros aplicativos (por exemplo, aplicativo 201B) enquanto o container de dados específicos do aplicativo 211A está fe-chado.
[00036] A operação de recuperação é então iniciada (ato 303). Por exemplo, no caso da Figura 2, o módulo de recuperação 223 inicia a recuperação por começar a copiar um estado anterior do conteúdo do container de dados específicos do aplicativo 201A a partir de um instantâneo anterior 231C como representado pela seta 242. O módulo de recuperação 223 irá continuar a copiar a partir do instantâneo anterior 231C uma região do container de dados específicos do aplicativo 201A em um tempo. Antes de recuperar uma região, o módulo de recuperação 223 irá obter um bloqueio de intervalo para esta região.
[00037] Uma vez que a operação de recuperação é iniciada, o container de dados específicos do aplicativo é aberto (ato 305) desse mo- do permitindo que o aplicativo execute operações de leitura e gravação em relação ao container de dados específicos do aplicativo, contanto que não existam bloqueios de intervalo mantidos pelo módulo de recuperação em relação à região que contém a localização de memória sendo lida ou gravada. O container de dados específicos do aplicativo é aberto mesmo que, no entanto, a operações de recuperação continue (ato 304), e, na verdade, pode ter somente começado momentos antes. Assim, referindo-se à Figura 2, o módulo de recuperação 223 continua a recuperação em segundo plano (como representado pela seta 242), enquanto o módulo de gerenciamento 221 continua a permitir que o aplicativo 201A execute operações de leitura e gravação em relação ao container de dados específicos do aplicativo 211A.
[00038] Apesar de a recuperação ainda estar em processo (ato 304), o módulo de gerenciamento 221 opera para responder às solicitações de leitura e gravação a partir do aplicativo 201A de uma maneira que as solicitações de leitura e gravação sejam consideradas consistentes com a recuperação como descrito neste documento.
[00039] Por exemplo, ao detectar que o aplicativo 201A emite uma solicitação de leitura para uma região de endereço de conteúdo a partir do container de dados específico do aplicativo ("Sim" no bloco de decisão 311), o módulo de gerenciamento 221 causa que a recuperação momentaneamente pare para esta região de endereço (ato 312) de modo que se a recuperação ficar próxima desta região de endereço, ou mesmo alcance esta região de endereço, a recuperação pausa. A operação de leitura é executada (ato 313), e depois disso, a recuperação para esta região de endereço é reiniciada de modo que se a recuperação estivesse se aproximando ou chegasse à região, a recuperação não pausaria (ato 314). Como um exemplo, a operação de leitu-ra pode ser executada da maneira ilustrada e descrita com respeito à Figura 4. Os atos 312 até 314 podem ser executados cada vez que o aplicativo 201A emite uma solicitação de leitura para o container de dados específicos do aplicativo 211A.
[00040] Ao detectar que o aplicativo 201A emite uma solicitação de gravação para uma região de endereço do container de dados específicos do aplicativo ("Sim" no bloco de decisão 321), o módulo de gerenciamento 221 novamente causa que a recuperação momentaneamente pause para esta região de endereço (ato 322) de modo que se a recuperação se aproximar muito desta região de endereço ou mesmo alcance esta região de endereço, a recuperação pausa. A operação de gravação é executada (ato 323) e depois disso, a recuperação reinicia de modo que se a recuperação estivesse se aproximando ou chegasse à região, a recuperação não iria pausar (ato 324). Como um exemplo, a operação de gravação pode ser executada da maneira ilustrada e descrita com respeito à Figura 5. O atos 312 até 314 podem ser executados cada vez que o aplicativo 201A emite uma solicitação de leitura para o container de dados específicos do aplicativo 211A.
[00041] A Figura 4 ilustra um método 400 para responder a uma solicitação de leitura enquanto a operação de recuperação ainda está em processo. O método 400 pode ser executado de modo a executar a operação de leitura do ato 313 na Figura 3. Assim, o método 400 pode ser iniciado após o ato 312 na Figura 3.
[00042] O método 400 determina se a região de endereço correspondendo à solicitação de leitura já está restaurada para o container de dados específicos do aplicativo no volume operacional (bloco de decisão 401). Isto pode ser realizado pelo módulo de recuperação 223 consultando uma condição de progresso da recuperação 251. Por exemplo, se o módulo de recuperação 223 copiar o conteúdo do instantâneo 231C sequencialmente, a condição de progresso da recuperação 251 pode representar um ponto alto representando o endereço mais alto recuperado dentro do container de dados específicos do aplicativo. Em adição, isto pode ser realizado pelo módulo de recuperação 223 consultando um indicador já gravado 252 que a região de endereço do container de dados específicos do aplicativo foi gravada desde o começo da recuperação. Por exemplo, a região de endereço pode ter sido gravada em resposta à execução do método 500 ou em resposta ao ato 406 na Figura 4 adicionalmente descrito abaixo, mesmo que, no entanto, a região de endereço ainda não tenha sido alcançada através da recuperação normal executada pelo ato 304.
[00043] Se a região de endereço para a solicitação de leitura já estiver restaurada para o container de dados específicos do aplicativo ("Sim" no bloco de decisão 401), o conteúdo da região de endereço é lido a partir do container de dados específicos do aplicativo no volume operacional (ato 402) e é assim feito disponível para o aplicativo 201A em resposta à solicitação de leitura (ato 403). Se a região de endereço para a solicitação de leitura ainda não estiver restaurada para o container de dados específicos do aplicativo ("Não" no bloco de decisão 401), ao invés disso o conteúdo é lido a partir da parte correspon-dente do instantâneo (ato 404), e o conteúdo é proporcionado para o aplicativo (ato 403) apesar de o conteúdo lido também ser opcionalmente proporcionado para o container de dados específicos do aplicativo (ato 405). Adicionalmente, a indicação de já gravado é opcionalmente atualizada (ato 406) para refletir que uma gravação ocorreu para a região de endereço do container de dados específicos do aplicativo desde que a recuperação começou. Uma vez que a operação de leitura completa, o método 400 retorna para o ato 314 da Figura 3, onde a operação de recuperação reinicia. O método 400 pode ser repetido várias vezes para cada solicitação de leitura recebida durante o processo de recuperação. Uma vez que o processo de recuperação complete (ato 306), operações de leitura podem continuar normalmente, sem intervenção do módulo de gerenciamento 221.
[00044] A Figura 5 ilustra um método 500 para responder a uma solicitação de gravação enquanto a operação de recuperação ainda está em processo. O método 500 pode ser executado de modo a executar a operação de gravação do ato 323 na Figura 3. Assim, o método 500 pode ser iniciado após o ato 322 na Figura 3.
[00045] O método 500 executa a operação de gravação por gravar o conteúdo associado da solicitação de gravação é gravado na região de endereço do container de dados específicos do aplicativo no volume de operação (ato 501). O método 500 também determina se a região de endereço correspondendo à solicitação de gravação já está restaurada para o container de dados específicos do aplicativo no volume operacional (bloco de decisão 502). Isto novamente pode ser realizado pelo módulo de recuperação 223 consultando uma condição de progresso da recuperação 251. Em adição, isto pode ser realizado pelo módulo de recuperação 223 consultando uma indicação de já gravado 252 que a região de endereço do container de dados específicos do aplicativo gravou desde o começo da recuperação. Por exemplo, a região de endereço pode ter sido gravada em resposta a uma execução anterior do método 500 ou em resposta ao ato 406 na Figura 4, mesmo que, no entanto, a região de endereço ainda não tenha sido alcançada através da recuperação normal executada pelo ato 304.
[00046] Se a região de endereço para a solicitação de gravação já estiver restaurada para o container de dados específicos do aplicativo ("Sim" no bloco de decisão 502), isto completa a operação de gravação, desse modo retornando para o ato 324 na Figura 3 para reiniciar a operação de restauração. Se a região de endereço para a solicitação de gravação ainda não tiver sido restaurada para o container de dados específicos do aplicativo ("Não" no bloco de decisão 502), o indicador de já gravado 252 é atualizado para refletir que a região de endereço foi gravada desde que a operação de recuperação começou (ato 503). Depois disso, novamente, desse modo retornando para o ato 324 na Figura 3 para reiniciar a operação de restauração. O método 500 pode ser repetido várias vezes para cada solicitação de gravação recebida durante o processo de recuperação. Uma vez que o processo de recuperação seja completado (ato 306), operações de gravação podem continuar como normais, sem intervenção do módulo de gerenciamento 221.
[00047] A partir da perspectiva do módulo de recuperação, o módulo de recuperação 223 determina que um container de dados específicos do aplicativo particular de um aplicativo é para ser sujeito à recuperação a partir de um instantâneo. Por exemplo, o módulo de recuperação 223 pode ter recebido uma instrução para recuperação a partir do módulo de gerenciamento 221 em resposta ao módulo de gerenciamento 221 executar o ato 301 na Figura 3. Em resposta, o módulo de recuperação inicia a recuperação.
[00048] O módulo de recuperação continua a recuperação por copiar conteúdo a partir do instantâneo para o container de dados específicos do aplicativo uma parte por vez, o que é análogo ao ato 304 da Figura 3. O módulo de recuperação não responde às instruções para pausa e reinicia a recuperação em resposta aos atos 312, 314, 322 e 324, mas, de outro modo, simplesmente continua a recuperação. Independente de tais pausas momentâneas, a operação de recuperação ainda pode ser dita como estando continuando como apresentado no ato 304. O módulo de recuperação também rastreia pelo menos uma região de endereço correspondendo a uma solicitação de gravação que é feita em relação ao container específico do aplicativo no volume operacional separado da recuperação. Por exemplo, isto pode ser realizado utilizando o indicador de já gravado 252 na Figura 2. Quando copiando uma parte por vez a partir do instantâneo, o módulo de recuperação salta a cópia para quaisquer endereços que já tenham sido gravados como indicado dentro do indicador 252. Isto impede a recuperação de gravar por cima de dados mais recentes criados por permitir que o aplicativo 201A continua o processamento durante a recuperação.
[00050] Uma implementação ilustrativa de como a contenção de colisão pode ser facilitada será agora descrita, primeiro a partir da perspectiva da operação de leitura / gravação, e então, a partir da perspectiva da recuperação.
[00051] Quando o aplicativo emite uma solicitação de leitura ou gravação, o sistema obtém um bloqueio de intervalo para a região endereçada pela solicitação de leitura ou gravação. Se a recuperação estiver trabalhando no mesmo intervalo, então esta operação de leitura / gravação ficará pendente para ser reiniciada posteriormente. Em segundo lugar, um ponto alto da recuperação (um exemplo da condição de progresso da recuperação 252) é avaliado, junto com um mapa de sujeira (um exemplo do indicador de já gravado 252) ser avaliado, para determinar a ação apropriada como descrito acima. Por exemplo, para uma operação de leitura, é determinado se lê a partir do container de dados (ato 402), ou se lê a partir do instantâneo (ato 403). Para uma operação de gravação, é determinado se o mapa de sujeira precisa ser atualizado para refletir uma gravação (ato 503). A operação de E/S apropriada então é executada, e então, o bloqueio de intervalo é liberado para a região. Se uma recuperação ficar pendente para esta região, então a recuperação é reiniciada para a região.
[00052] A contenção de colisão a partir da perspectiva da recuperação ocorre um intervalo de endereços por vez. Para cada região a ser recuperada, o processo de recuperação obtém um bloqueio de intervalo para a região a ser recuperada. Se uma operação de leitura / gravação já tiver um bloqueio de intervalo em relação a esta região, a re- cuperação em relação à região fica pendente até ser reiniciada posteriormente em relação à conclusão da leitura / gravação. Uma vez que a recuperação esteja apta a obter o bloqueio de intervalo em relação a esta região, a recuperação é executada baseada no mapa de sujeira. Por exemplo, a recuperação irá saltar a cópia do instantâneo para todos estes endereços que estão marcados já tendo sido gravados no mapa de sujeira. Uma vez que a região seja recuperada, o processo de recuperação liberar o bloqueio de intervalo. Isto permite que qualquer solicitação de leitura / gravação pendente seja completado em relação a este intervalo.
[00053] Assim, os princípios descritos neste documento proporcionam um mecanismo eficaz e eficiente para recuperação pretendida de um container de dados específicos do aplicativo sem requerer recuperação de todo o volume, e também enquanto permitindo ao aplicativo continuar a operação em relação ao container de dados específicos do aplicativo que está em processo de ser recuperado.
[00054] As concretizações descritas são para ser consideradas em todos os aspectos somente como ilustrativas e não como restritivas. Todas as alterações que surjam dentro do significado e da faixa de equivalência das concretizações são para ser abrangidas dentro e seu escopo.

Claims (6)

1. Método para recuperar dados específicos de aplicativo correspondendo a um aplicativo, o método caracterizado pelo fato de que compreende as etapas de: determinar (301) que um container de dados específicos do aplicativo (211A) de um aplicativo é para ser sujeito à recuperação a partir de um instantâneo (231); em resposta ao ato de determinar (301), iniciar (303) recuperação de um estado anterior do conteúdo do container de dados específicos do aplicativo (211A) a partir de um instantâneo (231) anterior por começar a cópia de uma versão anterior do conteúdo a partir do instantâneo (231) para o container de dados específicos do aplicativo (211A) em um volume de operação acessível pelo aplicativo, sendo que um bloqueio de intervalo é efetuado para uma região do container de dados específicos do aplicativo (211A) antes que tal região seja recuperada; enquanto o conteúdo do container de dados específicos do aplicativo (211A) ainda está sendo copiado a partir do instantâneo (231) para o container de dados específicos do aplicativo (211A), permitir (305) ao aplicativo executar operações de leitura e gravação em relação ao container de dados específicos do aplicativo (211A), sendo que, se um bloqueio de intervalo tiver sido efetuado para uma região a ser recuperada e a referida região contiver o local da memória que está sendo lido ou gravado, as operações de leitura e gravação respectivas estão pendentes para serem retomadas posteriormente; e adicionalmente compreendendo: após o ato de permitir (305) ao aplicativo executar operações de leitura e gravação em relação ao container específico do aplicativo, mas antes da recuperação estar completa, um ato de detectar que o aplicativo emitiu uma solicitação de leitura (311) para uma regi- ão de endereço do container de dados específicos do aplicativo (211A), ou que o aplicativo emitiu uma solicitação de gravação (321) para uma região de endereço do contêiner de dados específico do aplicativo, em que, quando uma solicitação de leitura ou gravação é emitida, um bloqueio de intervalo é efetuado para a região de endereço endereçada pela solicitação de leitura ou gravação; após o ato de detectar, pausar (312, 322) a recuperação para a região de endereço; executar (313, 323) a operação de leitura ou de gravação, respectivamente; após o ato de executar (313, 323) a operação de leitura ou de gravação, liberar o bloqueio de faixa para a região de endereço endereçada pela solicitação de leitura ou gravação; e retomar (314, 324) a recuperação da região de endereço; e depois que a região for recuperada, liberar o bloqueio de intervalo para a região.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que adicionalmente compreende o seguinte em resposta à solicitação de leitura: determinar (401) que a região de endereço correspondendo à solicitação de leitura já está restaurada para o container de dados específicos do aplicativo (211A) no volume operacional; e em resposta ao ato de determinar (401) que a região de endereço correspondendo à solicitação de leitura já está restaurada, ler (402) o conteúdo da região de endereço a partir do container de dados específicos do aplicativo (211A) no volume operacional.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que adicionalmente compreende o seguinte em resposta à solicitação de leitura: determinar (401) que a região de endereço correspondendo à solicitação de leitura ainda não foi restaurada para o container de dados específicos do aplicativo (211A) no volume operacional; em resposta ao ato de determinar (401) que a região de endereço correspondendo à solicitação de leitura ainda não foi restaurada, ler (404) o conteúdo a partir do instantâneo (231); e proporcionar (403) o conteúdo lido para o aplicativo.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que adicionalmente compreende: após o ato de determinar que o container de dados específicos do aplicativo (211A) de um aplicativo é para ser sujeito à recuperação a partir de um instantâneo (231) e antes do ato de iniciar a recuperação, fechar o container de dados específicos do aplicativo (211A) de modo a não ficar acessível para o aplicativo.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o aplicativo compreende uma máquina virtual.
6. Sistema no qual recuperação pretendida de um aplicativo pode ocorrer sem recuperação de todo o sistema, o sistema caracterizado pelo fato de que compreende: um volume operacional (210) acessível para vários aplicativos (201), o volume operacional (210) incluindo um container de dados específicos do aplicativo (211A) correspondendo a um aplicativo particular (201A) da pluralidade de aplicativos (201); um módulo de instantâneo (222) configurado para tirar ins-tantâneos (231) de pelo menos do container específico do aplicativo; um módulo de gerenciamento (221) configurado para determinar que o container de dados específicos do aplicativo (211A) é para ser sujeito à recuperação a partir de um instantâneo (231) obtido pelo módulo de instantâneo (222); e um módulo de recuperação (223) configurado para executar a recuperação do container de dados específicos do aplicativo (211A) quando determinado pelo módulo de gerenciamento (221), começando a copiar uma versão anterior do conteúdo a partir do instantâneo (231) para o contêiner de dados específico do aplicativo (211A), em que um bloqueio de intervalo é efetuado para uma região do contêiner de dados específico do aplicativo (211A) que está sendo recuperada, em que o módulo de gerenciamento (221) permite ao aplicativo (201) executar operações de leitura e gravação em relação ao container de dados específicos do aplicativo (211A) enquanto o módulo de recuperação (223) está executando a recuperação, sendo que, se um bloqueio de intervalo tiver sido efetuado para uma região a ser recuperada, e a referida região contém a memória local da qual está sendo lido ou gravado, as respectivas operações de leitura e gravação estão pendentes para serem retomadas posteriormente, em que, após permitir ao aplicativo (201) executar operações de leitura e gravação, mas antes da recuperação estar completa, o módulo de gerenciamento (221), ao detectar que o aplicativo (201) emitiu uma solicitação de leitura (311) para uma região de endereço de conteúdo a partir do container de dados específicos do aplicativo (211A), ou ao detectar que o aplicativo (201) emite uma solicitação de gravação para uma região de endereço do contêiner de dados específico do aplicativo (211A), faz com que a recuperação pause para a referida região de endereço, em que, quando uma solicitação de leitura ou gravação é emitida, um bloqueio de intervalo é realizado para a região de endereço endereçada pelo solicitação de leitura ou gravação; e em que, após a realização da referida operação de leitura ou gravação, o bloqueio de intervalo para a referida região de endereço endereçada pela solicitação de leitura ou gravação é liberado e a recuperação é retomada para a referida região de endereço, e depois que a região é recuperada, o bloqueio de intervalo para essa região é liberado.
BR112015019280-7A 2013-03-14 2014-03-11 Método para recuperar dados específicos de aplicativo e sistema BR112015019280B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/829,204 US9430333B2 (en) 2013-03-14 2013-03-14 Recovery of application from snapshot
US13/829,204 2013-03-14
PCT/US2014/023072 WO2014159334A1 (en) 2013-03-14 2014-03-11 Recovery of application from snapshot

Publications (2)

Publication Number Publication Date
BR112015019280A2 BR112015019280A2 (pt) 2017-07-18
BR112015019280B1 true BR112015019280B1 (pt) 2022-05-10

Family

ID=50513440

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112015019280-7A BR112015019280B1 (pt) 2013-03-14 2014-03-11 Método para recuperar dados específicos de aplicativo e sistema

Country Status (7)

Country Link
US (1) US9430333B2 (pt)
EP (1) EP2972874B1 (pt)
JP (1) JP6431521B2 (pt)
CN (1) CN105144113B (pt)
BR (1) BR112015019280B1 (pt)
RU (1) RU2665307C2 (pt)
WO (1) WO2014159334A1 (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US11243707B2 (en) 2014-03-12 2022-02-08 Nutanix, Inc. Method and system for implementing virtual machine images
US9424140B1 (en) * 2014-08-20 2016-08-23 Amazon Technologies, Inc. Providing data volume recovery access in a distributed data store to multiple recovery agents
EP3251006A4 (en) * 2015-01-30 2018-08-29 Hewlett-Packard Development Company, L.P. Backup image restore
US10613947B2 (en) * 2016-06-09 2020-04-07 Nutanix, Inc. Saving and restoring storage devices using application-consistent snapshots
CN110704249A (zh) * 2016-12-30 2020-01-17 成都华为技术有限公司 一种保证应用一致性的方法、装置及系统
US10409988B2 (en) 2017-01-20 2019-09-10 Hewlett Packard Enterprise Development Lp Escalated remediation
US10331528B2 (en) 2017-03-02 2019-06-25 Hewlett Packard Enterprise Development Lp Recovery services for computing systems
US10824522B2 (en) 2017-11-27 2020-11-03 Nutanix, Inc. Method, apparatus, and computer program product for generating consistent snapshots without quiescing applications
US10929249B2 (en) 2018-06-29 2021-02-23 International Business Machines Corporation Optimized data corruption source and timeline analysis
US10929248B2 (en) 2018-06-29 2021-02-23 International Business Machines Corporation Data corruption source and timeline analysis
US11182363B2 (en) 2018-06-29 2021-11-23 International Business Machines Corporation Data validation in copy repositories
US10795780B2 (en) 2018-06-29 2020-10-06 International Business Machines Corporation Data breach source and timeline analysis
CN109298973A (zh) * 2018-09-28 2019-02-01 联想(北京)有限公司 一种信息恢复方法和电子设备
US11016854B2 (en) 2018-11-28 2021-05-25 International Business Machines Corporation Efficient container based application recovery
US20220188194A1 (en) * 2020-12-10 2022-06-16 Coupang Corp. Cloud-based database backup and recovery

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5313626A (en) * 1991-12-17 1994-05-17 Jones Craig S Disk drive array with efficient background rebuilding
US5822584A (en) * 1995-10-13 1998-10-13 Compaq Computer Corporation User selectable priority for disk array background operations
US6185699B1 (en) * 1998-01-05 2001-02-06 International Business Machines Corporation Method and apparatus providing system availability during DBMS restart recovery
US6397351B1 (en) * 1998-09-28 2002-05-28 International Business Machines Corporation Method and apparatus for rapid data restoration including on-demand output of sorted logged changes
US6834386B1 (en) * 1999-07-16 2004-12-21 Microsoft Corporation Method and system for regulating background tasks using performance measurements
WO2001025920A1 (en) * 1999-10-05 2001-04-12 Ejasent, Inc. Virtual resource id mapping
US6434681B1 (en) 1999-12-02 2002-08-13 Emc Corporation Snapshot copy facility for a data storage system permitting continued host read/write access
US6647514B1 (en) * 2000-03-23 2003-11-11 Hewlett-Packard Development Company, L.P. Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request
US6957362B2 (en) 2002-08-06 2005-10-18 Emc Corporation Instantaneous restoration of a production copy from a snapshot copy in a data storage system
US7139931B2 (en) * 2002-08-19 2006-11-21 Aristos Logic Corporation Method of controlling the system performance and reliability impact of hard disk drive rebuild
JP4311532B2 (ja) * 2003-03-12 2009-08-12 株式会社日立製作所 記憶システム及び同システムにおけるスナップショット管理方法
US7234077B2 (en) * 2003-06-24 2007-06-19 International Business Machines Corporation Rapid restoration of file system usage in very large file systems
US7529782B2 (en) * 2003-11-13 2009-05-05 Commvault Systems, Inc. System and method for performing a snapshot and for restoring data
US7461100B2 (en) 2004-05-27 2008-12-02 International Business Machines Corporation Method for fast reverse restore
US7409510B2 (en) 2004-05-27 2008-08-05 International Business Machines Corporation Instant virtual copy to a primary mirroring portion of data
RU2406118C2 (ru) * 2004-09-22 2010-12-10 Майкрософт Корпорейшн Способ и система для синтетического резервного копирования и восстановления данных
US8959299B2 (en) * 2004-11-15 2015-02-17 Commvault Systems, Inc. Using a snapshot as a data source
US7475282B2 (en) * 2004-12-28 2009-01-06 Acronis Inc. System and method for rapid restoration of server from back up
US20060161808A1 (en) 2005-01-18 2006-07-20 Burkey Todd R Method, apparatus and program storage device for providing intelligent copying for faster virtual disk mirroring
US7822758B1 (en) 2005-04-22 2010-10-26 Network Appliance, Inc. Method and apparatus for restoring a data set
EP1907935B1 (en) * 2005-06-24 2011-01-26 Syncsort Incorporated System and method for virtualizing backup images
US7398365B1 (en) 2005-07-13 2008-07-08 Symantec Corporation Restoring data with reduced suspension-of-access periods
US7788521B1 (en) * 2005-07-20 2010-08-31 Bakbone Software, Inc. Method and system for virtual on-demand recovery for real-time, continuous data protection
US7426618B2 (en) * 2005-09-06 2008-09-16 Dot Hill Systems Corp. Snapshot restore method and apparatus
JP4809040B2 (ja) * 2005-11-08 2011-11-02 株式会社日立製作所 ストレージ装置及びスナップショットのリストア方法
US7774565B2 (en) * 2005-12-21 2010-08-10 Emc Israel Development Center, Ltd. Methods and apparatus for point in time data access and recovery
US7467268B2 (en) * 2006-04-14 2008-12-16 Hewlett-Packard Development Company, L.P. Concurrent data restore and background copy operations in storage networks
US7650533B1 (en) * 2006-04-20 2010-01-19 Netapp, Inc. Method and system for performing a restoration in a continuous data protection system
US8607009B2 (en) * 2006-07-13 2013-12-10 Microsoft Corporation Concurrent virtual machine snapshots and restore
US9043391B2 (en) * 2007-02-15 2015-05-26 Citrix Systems, Inc. Capturing and restoring session state of a machine without using memory images
US8341459B2 (en) * 2007-08-01 2012-12-25 Brocade Communications Systems, Inc. Data migration without interrupting host access and with data lock for write access requests such that held write access requests do not expire
US9501368B2 (en) * 2008-09-30 2016-11-22 Veritas Technologies Llc Backing up and restoring selected versioned objects from a monolithic database backup
JP5409159B2 (ja) * 2009-07-23 2014-02-05 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
US9015129B2 (en) * 2010-02-09 2015-04-21 Veeam Software Ag Cross-platform object level restoration from image level backups
US8566640B2 (en) 2010-07-19 2013-10-22 Veeam Software Ag Systems, methods, and computer program products for instant recovery of image level backups
US9971656B2 (en) 2010-12-13 2018-05-15 International Business Machines Corporation Instant data restoration
US8819328B2 (en) * 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US8909602B2 (en) * 2011-02-03 2014-12-09 Vmware, Inc. Programmatic snapshot and revert of virtualized data center inventory
US9411687B2 (en) * 2011-06-03 2016-08-09 Apple Inc. Methods and apparatus for interface in multi-phase restore
US8726083B1 (en) * 2011-07-29 2014-05-13 Emc Corporation Synchronized taking of snapshot memory images of virtual machines and storage snapshots
US8898385B2 (en) * 2011-09-09 2014-11-25 Lsi Corporation Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment
CN102331949B (zh) * 2011-10-12 2014-11-05 华为技术有限公司 一种虚拟机内存快照生成和恢复方法、装置及系统
US20150212894A1 (en) * 2014-01-24 2015-07-30 Commvault Systems, Inc. Restoring application data from a single snapshot for multiple applications

Also Published As

Publication number Publication date
JP6431521B2 (ja) 2018-11-28
EP2972874B1 (en) 2018-01-03
US20140281709A1 (en) 2014-09-18
CN105144113A (zh) 2015-12-09
CN105144113B (zh) 2018-02-16
WO2014159334A1 (en) 2014-10-02
EP2972874A1 (en) 2016-01-20
JP2016513845A (ja) 2016-05-16
RU2665307C2 (ru) 2018-08-28
RU2015138967A (ru) 2017-03-16
BR112015019280A2 (pt) 2017-07-18
US9430333B2 (en) 2016-08-30

Similar Documents

Publication Publication Date Title
BR112015019280B1 (pt) Método para recuperar dados específicos de aplicativo e sistema
EP3724764B1 (en) Write-ahead style logging in a persistent memory device
TWI612423B (zh) 持續性記憶體更新技術
JP6026538B2 (ja) 検証されたデータセットの不揮発性媒体ジャーナリング
KR101921365B1 (ko) 비휘발성 매체 더티 영역 추적 기법
US10152416B2 (en) Buffer cache apparatus, journaling file system and journaling method for incorporating journaling features within non-volatile buffer cache
US20190369892A1 (en) Method and Apparatus for Facilitating a Trim Process Using Auxiliary Tables
US20160224588A1 (en) Data integrity and loss resistance in high performance and high capacity storage deduplication
US9836402B1 (en) Guest ordering of host file system writes
TWI506429B (zh) 用於非依電性容錯寫入作業之方法、運算系統及相關電腦程式產品
BR112016007142B1 (pt) Método para recuperar de uma falha de um sistema de computação no qual o conteúdo de uma memória volátil é perdido
US10521148B2 (en) Data storage device backup
BR112014014791B1 (pt) Método executado em um primeiro nó de um grupamento para criar um instantâneo de um volume compartilhado e método executado em um primeiro nó de um grupamento para responder à notificação de que um processo de cópia de segurança de um volume compartilhado foi iniciado em outro nó de grupamento
US20130111103A1 (en) High-speed synchronous writes to persistent storage
Son et al. SSD-assisted backup and recovery for database systems
CN106104515A (zh) 利用非易失性存储器的文件系统设计和故障恢复方法
KR20210047359A (ko) 논리적-물리적 어드레스 변환 맵의 구역 기반 재구성
US9411692B2 (en) Applying write elision
US9959176B2 (en) Failure recovery in shared storage operations
US20170068603A1 (en) Information processing method and information processing apparatus
US20180011650A1 (en) Differentiating open and abandoned transactions in a shared storage environment
US8055853B2 (en) Data storage system and data storage program for atomic transactions
US9235349B2 (en) Data duplication system, data duplication method, and program thereof
Gugnani Designing Scalable Storage Systems for Non-Volatile Memory
WO2017131779A1 (en) Versioning virtual address spaces

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 11/03/2014, OBSERVADAS AS CONDICOES LEGAIS