BR102016012742B1 - Método de armazenamento de dados, método de recuperação de dados, aparelho relacionado, e sistema - Google Patents

Método de armazenamento de dados, método de recuperação de dados, aparelho relacionado, e sistema Download PDF

Info

Publication number
BR102016012742B1
BR102016012742B1 BR102016012742-4A BR102016012742A BR102016012742B1 BR 102016012742 B1 BR102016012742 B1 BR 102016012742B1 BR 102016012742 A BR102016012742 A BR 102016012742A BR 102016012742 B1 BR102016012742 B1 BR 102016012742B1
Authority
BR
Brazil
Prior art keywords
target
storage node
node
blocks
storage
Prior art date
Application number
BR102016012742-4A
Other languages
English (en)
Other versions
BR102016012742B8 (pt
Inventor
Daohui Wang
Feng Zhang
Wei Fan
Zhile Zhang
Yongqiang Zeng
Original Assignee
Huawei Technologies Co., Ltd.
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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority to BR122018006762A priority Critical patent/BR122018006762B8/pt
Publication of BR102016012742B1 publication Critical patent/BR102016012742B1/pt
Publication of BR102016012742B8 publication Critical patent/BR102016012742B8/pt

Links

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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

método de armazenamento de dados, método de recuperação de dados, aparelho relacionado, e sistema. as modalidades da presente invenção revelam um método de armazenamento de dados, usado para aperfeiçoar a consistência de armazenamento de um sistema de armazenamento distribuído. o método nas modalidades da presente invenção inclui: realizar, através de um nó de armazenamento primário, codificação de ec em um segmento de dados a ser armazenado para obter uma faixa de ec alvo; determinar, em um grupo de nó de armazenamento ao qual o nó de armazenamento primário pertence, m+k nós de armazenamento alvo usados para armazenar m+k blocos de ec alvo da faixa de ec alvo; enviar uma mensagem de preparação aos nós de armazenamento alvo; receber uma mensagem de resposta enviada por um nó de armazenamento alvo; e após receber mensagens de resposta de todos os nós de armazenamento alvo, enviar uma mensagem de execução aos nós de armazenamento alvo, para instruir os nós de armazenamento alvo para gravar blocos de ec alvo que estão em arquivos de registro de preparação. as modalidades da presente invenção fornecem adicionalmente um método de recuperação de dados e um aparelho relacionado.

Description

MÉTODO DE ARMAZENAMENTO DE DADOS, MÉTODO DE RECUPERAÇÃO DE DADOS, APARELHO RELACIONADO, E SISTEMA
CAMPO DA TÉCNICA [1] A presente invenção refere-se ao campo de armazenamento de dados e, em particular, a um método de armazenamento de dados, um método de recuperação de dados, um aparelho relacionado, e um sistema.
ANTECEDENTES [2] Atualmente, os sistemas de armazenamento distribuído usam, cada vez mais, uma tecnologia de codificação por apagamento (EC, codificação por Apagamento) para armazenar dados. Um princípio da tecnologia de codificação por apagamento é dividir dados em m blocos de dados, e realizar codificação de paridade nos m blocos de dados com o uso de um algoritmo de redundância, para gerar k blocos de paridade, em que os m blocos de dados e os k blocos de paridade são denominados uma faixa de EC. Um bloco de dados ou um bloco de paridade é também denominado um bloco de EC, e cada faixa de EC é tolerável a uma perda de k blocos de EC.
[3] Para garantir confiabilidade de armazenamento, um sistema de armazenamento distribuído distribui m+k blocos de EC de cada faixa de EC para m+k nós de armazenamento para armazenamento. Desse modo, mesmo se um nó estiver com falha, um bloco de EC armazenado no nó com falha pode ser recuperado de acordo com dados armazenados em outro nó. Pode ser entendido que o sistema de armazenamento distribuído com o uso da tecnologia de EC é tolerável a falhas concomitantes de nós de armazenamento k.
[4] Entretanto, gravar um bloco de EC em um nó de armazenamento exige um período de tempo. Se um nó de armazenamento em m+k nós de armazenamento usados para armazenar uma faixa de EC estiver com falha ao gravar um bloco de EC, um caso em que uma parte dos nós de armazenamento tem um bloco de EC da faixa de EC mas a outra parte dos nós de armazenamento não tem um bloco de EC da faixa de EC ocorre, causando inconsistência de armazenamento da faixa de EC. Portanto, a consistência de armazenamento do sistema de armazenamento distribuído é fraca.
Petição 870160025496, de 03/06/2016, pág. 10/139
2/61
SUMÁRIO [5] As modalidades da presente invenção fornecem um método de recuperação de dados usado para aperfeiçoar a consistência de armazenamento de um sistema de armazenamento distribuído.
[6] Um primeiro aspecto das modalidades da presente invenção fornece um método de armazenamento de dados, aplicado a um sistema de armazenamento distribuído, em que o sistema de armazenamento distribuído armazena dados com o uso de faixas de EC de codificação por apagamento, cada faixa de EC inclui uma parte de dados e uma parte de paridade, a parte de dados de cada faixa de EC inclui m blocos de dados, a parte de paridade de cada faixa de EC inclui k blocos de paridade que são obtidos após a codificação de paridade ser realizada nos m blocos de dados, e os m blocos de dados e os k blocos de paridade constituem blocos de EC de cada faixa de EC; o sistema de armazenamento distribuído inclui múltiplos grupos de nó de armazenamento, cada grupo de nó de armazenamento inclui não menos do que m+k nós de armazenamento, um nó de armazenamento primário é especificado em cada grupo de nó de armazenamento, e nós em cada grupo de nó de armazenamento exceto o nó de armazenamento primário são nós de armazenamento secundários, em que m e k são ambos números inteiros positivos; e o método é executado por um nó de armazenamento primário em qualquer um dos grupos de nó de armazenamento e inclui: receber um segmento de dados a ser armazenado, e realizar codificação de EC no segmento de dados a ser armazenado para obter uma faixa de EC alvo, em que um tamanho do segmento de dados a ser armazenado não é maior do que Z, Z é um tamanho de m blocos de dados, a faixa de EC alvo inclui m+k blocos de EC alvo, e os m+k blocos de EC alvo incluem blocos de dados alvo m e k blocos de paridade alvo;
determinar m+k nós de armazenamento alvo, em que os m+k nós de armazenamento alvo são configurados para armazenar os m+k blocos de EC alvo, e cada nó de armazenamento alvo armazena um dos blocos de EC alvo;
enviar uma mensagem de preparação aos m+k nós de armazenamento alvo separadamente, em que cada mensagem de preparação inclui um bloco de EC alvo a ser armazenado por cada nó de armazenamento
Petição 870160025496, de 03/06/2016, pág. 11/139
3/61 alvo;
receber uma mensagem de resposta enviada por qualquer nó de armazenamento alvo dos m+k nós de armazenamento alvo, em que a mensagem de resposta é usada para indicar que o nó de armazenamento alvo que envia atualmente a mensagem de resposta gerou um arquivo de registro de preparação de acordo com a mensagem de preparação, e o arquivo de registro de preparação inclui um bloco de EC alvo a ser armazenado pelo nó de armazenamento alvo que envia atualmente a mensagem de resposta; e após receber mensagens de resposta de todos os nós de armazenamento alvo nos m+k nós de armazenamento alvo, enviar uma mensagem de execução aos m+k nós de armazenamento alvo, em que a mensagem de execução é usada para instruir os m+k nós de armazenamento alvo a gravarem os blocos de EC alvo incluídos nos arquivos de registro de preparação.
[7] Com referência ao primeiro aspecto das modalidades da presente invenção, em um primeiro modo de implantação do primeiro aspecto das modalidades da presente invenção, a mensagem de preparação inclui adicionalmente um número de versão da faixa de EC alvo;
o arquivo de registro de preparação inclui adicionalmente o número de versão da faixa de EC alvo; e a mensagem de execução é especificamente usada para instruir os m+k nós de armazenamento alvo a gravarem os blocos de EC alvo e o número de versão da faixa de EC alvo que estão nos arquivos de registro de preparação.
[8] Com referência ao primeiro modo de implantação do primeiro aspecto das modalidades da presente invenção, um segundo modo de implantação do primeiro aspecto das modalidades da presente invenção inclui adicionalmente:
se for detectado que um nó de armazenamento com falha existe nos m+k nós de armazenamento alvo, após recuperação de falha do nó de armazenamento com falha, determinar se os números de versão da faixa de EC alvo nos m+k nós de armazenamento alvo são os mesmos, em que os números de versão da faixa de EC alvo nos m+k nós de armazenamento alvo incluem números de versão da faixa de EC alvo em arquivos de registro de
Petição 870160025496, de 03/06/2016, pág. 12/139
4/61 preparação em nós de armazenamento alvo que geraram arquivos de registro de preparação e/ou números de versão da faixa de EC alvo armazenados por nós de armazenamento alvo que não têm arquivo de registro de preparação; e se os números de versão da faixa de EC alvo em todos os nós de armazenamento alvo nos m+k nós de armazenamento alvo forem os mesmos, enviar uma mensagem de execução aos nós de armazenamento alvo que geraram arquivos de registro de preparação, em que a mensagem de execução é usada para instruir os nós de armazenamento alvo a gravarem os blocos de EC alvo incluídos nos arquivos de registro de preparação.
[9] Com referência ao segundo modo de implantação do primeiro aspecto das modalidades da presente invenção, em um terceiro modo de implantação do primeiro aspecto das modalidades da presente invenção, o método inclui adicionalmente:
se os números de versão da faixa de EC alvo nos nós de armazenamento alvo nos m+k nós de armazenamento alvo forem diferentes, enviar uma mensagem de exclusão aos nós de armazenamento alvo que geraram arquivos de registro de preparação, em que a mensagem de exclusão é usada para instruir os nós de armazenamento alvo para excluir os arquivos de registro de preparação.
[10] Um segundo aspecto das modalidades da presente invenção fornece um método de recuperação de dados, aplicado a um sistema de armazenamento distribuído, em que o sistema de armazenamento distribuído armazena dados com o uso de faixas de EC de codificação por apagamento, cada faixa de EC inclui uma parte de dados e uma parte de paridade, a parte de dados de cada faixa de EC inclui m blocos de dados, a parte de paridade de cada faixa de EC inclui k blocos de paridade que são obtidos após a codificação de paridade ser realizada nos m blocos de dados, e os m blocos de dados e os k blocos de paridade constituem blocos de EC de cada faixa de EC; cada faixa de EC corresponde a um valor de chave, valores de chave de faixas de EC que têm faixas de endereço iguais de partes de dados são os mesmos, e valores de chave de faixas de EC que têm faixas de endereço diferentes de partes de dados são diferentes; o sistema de armazenamento distribuído inclui múltiplos grupos de nó de armazenamento, cada grupo de nó de armazenamento inclui não menos do que m+k nós de
Petição 870160025496, de 03/06/2016, pág. 13/139
5/61 armazenamento, um nó de armazenamento primário é especificado em cada grupo de nó de armazenamento, e nós em cada grupo de nó de armazenamento exceto o nó de armazenamento primário são nós de armazenamento secundários, em que m e k são ambos números inteiros positivos; e quando um nó de armazenamento com falha existe em nós de armazenamento secundários em qualquer um dos grupos de nó de armazenamento, o método é executado por um nó de armazenamento primário em qualquer um dos grupos de nó de armazenamento e inclui:
após recuperação de falha do nó de armazenamento com falha, receber uma mensagem de recuperação enviada pelo nó de armazenamento com falha;
obter N blocos de EC perdidos do nó de armazenamento com falha através de computação de acordo com blocos de EC armazenados por nós de armazenamento sem falha no grupo de nó de armazenamento, em que o N é um número inteiro positivo;
enviar sequencialmente os N blocos de EC perdidos ao nó de armazenamento com falha para executar armazenamento;
no processo de envio sequencial dos N blocos de EC perdidos ao nó de armazenamento com falha, se o nó de armazenamento primário gera um primeiro bloco de EC e determina que o primeiro bloco de EC deve ser armazenado pelo nó de armazenamento com falha, determinar se um segundo bloco de EC que tem um mesmo valor de chave do primeiro bloco de EC existe nos blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido pelo nó de armazenamento com falha; e se for determinado que o segundo bloco de EC existe, após o nó de armazenamento com falha armazenar de modo bem-sucedido o segundo bloco de EC, enviar o primeiro bloco de EC ao nó de armazenamento com falha para executar armazenamento.
[11] Com referência ao segundo aspecto das modalidades da presente invenção, em um primeiro modo de implantação do segundo aspecto das modalidades da presente invenção, o envio sequencial dos N blocos de EC perdidos ao nó de armazenamento com falha para armazenamento inclui:
enviar um nesimo bloco de EC perdido ao nó de armazenamento com
Petição 870160025496, de 03/06/2016, pág. 14/139
6/61 falha, em que 1<n<N;
receber uma mensagem de resposta que corresponde ao nesimo bloco de EC perdido, em que a mensagem de resposta é enviada pelo nó de armazenamento com falha, e a mensagem de resposta é usada para indicar que o nó de armazenamento com falha armazenou de modo bem-sucedido o nesimo bloco de EC perdido; e após receber a mensagem de resposta do nó de armazenamento com falha em relação ao nesimo bloco de EC perdido, se n<N, adicionar 1 a um valor de n, e reexecutar a etapa de enviar um nesimo bloco de EC perdido ao nó de armazenamento com falha.
[12] Com referência ao primeiro modo de implantação do segundo aspecto das modalidades da presente invenção, em um segundo modo de implantação do segundo aspecto das modalidades da presente invenção, os blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido incluem os blocos de EC perdidos que não são enviados atualmente ao nó de armazenamento com falha e os blocos de EC perdidos que são enviados atualmente ao nó de armazenamento com falha, mas mensagens de resposta que correspondem aos quais não são recebidas.
[13] Com referência ao segundo aspecto das modalidades da presente invenção ou o primeiro ou segundo modo de implantação do segundo aspecto, em um terceiro modo de implantação do segundo aspecto das modalidades da presente invenção, um volume lógico do sistema de armazenamento distribuído inclui múltiplas partições lógicas, cada partição lógica é de um tamanho de k blocos de dados e não se sobrepõe um ao outro, cada partição lógica corresponde exclusivamente a um valor de chave, e um valor de chave de uma partição lógica que cada bloco de EC se encontra é um valor de chave do bloco de EC.
[14] Um terceiro aspecto das modalidades da presente invenção fornece um aparelho de armazenamento de dados, em que o sistema de armazenamento distribuído armazena dados com o uso de faixas de EC de codificação por apagamento, cada faixa de EC inclui uma parte de dados e uma parte de paridade, a parte de dados de cada faixa de EC inclui m blocos de dados, a parte de paridade de cada faixa de EC inclui k blocos de paridade que são obtidos após a codificação de paridade ser realizada nos m blocos de
Petição 870160025496, de 03/06/2016, pág. 15/139
7/61 dados, e os m blocos de dados e os k blocos de paridade constituem blocos de EC de cada faixa de EC; o sistema de armazenamento distribuído inclui múltiplos grupos de nó de armazenamento, cada grupo de nó de armazenamento inclui não menos do que m+k nós de armazenamento, um nó de armazenamento primário é especificado em cada grupo de nó de armazenamento, e nós em cada grupo de nó de armazenamento exceto o nó de armazenamento primário são nós de armazenamento secundários, em que m e k são ambos números inteiros positivos; e o aparelho de armazenamento de dados é implantado em um nó de armazenamento primário em qualquer um dos grupos de nó de armazenamento, e o aparelho de armazenamento de dados inclui:
um módulo de codificação de dados configurado para receber um segmento de dados a ser armazenado, e realizar codificação de EC no segmento de dados a ser armazenado para obter uma faixa de EC alvo, em que um tamanho do segmento de dados a ser armazenado não é maior do que Z, Z é um tamanho de m blocos de dados, a faixa de EC alvo inclui m+k blocos de EC alvo, e os m+k blocos de EC alvo incluem blocos de dados alvo m e k blocos de paridade alvo;
um módulo de determinação de nó configurado para determinar m+k nós de armazenamento alvo, em que os m+k nós de armazenamento alvo são configurados para armazenar os m+k blocos de EC alvo, e cada nó de armazenamento alvo armazena um dos blocos de EC alvo;
um módulo de envio de mensagem configurado para enviar uma mensagem de preparação aos m+k nós de armazenamento alvo separadamente, em que cada mensagem de preparação inclui um bloco de EC alvo a ser armazenado por cada nó de armazenamento alvo; e um módulo de recepção de mensagem, configurado para receber uma mensagem de resposta enviada por qualquer nó de armazenamento alvo dos m+k nós de armazenamento alvo, em que a mensagem de resposta é usada para indicar que o nó de armazenamento alvo que envia atualmente a mensagem de resposta gerou um arquivo de registro de preparação de acordo com a mensagem de preparação, e o arquivo de registro de preparação inclui um bloco de EC alvo a ser armazenado pelo nó de armazenamento alvo que envia atualmente a mensagem de resposta, em que
Petição 870160025496, de 03/06/2016, pág. 16/139
8/61 o módulo de envio de mensagem é configurado adicionalmente para enviar uma mensagem de execução aos m+k nós de armazenamento alvo após o módulo de recebimento de mensagem receber mensagens de resposta de todos os nós de armazenamento alvo nos m+k nós de armazenamento alvo, em que a mensagem de execução é usada para instruir os m+k nós de armazenamento alvo a gravarem os blocos de EC alvo incluídos nos arquivos de registro de preparação.
[15] Com referência ao terceiro aspecto das modalidades da presente invenção, em um primeiro modo de implantação do terceiro aspecto das modalidades da presente invenção, a mensagem de preparação inclui adicionalmente um número de versão da faixa de EC alvo;
o arquivo de registro de preparação inclui adicionalmente o número de versão da faixa de EC alvo; e a mensagem de execução é especificamente usada para instruir os m+k nós de armazenamento alvo a gravarem os blocos de EC alvo e o número de versão da faixa de EC alvo que estão nos arquivos de registro de preparação.
[16] Com referência ao primeiro modo de implantação do terceiro aspecto das modalidades da presente invenção, em um segundo modo de implantação do terceiro aspecto das modalidades da presente invenção, o aparelho inclui adicionalmente:
um módulo de determinação de versão, configurado para: quando for detectado que um nó de armazenamento com falha existe nos m+k nós de armazenamento alvo, após recuperação de falha do nó de armazenamento com falha, determinar se os números de versão da faixa de EC alvo nos m+k nós de armazenamento alvo são os mesmos, em que os números de versão da faixa de EC alvo nos m+k nós de armazenamento alvo incluem números de versão da faixa de EC alvo em arquivos de registro de preparação em nós de armazenamento alvo que geraram arquivos de registro de preparação e/ou números de versão da faixa de EC alvo armazenados por nós de armazenamento alvo que não têm arquivo de registro de preparação, em que o módulo de envio de mensagem é especificamente configurado para: se os números de versão da faixa de EC alvo em todos os nós de armazenamento alvo nos m+k nós de armazenamento alvo forem os mesmos,
Petição 870160025496, de 03/06/2016, pág. 17/139
9/61 enviar uma mensagem de execução aos nós de armazenamento alvo que geraram arquivos de registro de preparação, em que a mensagem de execução é usada para instruir os nós de armazenamento alvo a gravarem os blocos de EC alvo incluídos nos arquivos de registro de preparação.
[17] Com referência ao segundo modo de implantação do terceiro aspecto das modalidades da presente invenção, em um terceiro modo de implantação do terceiro aspecto das modalidades da presente invenção, o módulo de envio de mensagem é adicionalmente configurado para:
se os números de versão da faixa de EC alvo nos nós de armazenamento alvo nos m+k nós de armazenamento alvo forem diferentes, enviar uma mensagem de exclusão aos nós de armazenamento alvo que geraram arquivos de registro de preparação, em que a mensagem de exclusão é usada para instruir os nós de armazenamento alvo a excluírem os arquivos de registro de preparação.
[18] Um quarto aspecto das modalidades da presente invenção fornece um aparelho de recuperação de dados, aplicado a um sistema de armazenamento distribuído, em que o sistema de armazenamento distribuído armazena dados com o uso de faixas de EC de codificação por apagamento, sendo que cada faixa de EC inclui uma parte de dados e uma parte de paridade, a parte de dados de cada faixa de EC inclui m blocos de dados, a parte de paridade de cada faixa de EC inclui k blocos de paridade que são obtidos após a codificação de paridade ser realizada nos m blocos de dados, e os m blocos de dados e os k blocos de paridade constituem blocos de EC de cada faixa de EC; cada faixa de EC corresponde a um valor de chave, valores de chave de faixas de EC que têm faixas de endereço iguais de partes de dados são os mesmos, e valores de chave de faixas de EC que têm faixas de endereço diferentes de partes de dados são diferentes; o sistema de armazenamento distribuído inclui múltiplos grupos de nó de armazenamento, cada grupo de nó de armazenamento inclui não menos do que m+k nós de armazenamento, um nó de armazenamento primário é especificado em cada grupo de nó de armazenamento, e nós em cada grupo de nó de armazenamento exceto o nó de armazenamento primário são nós de armazenamento secundários, em que m e k são ambos números inteiros positivos; e
Petição 870160025496, de 03/06/2016, pág. 18/139
10/61 um nó de armazenamento com falha existe em nós de armazenamento secundários em qualquer grupo de nó de armazenamento no sistema de armazenamento distribuído, o aparelho de recuperação de dados é implantado em um nó de armazenamento primário no grupo de nó de armazenamento ao qual o nó de armazenamento com falha pertence, e o aparelho de recuperação de dados inclui:
um módulo de mensagem de recuperação configurado para: após a recuperação de falha do nó de armazenamento com falha, receber uma mensagem de recuperação enviada pelo nó de armazenamento com falha;
um módulo de computação de dados configurado para obter N blocos de EC perdidos do nó de armazenamento com falha através de computação de acordo com blocos de EC armazenados por nós de armazenamento sem falha no grupo de nó de armazenamento, em que o N é um número inteiro positivo;
um módulo de envio de dados configurado para enviar sequencialmente os N blocos de EC perdidos ao nó de armazenamento com falha para executar armazenamento; e um módulo de determinação de valor de chave configurado para: no processo de envio sequencial dos N blocos de EC perdidos ao nó de armazenamento com falha, se o nó de armazenamento primário gerar um primeiro bloco de EC e determinar que o primeiro bloco de EC deve ser armazenado pelo nó de armazenamento com falha, determinar se um segundo bloco de EC que tem um mesmo valor de chave do primeiro bloco de EC existe nos blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido pelo nó de armazenamento com falha, em que o módulo de envio de dados é configurado adicionalmente para: se o módulo de determinação de valor de chave determinar que o segundo bloco de EC existe, após o nó de armazenamento com falha armazenar de modo bemsucedido o segundo bloco de EC, enviar o primeiro bloco de EC ao nó de armazenamento com falha para executar armazenamento.
[19] Com referência ao quarto aspecto das modalidades da presente invenção, em um primeiro modo de implantação do quarto aspecto das modalidades da presente invenção, o módulo de envio de dados é especificamente configurado para:
Petição 870160025496, de 03/06/2016, pág. 19/139
11/61 enviar um nesimo bloco de EC perdido ao nó de armazenamento com falha, em que 1<n<N;
receber uma mensagem de resposta que corresponde ao nesimo bloco de EC perdido, em que a mensagem de resposta é enviada pelo nó de armazenamento com falha, e a mensagem de resposta é usada para indicar que o nó de armazenamento com falha armazenou de modo bem-sucedido o nesimo bloco de EC perdido; e após receber a mensagem de resposta do nó de armazenamento com falha em relação ao nesimo bloco de EC perdido, se n<N, adicionar 1 a um valor de n, e reexecutar a etapa de enviar um nesimo bloco de EC perdido ao nó de armazenamento com falha.
[20] Com referência ao primeiro modo de implantação do quarto aspecto das modalidades da presente invenção, em um segundo modo de implantação do quarto aspecto das modalidades da presente invenção, os blocos de EC perdidos que não são atualmente armazenados de modo bemsucedido incluem os blocos de EC perdidos que não são enviados atualmente ao nó de armazenamento com falha e os blocos de EC perdidos que são enviados atualmente ao nó de armazenamento com falha, mas mensagens de resposta que correspondem aos quais não são recebidas.
[21] Com referência ao quarto aspecto das modalidades da presente invenção ou o primeiro ou segundo modo de implantação do quarto aspecto, em um terceiro modo de implantação do quarto aspecto das modalidades da presente invenção, um volume lógico do sistema de armazenamento distribuído inclui múltiplas partições lógicas, sendo que cada partição lógica é de um tamanho de k blocos de dados e não se sobrepõe uma à outra, cada partição lógica corresponde exclusivamente a um valor de chave, e um valor de chave de uma partição lógica que cada bloco de EC se encontra é um valor de chave do bloco de EC.
[22] Um quinto aspecto das modalidades da presente invenção fornece um aparelho de armazenamento de dados, em que o aparelho de armazenamento de dados inclui um aparelho de entrada, um aparelho de saída, um processador e uma memória, em que invocando-se uma instrução de operação armazenada na memória, o processador é configurado para:
receber um segmento de dados a ser armazenado, e realizar
Petição 870160025496, de 03/06/2016, pág. 20/139
12/61 codificação de EC no segmento de dados a ser armazenado para obter uma faixa de EC alvo, em que um tamanho do segmento de dados a ser armazenado não é maior do que Z, Z é um tamanho de m blocos de dados, a faixa de EC alvo inclui m+k blocos de EC alvo, e os m+k blocos de EC alvo incluem m blocos de dados alvo e k blocos de paridade alvo;
determinar m+k nós de armazenamento alvo, em que os m+k nós de armazenamento alvo são configurados para armazenar os m+k blocos de EC alvo, e cada nó de armazenamento alvo armazena um dos blocos de EC alvo;
enviar uma mensagem de preparação aos m+k nós de armazenamento alvo separadamente, em que cada mensagem de preparação inclui um bloco de EC alvo a ser armazenado por cada nó de armazenamento alvo;
receber uma mensagem de resposta enviada por qualquer nó de armazenamento alvo dos m+k nós de armazenamento alvo, em que a mensagem de resposta é usada para indicar que o nó de armazenamento alvo que envia atualmente a mensagem de resposta gerou um arquivo de registro de preparação de acordo com a mensagem de preparação, e o arquivo de registro de preparação inclui um bloco de EC alvo a ser armazenado pelo nó de armazenamento alvo que envia atualmente a mensagem de resposta; e após receber mensagens de resposta de todos os nós de armazenamento alvo nos m+k nós de armazenamento alvo, enviar uma mensagem de execução aos m+k nós de armazenamento alvo, em que a mensagem de execução é usada para instruir os m+k nós de armazenamento alvo a gravarem os blocos de EC alvo incluídos nos arquivos de registro de preparação.
[23] Com referência ao quinto aspecto das modalidades da presente invenção, em um primeiro modo de implantação do quinto aspecto das modalidades da presente invenção, a mensagem de preparação inclui adicionalmente um número de versão da faixa de EC alvo;
o arquivo de registro de preparação inclui adicionalmente o número de versão da faixa de EC alvo; e a mensagem de execução é especificamente usada para instruir os m+k nós de armazenamento alvo a gravarem os blocos de EC alvo e o número de versão da faixa de EC alvo que estão nos arquivos de registro de
Petição 870160025496, de 03/06/2016, pág. 21/139
13/61 preparação.
[24] Com referência ao primeiro modo de implantação do quinto aspecto das modalidades da presente invenção, em um segundo modo de implantação do quinto aspecto das modalidades da presente invenção, o processador é configurado adicionalmente para:
se for detectado que um nó de armazenamento com falha existe nos m+k nós de armazenamento alvo, após recuperação de falha do nó de armazenamento com falha, determinar se os números de versão da faixa de EC alvo nos m+k nós de armazenamento alvo são os mesmos, em que os números de versão da faixa de EC alvo nos m+k nós de armazenamento alvo incluem números de versão da faixa de EC alvo em arquivos de registro de preparação em nós de armazenamento alvo que geraram arquivos de registro de preparação e/ou números de versão da faixa de EC alvo armazenados por nós de armazenamento alvo que não têm arquivo de registro de preparação; e se os números de versão da faixa de EC alvo em todos os nós de armazenamento alvo nos m+k nós de armazenamento alvo forem os mesmos, enviar uma mensagem de execução aos nós de armazenamento alvo que geraram arquivos de registro de preparação, em que a mensagem de execução é usada para instruir os nós de armazenamento alvo a gravarem os blocos de EC alvo incluídos nos arquivos de registro de preparação.
[25] Com referência ao segundo modo de implantação do quinto aspecto das modalidades da presente invenção, em um terceiro modo de implantação do quinto aspecto das modalidades da presente invenção, o processador é configurado adicionalmente para:
se os números de versão da faixa de EC alvo nos nós de armazenamento alvo nos m+k nós de armazenamento alvo forem diferentes, enviar uma mensagem de exclusão aos nós de armazenamento alvo que geraram arquivos de registro de preparação, em que a mensagem de exclusão é usada para instruir os nós de armazenamento alvo a excluírem os arquivos de registro de preparação.
[26] Um sexto aspecto das modalidades da presente invenção fornece um aparelho de recuperação de dados, em que o aparelho de recuperação de dados inclui um aparelho de entrada, um aparelho de saída, um processador e uma memória, em que invocando-se uma instrução de
Petição 870160025496, de 03/06/2016, pág. 22/139
14/61 operação armazenada na memória, o processador é configurado para:
após recuperação de falha de um nó de armazenamento com falha, receber uma mensagem de recuperação enviada pelo nó de armazenamento com falha;
obter N blocos de EC perdidos do nó de armazenamento com falha através de computação de acordo com blocos de EC armazenados por nós de armazenamento sem falha em um grupo de nó de armazenamento ao qual o nó de armazenamento com falha pertence, em que o N é um número inteiro positivo;
enviar sequencialmente os N blocos de EC perdidos ao nó de armazenamento com falha para executar armazenamento;
no processo de envio sequencial dos N blocos de EC perdidos ao nó de armazenamento com falha, se o nó de armazenamento primário gerar um primeiro bloco de EC e determinar que o primeiro bloco de EC deve ser armazenado pelo nó de armazenamento com falha, determinar se um segundo bloco de EC que tem um mesmo valor de chave do primeiro bloco de EC existe nos blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido pelo nó de armazenamento com falha; e se for determinado que o segundo bloco de EC existe, após o nó de armazenamento com falha armazenar de modo bem-sucedido o segundo bloco de EC, enviar o primeiro bloco de EC ao nó de armazenamento com falha para executar armazenamento.
[27] Com referência ao sexto aspecto das modalidades da presente invenção, em um primeiro modo de implantação do sexto aspecto das modalidades da presente invenção, o processador é configurado adicionalmente para:
enviar um nesimo bloco de EC perdido ao nó de armazenamento com falha, em que 1<n<N;
receber uma mensagem de resposta que corresponde ao nesimo bloco de EC perdido, em que a mensagem de resposta é enviada pelo nó de armazenamento com falha, e a mensagem de resposta é usada para indicar que o nó de armazenamento com falha armazenou de modo bem-sucedido o nesimo bloco de EC perdido; e após receber a mensagem de resposta do nó de armazenamento
Petição 870160025496, de 03/06/2016, pág. 23/139
15/61 com falha em relação ao nesimo bloco de EC perdido, se n<N, adicionar 1 a um valor de n, e reexecutar a etapa de enviar um nesimo bloco de EC perdido ao nó de armazenamento com falha.
[28] Com referência ao primeiro modo de implantação do sexto aspecto das modalidades da presente invenção, em um segundo modo de implantação do sexto aspecto das modalidades da presente invenção, os blocos de EC perdidos que não são atualmente armazenados de modo bemsucedido incluem os blocos de EC perdidos que não são enviados atualmente ao nó de armazenamento com falha e os blocos de EC perdidos que são enviados atualmente ao nó de armazenamento com falha, mas mensagens de resposta que correspondem aos quais não são recebidas.
[29] Com referência ao sexto aspecto das modalidades da presente invenção ou o primeiro ou segundo modo de implantação do sexto aspecto, em um terceiro modo de implantação do sexto aspecto das modalidades da presente invenção, um volume lógico do sistema de armazenamento distribuído inclui múltiplas partições lógicas, sendo que cada partição lógica é de um tamanho de k blocos de dados e não se sobrepõe uma à outra, cada partição lógica corresponde exclusivamente a um valor de chave, e um valor de chave de uma partição lógica que cada bloco de EC se encontra é um valor de chave do bloco de EC.
[30] Um sétimo aspecto das modalidades da presente invenção fornece um meio legível por computador, que inclui uma instrução executável por computador, em que quando um processador de um computador executa a instrução executável por computador, o computador executa o método a seguir:
receber um segmento de dados a ser armazenado, e realizar codificação de EC no segmento de dados a ser armazenado para obter uma faixa de EC alvo, em que um tamanho do segmento de dados a ser armazenado não é maior do que Z, Z é um tamanho de m blocos de dados, a faixa de EC alvo inclui m+k blocos de EC alvo, e os m+k blocos de EC alvo incluem m blocos de dados alvo e k blocos de paridade alvo;
determinar m+k nós de armazenamento alvo, em que os m+k nós de armazenamento alvo são configurados para armazenar os m+k blocos de EC alvo, e cada nó de armazenamento alvo armazena um dos blocos de EC alvo;
enviar uma mensagem de preparação aos m+k nós de
Petição 870160025496, de 03/06/2016, pág. 24/139
16/61 armazenamento alvo separadamente, em que cada mensagem de preparação inclui um bloco de EC alvo a ser armazenado por cada nó de armazenamento alvo;
receber uma mensagem de resposta enviada por qualquer nó de armazenamento alvo dos m+k nós de armazenamento alvo, em que a mensagem de resposta é usada para indicar que o nó de armazenamento alvo que envia atualmente a mensagem de resposta gerou um arquivo de registro de preparação de acordo com a mensagem de preparação, e o arquivo de registro de preparação inclui um bloco de EC alvo a ser armazenado pelo nó de armazenamento alvo que envia atualmente a mensagem de resposta; e após receber mensagens de resposta de todos os nós de armazenamento alvo nos m+k nós de armazenamento alvo, enviar uma mensagem de execução aos m+k nós de armazenamento alvo, em que a mensagem de execução é usada para instruir os m+k nós de armazenamento alvo a gravarem os blocos de EC alvo incluídos nos arquivos de registro de preparação.
[31] Com referência ao sétimo aspecto das modalidades da presente invenção, em um primeiro modo de implantação do sétimo aspecto das modalidades da presente invenção, a mensagem de preparação inclui adicionalmente um número de versão da faixa de EC alvo;
o arquivo de registro de preparação inclui adicionalmente o número de versão da faixa de EC alvo; e a mensagem de execução é especificamente usada para instruir os m+k nós de armazenamento alvo a gravarem os blocos de EC alvo e o número de versão da faixa de EC alvo que estão nos arquivos de registro de preparação.
[32] Com referência ao primeiro modo de implantação do sétimo aspecto das modalidades da presente invenção, em um segundo modo de implantação do sétimo aspecto das modalidades da presente invenção, o computador executa adicionalmente o método a seguir:
se for detectado que um nó de armazenamento com falha existe nos m+k nós de armazenamento alvo, após recuperação de falha do nó de armazenamento com falha, determinar se os números de versão da faixa de EC alvo nos m+k nós de armazenamento alvo são os mesmos, em que os
Petição 870160025496, de 03/06/2016, pág. 25/139
17/61 números de versão da faixa de EC alvo nos m+k nós de armazenamento alvo incluem números de versão da faixa de EC alvo em arquivos de registro de preparação em nós de armazenamento alvo que geraram arquivos de registro de preparação e/ou números de versão da faixa de EC alvo armazenados por nós de armazenamento alvo que não têm arquivo de registro de preparação; e se os números de versão da faixa de EC alvo em todos os nós de armazenamento alvo nos m+k nós de armazenamento alvo forem os mesmos, enviar uma mensagem de execução aos nós de armazenamento alvo que geraram arquivos de registro de preparação, em que a mensagem de execução é usada para instruir os nós de armazenamento alvo a gravarem os blocos de EC alvo incluídos nos arquivos de registro de preparação.
[33] Com referência ao segundo modo de implantação do sétimo aspecto das modalidades da presente invenção, em um terceiro modo de implantação do sétimo aspecto das modalidades da presente invenção, o computador executa adicionalmente o método a seguir:
se os números de versão da faixa de EC alvo nos nós de armazenamento alvo nos m+k nós de armazenamento alvo forem diferentes, enviar uma mensagem de exclusão aos nós de armazenamento alvo que geraram arquivos de registro de preparação, em que a mensagem de exclusão é usada para instruir os nós de armazenamento alvo para excluir os arquivos de registro de preparação.
[34] Um oitavo aspecto das modalidades da presente invenção fornece um meio legível por computador, que inclui uma instrução executável por computador, em que quando um processador de um computador executa a instrução executável por computador, o computador executa o método a seguir:
após recuperação de falha de um nó de armazenamento com falha, receber uma mensagem de recuperação enviada pelo nó de armazenamento com falha;
obter N blocos de EC perdidos do nó de armazenamento com falha através de computação de acordo com blocos de EC armazenado por nós de armazenamento sem falha em um grupo de nó de armazenamento, em que o N é um número inteiro positivo;
enviar sequencialmente os N blocos de EC perdidos ao nó de armazenamento com falha para executar armazenamento;
Petição 870160025496, de 03/06/2016, pág. 26/139
18/61 no processo de envio sequencial dos N blocos de EC perdidos ao nó de armazenamento com falha, se um nó de armazenamento primário gerar um primeiro bloco de EC e determinar que o primeiro bloco de EC deve ser armazenado pelo nó de armazenamento com falha, determinar se um segundo bloco de EC que tem um mesmo valor de chave do primeiro bloco de EC existe nos blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido pelo nó de armazenamento com falha; e se for determinado que o segundo bloco de EC existe, após o nó de armazenamento com falha armazenar de modo bem-sucedido o segundo bloco de EC, enviar o primeiro bloco de EC ao nó de armazenamento com falha para executar armazenamento.
[35] Com referência ao oitavo aspecto das modalidades da presente invenção, em um primeiro modo de implantação do oitavo aspecto das modalidades da presente invenção, o computador executa adicionalmente o método a seguir:
enviar um nesimo bloco de EC perdido ao nó de armazenamento com falha, em que 1<n<N;
receber uma mensagem de resposta que corresponde ao nesimo bloco de EC perdido, em que a mensagem de resposta é enviada pelo nó de armazenamento com falha, e a mensagem de resposta é usada para indicar que o nó de armazenamento com falha armazenou de modo bem-sucedido o nesimo bloco de EC perdido; e após receber a mensagem de resposta do nó de armazenamento com falha em relação ao nesimo bloco de EC perdido, se n<N, adicionar 1 a um valor de n, e reexecutar a etapa de enviar um nesimo bloco de EC perdido ao nó de armazenamento com falha.
[36] Com referência ao primeiro modo de implantação do oitavo aspecto das modalidades da presente invenção, em um segundo modo de implantação do oitavo aspecto das modalidades da presente invenção, os blocos de EC perdidos que não são atualmente armazenados de modo bemsucedido incluem os blocos de EC perdidos que não são enviados atualmente ao nó de armazenamento com falha e os blocos de EC perdidos que são enviados atualmente ao nó de armazenamento com falha, mas mensagens de resposta que correspondem aos quais não são recebidas.
Petição 870160025496, de 03/06/2016, pág. 27/139
19/61 [37] Com referência ao oitavo aspecto das modalidades da presente invenção ou o primeiro ou segundo modo de implantação do oitavo aspecto, em um terceiro modo de implantação do oitavo aspecto das modalidades da presente invenção, um volume lógico do sistema de armazenamento distribuído inclui múltiplas partições lógicas, cada partição lógica é de um tamanho de k blocos de dados e não se sobrepõe uma à outra, cada partição lógica corresponde exclusivamente a um valor de chave, e um valor de chave de uma partição lógica que cada bloco de EC se encontra é um valor de chave do bloco de EC.
[38] Um nono aspecto das modalidades da presente invenção fornece um nó de armazenamento, que inclui o aparelho de armazenamento de dados de acordo com o terceiro aspecto das modalidades da presente invenção ou qualquer um dentre o primeiro ao terceiro modos de implantação do terceiro aspecto e/ou o aparelho de recuperação de dados de acordo com o quarto aspecto das modalidades da presente invenção ou qualquer um dentre o primeiro ao terceiro modos de implantação do quarto aspecto e/ou que inclui o aparelho de armazenamento de dados de acordo com o quinto aspecto das modalidades da presente invenção ou qualquer um dentre o primeiro ao terceiro modos de implantação do quinto aspecto e/ou o aparelho de recuperação de dados de acordo com o sexto aspecto das modalidades da presente invenção ou qualquer um dentre o primeiro ao terceiro modos de implantação do sexto aspecto, e/ou que inclui o meio legível por computador de acordo com o sétimo aspecto das modalidades da presente invenção ou qualquer um dentre o primeiro ao terceiro modos de implantação do sétimo aspecto e/ou o meio legível por computador de acordo com o oitavo aspecto das modalidades da presente invenção ou qualquer um dentre o primeiro ao terceiro modos de implantação do oitavo aspecto.
[39] Um método de armazenamento de dados fornecido por uma modalidade da presente invenção inclui: realizar, por um nó primário, codificação de EC em um segmento de dados a ser armazenado para obter uma faixa de EC alvo, em que a faixa de EC alvo inclui m+k blocos de EC alvo; determinar, em nós de armazenamento secundários em um grupo de nó de armazenamento, m+k nós de armazenamento alvo usados para armazenar os m+k blocos de EC alvo; enviar uma mensagem de preparação aos nós de
Petição 870160025496, de 03/06/2016, pág. 28/139
20/61 armazenamento alvo, em que a mensagem de preparação porta um bloco de EC alvo a ser armazenado pelos nós de armazenamento alvo; receber uma mensagem de resposta enviada por um nó de armazenamento alvo; e após receber mensagens de resposta de todos os nós de armazenamento alvo, enviar uma mensagem de execução a todos os nós de armazenamento alvo, para instruir os nós de armazenamento alvo a gravarem blocos de EC alvo que estão nos arquivos de registro de preparação. No método fornecido por essa modalidade, os m+k nós de armazenamento alvo usados para armazenar a faixa de EC alvo não gravam diretamente os blocos de EC alvo a serem armazenados, mas primeiro grava os blocos de EC alvo a serem armazenados em arquivos de registro de preparação gerados localmente, e após todos os nós de armazenamento alvo gerarem arquivos de registro de preparação, gravar os blocos de EC alvo. Um nó de armazenamento alvo executa uma operação de gravação de um bloco de EC alvo em uma localização correta apenas em um caso em que todos os nós de armazenamento alvo geraram arquivos de registro de preparação. Mesmo se uma falha ocorrer no processo de gravação do bloco de EC alvo pelo nó de armazenamento alvo, o bloco de EC alvo foi armazenado em um arquivo de registro de preparação do nó de armazenamento alvo. Desse modo, pode-se garantir que o bloco de EC alvo não está perdido independentemente de se a operação de gravação do bloco de EC alvo é bem sucedida. Portanto, um caso em que uma parte dos nós de armazenamento alvo tem blocos de EC alvo da faixa de EC alvo, mas a outra parte dos nós de armazenamento alvo não tem blocos de EC alvo da faixa de EC alvo é evitada, a faixa de EC alvo pode ser armazenada de modo consistente, e a consistência de armazenamento de um sistema de armazenamento distribuído é aperfeiçoada.
Breve descrição dos desenhos [40] A Figura 1(a) é um diagrama estrutural de uma faixa de EC;
[41] A Figura 1(b) é um diagrama estrutural esquemático de um sistema de armazenamento distribuído de acordo com uma modalidade da presente invenção;
[42] A Figura 2 é um fluxograma de uma modalidade de um método de armazenamento de dados de acordo com uma modalidade da presente invenção;
Petição 870160025496, de 03/06/2016, pág. 29/139
21/61 [43] A Figura 3 é um fluxograma de outra modalidade de um método de armazenamento de dados de acordo com uma modalidade da presente invenção;
[44] A Figura 4 é um fluxograma de outra modalidade de um método de armazenamento de dados de acordo com uma modalidade da presente invenção;
[45] A Figura 5 é um fluxograma de uma modalidade de um método de recuperação de dados de acordo com uma modalidade da presente invenção;
[46] A Figura 6 é um diagrama estrutural de uma modalidade de um aparelho de armazenamento de dados de acordo com uma modalidade da presente invenção;
[47] A Figura 7 é um diagrama estrutural de outra modalidade de um aparelho de armazenamento de dados de acordo com uma modalidade da presente invenção;
[48] A Figura 8 é um diagrama estrutural de outra modalidade de um aparelho de recuperação de dados de acordo com uma modalidade da presente invenção;
[49] A Figura 9 é um diagrama estrutural de outra modalidade de um aparelho de armazenamento de dados de acordo com uma modalidade da presente invenção;
[50] A Figura 10 é um diagrama estrutural de outra modalidade de um aparelho de armazenamento de dados de acordo com uma modalidade da presente invenção; e [51] A Figura 11 é um diagrama estrutural de outra modalidade de um aparelho de recuperação de dados de acordo com uma modalidade da presente invenção.
DESCRIÇÃO DAS MODALIDADES [52] As modalidades da presente invenção fornecem um método de armazenamento de dados, usado para aperfeiçoar consistência de armazenamento de um sistema de armazenamento distribuído. As modalidades da presente invenção fornecem adicionalmente um método de recuperação de dados, um aparelho relacionado e um sistema, que são
Petição 870160025496, de 03/06/2016, pág. 30/139
22/61 descritos separadamente abaixo.
[53] O sistema de armazenamento distribuído inclui múltiplos nós de armazenamento. Um aparelho de entrega de dados de camada superior divide dados a serem armazenados em múltiplos blocos de dados e, então, entrega os blocos de dados aos múltiplos nós de armazenamento do sistema de armazenamento distribuído para armazenamento. O armazenamento distribuído de dados pode reduzir um risco de perda de dados e aperfeiçoar a confiabilidade do sistema de armazenamento distribuído. O aparelho de entrega de dados pode ser um cliente, um servidor ou outro dispositivo.
[54] Um princípio de uma tecnologia de codificação por apagamento é dividir dados a serem armazenados em m blocos de dados, e realizar codificação de paridade nos m blocos de dados com o uso de um algoritmo de redundância, para gerar k blocos de paridade, em que os m blocos de dados e os k blocos de paridade constituem uma faixa de EC. Para uma estrutura básica da faixa de EC, fazer referência à Figura 1 (a). Cada bloco de dados ou bloco de paridade também pode ser denominado um bloco de EC, e os m blocos de dados e os k blocos de paridade constituem todos os blocos de EC de cada faixa de EC. Cada faixa de EC é tolerável a uma perda de k blocos de EC. Quando o sistema de armazenamento distribuído usa a tecnologia de EC para realizar dados armazenamento, o aparelho de entrega de dados gera múltiplas faixas de EC de acordo com os dados a serem armazenados, e entrega m+k blocos de EC de cada faixa de EC para m+k nós de armazenamento do sistema de armazenamento distribuído para armazenamento. Desse modo, quando um nó no sistema de armazenamento distribuído estiver com falha, um bloco de EC armazenado no nó com falha pode ser recuperado de acordo com blocos de EC em nós sem falha. A menos que mais do que k nós de armazenamento nos m+k nós de armazenamento que armazenam uma faixa de EC estiverem com falha, os dados da faixa de EC podem ser lidos ou gravados pelo aparelho de entrega de dados completamente. Portanto, o sistema de armazenamento distribuído que usa a tecnologia de EC para armazenar dados tem confiabilidade muito alta.
[55] Uma faixa de EC armazenada no sistema de armazenamento distribuído pode ser lida ou regravada pelo aparelho de entrega de dados. Deve-se notar que, ao ler uma faixa de EC, o aparelho de
Petição 870160025496, de 03/06/2016, pág. 31/139
23/61 entrega de dados apenas necessita ler, a partir da faixa de EC, um bloco de dados usado para armazenar dados. Entretanto, quando uma faixa de EC é regravada, por exemplo, quando um iesimo bloco de dados em m blocos de dados de uma faixa de EC é regravada, outros blocos de dados da faixa de EC não precisam ser mudados, mas é necessário regenerar blocos de paridade da faixa de EC.
[56] Particularmente, nós de armazenamento no sistema de armazenamento distribuído são agrupados nas modalidades da presente invenção. Especificamente, nós de armazenamento são agrupados em múltiplos grupos de nó de armazenamento, em que uma quantidade de nós de armazenamento incluídos em cada grupo de nó de armazenamento não é menos do que m+k, e um nó de armazenamento primário (nó primário para abreviação abaixo) é especificado em cada grupo de nó de armazenamento. Outros nós de armazenamento são nós de armazenamento secundários (nós secundários para abreviação abaixo), m e k são ambos números inteiros positivos. Os nós de armazenamento de diferentes grupos de nó de armazenamento podem ser repetíveis. Por exemplo, um nó primário em um grupo de nó de armazenamento 1 pode ser um nó secundário em um grupo de nó de armazenamento 2. A Figura 1(b) é um diagrama estrutural esquemático de um sistema de armazenamento distribuído de acordo com uma modalidade da presente invenção. A Figura 1(b) é usada para indicar apenas uma estrutura do sistema de armazenamento distribuído, e nós de armazenamento no sistema de armazenamento distribuído também podem ser em outras estruturas de conexão.
[57] Com base no sistema de armazenamento distribuído antecedente, uma modalidade da presente invenção fornece um método de armazenamento de dados, aplicado a um nó primário em qualquer grupo de nó de armazenamento do sistema de armazenamento distribuído. Referindo-se à Figura 2, um procedimento básico do método inclui:
[58] 201. Realizar codificação de EC em um segmento de dados a ser armazenado para obter uma faixa de EC alvo.
[59] Um nó primário recebe um segmento de dados a ser armazenado entregue por um aparelho de entrega de dados, em que um
Petição 870160025496, de 03/06/2016, pág. 32/139
24/61 tamanho do segmento de dados a ser armazenado não é maior do que Z, e Z é um tamanho de m blocos de dados. A faixa de EC alvo após codificação inclui m+k blocos de EC alvo, que incluem especificamente m blocos de dados alvo e k blocos de paridade alvo.
[60] 202. Determinar m+k nós de armazenamento alvo.
[61] Após gerar os m+k blocos de EC alvo, o nó primário determina, em um grupo de nó de armazenamento ao qual o nó primário pertence, m+k nós de armazenamento alvo usados para armazenar os m+k blocos de EC alvo. Os m+k nós de armazenamento alvo podem incluir o nó primário e m+k-1 nós secundários, ou podem incluir m+k nós secundários. Cada nó de armazenamento alvo armazena um máximo de um bloco de EC apenas.
[62] Particularmente, se o grupo de nó de armazenamento inclui apenas m+k nós de armazenamento (o nó primário e m+k-1 nós secundários), o nó primário determina diretamente que os m+k nós de armazenamento são nós de armazenamento alvo.
[63] 203. Enviar uma mensagem de preparação aos nós de armazenamento alvo.
[64] Após determinar os nós de armazenamento alvo, o nó primário envia uma mensagem de preparação aos m+k nós de armazenamento alvo separadamente, em que cada mensagem de preparação porta um bloco de EC alvo a ser armazenado por cada nó de armazenamento alvo.
[65] Para nós de armazenamento alvo que são nós secundários, a mensagem de preparação enviada pelo nó primário ao nó de armazenamento alvo é uma mensagem inter-nó enviada através de uma rede. Entretanto, é mencionado na etapa 202 que o nó primário também pode ser um dentre os nós de armazenamento alvo. Se o nó primário é um nó de armazenamento alvo, o nó primário também envia uma mensagem de preparação ao nó primário em si nessa etapa, mas a mensagem de preparação enviada ao nó primário em si é uma mensagem intra-nó que não passa através da rede.
[66] 204. Receber uma mensagem de resposta enviada por um nó de armazenamento alvo.
Petição 870160025496, de 03/06/2016, pág. 33/139
25/61 [67] Após receber a mensagem de preparação enviada pelo nó primário, o nó de armazenamento alvo gera um arquivo de registro de preparação de acordo com a mensagem de preparação, em que o arquivo de registro de preparação é armazenado no nó de armazenamento alvo localmente. Um propósito do arquivo de registro de preparação é essencial mente armazenar de modo temporário um bloco de EC a ser armazenado pelo nó de armazenamento alvo. Portanto, uma localização de armazenamento do arquivo de registro de preparação não é uma localização de armazenamento final do bloco de EC alvo. Em uma aplicação real, o arquivo de registro de preparação pode ser um arquivo de registro ou um bloco de dados, ou em qualquer outra forma, que não é limitada nessa modalidade, mas o arquivo de registro de preparação precisa incluir o bloco de EC alvo na mensagem de preparação recebida pelo nó de armazenamento alvo.
[68] Após gerar o arquivo de registro de preparação, o nó de armazenamento alvo envia uma mensagem de resposta ao nó primário, usada para notificar o nó primário que o nó de armazenamento secundário alvo que envia atualmente a mensagem de resposta gerou o arquivo de registro de preparação de acordo com a mensagem de preparação.
[69] A mensagem de resposta enviada pelo nó de armazenamento alvo como um nó secundário é uma mensagem inter-nó enviada através da rede. Entretanto, se o nó primário é também um dos nós de armazenamento alvo, o nó primário também envia uma mensagem de resposta ao nó primário em si nessa etapa, mas a mensagem de resposta enviada ao nó primário em si é uma mensagem intra-nó que não passa através da rede.
[70] O nó primário recebe uma mensagem de resposta enviada por qualquer um ou mais nós de armazenamento alvo nos m+k nós de armazenamento alvo, e após receber mensagens de resposta enviadas por todos os nós de armazenamento alvo nos m+k nós de armazenamento alvo, executa a etapa 205.
[71] 205. Enviar uma mensagem de execução aos nós de armazenamento alvo.
[72] Após receber as mensagens de resposta enviadas por todos os nós de armazenamento alvo, o nó primário envia uma mensagem de
Petição 870160025496, de 03/06/2016, pág. 34/139
26/61 execução aos m+k nós de armazenamento alvo, para instruir os m+k nós de armazenamento alvo a gravarem os blocos de EC alvo incluídos nos arquivos de registro de preparação. Após receber a mensagem de execução, os m+k nós de armazenamento alvo leem os arquivos de registro de preparação a partir de localizações de armazenamento dos arquivos de registro de preparação, e gravam os blocos de EC alvo incluídos nos arquivos de registro de preparação em localizações que são usadas para armazenar os blocos de EC alvo e nos nós de armazenamento alvo.
[73] Para nós de armazenamento alvo que são nós secundários, a mensagem de execução enviada pelo nó primário ao nó de armazenamento alvo é uma mensagem inter-nó enviada através da rede. Entretanto, é mencionado na etapa 202 que o nó primário também pode ser um dentre os nós de armazenamento alvo. Se o nó primário é um nó de armazenamento alvo, o nó primário também envia uma mensagem de execução ao nó primário em si nessa etapa, mas a mensagem de execução enviada ao nó primário em si é uma mensagem intra-nó que não passa através da rede.
[74] Essa modalidade fornece um método de armazenamento de dados que inclui: realizar codificação de EC em um segmento de dados a ser armazenado para obter uma faixa de EC alvo, em que a faixa de EC alvo inclui m+k blocos de EC alvo; determinar, em nós de armazenamento secundários em um grupo de nó de armazenamento, m+k nós de armazenamento alvo usados para armazenar os m+k blocos de EC alvo; enviar uma mensagem de preparação aos nós de armazenamento alvo, em que a mensagem de preparação porta um bloco de EC alvo a ser armazenado pelos nós de armazenamento alvo; receber uma mensagem de resposta enviada por um nó de armazenamento alvo; e após receber mensagens de resposta de todos os nós de armazenamento alvo, enviar uma mensagem de execução a todos os nós de armazenamento alvo, para instruir os nós de armazenamento alvo a gravarem os blocos de EC alvo que estão nos arquivos de registro de preparação. No método fornecido por essa modalidade, os m+k nós de armazenamento alvo usados para armazenar a faixa de EC alvo não gravam diretamente os blocos de EC alvo a serem armazenados, mas primeiro gravam os blocos de EC alvo a serem armazenados em arquivos de registro de
Petição 870160025496, de 03/06/2016, pág. 35/139
27/61 preparação gerados localmente, e após todos os nós de armazenamento alvo gerarem arquivos de registro de preparação, gravam os blocos de EC alvo. Um nó de armazenamento alvo executa uma operação de gravação de um bloco de EC alvo em uma localização correta apenas em um caso em que todos os nós de armazenamento alvo geraram arquivos de registro de preparação. Mesmo se uma falha ocorrer no processo de gravação do bloco de EC alvo pelo nó de armazenamento alvo, o bloco de EC alvo foi armazenado em um arquivo de registro de preparação do nó de armazenamento alvo. Desse modo, pode-se garantir que o bloco de EC alvo não está perdido independentemente de se a operação de gravação do bloco de EC alvo é bem sucedida. Portanto, um caso em que uma parte dos nós de armazenamento alvo tem blocos de EC alvo da faixa de EC alvo, mas a outra parte dos nós de armazenamento alvo não tem blocos de EC alvo da faixa de EC alvo é evitada, a faixa de EC alvo pode ser armazenada de modo consistente, e a consistência de armazenamento de um sistema de armazenamento distribuído é aperfeiçoada.
[75] Preferencialmente, em ainda outra modalidade da presente invenção, para garantir que um arquivo de registro de preparação gerado por um nó de armazenamento alvo não seja perdido quando o nó de armazenamento alvo estiver com falha, o nó de armazenamento alvo pode gravar o arquivo de registro de preparação em um meio de proteção de falha de potência.
[76] Um conceito de um valor de chave de uma faixa de EC é introduzido nessa modalidade da presente invenção. Especificamente, um valor de chave de uma faixa de EC corresponde a uma faixa de endereço de uma parte de dados da faixa de EC, e valores de chave de faixas de EC que têm faixas de endereço iguais de partes de dados são os mesmos, mas valores de chave de faixas de EC que têm faixas de endereço diferentes de partes de dados são diferentes. O valor de chave pode ser portado em cada bloco de EC da faixa de EC.
[77] O valor de chave da faixa de EC pode ir de um segmento de dados entregue pelo aparelho de entrega de dados ao nó primário. Por exemplo, um volume lógico do sistema de armazenamento distribuído pode ser dividido em múltiplas partições lógicas, e cada partição lógica é de um tamanho de k blocos de dados. O aparelho de entrega de dados divide dados a serem
Petição 870160025496, de 03/06/2016, pág. 36/139
28/61 armazenados em múltiplos segmentos de dados e, especificamente, usa dados que se encontram dentro de uma partição lógica como um segmento de dados. Um valor de chave exclusivo é definido para cada partição lógica do sistema de armazenamento distribuído, e um valor de chave que corresponde a uma partição lógica que cada segmento de dados se encontra é um valor de chave que corresponde ao segmento de dados. O aparelho de entrega de dados adiciona o valor de chave ao segmento de dados e entrega o segmento de dados ao nó primário, em que uma faixa de EC gerada pelo nó primário de acordo com o segmento de dados tem um valor de chave igual ao do segmento de dados.
[78] Pode-se visualizar a partir da descrição antecedente que o valor de chave pode ser usado para identificar uma faixa de endereço de dados. Além disso, é mencionado na etapa 205 que, após um nó de armazenamento alvo receber a mensagem de execução, o nó de armazenamento alvo lê o arquivo de registro de preparação a partir da localização de armazenamento do arquivo de registro de preparação, e grava o bloco de EC alvo incluído no arquivo de registro de preparação na localização que é usada para armazenar o bloco de EC alvo e no nó de armazenamento alvo. Especificamente, se o nó de armazenamento alvo não armazenar um bloco de EC que tem um valor de chave igual ao valor de chave portado no bloco de EC alvo no arquivo de registro de preparação, o nó de armazenamento alvo aloca uma nova localização de armazenamento ao bloco de EC alvo. Se o nó de armazenamento alvo armazenar um bloco de EC que tem um valor de chave igual ao valor de chave portado no bloco de EC alvo no arquivo de registro de preparação, que indica que dados antigos foram gravados em uma faixa de endereço do bloco de EC alvo, o nó de armazenamento alvo grava o bloco de EC alvo em uma localização originalmente usada para armazenar um bloco de EC que tem um valor de chave igual ao valor de chave do bloco de EC alvo, para regravar os dados antigos com novos dados. Pode-se entender que visto que os novos dados regravam os dados antigos, valores de chave de múltiplos blocos de EC armazenados em cada nó de armazenamento são diferentes um do outro.
[79] Um conceito de um número de versão de uma faixa de EC é introduzido adicionalmente nessa modalidade da presente invenção.
Petição 870160025496, de 03/06/2016, pág. 37/139
29/61
Especificamente, o número de versão é usado para identificar um grau novo ou antigo de duas faixas de EC que têm um mesmo valor de chave. Uma faixa de EC nova gravada regrava uma faixa de EC antiga. Por exemplo, em um momento, um nó primário gera uma faixa de EC, em que uma faixa de endereço de uma parte de dados é 4M a 8M, um valor de chave é 2, e um número de versão da faixa de EC é 1, o nó primário aloca a faixa de EC que tem o número de versão 1 a seis nós de armazenamento para armazenamento. Uma hora depois, o nó primário gera novamente outra faixa de EC, em que uma faixa de endereço de uma parte de dados é 4M a 8M, um valor de chave é 2, e um número de versão da faixa de EC é 2. O nó primário grava a faixa de EC que tem o número de versão 2 em uma localização originalmente usada para armazenar a faixa de EC que tem o número de versão 1, de modo que a faixa de EC que tem o número de versão 2 regrave a faixa de EC que tem o número de versão 1. O número de versão da faixa de EC alvo pode ser portada em cada bloco de EC alvo da faixa de EC alvo.
[80] Nessa modalidade da presente invenção, a mensagem de preparação enviada pelo nó primário a um nó de armazenamento alvo inclui adicionalmente um número de versão da faixa de EC alvo e, adicionalmente, o arquivo de registro de preparação gerado pelo nó de armazenamento alvo de acordo com a mensagem de preparação também inclui o número de versão da faixa de EC alvo. A mensagem de execução instrui especificamente os m+k nós de armazenamento alvo a gravarem os blocos de EC alvo e o número de versão da faixa de EC alvo que estão nos arquivos de registro de preparação. Após o conceito do número de versão ser introduzido, se o armazenamento da faixa de EC é consistente ou não pode ser determinado de acordo com o número de versão. Se os números de versão da faixa de EC alvo gravados nos nós de armazenamento alvo para armazenar a faixa de EC alvo forem os mesmos, indica que o armazenamento da faixa de EC alvo é consistente; se os números de versão da faixa de EC alvo gravados nos nós de armazenamento alvo para armazenar a faixa de EC alvo forem diferentes, indica que o armazenamento da faixa de EC alvo é inconsistente.
[81] Como os nós de armazenamento em um grupo de nó de armazenamento do sistema de armazenamento distribuído pode ter uma falha a qualquer momento, o grupo de nó de armazenamento precisa ser mantido. O
Petição 870160025496, de 03/06/2016, pág. 38/139
30/61 grupo de nó de armazenamento pode ser mantido de múltiplos modos, por exemplo, um módulo de gerenciamento de grupo de nó adicional pode ser disposto. O módulo de gerenciamento de grupo de nó pode ser implantado em um aparelho de entrega de dados, ou pode ser implantado em um nó de armazenamento, que não é limitado nessa modalidade da presente invenção. O módulo de gerenciamento de grupo de nó é responsável por manter cada grupo de nó de armazenamento. Especificamente, o módulo de gerenciamento de grupo de nó pode ser responsável por coletar informações sobre nós de armazenamento incluídos em cada grupo de nó de armazenamento, determinar um nó primário, e monitorar uma situação de cada nó de armazenamento em tempo real com o uso de uma conexão de pulsação. Quando uma situação de um nó de armazenamento muda ou um nó primário em um grupo de nó muda, o módulo de gerenciamento de grupo de nó precisa atualizar as informações coletadas. O módulo de gerenciamento de grupo de nó notifica as informações coletadas a cada nó de armazenamento para registro, de modo que cada aparelho de entrega de dados e nó de armazenamento possam aprender as informações sobre cada grupo de nó. As informações coletadas pelo módulo de gerenciamento de grupo de nó podem ser representadas simplesmente em uma forma de Tabela (1):
TABELA (1)
ID de grupo de nó Identidade de nó Situação de nó
Grupo de nó 1 A Nó primário ***Normal
B Nó secundário ***Normal
C Nó secundário Com falha
[82] A Tabela (1) é apenas uma forma de representação das informações coletadas pelo módulo de gerenciamento de grupo de nó. O módulo de gerenciamento de grupo de nó pode representar as informações coletadas em outras formas, que não é limitada nessa modalidade da presente invenção.
[83] Após determinar os nós de armazenamento alvo na etapa
Petição 870160025496, de 03/06/2016, pág. 39/139
31/61
202, se o nó primário detectar, com o uso de o módulo de gerenciamento de grupo de nó, que um nó de armazenamento com falha existe nos m+k nós de armazenamento alvo, o nó primário precisa interromper um procedimento de armazenamento de dados e recuperar o nó de armazenamento com falha. Após o nó de armazenamento com falha ser recuperado, o nó primário precisa continuar o procedimento de armazenamento de dados. Para detalhes, fazer referência às etapas 1 a 3:
[84] Etapa 1: Determinar se os números de versão da faixa de EC alvo nos m+k nós de armazenamento alvo são os mesmos. Se um nó de armazenamento alvo gerou um arquivo de registro de preparação, o número de versão da faixa de EC alvo no nó de armazenamento alvo pode ser um número de versão da faixa de EC alvo no arquivo de registro de preparação; se um nó de armazenamento alvo não tiver arquivo de registro de preparação, o número de versão da faixa de EC alvo no nó de armazenamento alvo pode ser um número de versão da faixa de EC alvo que foi armazenado pelo nó de armazenamento alvo.
[85] Se os números de versão da faixa de EC alvo em todos os nós de armazenamento alvo nos m+k nós de armazenamento alvo forem os mesmos, indica que nós de armazenamento alvo que não têm arquivo de registro de preparação concluíram a operação de gravação de blocos de EC alvo a serem armazenados, e a etapa 2 é executada.
[86] Se os números de versão da faixa de EC alvo nos m+k nós de armazenamento alvo forem diferentes, indica que os nós de armazenamento alvo que não têm arquivo de registro de preparação não geram arquivos de registro de preparação e, adicionalmente, não gravam blocos de EC alvo a serem armazenados, e a etapa 3 é executada.
[87] Etapa 2: Enviar uma mensagem de execução aos nós de armazenamento alvo que geraram arquivos de registro de preparação, em que a mensagem de execução é usada para instruir os nós de armazenamento alvo a gravarem os blocos de EC alvo incluídos nos arquivos de registro de preparação. Após receber a mensagem de execução, os nós de armazenamento alvo que geraram arquivos de registro de preparação gravam os blocos de EC alvo incluídos nos arquivos de registro de preparação, de
Petição 870160025496, de 03/06/2016, pág. 40/139
32/61 modo que a faixa de EC alvo seja armazenada nos nós de armazenamento alvo de modo consistente.
[88] Etapa 3: Enviar uma mensagem de exclusão aos nós de armazenamento alvo que geraram arquivos de registro de preparação, em que a mensagem de exclusão é usada para instruir os nós de armazenamento alvo a excluírem os arquivos de registro de preparação. Após receber a mensagem de exclusão, os nós de armazenamento alvo que geraram arquivos de registro de preparação excluem arquivos de registro de preparação armazenados localmente, de modo que os blocos de EC alvo da faixa de EC alvo não sejam gravados em qualquer nó de armazenamento alvo.
[89] Particularmente, se o nó de armazenamento com falha for o nó primário, um módulo de gerenciamento de grupo de nó pode especificar um nó secundário como um novo nó primário e, então, reexecutar as etapas 1 a 3.
[90] Na modalidade antecedente, o método de armazenamento de dados fornecido por essa modalidade da presente invenção é descrito a partir da perspectiva de um nó primário. Na modalidade a seguir, o método de armazenamento de dados fornecido por essa modalidade da presente invenção é explicado a partir da perspectiva de um nó secundário. Referindo-se à Figura 3, um procedimento básico do método inclui:
[91] 301. Receber uma mensagem de preparação enviada por um nó primário.
[92] O nó primário gera uma faixa de EC alvo, e determina m+k nós de armazenamento alvo usados para armazenar a faixa de EC alvo. O nó secundário nessa modalidade da presente invenção é um nó nos nós de armazenamento alvo.
[93] O nó secundário recebe uma mensagem de preparação enviada por um nó primário, em que a mensagem de preparação é enviada quando o nó primário determina que o nó secundário é um nó de armazenamento alvo usado para armazenar um bloco de EC alvo, e a mensagem de preparação inclui o bloco de EC alvo a ser armazenado pelo nó secundário.
[94] 302. Gerar um arquivo de registro de preparação de acordo
Petição 870160025496, de 03/06/2016, pág. 41/139
33/61 com a mensagem de preparação.
[95] Após receber a mensagem de preparação enviada pelo nó primário, o nó secundário gera um arquivo de registro de preparação de acordo com a mensagem de preparação, em que o arquivo de registro de preparação é armazenado no nó secundário localmente. Um propósito do arquivo de registro de preparação é essencial mente armazenar de modo temporário um bloco de EC a ser armazenado pelo nó secundário. Portanto, uma localização de armazenamento do arquivo de registro de preparação não é uma localização de armazenamento final do bloco de EC alvo. Em uma aplicação real, o arquivo de registro de preparação pode ser um arquivo de registro ou um bloco de dados, ou em qualquer outra forma, que não é limitada nessa modalidade, mas o arquivo de registro de preparação precisa incluir o bloco de EC alvo portado na mensagem de preparação. O arquivo de registro de preparação inclui o bloco de EC alvo a ser armazenado pelo nó de armazenamento secundário.
[96] 303. Enviar uma mensagem de resposta ao nó primário.
[97] Após gerar o arquivo de registro de preparação, o nó secundário envia uma mensagem de resposta ao nó primário, em que a mensagem de resposta é usada para indicar que o nó secundário gerou o arquivo de registro de preparação de acordo com a mensagem de preparação.
[98] Pode-se entender que outros nós de armazenamento alvo em um grupo de nó de armazenamento também enviam mensagens de resposta ao nó primário.
[99] 304. Receber uma mensagem de execução enviada pelo nó primário.
[100] O nó secundário recebe uma mensagem de execução enviada pelo nó primário, em que a mensagem de execução é enviada após o nó primário receber as mensagens de resposta de todos os nós de armazenamento alvo, e a mensagem de execução é usada para instruir a gravar o bloco de EC alvo incluído no arquivo de registro de preparação.
[101] 305. Gravar um bloco de EC alvo incluído no arquivo de registro de preparação.
[102] Após receber a mensagem de execução, o nó secundário
Petição 870160025496, de 03/06/2016, pág. 42/139
34/61 grava o bloco de EC alvo portado no arquivo de registro de preparação.
[103] Nessa modalidade, o método de armazenamento de dados fornecido por essa modalidade da presente invenção é descrito a partir da perspectiva de um nó secundário. Um nó secundário recebe uma mensagem de preparação enviada por um nó primário, gera um arquivo de registro de preparação de acordo com a mensagem de preparação, envia uma mensagem de resposta ao nó primário, recebe uma mensagem de execução enviada pelo nó primário, e grava um bloco de EC alvo incluído no arquivo de registro de preparação de acordo com a mensagem de execução. No método fornecido por essa modalidade, o nó secundário não grava diretamente um bloco de EC alvo a ser armazenado, mas primeiro grava o bloco de EC alvo a ser armazenado em um arquivo de registro de preparação gerado localmente e, após receber a mensagem de execução enviada pelo nó primário, grava o bloco de EC alvo. Portanto, mesmo se o nó secundário estiver com falha no processo de gravação do bloco de EC alvo, o bloco de EC alvo foi armazenado no arquivo de registro de preparação do nó secundário. Desse modo, pode-se garantir que o bloco de EC alvo não está perdido independentemente de se a operação de gravação do bloco de EC alvo é bem sucedida. Se nenhum dos blocos de EC alvo em todos os nós de armazenamento alvo determinados pelo nó primário estiver perdido, um caso em que uma parte dos nós de armazenamento alvo tem blocos de EC alvo de uma faixa de EC alvo, mas a outra parte dos nós de armazenamento alvo não tem blocos de EC alvo da faixa de EC alvo pode ser evitado, a faixa de EC alvo pode ser armazenada de modo consistente, e a consistência de armazenamento de um sistema de armazenamento distribuído é aperfeiçoada.
[104] Preferencialmente, em ainda outra modalidade da presente invenção, a mensagem de preparação enviada pelo nó primário e recebida pelo nó secundário inclui adicionalmente um número de versão da faixa de EC alvo gerado pelo nó primário e, adicionalmente, o arquivo de registro de preparação gerado pelo nó secundário de acordo com a mensagem de preparação também inclui o número de versão da faixa de EC alvo. O nó secundário também grava o número de versão da faixa de EC alvo ao gravar o bloco de EC alvo de acordo com a mensagem de execução.
[105] Preferencialmente, em ainda outra modalidade da presente
Petição 870160025496, de 03/06/2016, pág. 43/139
35/61 invenção, para garantir que o arquivo de registro de preparação gerado não está perdido quando o nó secundário estiver com falha, o nó secundário pode gravar o arquivo de registro de preparação em um meio de proteção de falha de potência.
[106] Na modalidade mostrada na Figura 1, é mencionado na etapa 3 que, se o nó primário determinar que os números de versão da faixa de EC alvo nos nós de armazenamento alvo sejam diferentes, o nó primário envia uma mensagem de exclusão aos nós de armazenamento alvo que geraram arquivos de registro de preparação. Portanto, preferencialmente, em ainda outra modalidade da presente invenção, antes da etapa 304, o nó secundário pode receber adicional mente a mensagem de exclusão enviada pelo nó primário. Após receber a mensagem de exclusão, o nó secundário exclui o arquivo de registro de preparação armazenado localmente.
[107] Para facilitar o entendimento da modalidade antecedente, o que vem a seguir usa um cenário de aplicação específico da modalidade antecedente como um exemplo para descrição. Para um procedimento específico, fazer referência à Figura 4.
[108] O sistema de armazenamento distribuído armazena dados em uma forma de uma faixa de EC, e cada faixa de EC inclui quatro blocos de dados e dois blocos de paridade. O sistema de armazenamento distribuído inclui 100 grupos de nó de armazenamento. Um grupo de nó de armazenamento 1 inclui seis nós de armazenamento, em que um nó primário é um nó A, e nós secundários são um nó B, um nó C, um nó D, um nó E e um nó F.
[109] 401. Gerar uma faixa de EC alvo. O nó A recebe um segmento de dados entregue por um aparelho de entrega de dados, e realiza codificação de EC no segmento de dados para obter a faixa de EC alvo. Um número de versão da faixa de EC alvo é 3, e uma faixa de endereço de uma parte de dados da faixa de EC alvo é 4M a 8M.
[110] 402. Determinar nós de armazenamento alvo. O nó A determina que nós de armazenamento alvo usados para armazenar seis blocos de EC da faixa de EC alvo são os nós A a F.
[111] 403. Enviar uma mensagem de preparação. O nó A envia
Petição 870160025496, de 03/06/2016, pág. 44/139
36/61 uma mensagem de preparação aos nós A a F, em que a mensagem de preparação enviada a cada nó porta um bloco de EC alvo e um número de versão da faixa de EC alvo, e os nós A a F recebem a mensagem de preparação.
[112] 404. Gerar um arquivo de registro de preparação. Os nós A a F geram arquivos de registro de preparação, em que os arquivos de registro de preparação incluem blocos de EC alvo a serem armazenados e números de versão da faixa de EC alvo.
[113] 405. Enviar uma mensagem de resposta. Os nós A a F enviam mensagens de resposta ao nó A após gerar os arquivos de registro de preparação. O nó A recebe as mensagens de resposta enviadas pelo nós A a F.
[114] 406. Enviar uma mensagem de execução. Após receber as mensagens de resposta enviadas pelos nós A a F, o nó A envia uma mensagem de execução aos nós A a F, e os nós A a F recebem a mensagem de execução.
[115] 407. Os nós A a E gravam os blocos de EC alvo e os números de versão que estão nos arquivos de registro de preparação, e o nó F está com falha. Após o nó A enviar a mensagem de execução, os nós A a E gravam os blocos de EC alvo e os números de versão que estão nos arquivos de registro de preparação, e o nó F está com falha no processo de receber a mensagem de execução.
[116] 408. Determinar que os números de versão da faixa de EC alvo sejam os mesmos. O nó A determina que o nó F está com falha e, portanto, após o nó F ser recuperado da falha, determina se os números de versão da faixa de EC alvo nos nós A a F são ou não os mesmos. Os nós A a E não têm arquivo de registro de preparação, e os números de versão da faixa de EC alvo que são portados em blocos de EC alvo armazenados são 3. O nó F tem um arquivo de registro de preparação, e um número de versão da faixa de EC alvo que é portado em um bloco de EC alvo no arquivo de registro de preparação é 3.
[117] 409. O nó A envia uma mensagem de execução ao nó F. O nó F recebe a mensagem de execução.
Petição 870160025496, de 03/06/2016, pág. 45/139
37/61 [118] 410. O nó F grava o bloco de EC alvo e o número de versão que estão no arquivo de registro de preparação.
[119] É mencionado na modalidade antecedente que, se um nó de armazenamento alvo estiver com falha, um procedimento de armazenamento de dados precisa ser executado após a recuperação de falha do nó de armazenamento com falha. Entretanto, a falha pode causar uma perda de dados no nó de armazenamento com falha. Nesse caso, o nó primário precisa obter um bloco de EC perdido do nó de armazenamento com falha através de computação com o uso de uma tecnologia de EC de acordo com um bloco de EC armazenado por outro nó de armazenamento no grupo de nó de armazenamento e, então, sincronizar o bloco de EC obtido através de computação ao nó de armazenamento com falha que é recuperado. Portanto, uma modalidade da presente invenção fornece um método de recuperação de dados, que inclui especificamente:
[120] 501. Receber uma mensagem de recuperação enviada por um nó de armazenamento com falha.
[121] Um nó de armazenamento com falha existe em qualquer grupo de nó de armazenamento em um sistema de armazenamento distribuído. Após o nó de armazenamento com falha ser recuperado, o nó de armazenamento com falha envia uma mensagem de recuperação a um nó primário, em que a mensagem de recuperação é usada para indicar que o nó de armazenamento com falha foi recuperado. O nó de armazenamento primário recebe a mensagem de recuperação.
[122] 502. Obter N blocos de EC perdidos do nó de armazenamento com falha através de computação.
[123] Conforme mencionado acima, o sistema de armazenamento distribuído armazena dados em uma forma de uma faixa de EC com o uso de uma tecnologia de EC, uma faixa de EC inclui m+k blocos de EC, que são respectivamente armazenados em m+k nós de armazenamento em um grupo de nó de armazenamento, e uma faixa de EC é tolerável a uma perda de k blocos de EC. Com o uso de uma faixa de EC A como um exemplo, se um bloco de EC da faixa de EC A estiver perdido no nó de armazenamento com falha, o nó primário pode obter o bloco de EC perdido do nó de
Petição 870160025496, de 03/06/2016, pág. 46/139
38/61 armazenamento com falha através de computação com o uso de a tecnologia de EC de acordo com outros blocos de EC da faixa de EC A que são armazenados por nós sem falha.
[124] Portanto, nessa modalidade, após receber a mensagem de recuperação, o nó primário obtém os N blocos de EC perdidos do nó de armazenamento com falha através de computação de acordo com blocos de EC armazenados por nós de armazenamento sem falha (a saber, nós de armazenamento exceto o nó de armazenamento com falha) em um grupo de nó de armazenamento ao qual o nó primário pertence.
[125] Conforme mencionado acima, valores de chave de múltiplos blocos de EC armazenados em cada nó de armazenamento são diferentes um do outro e, portanto, os N blocos de EC perdidos do nó de armazenamento com falha devem portar valores de chave diferentes.
[126] 503. Enviar sequencialmente os N blocos de EC perdidos ao nó de armazenamento com falha para executar armazenamento; no processo de envio sequencial dos N blocos de EC perdidos ao nó de armazenamento com falha, se o nó primário gerar um primeiro bloco de EC e determinar que o primeiro bloco de EC deve ser armazenado pelo nó de armazenamento com falha, determinar se um segundo bloco de EC que tem um mesmo valor de chave do primeiro bloco de EC existe nos blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido pelo nó de armazenamento com falha; e se um resultado de determinação for sim, após o nó de armazenamento com falha armazenar de modo bem-sucedido o segundo bloco de EC, enviar o primeiro bloco de EC ao nó de armazenamento com falha para executar armazenamento.
[127] Após obter os N blocos de EC perdidos do nó de armazenamento com falha através de computação, o nó primário dispõe os N blocos de EC perdidos em uma fila de envio, e envia sequencialmente os N blocos de EC perdidos ao nó de armazenamento com falha.
[128] No processo de envio sequencial dos N blocos de EC perdidos ao nó de armazenamento com falha, se o nó primário gerar uma nova faixa de EC novamente e determinar que um primeiro bloco de EC na nova faixa de EC deve ser armazenado pelo nó de armazenamento com falha, o nó
Petição 870160025496, de 03/06/2016, pág. 47/139
39/61 primário determina se um segundo bloco de EC existe nos blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido pelo nó de armazenamento com falha, em que o segundo bloco de EC tem um mesmo valor de chave do primeiro bloco de EC.
[129] Pode-se entender que, se o nó primário enviar diretamente, após gerar o primeiro bloco de EC, o primeiro bloco de EC ao nó de armazenamento com falha para executar armazenamento, mas o segundo bloco de EC existe nos blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido pelo nó de armazenamento com falha, quando o nó primário continua a executar a operação de envio sequencial dos N blocos de EC perdidos ao nó de armazenamento com falha, um caso em que o segundo bloco de EC regrava dados do primeiro bloco de EC pode ser causado. Para evitar a substituição do primeiro bloco de EC novo pelo segundo bloco de EC antigo, nessa modalidade, se o nó primário determinar que o segundo bloco de EC existe nos blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido pelo nó de armazenamento com falha, o nó primário insere o primeiro bloco de EC após o segundo bloco de EC na fila de envio, ou seja, o nó primário não envia o primeiro bloco de EC ao nó de armazenamento com falha primeiro, mas após o nó de armazenamento com falha armazenar de modo bem-sucedido o segundo bloco de EC, envia o primeiro bloco de EC ao nó de armazenamento com falha para executar armazenamento.
[130] Essa modalidade fornece um método de recuperação de dados, em que após um nó de armazenamento com falha ser recuperado, um nó primário obtém N blocos de EC perdidos do nó de armazenamento com falha através de computação, e envia sequencialmente os N blocos de EC perdidos ao nó de armazenamento com falha para executar armazenamento. No processo de envio sequencial dos N blocos de EC perdidos ao nó de armazenamento com falha, se o nó primário gerar uma nova faixa de EC novamente e determinar que um primeiro bloco de EC na nova faixa de EC deve ser armazenado pelo nó de armazenamento com falha, o nó primário determina se um segundo bloco de EC existe nos blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido pelo nó de armazenamento com falha, em que o segundo bloco de EC tem um mesmo
Petição 870160025496, de 03/06/2016, pág. 48/139
40/61 valor de chave do primeiro bloco de EC. Se for determinado que o segundo bloco de EC existe, após o nó de armazenamento com falha armazenar o segundo bloco de EC, o nó primário envia o primeiro bloco de EC ao nó de armazenamento com falha para executar armazenamento. Esse método pode evitar a substituição de novos dados por dados antigos, e garantir que um bloco de EC armazenado no nó de armazenamento com falha após recuperação seja uma versão mais recente.
[131] Na etapa 503, o nó primário envia sequencialmente os N blocos de EC perdidos ao nó de armazenamento com falha para executar armazenamento. Especificamente, o nó primário envia um primeiro bloco de EC perdido nos N blocos de EC perdidos ao nó de armazenamento com falha primeiro e, após enviar um nesimo bloco de EC perdido ao nó de armazenamento com falha, o nó primário recebe uma mensagem de resposta que corresponde ao nesimo bloco de EC perdido, em que a mensagem de resposta é enviada pelo nó de armazenamento com falha, e é usada para indicar que o nó de armazenamento com falha armazenou de modo bemsucedido o nesimo bloco de EC perdido. Após receber a mensagem de resposta que corresponde ao nesimo bloco de EC perdido, o nó primário envia um próximo bloco de EC perdido ao nó de armazenamento com falha novamente, em que 1<n<N. Que o nó primário envia sequencialmente os N blocos de EC perdidos ao nó de armazenamento com falha pode ser resumido nas etapas a seguir:
[132] Etapa 1: O nó primário envia o nesimo bloco de EC perdido ao nó de armazenamento com falha, em que um valor inicial de n quando o procedimento é iniciado é 1, e n não é maior do que N.
[133] Etapa 2: Após enviar o nesimo bloco de EC perdido ao nó de armazenamento com falha, o nó primário recebe a mensagem de resposta que corresponde ao nesimo bloco de EC perdido.
[134] Etapa 3: Após receber a mensagem de resposta que corresponde ao nesimo bloco de EC perdido, se n<N, o nó primário adiciona 1 ao valor de n, e reexecuta a etapa 1.
[135] O nó primário pode enviar, executando-se a etapa 1 a etapa 3 de modo cíclico, os N blocos de EC perdidos ao nó de armazenamento com falha para executar armazenamento.
Petição 870160025496, de 03/06/2016, pág. 49/139
41/61 [136] Se uma mensagem de resposta for usada para indicar que o nó de armazenamento com falha armazenou de modo bem-sucedido um bloco de EC perdido, que após o nó de armazenamento com falha armazenar de modo bem-sucedido o segundo bloco de EC, o nó primário envia o primeiro bloco de EC ao nó de armazenamento com falha para armazenamento na etapa 503 deve ser especificamente: após enviar o segundo bloco de EC ao nó de armazenamento com falha e receber uma mensagem de resposta enviada pelo nó de armazenamento com falha em relação ao segundo bloco de EC, o nó primário envia o primeiro bloco de EC ao nó de armazenamento com falha para executar armazenamento.
[137] Na etapa 503, o nó primário precisa determinar se o segundo bloco de EC existe nos blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido pelo nó de armazenamento com falha nos N blocos de EC perdidos. Pode-se entender que os blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido pelo nó de armazenamento com falha devem incluir os blocos de EC perdidos que não são enviados atualmente pelo nó primário ao nó de armazenamento com falha e os blocos de EC perdidos que são enviados atualmente ao nó de armazenamento com falha, mas mensagens de resposta que correspondem aos quais não são recebidas.
[138] Conforme mencionado acima, um volume lógico do sistema de armazenamento distribuído pode ser dividido em múltiplas partições lógicas, e cada partição lógica é de um tamanho de k blocos de dados e não se sobrepõe à outra. Um valor de chave exclusivo é definido para cada partição lógica do sistema de armazenamento distribuído, e um valor de chave que corresponde a uma partição lógica que cada segmento de dados se encontra é um valor de chave que corresponde ao segmento de dados. Um aparelho de entrega de dados adiciona o valor de chave ao segmento de dados e entrega o segmento de dados ao nó primário, em que uma faixa de EC gerada pelo nó primário de acordo com o segmento de dados tem um mesmo valor de chave do segmento de dados, enquanto um valor de chave da faixa de EC é portado em blocos de EC da faixa de EC. Portanto, pode-se entender que um valor de chave de uma partição lógica que cada bloco de EC se encontra é um valor de chave do bloco de EC.
Petição 870160025496, de 03/06/2016, pág. 50/139
42/61 [139] Para facilitar o entendimento da modalidade antecedente, o que vem a seguir usa um cenário de aplicação específico da modalidade antecedente para descrição.
[140] O sistema de armazenamento distribuído armazena dados em uma forma de uma faixa de EC, e cada faixa de EC inclui quatro blocos de dados e dois blocos de paridade. O sistema de armazenamento distribuído inclui 100 grupos de nó de armazenamento. Um grupo de nó de armazenamento 1 inclui seis nós de armazenamento, em que um nó primário é um nó A, e nós secundários são um nó B, um nó C, um nó D, um nó E e um nó F. Em um momento, o nó F está com falha. Três horas depois, o nó F está recuperado, mas os dados são perdidos.
[141] O nó F envia uma mensagem de recuperação ao nó A, para notificar o nó A que o nó F está recuperado da falha. O nó A recebe a mensagem de recuperação.
[142] Após receber a mensagem de recuperação, o nó A obtém 200 blocos de EC perdidos do nó F através de computação de acordo com todos blocos de EC armazenados pelo nó A, nó B, nó C, nó D e nó E.
[143] O nó primário envia um bloco de EC perdido ao nó F cada vez e, após receber uma mensagem de resposta do nó F em relação ao bloco de EC perdido, envia um próximo bloco de EC perdido. Desse modo, os 200 blocos de EC perdidos são enviados sequencialmente ao nó F.
[144] Após um 151° bloco de EC perdido ser enviado ao nó F, o nó A gera uma nova faixa de EC de acordo com um segmento de dados entregue por um aparelho de entrega de dados, e determina que um primeiro bloco de EC na nova faixa de EC deve ser armazenado pelo nó F, em que um valor de chave do primeiro bloco de EC é 25.
[145] Visto que o nó A não recebeu uma mensagem de resposta enviada pelo nó F em relação ao 151s bloco de EC perdido, o nó A determina se um segundo bloco de EC que tem um valor de chave 25 existe em 151s a 200s blocos de EC perdidos. O nó A determina que um valor de chave de um 190s bloco de EC perdido é 25.
[146] O nó A não envia o primeiro bloco de EC ao nó F temporariamente e, após enviar o 190s bloco de EC perdido ao nó F e receber
Petição 870160025496, de 03/06/2016, pág. 51/139
43/61 uma mensagem de resposta que é enviada pelo nó F em relação ao 190s bloco de EC perdido, envia o primeiro bloco de EC ao nó F.
[147] O nó A envia todos os 200 blocos de EC perdidos ao nó F, e o nó F conclui recuperação de dados.
[148] A modalidade antecedente fornece um armazenamento de dados ou método de recuperação de dados fornecido pelas modalidades da presente invenção. O aparelho correspondente é fornecido abaixo para implantar o método antecedente.
[149] Uma modalidade da presente invenção fornece um aparelho de armazenamento de dados, em que o aparelho de armazenamento de dados é implantado em um nó de armazenamento primário em qualquer grupo de nó de armazenamento e inclui especificamente:
um módulo de codificação de dados 601 configurado para receber um segmento de dados a ser armazenado, e realizar codificação de EC no segmento de dados a ser armazenado para obter uma faixa de EC alvo, em que um tamanho do segmento de dados a ser armazenado não é maior do que Z, Z é um tamanho de m blocos de dados, e a faixa de EC alvo inclui m+k blocos de EC alvo, que incluem especificamente m blocos de dados alvo e k blocos de paridade alvo;
um módulo de determinação de nó 602, configurado para determinar, em um grupo de nó de armazenamento, m+k nós de armazenamento alvo usados para armazenar os m+k blocos de EC alvo, em que cada nó de armazenamento alvo é configurado para armazenar um bloco de EC alvo;
um módulo de envio de mensagem 603 configurado para enviar uma mensagem de preparação aos m+k nós de armazenamento alvo separadamente, em que cada mensagem de preparação inclui um bloco de EC alvo a ser armazenado por cada nó de armazenamento alvo; e um módulo de recepção de mensagem 604 configurado para receber uma mensagem de resposta enviada por qualquer nó de armazenamento alvo dos m+k nós de armazenamento alvo, em que a mensagem de resposta é usada para indicar que o nó de armazenamento secundário alvo que envia atualmente a mensagem de resposta gerou um arquivo de registro de preparação de acordo com a mensagem de preparação, e o arquivo de registro de preparação inclui um bloco de EC alvo a ser armazenado pelo nó de
Petição 870160025496, de 03/06/2016, pág. 52/139
44/61 armazenamento alvo que envia atualmente a mensagem de resposta, em que o módulo de envio de mensagem 603 é configurado adicionalmente para enviar uma mensagem de execução aos m+k nós de armazenamento alvo após o módulo de recebimento de mensagem 604 receber mensagens de resposta de todos os nós de armazenamento alvo nos m+k nós de armazenamento alvo, em que a mensagem de execução é usada para instruir os m+k nós de armazenamento alvo a gravarem os blocos de EC alvo incluídos nos arquivos de registro de preparação.
[150] No aparelho de armazenamento de dados fornecido por essa modalidade, um módulo de codificação de dados 601 realiza codificação de EC em um segmento de dados a ser armazenado para obter uma faixa de EC alvo; um módulo de determinação de nó 602 determina, em nós de armazenamento secundários em um grupo de nó de armazenamento, os m+k nós de armazenamento alvo usados para armazenar os m+k blocos de EC alvo; um módulo de envio de mensagem 603 envia uma mensagem de preparação aos nós de armazenamento alvo; um módulo de recepção de mensagem 604 recebe mensagens de resposta enviadas pelos nós de armazenamento alvo; e o módulo de envio de mensagem 603 envia uma mensagem de execução a todos os nós de armazenamento alvo após receber mensagens de resposta de todos os nós de armazenamento alvo, para instruir os nós de armazenamento alvo a gravarem os blocos de EC alvo que estão nos arquivos de registro de preparação. Com o uso do aparelho de armazenamento de dados fornecido por essa modalidade, os m+k nós de armazenamento alvo usados para armazenar a faixa de EC alvo não gravam diretamente os blocos de EC alvo a serem armazenados, mas primeiro gravam os blocos de EC alvo a serem armazenados em arquivos de registro de preparação gerados localmente e, após todos os nós de armazenamento alvo gerarem arquivos de registro de preparação, gravam os blocos de EC alvo. Um nó de armazenamento alvo executa uma operação de gravação de um bloco de EC alvo em uma localização correta apenas em um caso em que todos os nós de armazenamento alvo geraram arquivos de registro de preparação. Mesmo se uma falha ocorrer no processo de gravação do bloco de EC alvo pelo nó de armazenamento alvo, o bloco de EC alvo foi armazenado em um arquivo de registro de preparação do nó de armazenamento alvo. Desse modo,
Petição 870160025496, de 03/06/2016, pág. 53/139
45/61 pode-se garantir que o bloco de EC alvo não está perdido independentemente de se a operação de gravação do bloco de EC alvo é bem sucedida. Portanto, um caso em que uma parte dos nós de armazenamento alvo tem blocos de EC alvo da faixa de EC alvo, mas a outra parte dos nós de armazenamento alvo não tem blocos de EC alvo da faixa de EC alvo é evitado, a faixa de EC alvo pode ser armazenada de modo consistente, e a consistência de armazenamento de um sistema de armazenamento distribuído é aperfeiçoada.
[151] Preferencialmente, em ainda outra modalidade da presente invenção, para garantir que um arquivo de registro de preparação gerado por um nó de armazenamento alvo não seja perdido quando o nó de armazenamento alvo estiver com falha, o nó de armazenamento alvo pode gravar o arquivo de registro de preparação em um meio de proteção de falha de potência.
[152] Preferencialmente, em ainda outra modalidade da presente invenção, a mensagem de preparação enviada pelo nó primário a um nó de armazenamento alvo inclui adicionalmente um número de versão da faixa de EC alvo e, adicionalmente, o arquivo de registro de preparação gerado pelo nó de armazenamento alvo de acordo com a mensagem de preparação também inclui o número de versão da faixa de EC alvo. A mensagem de execução instrui especificamente os m+k nós de armazenamento alvo a gravarem os blocos de EC alvo e o número de versão da faixa de EC alvo que estão nos arquivos de registro de preparação.
[153] Preferencialmente, em ainda outra modalidade da presente invenção, o aparelho de armazenamento de dados pode incluir adicionalmente um módulo de determinação de versão 605, configurado para: quando for detectado que um nó de armazenamento com falha existe nos m+k nós de armazenamento alvo, após recuperação de falha do nó de armazenamento com falha, determinar se os números de versão da faixa de EC alvo nos m+k nós de armazenamento alvo são os mesmos, em que os números de versão da faixa de EC alvo nos m+k nós de armazenamento alvo incluem números de versão da faixa de EC alvo em arquivos de registro de preparação em nós de armazenamento alvo que geraram arquivos de registro de preparação e/ou números de versão da faixa de EC alvo armazenados por nós de armazenamento alvo que não têm arquivo de registro de preparação. O módulo
Petição 870160025496, de 03/06/2016, pág. 54/139
46/61 de envio de mensagem 603 é configurado especificamente para: se os números de versão da faixa de EC alvo em todos os nós de armazenamento alvo nos m+k nós de armazenamento alvo forem os mesmos, enviar uma mensagem de execução aos nós de armazenamento alvo que geraram arquivos de registro de preparação; e se os números de versão da faixa de EC alvo nos nós de armazenamento alvo nos m+k nós de armazenamento alvo forem diferentes, enviar uma mensagem de exclusão aos nós de armazenamento alvo que geraram arquivos de registro de preparação, em que a mensagem de exclusão é usada para instruir os nós de armazenamento alvo a excluírem os arquivos de registro de preparação.
[154] Uma modalidade da presente invenção fornece adicionalmente um aparelho de armazenamento de dados implantado em um nó secundário. Referindo-se à Figura 7, uma estrutura do aparelho de armazenamento de dados inclui:
um módulo de recepção de mensagem 701 configurado para receber uma mensagem de preparação enviada por um nó de armazenamento primário, em que a mensagem de preparação inclui um bloco de EC alvo a ser armazenado pelo nó de armazenamento secundário em que o aparelho de armazenamento de dados está localizado;
um módulo de geração de arquivo de registro 702 configurado para gerar um arquivo de registro de preparação de acordo com a mensagem de preparação, em que o arquivo de registro de preparação inclui o bloco de EC alvo a ser armazenado pelo nó de armazenamento secundário;
um módulo de envio de mensagem 703 configurado para enviar uma mensagem de resposta ao nó de armazenamento primário, em que a mensagem de resposta é usada para indicar que o nó de armazenamento secundário gerou o arquivo de registro de preparação de acordo com a mensagem de preparação, em que o módulo de recepção de mensagem 701 é configurado adicionalmente para receber uma mensagem de execução enviada pelo nó de armazenamento primário; e um módulo de gravação de dados 704 configurado para gravar o bloco de EC alvo incluído no arquivo de registro de preparação de acordo com a mensagem de execução.
Petição 870160025496, de 03/06/2016, pág. 55/139
47/61 [155] No aparelho de armazenamento de dados fornecido por essa modalidade, um módulo de recepção de mensagem 701 recebe uma mensagem de preparação enviada por um nó primário; um módulo de geração de arquivo de registro 702 gera um arquivo de registro de preparação de acordo com a mensagem de preparação; um módulo de envio de mensagem 703 envia uma mensagem de resposta ao nó primário; o módulo de recepção de mensagem 701 recebe uma mensagem de execução enviada pelo nó primário; e um módulo de gravação de dados 704 grava um bloco de EC alvo incluído no arquivo de registro de preparação de acordo com a mensagem de execução. O aparelho de armazenamento de dados fornecido por essa modalidade não grava diretamente um bloco de EC alvo a ser armazenado, mas primeiro grava o bloco de EC alvo a ser armazenado em um arquivo de registro de preparação gerado localmente e, após receber a mensagem de execução enviada pelo nó primário, grava o bloco de EC alvo. Portanto, mesmo se o nó secundário estiver com falha no processo de gravação do bloco de EC alvo, o bloco de EC alvo foi armazenado no arquivo de registro de preparação do nó secundário. Desse modo, pode-se garantir que o bloco de EC alvo não está perdido independentemente de se a operação de gravação do bloco de EC alvo é bem sucedida. Se nenhum dos blocos de EC alvo em todos os nós de armazenamento alvo determinados pelo nó primário estiver perdido, um caso em que uma parte dos nós de armazenamento alvo tem blocos de EC alvo de uma faixa de EC alvo, mas a outra parte dos nós de armazenamento alvo não tem blocos de EC alvo da faixa de EC alvo pode ser evitado, a faixa de EC alvo pode ser armazenada de modo consistente, e a consistência de armazenamento de um sistema de armazenamento distribuído é aperfeiçoada.
[156] Preferencialmente, em ainda outra modalidade da presente invenção, o bloco de EC alvo a ser armazenado pelo nó de armazenamento secundário é um bloco de dados ou um bloco de paridade na faixa de EC alvo gerado pelo nó de armazenamento primário, a mensagem de preparação inclui adicionalmente um número de versão da faixa de EC alvo gerado pelo nó primário e, adicionalmente, o arquivo de registro de preparação gerado pelo nó secundário de acordo com a mensagem de preparação também inclui o número de versão da faixa de EC alvo. O nó secundário também grava o número de versão da faixa de EC alvo ao gravar o bloco de EC alvo de acordo
Petição 870160025496, de 03/06/2016, pág. 56/139
48/61 com a mensagem de execução.
[157] Preferencialmente, em ainda outra modalidade da presente invenção, o módulo de recepção de mensagem 701 é configurado adicionalmente para receber uma mensagem de exclusão enviada pelo nó de armazenamento primário; e o aparelho de armazenamento de dados pode incluir adicionalmente um módulo de exclusão de dados 705, configurado para excluir o arquivo de registro de preparação de acordo com a mensagem de exclusão.
[158] Pode-se entender que, se uma identidade de um nó de armazenamento é um nó primário ou um nó secundário pode ser definido livremente, e um nó de armazenamento pode ser um nó primário em um grupo de nó de armazenamento e também um nó secundário em outro grupo de nó de armazenamento. Portanto, os aparelhos de armazenamento de dados mostrados na Figura 6 e Figura 7 podem ser localizados em um mesmo nó de armazenamento.
[159] Para facilitar o entendimento da modalidade antecedente, o que vem a seguir usa um cenário de aplicação específico da modalidade antecedente como um exemplo para descrição. Para um procedimento específico, fazer referência ainda à Figura 4:
[160] O sistema de armazenamento distribuído armazena dados em uma forma de uma faixa de EC, e cada faixa de EC inclui quatro blocos de dados e dois blocos de paridade. O sistema de armazenamento distribuído inclui 100 grupos de nó de armazenamento. Um grupo de nó de armazenamento 1 inclui seis nós de armazenamento, em que um nó primário é um nó A, e nós secundários são um nó B, um nó C, um nó D, um nó E e um nó F.
[161] 401. Gerar uma faixa de EC alvo. O nó A recebe um segmento de dados entregue por um aparelho de entrega de dados, e um módulo de codificação de dados do nó A realiza codificação de EC no segmento de dados para obter a faixa de EC alvo. Um número de versão da faixa de EC alvo é 3, e uma faixa de endereço de uma parte de dados da faixa de EC alvo é 4M a 8M.
[162] 402. Determinar nós de armazenamento alvo, um módulo
Petição 870160025496, de 03/06/2016, pág. 57/139
49/61 de determinação de nó do nó A determina que nós de armazenamento alvo usados para armazenar seis blocos de EC da faixa de EC alvo são os nós A a F.
[163] 403. Enviar uma mensagem de preparação, um módulo de envio de mensagem do nó A envia uma mensagem de preparação aos nós A a F, em que a mensagem de preparação enviada a cada nó porta um bloco de EC alvo e um número de versão da faixa de EC alvo, e módulos de recepção de mensagem dos nós A a F recebem a mensagem de preparação.
[164] 404. Gerar um arquivo de registro de preparação. Módulos de geração de arquivo de registro dos nós A a F geram arquivos de registro de preparação, em que os arquivos de registro de preparação incluem blocos de EC alvo a serem armazenados e números de versão da faixa de EC alvo.
[165] 405. Enviar uma mensagem de resposta. Módulos de envio de mensagem dos nós A a F enviam mensagens de resposta ao nó A após gerar os arquivos de registro de preparação. O módulo de recepção de mensagem do nó A recebe as mensagens de resposta enviadas pelos nós A a F.
[166] 406. Enviar uma mensagem de execução aos nós A a F. Após receber as mensagens de resposta enviadas pelos nós A a F, o módulo de envio de mensagem do nó A envia uma mensagem de execução aos nós A a F, e os módulos de recepção de mensagem dos nós A a F recebem a mensagem de execução.
[167] 407. Os nós A a E gravam os blocos de EC alvo e os números de versão que estão nos arquivos de registro de preparação e o nó F está com falha. Após o nó A enviar a mensagem de execução, os módulos de gravação de dados dos nós A a E gravam os blocos de EC alvo e os números de versão que estão nos arquivos de registro de preparação, e o nó F está com falha no processo de recepção da mensagem de execução.
[168] 408. Determinar que os números de versão da faixa de EC alvo sejam os mesmos. O nó A determina que o nó F está com falha e, portanto, após o nó F ser recuperado da falha, um módulo de determinação de versão do nó A determina se os números de versão da faixa de EC alvo nos nós A a F são ou não os mesmos. Os nós A a E não têm arquivo de registro de
Petição 870160025496, de 03/06/2016, pág. 58/139
50/61 preparação, e os números de versão da faixa de EC alvo que são portados em blocos de EC alvo armazenados são 3. O nó F tem um arquivo de registro de preparação, e um número de versão da faixa de EC alvo que é portado em um bloco de EC alvo no arquivo de registro de preparação é 3.
[169] 409. O módulo de envio de mensagem do nó A envia uma mensagem de execução ao nó F. O módulo de recepção de mensagem do nó F recebe a mensagem de execução.
[170] 410. O módulo de gravação de dados do nó F grava o bloco de EC alvo e o número de versão que estão no arquivo de registro de preparação.
[171] Uma modalidade da presente invenção fornece adicionalmente um aparelho de recuperação de dados configurado para recuperar dados perdidos de um nó de armazenamento com falha, em que o aparelho de recuperação de dados é implantado em um nó de armazenamento primário de um grupo de nó de armazenamento ao qual o nó de armazenamento com falha pertence. Referindo-se à Figura 8, uma estrutura específica do aparelho de recuperação de dados inclui:
um módulo de mensagem de recuperação 801 configurado para: após a recuperação de falha do nó de armazenamento com falha, receber uma mensagem de recuperação enviada pelo nó de armazenamento com falha, em que a mensagem de recuperação é usada para indicar que o nó de armazenamento com falha está recuperado da falha;
um módulo de computação de dados 802 configurado para obter N blocos de EC perdidos do nó de armazenamento com falha através de computação de acordo com blocos de EC armazenados por nós de armazenamento sem falha em um grupo de nó de armazenamento ao qual o nó de armazenamento com falha pertence, em que N é um número inteiro positivo;
um módulo de envio de dados 803 configurado para enviar sequencialmente os N blocos de EC perdidos ao nó de armazenamento com falha para executar armazenamento; e um módulo de determinação de valor de chave 804 configurado para: no processo de envio sequencial dos N blocos de EC perdidos ao nó de armazenamento com falha, se o nó de armazenamento primário gerar um
Petição 870160025496, de 03/06/2016, pág. 59/139
51/61 primeiro bloco de EC e determinar que o primeiro bloco de EC deve ser armazenado pelo nó de armazenamento com falha, determinar se um segundo bloco de EC que tem um mesmo valor de chave do primeiro bloco de EC existe nos blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido pelo nó de armazenamento com falha, em que o módulo de envio de dados 803 é configurado adicionalmente para: se o segundo bloco de EC existir nos blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido pelo nó de armazenamento com falha, após o nó de armazenamento com falha armazenar de modo bemsucedido o segundo bloco de EC, enviar o primeiro bloco de EC ao nó de armazenamento com falha para executar armazenamento.
[172] Essa modalidade fornece um aparelho de recuperação de dados, em que um módulo de computação de dados 802 obtém N blocos de EC perdidos de um nó de armazenamento com falha através de computação após o nó de armazenamento com falha ser recuperado; e um módulo de envio de dados 803 que envia sequencial mente os N blocos de EC perdidos ao nó de armazenamento com falha para executar armazenamento. No processo de envio sequencial dos N blocos de EC perdidos ao nó de armazenamento com falha, se um nó primário gerar uma nova faixa de EC e determinar que um primeiro bloco de EC na nova faixa de EC deve ser armazenado pelo nó de armazenamento com falha, um módulo de determinação de valor de chave 804 determina se um segundo bloco de EC existe ou não nos blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido pelo nó de armazenamento com falha, em que o segundo bloco de EC tem um mesmo valor de chave do primeiro bloco de EC. Se for determinado que o segundo bloco de EC existe, após o nó de armazenamento com falha armazenar de modo bem-sucedido o segundo bloco de EC, o módulo de envio de dados 803 envia o primeiro bloco de EC ao nó de armazenamento com falha para executar armazenamento. Esse método pode evitar a substituição de novos dados por dados antigos, e garantir que um bloco de EC armazenado no nó de armazenamento com falha após recuperação seja uma versão mais recente.
[173] Preferencialmente, em ainda outra modalidade da presente invenção, o módulo de envio de dados 803 é especificamente configurado
Petição 870160025496, de 03/06/2016, pág. 60/139
52/61 para:
enviar um nesimo bloco de EC perdido ao nó de armazenamento com falha, em que 1<n<N;
receber uma mensagem de resposta que corresponde ao nesimo bloco de EC perdido, em que a mensagem de resposta é enviada pelo nó de armazenamento com falha, e a mensagem de resposta é usada para indicar que o nó de armazenamento com falha armazenou de modo bem-sucedido o nesimo bloco de EC perdido; e após receber a mensagem de resposta do nó de armazenamento com falha em relação ao nesimo bloco de EC perdido, se n<N, adicionar 1 a um valor de n, e reexecutar a etapa de enviar um nesimo bloco de EC perdido ao nó de armazenamento com falha.
[174] Preferencialmente, em ainda outra modalidade da presente invenção, os blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido incluem os blocos de EC perdidos que não são enviados atualmente ao nó de armazenamento com falha e os blocos de EC perdidos que são enviados atualmente ao nó de armazenamento com falha, mas mensagens de resposta que correspondem aos quais não são recebidas.
[175] Preferencialmente, em ainda outra modalidade da presente invenção, um volume lógico de um sistema de armazenamento distribuído inclui múltiplas partições lógicas, cada partição lógica é de um tamanho de k blocos de dados e não se sobrepõe uma à outra, cada partição lógica corresponde exclusivamente a um valor de chave, e um valor de chave de uma partição lógica que cada bloco de EC se encontra é um valor de chave do bloco de EC.
[176] Para facilitar o entendimento da modalidade antecedente, o que vem a seguir usa um cenário de aplicação específico da modalidade antecedente para descrição.
[177] O sistema de armazenamento distribuído armazena dados em uma forma de uma faixa de EC, e cada faixa de EC inclui quatro blocos de dados e dois blocos de paridade. O sistema de armazenamento distribuído inclui 100 grupos de nó de armazenamento. Um grupo de nó de armazenamento 1 inclui seis nós de armazenamento, em que um nó primário é
Petição 870160025496, de 03/06/2016, pág. 61/139
53/61 um nó A, e nós secundários são um nó B, um nó C, um nó D, um nó E e um nó F. Em um momento, o nó F está com falha. Três horas depois, o nó F está recuperado, mas dados são perdidos.
[178] O nó F envia uma mensagem de recuperação ao nó A, para notificar o nó A que o nó F está recuperado da falha. Um módulo de mensagem de recuperação 801 do nó A recebe a mensagem de recuperação.
[179] Após o nó A receber a mensagem de recuperação, um módulo de computação de dados 802 obtém 200 blocos de EC perdidos do nó F através de computação de acordo com todos os blocos de EC armazenados pelo nó A, nó B, nó C, nó D e nó E.
[180] Um módulo de envio de dados 803 do nó A envia um bloco de EC perdido ao nó F cada vez e, após receber uma mensagem de resposta do nó F em relação ao bloco de EC perdido, envia um próximo bloco de EC perdido. Desse modo, os 200 blocos de EC perdidos são enviados sequencialmente ao nó F.
[181] Após o módulo de envio de dados 803 enviar um 1512 bloco de EC perdido ao nó F, o nó A gera uma nova faixa de EC de acordo com um segmento de dados entregue por um aparelho de entrega de dados, e determina que um primeiro bloco de EC na nova faixa de EC deve ser armazenado pelo nó F, em que um valor de chave do primeiro bloco de EC é 25.
[182] Visto que o nó A não recebeu uma mensagem de resposta enviada pelo nó F em relação ao 151s bloco de EC perdido, um módulo de determinação de valor de chave 804 do nó A determina se um segundo bloco de EC que tem um valor de chave 25 existe em 151s a 200s blocos de EC perdidos. O nó A determina que um valor de chave de um 190s bloco de EC perdido é 25.
[183] O módulo de envio de dados 803 do nó A não envia o primeiro bloco de EC ao nó F temporariamente e, após enviar o 190s bloco de EC perdido ao nó F e receber a mensagem de resposta enviada pelo nó F em relação ao 190s bloco de EC perdido, envia o primeiro bloco de EC ao nó F.
[184] O módulo de envio de dados 803 do nó A envia todos os 200 blocos de EC perdidos ao nó F, e o nó F conclui a recuperação de dados.
Petição 870160025496, de 03/06/2016, pág. 62/139
54/61 [185] Cada aparelho nas modalidades da presente invenção é descrito acima a partir da perspectiva de uma entidade funcional modular. O que vem a seguir descreve um aparelho em uma modalidade da presente invenção a partir da perspectiva de processamento de hardware.
[186] Referindo-se à Figura 9, outra modalidade de um aparelho de armazenamento de dados fornecido por uma modalidade da presente invenção inclui:
um aparelho de entrada 901, um aparelho de saída 902, um processador 903 e uma memória 904 (o aparelho de armazenamento de dados 900 pode incluir um ou mais processadores 903, e um processador 903 é usado como um exemplo na Figura 9). Em algumas modalidades da presente invenção, o aparelho de entrada 901, o aparelho de saída 902, o processador 903 e a memória 904 podem ser conectados por um barramento ou em outros meios, em que a conexão por um barramento é usada como um exemplo na Figura 9.
[187] Invocando-se uma instrução de operação armazenada na memória 904, o processador 903 é configurado para executar as etapas a seguir:
receber um segmento de dados a ser armazenado, e realizar codificação de EC no segmento de dados a ser armazenado para obter uma faixa de EC alvo, em que um tamanho do segmento de dados a ser armazenado não é maior do que Z, Z é um tamanho de m blocos de dados, a faixa de EC alvo inclui m+k blocos de EC alvo, e os m+k blocos de EC alvo incluem m blocos de dados alvo e k blocos de paridade alvo;
determinar m+k nós de armazenamento alvo, em que os m+k nós de armazenamento alvo são configurados para armazenar os m+k blocos de EC alvo, e cada nó de armazenamento alvo armazena um dos blocos de EC alvo;
enviar uma mensagem de preparação aos m+k nós de armazenamento alvo separadamente, em que cada mensagem de preparação inclui um bloco de EC alvo a ser armazenado por cada nó de armazenamento alvo;
receber uma mensagem de resposta enviada por qualquer nó de armazenamento alvo dos m+k nós de armazenamento alvo, em que a mensagem de resposta é usada para indicar que o nó de armazenamento
Petição 870160025496, de 03/06/2016, pág. 63/139
55/61 secundário alvo que envia atualmente a mensagem de resposta gerou um arquivo de registro de preparação de acordo com a mensagem de preparação, e o arquivo de registro de preparação inclui um bloco de EC alvo a ser armazenado pelo nó de armazenamento alvo que envia atualmente a mensagem de resposta; e após receber mensagens de resposta de todos os nós de armazenamento alvo nos m+k nós de armazenamento alvo, enviar uma mensagem de execução aos m+k nós de armazenamento alvo, em que a mensagem de execução é usada para instruir os m+k nós de armazenamento alvo a gravarem os blocos de EC alvo incluídos nos arquivos de registro de preparação.
[188] Em algumas modalidades da presente invenção, a mensagem de preparação inclui adicionalmente um número de versão da faixa de EC alvo;
o arquivo de registro de preparação gerado pelo nó de armazenamento secundário alvo de acordo com a mensagem de preparação inclui adicionalmente o número de versão da faixa de EC alvo; e a mensagem de execução é usada especificamente para instruir o nó de armazenamento alvo a gravar os blocos de EC alvo e o número de versão da faixa de EC alvo que estão na mensagem de preparação.
[189] Em algumas modalidades da presente invenção, o processador 903 executa adicionalmente as etapas a seguir:
se for detectado que um nó de armazenamento com falha existe nos m+k nós de armazenamento alvo, após recuperação de falha do nó de armazenamento com falha, determinar se os números de versão da faixa de EC alvo nos m+k nós de armazenamento alvo são os mesmos, em que os números de versão da faixa de EC alvo nos m+k nós de armazenamento alvo incluem números de versão da faixa de EC alvo em arquivos de registro de preparação em nós de armazenamento alvo que geraram arquivos de registro de preparação e/ou números de versão da faixa de EC alvo armazenados por nós de armazenamento alvo que não têm arquivo de registro de preparação; e se os números de versão da faixa de EC alvo em todos os nós de armazenamento alvo nos m+k nós de armazenamento alvo forem os mesmos, enviar uma mensagem de execução aos nós de armazenamento alvo que
Petição 870160025496, de 03/06/2016, pág. 64/139
56/61 geraram arquivos de registro de preparação, em que a mensagem de execução é usada para instruir os nós de armazenamento alvo a gravarem os blocos de EC alvo incluídos nos arquivos de registro de preparação.
[190] Em algumas modalidades da presente invenção, o processador 903 executa adicionalmente as etapas a seguir:
se os números de versão da faixa de EC alvo nos nós de armazenamento alvo nos m+k nós de armazenamento alvo forem diferentes, enviar uma mensagem de exclusão aos nós de armazenamento alvo que geraram arquivos de registro de preparação, em que a mensagem de exclusão é usada para instruir os nós de armazenamento alvo para excluir os arquivos de registro de preparação.
[191] Referindo-se à Figura 10, outra modalidade de um aparelho de armazenamento de dados fornecido por uma modalidade da presente invenção inclui:
um aparelho de entrada 1001, um aparelho de saída 1002, um processador 1003 e uma memória 1004 (o aparelho de armazenamento de dados 1000 pode incluir um ou mais processadores 1003, e um processador 1003 é usado como um exemplo na Figura 10). Em algumas modalidades da presente invenção, o aparelho de entrada 1001, o aparelho de saída 1002, o processador 1003 e a memória 1004 podem ser conectados por um barramento ou em outros meios, em que a conexão por um barramento é usada como um exemplo na Figura 10.
[192] Invocando-se uma instrução de operação armazenada na memória 1004, o processador 1003 é configurado para executar as etapas a seguir:
receber uma mensagem de preparação enviada por um nó de armazenamento primário, em que a mensagem de preparação inclui um bloco de EC alvo a ser armazenado por um nó de armazenamento secundário;
gerar um arquivo de registro de preparação de acordo com a mensagem de preparação, em que o arquivo de registro de preparação inclui o bloco de EC alvo a ser armazenado pelo nó de armazenamento secundário;
enviar uma mensagem de resposta ao nó de armazenamento primário, em que a mensagem de resposta é usada para indicar que o nó de armazenamento secundário gerou o arquivo de registro de preparação de
Petição 870160025496, de 03/06/2016, pág. 65/139
57/61 acordo com a mensagem de preparação;
receber uma mensagem de execução enviada pelo nó de armazenamento primário; e gravar o bloco de EC alvo incluído no arquivo de registro de preparação de acordo com a mensagem de execução.
[193] Em algumas modalidades da presente invenção, o bloco de EC alvo a ser armazenado pelo nó de armazenamento secundário é um bloco de dados ou um bloco de paridade em uma faixa de EC alvo gerada pelo nó de armazenamento primário, e a mensagem de preparação inclui adicionalmente um número de versão da faixa de EC alvo;
o arquivo de registro de preparação gerado pelo nó de armazenamento secundário de acordo com a mensagem de preparação inclui adicionalmente o número de versão da faixa de EC alvo; e a mensagem de execução é especificamente usada para instruir o nó de armazenamento alvo a gravar o bloco de EC alvo e o número de versão da faixa de EC alvo que estão nos arquivos de registro de preparação.
[194] Em algumas modalidades da presente invenção, o processador 1003 executa adicionalmente as etapas a seguir:
receber uma mensagem de exclusão enviada pelo nó de armazenamento primário; e excluir o arquivo de registro de preparação de acordo com a mensagem de exclusão.
[195] Referindo-se à Figura 11, outra modalidade de um aparelho de recuperação de dados fornecido por uma modalidade da presente invenção inclui:
um aparelho de entrada 1101, um aparelho de saída 1102, um processador 1103 e uma memória 1104 (o aparelho de recuperação de dados 1100 pode incluir um ou mais processadores 1103, e um processador 1103 é usado como um exemplo na Figura 11). Em algumas modalidades da presente invenção, o aparelho de entrada 1101, o aparelho de saída 1102, o processador 1103 e a memória 1104 podem ser conectados por um barramento ou em outros meios, em que a conexão por um barramento é usada como um exemplo na Figura 11.
Petição 870160025496, de 03/06/2016, pág. 66/139
58/61 [196] Invocando-se uma instrução de operação armazenada na memória 1104, o processador 1103 é configurado para executar as etapas a seguir:
após recuperação de falha de um nó de armazenamento com falha, receber uma mensagem de recuperação enviada pelo nó de armazenamento com falha;
obter N blocos de EC perdidos do nó de armazenamento com falha através de computação de acordo com blocos de EC armazenados por nós de armazenamento sem falha em um grupo de nó de armazenamento ao qual o nó de armazenamento com falha pertence, em que o N é um número inteiro positivo;
enviar sequencialmente os N blocos de EC perdidos ao nó de armazenamento com falha para executar armazenamento;
no processo de envio sequencial dos N blocos de EC perdidos ao nó de armazenamento com falha, se o nó de armazenamento primário gera um primeiro bloco de EC e determina que o primeiro bloco de EC deve ser armazenado pelo nó de armazenamento com falha, determinar se um segundo bloco de EC que tem um mesmo valor de chave do primeiro bloco de EC existe nos blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido pelo nó de armazenamento com falha; e se for determinado que o segundo bloco de EC existe, após o nó de armazenamento com falha armazenar de modo bem-sucedido o segundo bloco de EC, enviar o primeiro bloco de EC ao nó de armazenamento com falha para executar o armazenamento.
[197] Em algumas modalidades da presente invenção, o processador 1103 executa adicionalmente as etapas a seguir:
enviar um nesimo bloco de EC perdido ao nó de armazenamento com falha, em que 1<n<N;
receber uma mensagem de resposta que corresponde ao nesimo bloco de EC perdido, em que a mensagem de resposta é enviada pelo nó de armazenamento com falha, e a mensagem de resposta é usada para indicar que o nó de armazenamento com falha armazenou de modo bem-sucedido o nesimo bloco de EC perdido; e após receber a mensagem de resposta do nó de armazenamento
Petição 870160025496, de 03/06/2016, pág. 67/139
59/61 com falha em relação ao nesimo bloco de EC perdido, se n<N, adicionar 1 a um valor de n, e reexecutar a etapa de enviar um nesimo bloco de EC perdido ao nó de armazenamento com falha.
[198] Em algumas modalidades da presente invenção, os blocos de EC perdidos que não são atualmente armazenados de modo bem-sucedido incluem os blocos de EC perdidos que não são enviados atualmente ao nó de armazenamento com falha e os blocos de EC perdidos que são enviados atualmente ao nó de armazenamento com falha, mas mensagens de resposta que correspondem aos quais não são recebidas.
[199] Em algumas modalidades da presente invenção, um volume lógico do sistema de armazenamento distribuído inclui múltiplas partições lógicas, sendo que cada partição lógica é de um tamanho de k blocos de dados e não se sobrepõe uma à outra, cada partição lógica corresponde exclusivamente a um valor de chave, e um valor de chave de uma partição lógica que cada bloco de EC se encontra é um valor de chave do bloco de EC.
[200] Uma modalidade da presente invenção fornece adicionalmente um nó de armazenamento, que inclui o aparelho mostrado em qualquer uma ou mais dentre a Figura 6 a Figura 11.
[201] Pode ser claramente compreendido por uma pessoa versada na técnica que, para o propósito de uma descrição breve e conveniente, para um processo de trabalho detalhado do sistema, aparelho e unidade supracitados, pode ser feita referência a um processo correspondente nas modalidades dos métodos anteriormente mencionados, e os detalhes não são descritos novamente no presente documento.
[202] Nas várias modalidades fornecidas no presente pedido, deve-se compreender que o sistema, aparelho e método revelados podem ser implantados de outras maneiras. Por exemplo, a modalidade de aparelho descrita é meramente exemplificativa. Por exemplo, a divisão de unidade é meramente uma divisão de função lógica e pode ser outra divisão em uma implementação real. Por exemplo, uma pluralidade de unidades ou componentes pode ser combinada ou integrada em outro sistema, ou alguns recursos podem ser ignorados ou não realizados. Além disso, os acoplamentos mútuos ou acoplamentos diretos ou conexões de comunicação exibidos ou
Petição 870160025496, de 03/06/2016, pág. 68/139
60/61 discutidos podem ser implantados com o uso de algumas interfaces. Os acoplamentos indiretos ou conexões de comunicação entre os aparelhos ou unidades podem ser implantados em formas eletrônicas, mecânicas, ou outras.
[203] As unidades descritas como partes separadas podem ou não ser separadas fisicamente, e as partes exibidas como unidades podem ou não ser unidades físicas, podem estar localizadas em uma posição, ou podem estar distribuídas em uma pluralidade de unidades de rede. Algumas ou todas as unidades podem ser selecionadas de acordo com necessidades reais para alcançar os objetivos das soluções das modalidades.
[204] Além disso, unidades funcionais nas modalidades da presente invenção podem ser integradas em uma unidade de processamento, ou cada das unidades pode existir fisicamente sozinha, ou duas ou mais unidades são integradas em uma unidade. A unidade integrada pode ser implantada em uma forma de hardware, ou pode ser implantada em uma forma de uma unidade funcional de software.
[205] Quando a unidade integrada é implantada na forma de uma unidade funcional de software e vendida ou usada como um produto independente, a unidade integrada pode ser armazenada em um meio de armazenamento legível por computador. Com base em tal compreensão, as soluções técnicas da presente invenção essencialmente, ou um parte que contribui para um técnica anterior, ou todas ou algumas soluções técnicas podem ser implantadas na forma de um produto de software. O produto de software de computador é armazenado em um meio de armazenamento e inclui diversas instruções para instruir um dispositivo de computador (que pode ser um computador pessoal, um servidor, um dispositivo de rede ou similar) para realizar todas ou algumas das etapas dos métodos descritos nas modalidades da presente invenção. O meio de armazenamento antecedente inclui: qualquer meio que possa armazenar codificação de programa, tal como uma unidade flash USB, um disco rígido removível, uma memória só de leitura (ROM, Memória Só de Leitura), uma memória de acesso aleatório (RAM, Memória de Acesso Aleatório), um disco magnético ou um disco óptico.
[206] As modalidades antecedentes são meramente destinadas a descrever as soluções técnicas da presente invenção, mas não a limitar a
Petição 870160025496, de 03/06/2016, pág. 69/139
61/61 presente invenção. Embora a presente invenção seja descrita em detalhes com referência às modalidades mencionadas anteriormente, indivíduos de habilidade comum na técnica devem entender que é possível, ainda, realizar modificações nas soluções técnicas descritas nas modalidades mencionadas anteriormente ou realizar as substituições equivalentes em alguns recursos técnicos das mesmas, sem que se afaste do escopo das soluções técnicas das modalidades da presente invenção.
Petição 870160025496, de 03/06/2016, pág. 70/139

Claims (8)

1/5
REIVINDICAÇÕES
1. Método de recuperação de dados, aplicado a um sistema de armazenamento distribuído, CARACTERIZADO pelo fato de que o sistema de armazanemento distribuído armazena dados usando faixas de codificação por apagamento EC, cada faixa de EC compreende uma parte de dados e uma parte de paridade, a parte de dados de cada faixa de EC compreende m blocos de dados, a parte de paridade de cada faixa de EC compreende k blocos de paridade que são obtidos após codificação de paridade ser realizada nos m blocos de dados, e os m blocos de dados e os k blocos de paridade constituem blocos de EC de cada faixa de EC; cada faixa de EC corresponde a um valor de chave, os valores de chave de faixas de EC tendo as mesmas faixas de endereço de partes de dados são iguais, e os valores de chave de faixas de EC tendo diferentes faixas de endereço de partes de dados são diferentes; o sistema de armazenamento distribuído compreende múltiplos grupos de nó de armazenamento, cada grupo de nó de armazenamento compreende não menos que m+k nós de armazenamento, uma faixa de EC inclui m+k blocos de EC, os quais são respectivamente armazenados em m+k nós de armazenamentos em um grupo de nós de armazenamento, um nó de armazenamento primário é especificado em cada grupo de nó de armazenamento, e nós em cada grupo de nó de armazenamento exceto o nó de armazenamento primário são nós de armazenamento secundários, em que m e k são ambos números inteiros positivos; e quando um nó de armazenamento com falha existe em nós de armazenamento secundários em qualquer um dos grupos de nó de armazenamento, o método é executado por um nó de armazenamento primário em qualquer um dos grupos de nó de armazenamento e compreende:
após recuperação de falha do nó de armazenamento com falha, receber (501) uma mensagem de recuperação enviada pelo nó de armazenamento com falha;
obter (502) N blocos de EC perdidos do nó de armazenamento com falha através de computação usando a tecnologia de EC de acordo com blocos de EC armazenados por nós de armazenamento sem falha no grupo de nós de armazenamento, em que o N é um número inteiro positivo;
sequencialmente enviar (503) os N blocos de EC perdidos ao nó de
Petição 870180153896, de 22/11/2018, pág. 12/16
2/5 armazenamento com falha para armazenamento;
no processo de envio sequencial dos N blocos de EC perdidos ao nó de armazenamento com falha, se o nó de armazenamento primário gerar um primeiro bloco de EC e determinar que o primeiro bloco de EC deve ser armazenado pelo nó de armazenamento com falha, determinar se um segundo bloco de EC tendo um mesmo valor de chave que o primeiro bloco de EC existe nos blocos de EC perdidos que não são atualmente armazenados com sucesso pelo nó de armazenamento com falha; e se for determinado que o segundo bloco de EC existe, após o nó de armazenamento com falha armazenar com sucesso o segundo bloco de EC, enviar o primeiro bloco de EC ao nó de armazenamento com falha para executar armazenamento.
2. Método de recuperação de dados, de acordo com a reivindicação
1, CARACTERIZADO pelo fato de que o envio sequencial dos N blocos de EC perdidos ao nó de armazenamento com falha para armazenamento compreende:
enviar um nésimo bloco de EC perdido ao nó de armazenamento com falha, em que 1<n<N;
receber uma mensagem de resposta correspondente ao nésimo bloco de EC perdido, em que a mensagem de resposta é enviada pelo nó de armazenamento com falha, e a mensagem de resposta é usada para indicar que o nó de armazenamento com falha armazenou com sucesso o nésimo bloco de EC perdido; e após receber a mensagem de resposta do nó de armazenamento com falha em relação ao nésimo bloco de EC perdido, se n<N, adicionar 1 a um valor de n, e reexecutar a etapa de envio de um nésimo bloco de EC perdido ao nó de armazenamento com falha.
3. Método de recuperação de dados, de acordo com a reivindicação
2, CARACTERIZADO pelo fato de que os blocos de EC perdidos que não são atualmente armazenados com sucesso compreendem os blocos de EC perdidos que não são atualmente enviados ao nó de armazenamento com falha e os blocos de EC perdidos que são atualmente enviados ao nó de armazenamento com falha, mas as mensagens de resposta correspondem aos que não são recebidos.
Petição 870180153896, de 22/11/2018, pág. 13/16
3/5
4. Método de recuperação de dados, de acordo com qualquer uma das reivindicações 1 a 3, CARACTERIZADO pelo fato de que um volume lógico do sistema de armazenamento distribuído compreende múltiplas partições lógicas, cada partição lógica é de um tamanho de k blocos de dados e não se sobrepõem uma a outra, cada partição lógica corresponde unicamente a um valor de chave, e um valor de chave de uma partição lógica em que cada bloco de EC se encontra é um valor de chave do bloco de EC.
5. Aparelho de recuperação de dados, aplicado a um sistema de armazenamento distribuído, CARACTERIZADO pelo fato de que o sistema de armazanemento distribuído armazena dados usando faixas de codificação por apagamento EC, cada faixa de EC compreende uma parte de dados e uma parte de paridade, a parte de dados de cada faixa de EC compreende m blocos de dados, a parte de paridade de cada faixa de EC compreende k blocos de paridade que são obtidos após codificação de paridade ser realizada nos m blocos de dados, e os m blocos de dados e os k blocos de paridade constituem blocos de EC de cada faixa de EC; cada faixa de EC corresponde a um valor de chave, os valores de chave de faixas de EC tendo as mesmas faixas de endereço de partes de dados são iguais, e os valores de chave de faixas de EC tendo diferentes faixas de endereço de partes de dados são diferentes; o sistema de armazenamento distribuído compreende múltiplos grupos de nó de armazenamento, cada grupo de nó de armazenamento compreende não menos que m+k nós de armazenamento, uma faixa de EC inclui m+k blocos de EC, os quais são respectivamente armazenados em m+k nós de armazenamentos em um grupo de nós de armazenamento, um nó de armazenamento primário é especificado em cada grupo de nó de armazenamento, e nós em cada grupo de nó de armazenamento exceto o nó de armazenamento primário são nós de armazenamento secundários, em que m e k são ambos números inteiros positivos; e um nó de armazenamento com falha existe em nós de armazenamento secundários em qualquer grupo de nós de armazenamento no sistema de armazenamento distribuído, o aparelho de recuperação de dados é implantado em um nó de armazenamento primário no grupo de nós de armazenamento ao qual o nó de armazenamento com falha pertence, e o aparelho de recuperação de dados compreende:
Petição 870180153896, de 22/11/2018, pág. 14/16
4/5 um módulo de mensagem de recuperação (801), configurado para receber, após recuperação de falha do nó de armazenamento com falha, uma mensagem de recuperação enviada pelo nó de armazenamento com falha;
um módulo de computação (802), configurado para obter N blocos de EC perdidos do nó de armazenamento com falha através de computação usando a tecnologia de EC de acordo com blocos de EC armazenados por nós de armazenamento sem falha no grupo de nós de armazenamento, em que N é um número inteiro positivo;
um módulo de envio de dados (803), configurado para enviar sequencialmente os N blocos de EC perdidos ao nó de armazenamento com falha para executar armazenamento; e um módulo de determinação de valor de chave (804), configurado para: no processo de envio sequencial dos N blocos de EC perdidos ao nó de armazenamento com falha, se o nó de armazenamento primário gerar um primeiro bloco de EC e determinar que o primeiro bloco de EC é para ser armazenado pelo nó de armazenamento com falha, determinar se um segundo bloco de EC tendo um mesmo valor de chave que o primeiro bloco de EC existe nos blocos de EC perdidos que não são atualmente armazenados com sucesso pelo nó de armazenamento com falha, em que o módulo de envio de dados (803) é adicionalmente configurado para: se o módulo de determinação de valor de chave determinar que o segundo bloco de EC existe, após o nó de armazenamento com falha armazenar com sucesso o segundo bloco de EC, enviar o primeiro bloco de EC ao nó de armazenamento com falha para executar armazenamento.
6. Aparelho de recuperação de dados, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que o módulo de envio de dados (803) é especificamente configurado para:
enviar um nésimo bloco de EC perdido ao nó de armazenamento com falha, em que 1<n<N; e após receber a mensagem de resposta do nó de armazenamento com falha em relação ao nésimo bloco de EC perdido, se n<N, adicionar 1 a um valor de n, e reexecutar a etapa de envio de um nésimo bloco de EC perdido ao nó de armazenamento com falha, em que a mensagem de resposta é usada para indicar que o nó de armazenamento com falha armazenou com sucesso o
Petição 870180153896, de 22/11/2018, pág. 15/16
5/5 nésimo bloco de ec perdido.
7. Aparelho de recuperação de dados, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que os blocos de EC perdidos que não são atualmente armazenados com sucesso compreendem os blocos de EC perdidos que não são enviados ao nó de armazenamento com falha e os blocos de EC perdidos que são atualmente enviados ao nó de armazenamento com falha, mas as mensagens de resposta correspondem aos que não são recebidos.
8. Aparelho de recuperação de dados, de acordo com qualquer uma das reivindicações 5 a 7, CARACTERIZADO pelo fato de que um volume lógico do sistema de armazenamento distribuído compreende múltiplas partições lógicas, cada partição lógica é de um tamanho de k blocos de dados e não se sobrepõem uma a outra, cada partição lógica corresponde unicamente a um valor de chave, e um valor de chave de uma partição lógica em que cada bloco de EC se encontra é um valor de chave do bloco de EC.
BR102016012742A 2015-06-04 2016-06-03 Método de armazenamento de dados, método de recuperação de dados, aparelho relacionado, e sistema BR102016012742B8 (pt)

Priority Applications (1)

Application Number Priority Date Filing Date Title
BR122018006762A BR122018006762B8 (pt) 2015-06-04 2016-06-03 Método de armazenamento de dados, método de recuperação de dados, aparelho relacionado e sistema

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510304374.7A CN105095013B (zh) 2015-06-04 2015-06-04 数据存储方法、恢复方法、相关装置以及系统
CN201510304374.7 2015-06-04

Publications (2)

Publication Number Publication Date
BR102016012742B1 true BR102016012742B1 (pt) 2019-02-12
BR102016012742B8 BR102016012742B8 (pt) 2022-08-23

Family

ID=54575514

Family Applications (2)

Application Number Title Priority Date Filing Date
BR102016012742A BR102016012742B8 (pt) 2015-06-04 2016-06-03 Método de armazenamento de dados, método de recuperação de dados, aparelho relacionado, e sistema
BR122018006762A BR122018006762B8 (pt) 2015-06-04 2016-06-03 Método de armazenamento de dados, método de recuperação de dados, aparelho relacionado e sistema

Family Applications After (1)

Application Number Title Priority Date Filing Date
BR122018006762A BR122018006762B8 (pt) 2015-06-04 2016-06-03 Método de armazenamento de dados, método de recuperação de dados, aparelho relacionado e sistema

Country Status (5)

Country Link
US (3) US9710331B2 (pt)
EP (2) EP3109757B1 (pt)
JP (2) JP6347802B2 (pt)
CN (2) CN107748702B (pt)
BR (2) BR102016012742B8 (pt)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107748702B (zh) * 2015-06-04 2021-05-04 华为技术有限公司 一种数据恢复方法和装置
WO2017101016A1 (zh) * 2015-12-15 2017-06-22 华为技术有限公司 用于存储节点同步业务请求的方法和装置
CN106662983B (zh) 2015-12-31 2019-04-12 华为技术有限公司 分布式存储系统中的数据重建的方法、装置和系统
JP6542152B2 (ja) * 2016-03-29 2019-07-10 東芝メモリ株式会社 オブジェクトストレージ、コントローラおよびプログラム
CN105893169A (zh) * 2016-03-31 2016-08-24 乐视控股(北京)有限公司 一种基于纠删码的文件存储方法和系统
CN107562368B (zh) * 2016-06-30 2019-11-22 杭州海康威视数字技术股份有限公司 一种数据处理方法及装置
CN107562569B (zh) * 2016-06-30 2020-09-25 杭州海康威视数字技术股份有限公司 一种数据重构方法及装置
CN107590019B (zh) * 2016-07-07 2021-03-16 北京金山云网络技术有限公司 一种数据存储的方法和装置
CN106201766B (zh) * 2016-07-25 2018-03-20 深圳市中博科创信息技术有限公司 数据存储控制方法及数据服务器
CN107885612B (zh) * 2016-09-30 2020-02-21 华为技术有限公司 数据处理方法和系统及装置
CN106708651B (zh) * 2016-11-16 2020-09-11 北京三快在线科技有限公司 基于纠删码的部分写入方法及装置、存储介质、设备
CN106776130B (zh) * 2016-11-30 2020-07-28 华为技术有限公司 一种日志恢复方法、存储装置和存储节点
CN108614670B (zh) * 2016-12-13 2020-07-03 杭州海康威视数字技术股份有限公司 一种信息处理方法及装置
US10445199B2 (en) * 2016-12-22 2019-10-15 Western Digital Technologies, Inc. Bad page management in storage devices
CN107197324B (zh) * 2017-05-15 2020-11-20 苏州浪潮智能科技有限公司 一种分布式文件系统的视频容错方法及装置
CN107273048B (zh) * 2017-06-08 2020-08-04 浙江大华技术股份有限公司 一种数据写入方法及装置
WO2018229944A1 (ja) * 2017-06-15 2018-12-20 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
CN110337633A (zh) * 2017-06-30 2019-10-15 华为技术有限公司 一种数据存储方法及设备
CN107609161A (zh) * 2017-09-26 2018-01-19 北京思特奇信息技术股份有限公司 一种数据写入、读取方法和系统
WO2019071595A1 (zh) * 2017-10-13 2019-04-18 华为技术有限公司 分布式块存储系统中数据存储方法、装置及计算机可读存储介质
CN111666043A (zh) * 2017-11-03 2020-09-15 华为技术有限公司 一种数据存储方法及设备
US10379950B2 (en) * 2017-11-30 2019-08-13 Western Digital Technologies, Inc. Updating write-in-place storage devices
CN108780386B (zh) 2017-12-20 2020-09-04 华为技术有限公司 一种数据存储的方法、装置和系统
CN109962797B (zh) * 2017-12-23 2022-01-11 华为技术有限公司 一种存储系统和推送业务视图的方法
CN110309012B (zh) 2018-03-27 2021-01-26 杭州海康威视数字技术股份有限公司 一种数据处理方法及其装置
CN108769146B (zh) * 2018-05-11 2022-01-21 北京奇虎科技有限公司 一种基于区块链的数据传输方法、装置及区块链系统
US10942807B2 (en) 2018-06-12 2021-03-09 Weka.IO Ltd. Storage system spanning multiple failure domains
CN110825552B (zh) * 2018-08-14 2021-04-09 华为技术有限公司 数据存储方法、数据恢复方法、节点及存储介质
CN110865901B (zh) * 2018-08-28 2021-05-04 华为技术有限公司 组建ec条带的方法和装置
US10769031B2 (en) * 2018-11-26 2020-09-08 Toyota Jidosha Kabushiki Kaisha Lost data recovery for vehicle-to-vehicle distributed data storage systems
CN109814803B (zh) * 2018-12-17 2022-12-09 深圳创新科技术有限公司 一种分布式存储系统中容错能力自适应调整方法和装置
EP3889778B1 (en) * 2018-12-22 2023-05-10 Huawei Cloud Computing Technologies Co., Ltd. Distributed storage system and computer program product
CN109933374B (zh) * 2019-01-23 2021-10-22 西安微电子技术研究所 一种计算机启动方法
CN110347640B (zh) * 2019-06-26 2022-02-18 北京三快在线科技有限公司 文件储存方法、装置、存储介质和电子设备
CN110515541B (zh) * 2019-07-29 2020-10-27 西安交通大学 分布式存储中纠删码非对齐数据更新方法
CN110515542B (zh) * 2019-07-30 2021-08-31 华为技术有限公司 数据存储方法、装置、计算设备、存储系统及存储介质
CN111625400B (zh) * 2020-05-26 2024-01-16 平安科技(深圳)有限公司 一种数据冗余处理方法、装置及存储介质
CN111935243B (zh) * 2020-07-17 2023-06-30 杭州海康机器人股份有限公司 一种数据信息的传输方法、装置、系统及设备
CN112783689B (zh) * 2021-02-08 2022-09-02 上海交通大学 一种基于lrc编码的部分条带写优化方法及装置
CN113258936B (zh) * 2021-06-03 2021-10-15 成都信息工程大学 一种基于循环移位的双重编码的构造方法
CN114064346B (zh) * 2021-11-02 2022-07-12 北京大道云行科技有限公司 一种纠删码数据一致性保障方法及系统
US11983080B2 (en) 2021-11-16 2024-05-14 Netapp, Inc. Use of cluster-level redundancy within a cluster of a distributed storage management system to address node-level errors
CN114221975B (zh) * 2021-11-30 2024-01-30 浙江大华技术股份有限公司 基于smr盘的云存储数据恢复方法及装置、电子设备
CN114415976B (zh) * 2022-03-28 2022-07-01 深圳市杉岩数据技术有限公司 一种分布式数据存储系统与方法
CN114844910B (zh) * 2022-04-19 2023-07-25 重庆紫光华山智安科技有限公司 分布式存储系统的数据传输方法、系统、设备及介质

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
JP3155836B2 (ja) * 1992-10-08 2001-04-16 富士通株式会社 ディスクアレイ装置
US6223323B1 (en) * 1998-07-17 2001-04-24 Ncr Corporation Method for storing parity information in a disk array storage system
US6725392B1 (en) * 1999-03-03 2004-04-20 Adaptec, Inc. Controller fault recovery system for a distributed file system
US6275898B1 (en) * 1999-05-13 2001-08-14 Lsi Logic Corporation Methods and structure for RAID level migration within a logical unit
US6643748B1 (en) * 2000-04-20 2003-11-04 Microsoft Corporation Programmatic masking of storage units
US6985995B2 (en) * 2002-03-29 2006-01-10 Panasas, Inc. Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data
US6938123B2 (en) * 2002-07-19 2005-08-30 Storage Technology Corporation System and method for raid striping
US7266716B2 (en) * 2003-10-23 2007-09-04 Hewlett-Packard Development Company, L.P. Method and recovery of data using erasure coded data from stripe blocks
US7263629B2 (en) * 2003-11-24 2007-08-28 Network Appliance, Inc. Uniform and symmetric double failure correcting technique for protecting against two disk failures in a disk array
US8726129B1 (en) * 2004-07-23 2014-05-13 Hewlett-Packard Development Company, L.P. Methods of writing and recovering erasure coded data
US7870464B2 (en) * 2004-11-02 2011-01-11 International Business Machines Corporation System and method for recovery of data for a lost sector in a storage system
US8055845B2 (en) * 2005-02-03 2011-11-08 Hewlett-Packard Development Company, L.P. Method of cooperative caching for distributed storage system
US7370261B2 (en) * 2005-05-09 2008-05-06 International Business Machines Corporation Convolution-encoded raid with trellis-decode-rebuild
US7725655B2 (en) * 2006-02-16 2010-05-25 Hewlett-Packard Development Company, L.P. Method of operating distributed storage system in which data is read from replicated caches and stored as erasure-coded data
US7761663B2 (en) * 2006-02-16 2010-07-20 Hewlett-Packard Development Company, L.P. Operating a replicated cache that includes receiving confirmation that a flush operation was initiated
US7743276B2 (en) * 2006-09-27 2010-06-22 Hewlett-Packard Development Company, L.P. Sufficient free space for redundancy recovery within a distributed data-storage system
US8751859B2 (en) * 2007-05-10 2014-06-10 International Business Machines Corporation Monitoring lost data in a storage system
US7925927B2 (en) * 2008-06-23 2011-04-12 Hewlett-Packard Development Company, L.P. Simulator for determining data loss in a fault tolerant system
US8051205B2 (en) * 2008-10-13 2011-11-01 Applied Micro Circuits Corporation Peer-to-peer distributed storage
CN101488104B (zh) * 2009-02-26 2011-05-04 北京云快线软件服务有限公司 一种实现高效安全存储的系统和方法
US8037391B1 (en) * 2009-05-22 2011-10-11 Nvidia Corporation Raid-6 computation system and method
US8132073B1 (en) * 2009-06-30 2012-03-06 Emc Corporation Distributed storage system with enhanced security
US8103903B2 (en) * 2010-02-22 2012-01-24 International Business Machines Corporation Read-modify-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
US8156368B2 (en) * 2010-02-22 2012-04-10 International Business Machines Corporation Rebuilding lost data in a distributed redundancy data storage system
US8103904B2 (en) * 2010-02-22 2012-01-24 International Business Machines Corporation Read-other protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
US8839076B2 (en) * 2011-03-31 2014-09-16 International Business Machines Corporation Encoding a data word for writing the encoded data word in a multi-level solid state memory
CN102918509B (zh) * 2011-05-31 2014-06-04 华为技术有限公司 数据读写方法、装置和存储系统
US8983915B2 (en) * 2011-08-01 2015-03-17 Actifio, Inc. Successive data fingerprinting for copy accuracy assurance
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8788788B2 (en) * 2011-08-11 2014-07-22 Pure Storage, Inc. Logical sector mapping in a flash storage array
CN102624866B (zh) * 2012-01-13 2014-08-20 北京大学深圳研究生院 一种存储数据的方法、装置及分布式网络存储系统
CN103577274B (zh) * 2012-07-31 2016-07-06 国际商业机器公司 管理存储器阵列的方法和装置
CN103051691B (zh) * 2012-12-12 2015-09-09 华为技术有限公司 分区分配方法、装置以及分布式存储系统
US9495246B2 (en) * 2013-01-21 2016-11-15 Kaminario Technologies Ltd. Raid erasure code applied to partitioned stripe
CN103984607A (zh) * 2013-02-08 2014-08-13 华为技术有限公司 分布式存储的方法、装置和系统
JP6089884B2 (ja) * 2013-03-29 2017-03-08 富士通株式会社 情報処理システム,情報処理装置,情報処理装置の制御プログラム,及び情報処理システムの制御方法
CN104111880B (zh) * 2013-04-16 2016-03-02 华中科技大学 一种容三盘失效纠删码的单数据盘失效快速重建方法
EP2953025B1 (en) * 2013-10-18 2017-01-25 Hitachi Ltd. Target-driven independent data integrity and redundancy recovery in a shared-nothing distributed storage system
KR20150061258A (ko) * 2013-11-27 2015-06-04 한국전자통신연구원 분산 raid 시스템에서 패리티 청크 운용 방법과 이를 지원하는 데이터 서버 장치
CN103699494B (zh) * 2013-12-06 2017-03-15 北京奇虎科技有限公司 一种数据存储方法、数据存储设备和分布式存储系统
US9495255B2 (en) * 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9870284B2 (en) * 2015-05-27 2018-01-16 International Business Machines Corporation First responder parities for storage array
CN107748702B (zh) * 2015-06-04 2021-05-04 华为技术有限公司 一种数据恢复方法和装置

Also Published As

Publication number Publication date
EP3575964A1 (en) 2019-12-04
JP6649340B2 (ja) 2020-02-19
CN107748702A (zh) 2018-03-02
EP3575964B1 (en) 2021-03-10
EP3109757A3 (en) 2017-02-22
US9710331B2 (en) 2017-07-18
JP6347802B2 (ja) 2018-06-27
CN107748702B (zh) 2021-05-04
US20180074898A1 (en) 2018-03-15
BR122018006762B1 (pt) 2020-11-24
CN105095013B (zh) 2017-11-21
JP2018022530A (ja) 2018-02-08
BR122018006762B8 (pt) 2022-08-23
JP2017004514A (ja) 2017-01-05
EP3109757B1 (en) 2019-01-23
BR102016012742B8 (pt) 2022-08-23
US20170255522A1 (en) 2017-09-07
CN105095013A (zh) 2015-11-25
US20160357634A1 (en) 2016-12-08
EP3109757A2 (en) 2016-12-28
US10133633B2 (en) 2018-11-20
US9823970B2 (en) 2017-11-21

Similar Documents

Publication Publication Date Title
BR102016012742B1 (pt) Método de armazenamento de dados, método de recuperação de dados, aparelho relacionado, e sistema
BR102016012739B1 (pt) Método e aparelho de distribuição de dados
US11797489B2 (en) System and method for using local storage to emulate centralized storage
CN106547859B (zh) 一种多租户数据存储系统下的数据文件的存储方法及装置
US8234518B2 (en) Method for voting with secret shares in a distributed system
WO2018000812A1 (zh) 数据存储方法及装置
CN109995813B (zh) 一种分区扩展方法、数据存储方法及装置
WO2017113276A1 (zh) 分布式存储系统中的数据重建的方法、装置和系统
CN107729536B (zh) 一种数据存储方法和装置
US11748215B2 (en) Log management method, server, and database system
US11436110B2 (en) Distributed database remote backup
WO2020103512A1 (zh) 一种存储系统中的数据重构方法和装置
JP2021522577A (ja) ホスト認識更新書き込みの方法、システム、およびコンピュータ・プログラム
WO2019109257A1 (zh) 一种日志管理方法、服务器和数据库系统
BR102016012742A2 (pt) Storage method, data recovery method, related apparatus, and system
US11294592B2 (en) Method and device for data processing, and computer device
Bland Toward message passing failure management
US11734117B2 (en) Data recovery in a storage system
WO2018107460A1 (zh) 对象复制方法、装置及对象存储设备
CN114579352A (zh) 数据重构方法以及装置

Legal Events

Date Code Title Description
B03B Publication of an application: publication anticipated [chapter 3.2 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 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 03/06/2016, OBSERVADAS AS CONDICOES LEGAIS. (CO) 20 (VINTE) ANOS CONTADOS A PARTIR DE 03/06/2016, OBSERVADAS AS CONDICOES LEGAIS

B25A Requested transfer of rights approved

Owner name: HUAWEI CLOUD COMPUTING TECHNOLOGIES CO., LTD. (CN)