BR112017019142B1 - Método para deduplicação em sistema de armazenamento, sistema de armazenamento e controlador - Google Patents

Método para deduplicação em sistema de armazenamento, sistema de armazenamento e controlador Download PDF

Info

Publication number
BR112017019142B1
BR112017019142B1 BR112017019142-3A BR112017019142A BR112017019142B1 BR 112017019142 B1 BR112017019142 B1 BR 112017019142B1 BR 112017019142 A BR112017019142 A BR 112017019142A BR 112017019142 B1 BR112017019142 B1 BR 112017019142B1
Authority
BR
Brazil
Prior art keywords
fingerprint
data
storage
controller
written
Prior art date
Application number
BR112017019142-3A
Other languages
English (en)
Other versions
BR112017019142A8 (pt
BR112017019142A2 (pt
Inventor
Wenhai Lan
Wei Zhang
Xiaoan YU
Xuyou Liu
Zhixiong Zhang
Original Assignee
Huawei Technologies Co., Ltd
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd filed Critical Huawei Technologies Co., Ltd
Priority claimed from PCT/CN2016/100629 external-priority patent/WO2018058382A1/zh
Publication of BR112017019142A2 publication Critical patent/BR112017019142A2/pt
Publication of BR112017019142A8 publication Critical patent/BR112017019142A8/pt
Publication of BR112017019142B1 publication Critical patent/BR112017019142B1/pt

Links

Abstract

MÉTODO PARA DEDUPLICAÇÃO EM SISTEMA DE ARMAZENAMENTO, SISTEMA DE ARMAZENAMENTO E CONTROLADOR. Trata-se de uma solução para deduplicação em um sistema de armazenamento. Nesta solução, um controlador armazena, em um primeiro endereço de armazenamento, um bloco de dados que é gravado para o primeiro tempo, e insere, em uma tabela de impressão digital, uma primeira impressão digital de primeiros dados a serem gravados que são gravados para o primeiro tempo, porém, não estabelece uma relação de mapeamento entre a primeira impressão digital e o primeiro endereço de armazenamento. Ao receber subsequentemente segundos dados a serem gravados gravados, o controlador aloca um segundo endereço de armazenamento para os segundos dados a serem gravados duplicados, armazena os segundos dados a serem gravados no segundo endereço de armazenamento e estabelece uma relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital. Isso reduz uma quantidade de dados na tabela de impressão digital.

Description

CAMPO DA TÉCNICA
[0001] A presente invenção refere-se ao campo de tecnologia da informação e, em particular, a um método para deduplicação em um sistema de armazenamento, um sistema de armazenamento e um controlador.
ANTECEDENTES
[0002] Uma função de deduplicação é uma característica importante em um sistema de armazenamento. Após a função de deduplicação ser introduzida no sistema de armazenamento, o armazenamento de dados duplicados pode ser reduzido e, portanto, o espaço de armazenamento é economizado.
[0003] Na técnica anterior, uma operação de deduplicação inclui, de modo geral, o seguinte processo:
[0004] Uma impressão digital de um bloco de dados é obtida; uma tabela de impressão digital é consultada para determinar se a tabela de impressão digital inclui a mesma impressão digital; se a tabela de impressão digital não inclui a impressão digital, um endereço de armazenamento é alocado em uma área de armazenamento e o bloco de dados é armazenado no endereço de armazenamento; e uma relação de mapeamento entre a impressão digital e o endereço de armazenamento e uma relação de mapeamento entre um endereço de bloco lógico do bloco de dados e a impressão digital são estabelecidas na tabela de impressão digital. Quando um bloco de dados com a mesma impressão digital é gravado repetidamente, apenas uma relação de mapeamento entre um endereço de bloco lógico do bloco de dados repetidamente gravado e a impressão digital precisa ser estabelecida, e não há necessidade em armazenar o bloco de dados repetidamente gravado novamente. Como um exemplo, o documento intitulado "Implementing IBM Storage Data Deduplication Solutions" de A. Osuna et al., disponível em: https://www.redbooks.ibm.com/redbooks/pdfs/sg247888.pdf revela um modo de deduplicar objetos de dados armazenados em um sistema de armazenamento, onde um catálogo de hashes ou impressões digitais para identificar os conteúdos únicos de cada bloco é mantido como um bloco mestre,e ponteiros de referência são redirecionados para formar uma base de um algoritmo de deduplicação. Como outro exemplo, o documento intitulado "Introduction to the EMC VNX2 Series VNX5200, VNX5400, VNX5600, VNX5800, VNX7600, & VNX8000 - A Detailed Review", Livro Branco de EMC/DELL, disponível em: https://www.delltechnologies.com/asset/en-us/products/storage/industry- market/h12145-intro-new-vnx-series-wp.pdf revela um processo de deduplicação de bloco entre números de unidade lógica (LUNs) em um pool de armazenamento. Ambos são omissos quanto a como o catálogo de impressões digitais é construído diante de uma solicitação para gravação de dados. Ao usar uma tecnologia de deduplicação na técnica anterior, o espaço de armazenamento é economizado; no entanto, há um problema com relação a uma grande quantidade de dados em uma tabela de impressão digital.
SUMÁRIO
[0005] De acordo com um primeiro aspecto, uma modalidade da presente invenção fornece uma solução para deduplicação em um sistema de armazenamento, e o sistema de armazenamento inclui um controlador e um dispositivo de armazenamento. A solução inclui: receber, através do controlador, uma primeira solicitação de gravação, em que a primeira solicitação de gravação porta um primeiro endereço de bloco lógico e primeiros dados a serem gravados; obter, através do controlador, uma primeira impressão digital dos primeiros dados a serem gravados; inserir a primeira impressão digital na tabela de impressão digital quando uma tabela de impressão digital não inclui a primeira impressão digital e alocar um primeiro endereço de armazenamento do dispositivo de armazenamento para os primeiros dados a serem gravados; armazenar, através do controlador, os primeiros dados a serem gravados no primeiro endereço de armazenamento; estabelecer, através do controlador, uma relação de mapeamento entre o primeiro endereço de bloco lógico e o primeiro endereço de armazenamento; receber, através do controlador, uma segunda solicitação de gravação, em que a segunda solicitação de gravação porta um segundo endereço de bloco lógico e segundos dados a serem gravados; obter, através do controlador, uma impressão digital dos segundos dados a serem gravados, em que a impressão digital dos segundos dados a serem gravados é a primeira impressão digital; alocar, através do controlador, um segundo endereço de armazenamento do dispositivo de armazenamento para os segundos dados a serem gravados quando o controlador consulta a tabela de impressão digital de acordo com a primeira impressão digital dos segundos dados a serem gravados para determinar que nenhum endereço de armazenamento que corresponde à primeira impressão digital existe; armazenar, através do controlador, os segundos dados a serem gravados no segundo endereço de armazenamento; estabelecer, através do controlador, uma relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital; e estabelecer, através do controlador, uma relação de mapeamento entre o segundo endereço de bloco lógico e o segundo endereço de armazenamento.
[0006] De modo geral, em deduplicação, uma tabela de impressão digital também é denominada um índice de impressão digital ou metadados de impressão digital, e é usada para armazenar uma relação de mapeamento entre uma impressão digital e um endereço de armazenamento que corresponde à impressão digital. Um bloco de dados que corresponde à impressão digital é armazenado no endereço de armazenamento.
[0007] Quando a solução supracitada é especificamente implantada, uma entrada de impressão digital na tabela de impressão digital pode ser usada para armazenar a relação de mapeamento entre uma impressão digital e um endereço de armazenamento que corresponde à impressão digital. Um processo da inserção da primeira impressão digital na tabela de impressão digital quando a tabela de impressão digital não inclui a primeira impressão digital inclui especificamente: criar, através do controlador, uma primeira entrada de impressão digital na tabela de impressão digital quando nenhuma entrada de impressão digital na tabela de impressão digital inclui a primeira impressão digital e inserir a primeira impressão digital na primeira entrada de impressão digital. Um processo no qual o controlador consulta a tabela de impressão digital de acordo com a primeira impressão digital dos segundos dados a serem gravados para determinar que nenhum endereço de armazenamento que corresponde à primeira impressão digital existe inclui especificamente: consultar, através do controlador, a tabela de impressão digital de acordo com a primeira impressão digital dos segundos dados a serem gravados para determinar que a primeira impressão digital não corresponde a nenhum endereço de armazenamento na primeira entrada de impressão digital. Um processo do estabelecimento, através do controlador, de uma relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital é especificamente: inserir, através do controlador, o segundo endereço de armazenamento na primeira entrada de impressão digital.
[0008] Na solução supracitada, em que nenhum endereço de armazenamento que corresponde à primeira impressão digital existe na tabela de impressão digital pode ser especificamente que: nenhum endereço de armazenamento que corresponde à primeira impressão digital é definido na tabela de impressão digital ou a primeira impressão digital não corresponde a nenhum endereço de armazenamento. Em uma implantação do uso de uma entrada de impressão digital para registrar uma relação de mapeamento entre uma impressão digital e um endereço de armazenamento em uma tabela de impressão digital, quando nenhuma entrada de impressão digital na tabela de impressão digital inclui a primeira impressão digital, o controlador cria a primeira entrada de impressão digital na tabela de impressão digital; quando a primeira impressão digital é inserida na primeira entrada de impressão digital, um endereço de armazenamento pode não ser definido na primeira entrada de impressão digital, isto é, um parâmetro de endereço de armazenamento pode não ser definido na primeira entrada de impressão digital, ou não há endereço de armazenamento, isto é, um parâmetro de endereço de armazenamento é definido como nulo. Esses casos indicam que nenhum endereço de armazenamento que corresponde à primeira impressão digital existe na tabela de impressão digital, isto é, uma relação de mapeamento entre a primeira impressão digital e o primeiro endereço de armazenamento não é estabelecida na tabela de impressão digital.
[0009] Na solução supracitada, as impressões digitais dos primeiros dados a serem gravados e dos segundos dados a serem gravados são ambos a primeira impressão digital, e indicam que os primeiros dados a serem gravados são os mesmos que os segundos dados a serem gravados. O controlador armazena um bloco de dados que é gravado pela primeira vez no primeiro endereço de armazenamento e insere, na tabela de impressão digital, a primeira impressão digital dos primeiros dados a serem gravados que são gravados pela primeira vez, porém, não estabelecem a relação de mapeamento entre a primeira impressão digital e o primeiro endereço de armazenamento. Ao receber os segundos dados a serem gravados subsequentemente gravados (os segundos dados a serem gravados não são limitados aos mesmos dados recebidos através do controlador pela segunda vez), o controlador aloca o segundo endereço de armazenamento para os segundos dados a serem gravados duplicados, armazena os segundos dados a serem gravados no segundo endereço de armazenamento, e estabelece a relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital. Isto é, o controlador realiza deduplicação apenas nos mesmos dados que foram recebidos múltiplas vezes (pelo menos duas vezes), e isso reduz uma quantidade de dados na tabela de impressão digital.
[0010] Opcionalmente, o controlador conta uma quantidade de vezes que uma solicitação de gravação recebida porta dados a serem gravados cujo valor de impressão digital é a primeira impressão digital. O controlador armazena os segundos dados a serem gravados no segundo endereço de armazenamento e estabelece a relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital quando a quantidade de vezes for maior que uma quantidade N predefinida de vezes, em que N é um número inteiro não inferior a 1. Isto é, dados duplicados (os segundos dados a serem gravados) que aparecem pela (N+1)ésima vez são armazenados no segundo endereço de armazenamento, e a relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento é estabelecida na tabela de impressão digital. Dados armazenados no segundo endereço de armazenamento são dados referenciáveis. Portanto, a deduplicação em um bloco de dados cujo grau de duplicação alcança um valor específico pode ser definida de acordo com uma exigência do sistema de armazenamento. Dados referenciáveis são dados que são armazenados em um endereço de armazenamento que corresponde a uma impressão digital na tabela de impressão digital, e dados não referenciáveis são dados que são armazenados no sistema de armazenamento, porém, não são armazenados em um endereço de armazenamento que corresponde a uma impressão digital na tabela de impressão digital.
[0011] Opcionalmente, o controlador aloca o primeiro endereço de armazenamento de uma primeira área de armazenamento do dispositivo de armazenamento para os primeiros dados a serem gravados, e o controlador aloca o segundo endereço de armazenamento de uma segunda área de armazenamento do dispositivo de armazenamento para os segundos dados a serem gravados, em que performance de armazenamento da segunda área de armazenamento é maior que performance de armazenamento da primeira área de armazenamento, e performance do controlador em acessar dados referenciáveis pode ser melhorado.
[0012] Opcionalmente, o controlador recebe uma terceira solicitação de gravação, em que a terceira solicitação de gravação porta um terceiro endereço de bloco lógico e terceiros dados a serem gravados; o controlador obtém uma impressão digital dos terceiros dados a serem gravados, em que a impressão digital dos terceiros dados a serem gravados é a primeira impressão digital; e ao consultar a tabela de impressão digital de acordo com a primeira impressão digital dos terceiros dados a serem gravados para determinar que um endereço de armazenamento que corresponde à primeira impressão digital é o segundo endereço de armazenamento, o controlador estabelece uma relação de mapeamento entre o terceiro endereço de bloco lógico e o segundo endereço de armazenamento. Quando impressões digitais dos primeiros dados a serem gravados, dos segundos dados a serem gravados e dos terceiros dados a serem gravados são a primeira impressão digital, a mesma indica que os primeiros dados a serem gravados, os segundos dados a serem gravados e os terceiros dados a serem gravados são os mesmos. Com base nisso, o controlador realiza uma operação de deduplicação nos dados duplicados, e o espaço de armazenamento pode ser economizado. Em uma implantação específica, ao consultar a primeira entrada de impressão digital na tabela de impressão digital de acordo com a primeira impressão digital dos terceiros dados a serem gravados para determinar que o endereço de armazenamento que corresponde à primeira impressão digital é o segundo endereço de armazenamento, o controlador estabelece a relação de mapeamento entre o terceiro endereço de bloco lógico e o segundo endereço de armazenamento.
[0013] Opcionalmente, o controlador registra uma quantidade de tempos de referência do segundo endereço de armazenamento na tabela de impressão digital. Uma quantidade de tempos de referência é uma quantidade de vezes que um endereço de bloco lógico faz referência a um endereço de armazenamento que corresponde a uma impressão digital na tabela de impressão digital. A quantidade de vezes que um endereço de bloco lógico faz referência a um endereço de armazenamento que corresponde a uma impressão digital na tabela de impressão digital é determinada por uma relação de mapeamento entre o endereço de bloco lógico e o endereço de armazenamento. Quando o controlador estabelece uma relação de mapeamento entre o endereço de bloco lógico e o endereço de armazenamento, e o endereço de armazenamento é registrado na tabela de impressão digital, o endereço de bloco lógico faz referência ao endereço de armazenamento que corresponde à impressão digital na tabela de impressão digital uma vez. Em uma implantação específica, o controlador registra a quantidade de tempos de referência do segundo endereço de armazenamento na primeira entrada de impressão digital na tabela de impressão digital. Nesta implantação, a quantidade de tempos de referência é uma quantidade de vezes que o endereço de bloco lógico faz referência a um endereço de armazenamento na entrada de impressão digital. Pode ser determinado, de acordo com a quantidade de tempos de referência, se os dados podem ser gravados no segundo endereço de armazenamento novamente. Quando a quantidade de tempos de referência é 0, isso indica que nenhum endereço de bloco lógico aponta para o segundo endereço de armazenamento, e o segundo endereço de armazenamento pode ser liberado, de modo que o segundo endereço de armazenamento se torne um endereço de armazenamento inativo no dispositivo de armazenamento e possa ser usado para gravar dados novamente.
[0014] Opcionalmente, o controlador armazena, em um cache do controlador de acordo com uma quantidade de tempos de referência registrados na tabela de impressão digital, uma relação de mapeamento entre uma impressão digital cuja quantidade de tempos de referência é maior que um limite predefinido e um endereço de armazenamento que corresponde à impressão digital, e isso melhora a eficiência de busca de impressão digital durante deduplicação. Especificamente, o controlador pode implantar essa operação de acordo com uma quantidade de tempos de referência registrados em uma entrada de impressão digital na tabela de impressão digital. Opcionalmente, o controlador registra, na tabela de impressão digital, o tempo quando a primeira impressão digital é inserida. Especificamente, o tempo quando a primeira impressão digital é inserida pode ser registrado na primeira entrada de impressão digital na tabela de impressão digital.
[0015] Opcionalmente, o controlador deleta uma segunda impressão digital da tabela de impressão digital. Nenhum endereço de armazenamento que corresponde à segunda impressão digital existe na tabela de impressão digital, e a duração para que a segunda impressão digital tenha sido inserida na tabela de impressão digital excede uma duração predefinida. O controlador pode deletar, da tabela de impressão digital, uma impressão digital que existe na tabela de impressão digital por exceder a duração da duração predefinida e que não corresponde ao endereço de armazenamento, e isso reduz adicionalmente a quantidade dos dados na tabela de impressão digital. Em uma implantação específica, pode ser determinado, de acordo com o tempo quando a segunda impressão digital é inserida e que é registrada na tabela de impressão digital, que a duração para que a segunda impressão digital exista na tabela de impressão digital excede a duração predefinida. Opcionalmente, uma entrada de impressão digital é usada como um exemplo. Para a segunda impressão digital registrada em uma entrada de impressão digital através do controlador, a segunda impressão digital não corresponde a nenhum endereço de armazenamento em uma segunda entrada de impressão digital, e a duração para que a segunda impressão digital exista na segunda entrada de impressão digital excede a duração predefinida. Para um significado de que nenhum endereço de armazenamento que corresponde a uma impressão digital existe, consultar a descrição supracitada, e detalhes não são descritos no presente documento novamente.
[0016] Opcionalmente, o sistema de armazenamento pode incluir adicionalmente uma tabela de mapeamento inversa. Uma entrada na tabela de mapeamento inversa é usada para registrar uma relação de mapeamento entre um endereço de armazenamento que corresponde a uma impressão digital na tabela de impressão digital e um endereço de bloco lógico que aponta para o endereço de armazenamento. Para o segundo endereço de armazenamento que corresponde à primeira impressão digital, endereços de bloco lógico que apontam para o segundo endereço de armazenamento são respectivamente o segundo endereço de bloco lógico e o terceiro endereço de bloco lógico. Quando o dispositivo de armazenamento que fornece o segundo endereço de armazenamento é defeituoso (ou a segunda área de armazenamento é defeituosa), o dispositivo de armazenamento defeituoso é substituído por um novo dispositivo de armazenamento (a segunda área de armazenamento defeituosa é substituída por uma nova área de armazenamento). Portanto, quando o segundo endereço de armazenamento é realocado do novo dispositivo de armazenamento ou da nova área de armazenamento, o segundo endereço de bloco lógico e o terceiro endereço de bloco lógico que são correspondentes ao segundo endereço de armazenamento precisam apenas ser determinados de acordo com uma entrada na tabela de mapeamento inversa, e não há necessidade em determinar os endereços de bloco lógico que apontam para o segundo endereço de armazenamento atravessando-se relações de mapeamento entre endereços de bloco lógico de todas as unidades lógicas no sistema de armazenamento e endereços de armazenamento. Portanto, a eficiência de busca de endereço de bloco lógico durante a recuperação de dados é melhorada.
[0017] Opcionalmente, uma relação de mapeamento entre um endereço de bloco lógico e um endereço de armazenamento pode incluir adicionalmente um identificador que indica se os dados são dados referenciáveis. Por exemplo, a relação de mapeamento entre o primeiro endereço de bloco lógico e o primeiro endereço de armazenamento porta um identificador que indica se os dados são dados referenciáveis, a relação de mapeamento entre o segundo endereço de bloco lógico e o segundo endereço de armazenamento porta um identificador que indica se os dados são dados referenciáveis e a relação de mapeamento entre o terceiro endereço de bloco lógico e o segundo endereço de armazenamento porta um identificador que indica se os dados são dados referenciáveis. O controlador pode identificar facilmente se os dados armazenados nos endereços de armazenamento são dados referenciáveis com o uso de identificadores de dados referenciáveis nas relações de mapeamento supracitadas.
[0018] Nas modalidades da presente invenção, ao realizar deduplicação, um controlador estabelece uma relação de mapeamento entre um endereço de bloco lógico e um endereço de armazenamento, em vez de uma relação de mapeamento entre um endereço de bloco lógico e uma impressão digital, e uma relação de mapeamento entre uma impressão digital e um endereço de armazenamento que armazena dados que correspondem à impressão digital na técnica anterior. Portanto, de acordo com soluções fornecidas nas modalidades da presente invenção, o controlador ainda pode acessar dados em um dispositivo de armazenamento, gravar dados e deletar dados do dispositivo de armazenamento, de acordo com a relação de mapeamento entre um endereço de bloco lógico e um endereço de armazenamento mesmo quando o controlador não realiza deduplicação. Um caso no qual o controlador não realiza deduplicação inclui: por exemplo, lógica de deduplicação do controlador está offline, e uma entrada em uma tabela de impressão digital não pode ser acessada. Portanto, a acessibilidade de dados do sistema de armazenamento é melhorada.
[0019] De acordo com um segundo aspecto, de forma correspondente, uma modalidade da presente invenção fornece adicionalmente um sistema de armazenamento e um controlador que são configurados para implantar várias soluções de implantação do primeiro aspecto. O controlador inclui unidades estruturais para implantar as várias soluções de implantação do primeiro aspecto nas modalidades da presente invenção, ou o controlador inclui uma interface e um processador para executar separadamente as várias soluções de implantação do primeiro aspecto nas modalidades da presente invenção.
[0020] De modo correspondente, a presente invenção fornece adicionalmente um meio de armazenamento legível por computador não volátil e um produto de programa de computador. Quando uma memória de um controlador fornecido em uma modalidade da presente invenção porta uma instrução de computador incluída no meio de armazenamento legível por computador não volátil e no produto de programa de computador, e uma unidade de processamento central (Central Processing Unit, CPU) do controlador executa a instrução de computador, se permite que o dispositivo de armazenamento execute separadamente as várias soluções de implantação possíveis do primeiro aspecto nas modalidades da presente invenção.
BREVE DESCRIÇÃO DOS DESENHOS
[0021] A Figura 1 é um diagrama arquitetônico esquemático de um sistema de armazenamento, de acordo com uma modalidade da presente invenção;
[0022] A Figura 2 é um diagrama estrutural esquemático de um controlador, de acordo com uma modalidade da presente invenção;
[0023] A Figura 3 é um diagrama esquemático de alocação de recurso de armazenamento em um sistema de armazenamento, de acordo com uma modalidade da presente invenção;
[0024] A Figura 4 é um diagrama esquemático de uma relação de mapeamento entre um endereço de bloco lógico e um endereço de armazenamento, de acordo com uma modalidade da presente invenção;
[0025] A Figura 5 é um diagrama esquemático de uma entrada de impressão digital, de acordo com uma modalidade da presente invenção;
[0026] A Figura 6 é um diagrama esquemático de uma relação de mapeamento entre um endereço de bloco lógico e um endereço de armazenamento, de acordo com uma modalidade da presente invenção;
[0027] A Figura 7 é um diagrama esquemático de uma entrada de impressão digital, de acordo com uma modalidade da presente invenção;
[0028] A Figura 8 é um diagrama esquemático de uma relação de mapeamento entre um endereço de bloco lógico e um endereço de armazenamento, de acordo com uma modalidade da presente invenção;
[0029] A Figura 9 é um diagrama esquemático de uma entrada de impressão digital, de acordo com uma modalidade da presente invenção;
[0030] A Figura 10 é um diagrama estrutural esquemático de uma tabela de mapeamento inversa, de acordo com uma modalidade da presente invenção;
[0031] A Figura 11 é um diagrama esquemático de uma entrada de impressão digital, de acordo com uma modalidade da presente invenção;
[0032] A Figura 12 é um diagrama esquemático de uma relação de mapeamento entre um endereço de bloco lógico e um endereço de armazenamento, de acordo com uma modalidade da presente invenção;
[0033] A Figura 13 é um fluxograma, de acordo com uma modalidade da presente invenção; e
[0034] A Figura 14 é um diagrama estrutural esquemático de um controlador, de acordo com uma modalidade da presente invenção.
MODALIDADES DA PRESENTE INVENÇÃO
[0035] Conforme mostrado na Figura 1, um sistema de armazenamento em uma modalidade da presente invenção inclui um controlador e um dispositivo de armazenamento, e o dispositivo de armazenamento é um ou mais discos rígidos. O disco rígido inclui um disco de estado sólido (Solid State Disk, SSD) ou um disco rígido mecânico, ou uma combinação de um SSD e um disco rígido mecânico. O disco rígido mecânico pode ser uma HDD (Unidade de Disco Rígido) e semelhantes. Opcionalmente, o disco rígido no dispositivo de armazenamento pode ser um disco rígido híbrido (Hybrid), ou o dispositivo de armazenamento pode ser um disco rígido único, tal como um disco rígido com uma capacidade extremamente grande.
[0036] Conforme mostrado na Figura 2, o controlador inclui uma unidade de processamento central (Central Processing Unit, CPU) 201 e uma memória 202. A memória 202 armazena uma instrução de computador. A CPU 201 executa a instrução de computador na memória 202 para gerenciar o sistema de armazenamento e realizar uma operação de deduplicação. Adicionalmente, para economizar recursos computacionais da CPU 201, uma matriz de porta de campo programável (Field Programmable Gate Array, FPGA) ou outro hardware também pode ser usado para executar todas as operações da CPU nessa modalidade da presente invenção, ou uma FPGA ou outro hardware e a CPU são separadamente usados para executar algumas operações da CPU nessa modalidade da presente invenção, de modo a implantar uma solução da técnica descrita nessa modalidade da presente invenção. Para facilidade de descrição, uma descrição comum nessa modalidade da presente invenção é que o processador no controlador é configurado para implantar soluções da técnica nas modalidades da presente invenção. O processador inclui lógica de gerenciamento de recurso de armazenamento e lógica de deduplicação. A lógica de gerenciamento de recurso de armazenamento é usada para implantar gerenciamento e alocação de recurso de armazenamento e gerenciamento de unidade lógica (Logical Unit, LU). Nessa modalidade da presente invenção, a unidade lógica também é denominada um número de unidade lógica (Logical Unit Number, LUN). A lógica de deduplicação é usada para implantar uma operação de deduplicação. Adicionalmente, o controlador inclui adicionalmente uma interface. A interface se comunica com o processador, e é configurada para receber uma solicitação de operação, tal como uma solicitação de gravação, uma solicitação de eliminação ou uma solicitação de leitura. A interface pode ser especificamente um cartão de adaptador de barramento do host (Host Bus Adapter, HBA), um cartão de interface de Conexão de Componente Periférica Expressa (Peripheral Component Interconnect Express, PCIe) ou semelhantes.
[0037] Devido à performance de armazenamento de um SSD ser melhor que aquele de um HDD, em uma implantação mostrada na Figura 3, o controlador divide separadamente o disco rígido mecânico e o disco de estado sólido no sistema de armazenamento em partes de tamanho fixo (Parte), e as partes formam uma área de armazenamento 1 e uma área de armazenamento 2. Nessa modalidade da presente invenção, uma área de armazenamento também é denominada um pool de recursos de armazenamento. O pool de recursos de armazenamento 1 inclui partes obtidas através do controlador dividindo-se o disco rígido mecânico, e o pool de recursos de armazenamento 2 inclui partes obtidas através do controlador dividindo-se o disco de estado sólido. No presente documento, o pool de recursos de armazenamento 2 é denominado um pool de recursos de primeiro nível, e o pool de recursos de armazenamento 1 é denominado um pool de recursos de segundo nível. De acordo com um algoritmo de matriz redundante de discos independentes (Redundant Array of Independent Disks, RAID), o controlador seleciona aleatoriamente partes distribuídas em múltiplos discos rígidos mecânicos no pool de recursos de armazenamento 1 para formar um grupo de partes (Chunk Group). Por exemplo, formam um grupo de partes, isto é,quarto chegam, respectivamente, de diferentes discos rígidos. De maneira semelhante, de acordo com o algoritmo de RAID, o controlador seleciona aleatoriamente partes distribuídas em múltiplos discos de estado sólido no pool de recursos de armazenamento 2 para formar um grupo de partes (Chunk Group). Por exemplo,formam um grupo de partes, isto é, quatro chegam, respectivamente, de diferentes discos rígidos. O controlador divide um grupo de partes em extensões de tamanho fixo (Extensão), tais como ou, e aloca as extensões em um LUN para uso. Conforme mostrado na Figura 3, um LUN 1 usa uma extensão no pool de recursos de armazenamento 1 e um LUN 2 usa extensões no pool de recursos de armazenamento 1 e no pool de recursos de armazenamento 2. Isto é, o LUN 1 usa a extensão fornecida na área de armazenamento 1 e o LUN 2 usa as extensões fornecidas na área de armazenamento 1 e na área de armazenamento 2. Portanto, o LUN 1 é denominado um LUN de armazenamento não hierárquico e o LUN 2 é denominado um LUN de armazenamento hierárquico.
[0038] Com o uso do LUN 2 como um exemplo, o controlador recebe uma primeira solicitação de gravação e a primeira solicitação de gravação porta, de modo geral, um identificador do LUN 2, um endereço de bloco lógico (Logical Block Address, LBA) 1 e primeiros dados a serem gravados. O LBA 1 é um endereço de bloco lógico-alvo dos primeiros dados a serem gravados. O controlador obtém uma impressão digital A dos primeiros dados a serem gravados, por exemplo, obtém a impressão digital dos primeiros dados a serem gravados com o uso de um algoritmo hash (Hash). O controlador consulta uma tabela de impressão digital para determinar se a impressão digital A existe na tabela de impressão digital. Quando nenhuma entrada de impressão digital na tabela de impressão digital inclui a impressão digital A, o controlador cria uma nova entrada de impressão digital na tabela de impressão digital e insere a impressão digital A na nova entrada de impressão digital. O controlador aloca uma extensão do pool de recursos de armazenamento 1 para os primeiros dados a serem gravados, isto é, aloca um endereço de armazenamento SD 1, armazena os primeiros dados a serem gravados no SD 1 e estabelece uma relação de mapeamento entre o LBA 1 e o SD 1, conforme mostrado na Figura 4. Isto é, o LBA 1 no LUN 2 aponta para o SD 1. Opcionalmente, a relação de mapeamento pode portar adicionalmente um identificador que indica se os dados são dados referenciáveis. Por exemplo, 0 é usado para identificar dados não referenciáveis e 1 é usado para identificar dados referenciáveis. Nessa modalidade da presente invenção, dados referenciáveis são dados que são armazenados em um endereço de armazenamento em uma entrada de impressão digital na tabela de impressão digital e dados não referenciáveis são dados que são armazenados no sistema de armazenamento, porém, não são armazenados em um endereço de armazenamento registrado em uma entrada de impressão digital na tabela de impressão digital. O controlador pode identificar facilmente que os dados armazenados no SD 1 não são dados referenciáveis através de um identificador de dados referenciáveis na relação de mapeamento entre o LBA 1 e o SD 1.
[0039] Na técnica anterior, quando os primeiros dados a serem gravados são dados que são gravados pela primeira vez, após a impressão digital A ser inserida na tabela de impressão digital, uma relação de mapeamento entre a impressão digital A e o endereço de armazenamento SD 1 é estabelecida na tabela de impressão digital. No entanto, nessa modalidade da presente invenção, conforme mostrado na Figura 5, quando os primeiros dados a serem gravados são dados que são gravados pela primeira vez, após o controlador inserir a impressão digital A na nova entrada de impressão digital, a impressão digital A não corresponde a nenhum endereço de armazenamento na nova entrada de impressão digital, isto é, o primeiro endereço de armazenamento não é inserido na nova entrada de impressão digital. Nessa modalidade da presente invenção, opcionalmente, uma entrada de impressão digital na tabela de impressão digital pode incluir adicionalmente o tempo quando uma impressão digital é inserida e uma quantidade de vezes que um endereço de bloco lógico faz referência a um endereço de armazenamento na entrada de impressão digital. A quantidade de vezes que um endereço de bloco lógico faz referência a um endereço de armazenamento na entrada de impressão digital também é denominada uma quantidade de tempos de referência de um endereço de armazenamento que corresponde a uma impressão digital na entrada de impressão digital. A quantidade de vezes que um endereço de bloco lógico faz referência a um endereço de armazenamento na entrada de impressão digital é determinada por uma relação de mapeamento entre o endereço de bloco lógico e o endereço de armazenamento. Quando o controlador estabelece a relação de mapeamento entre o endereço de bloco lógico e o endereço de armazenamento, e o endereço de armazenamento é registrado na tabela de impressão digital, o endereço de bloco lógico faz referência ao endereço de armazenamento na entrada de impressão digital uma vez.
[0040] Nessa modalidade da presente invenção, o tempo em que a impressão digital A é inserida é T1. Devido a haver apenas a impressão digital A na nova entrada de impressão digital e a impressão digital A não corresponder a nenhum endereço de armazenamento, uma quantidade de vezes que o endereço de bloco lógico faz referência aos dados no endereço de armazenamento é 0. Quando uma entrada de impressão digital inclui uma impressão digital, porém, não inclui endereço de armazenamento que corresponde à impressão digital, a mesma indica que o sistema de armazenamento não tem dados referenciáveis que correspondem à impressão digital. Com base nisso, o controlador pode deletar, da tabela de impressão digital, uma impressão digital que existe na tabela de impressão digital por exceder a duração da duração predefinida e que não corresponde a nenhum endereço de armazenamento, e isso reduz uma quantidade de dados na tabela de impressão digital. Especificamente, nessa modalidade da presente invenção, o tempo em que a impressão digital A é inserida é T1, e em um momento T2, o controlador precisa deletar uma impressão digital que existe na tabela de impressão digital por exceder a duração da duração predefinida e que não corresponde a nenhum endereço de armazenamento. A duração para que a impressão digital A exista na tabela de impressão digital, isto é, a duração do momento T1 ao momento T2, pode ser determinada de acordo com uma diferença entre T2 e T1. Quando a impressão digital A na entrada de impressão digital na tabela de impressão digital não corresponde a nenhum endereço de armazenamento e a diferença entre T2 e T1 excede a duração predefinida, a impressão digital A pode ser deletada da tabela de impressão digital.
[0041] De modo geral, em deduplicação, uma tabela de impressão digital também é denominada um índice de impressão digital ou metadados de impressão digital, e é usada para armazenar uma relação de mapeamento entre uma impressão digital e um endereço de armazenamento que corresponde à impressão digital. Um bloco de dados que corresponde à impressão digital é armazenado no endereço de armazenamento. Em uma implantação específica, uma entrada de impressão digital pode ser usada para armazenar a relação de mapeamento entre uma impressão digital e um endereço de armazenamento que corresponde à impressão digital.
[0042] Nessa modalidade da presente invenção, em que nenhum endereço de armazenamento que corresponde à impressão digital A existe, significa: o endereço de armazenamento que corresponde à impressão digital A não é definido na tabela de impressão digital ou a impressão digital A não corresponde a nenhum endereço de armazenamento. Em uma implantação de uma entrada de impressão digital para registrar a relação de mapeamento entre uma impressão digital e um endereço de armazenamento, um endereço de armazenamento pode não ser definido na nova entrada de impressão digital, isto é, um parâmetro de endereço de armazenamento pode não ser definido na nova entrada de impressão digital; ou não há endereço de armazenamento, isto é, o parâmetro de endereço de armazenamento é definido como nulo.
[0043] Quando o controlador recebe uma segunda solicitação de gravação, a segunda solicitação de gravação porta, de modo geral, o identificador do LUN 2, um LBA 2 e segundos dados a serem gravados. O LBA 2 é um endereço de bloco lógico-alvo dos segundos dados a serem gravados. O controlador obtém a impressão digital A dos segundos dados a serem gravados, por exemplo, obtém a impressão digital A dos segundos dados a serem gravados através de um algoritmo hash (Hash). As impressões digitais dos primeiros dados a serem gravados e dos segundos dados a serem gravados são ambos a impressão digital A, e indicam que os primeiros dados a serem gravados são os mesmos que os segundos dados a serem gravados. Ao consultar a tabela de impressão digital para determinar que a impressão digital A não corresponde a nenhum endereço de armazenamento na nova entrada de impressão digital, o controlador aloca uma extensão do pool de recursos de armazenamento 2 para os segundos dados a serem gravados, isto é, aloca um endereço de armazenamento SD 2, armazena os segundos dados a serem gravados no SD 2 e estabelece uma relação de mapeamento entre o LBA 2 e o SD 2, conforme mostrado na Figura 6. Isto é, o LBA 2 no LUN 2 aponta para o SD 2. Opcionalmente, a relação de mapeamento entre o LBA 2 e o SD 2 pode portar adicionalmente um identificador que indica se os dados são dados referenciáveis. Por exemplo, 1 é usado para identificar dados referenciáveis. O controlador pode identificar facilmente que os dados armazenados no SD 2 são dados referenciáveis através de um identificador de dados referenciáveis na relação de mapeamento entre o LBA 2 e o SD 2. Conforme mostrado na Figura 7, o controlador estabelece uma relação de mapeamento entre a impressão digital A e o SD 2 na nova entrada de impressão digital, isto é, o endereço de armazenamento que corresponde à impressão digital A inserida na entrada de impressão digital é o SD 2. Conforme mostrado na Figura 7, os segundos dados a serem gravados são dados referenciáveis e uma quantidade de tempos de referência na nova entrada de impressão digital é atualizada para 1.
[0044] O controlador conta uma quantidade de vezes que uma solicitação de gravação recebida porta dados a serem gravados cujo valor de impressão digital é a impressão digital A. Quando a quantidade de vezes é maior que uma quantidade N predefinida de vezes, o controlador aloca o SD 2 do pool de recursos de armazenamento 2 para os segundos dados a serem gravados e insere o SD 2 na nova entrada de impressão digital. N é um número inteiro não inferior a 1, e especificamente, pode ser definido de acordo com uma exigência do sistema de armazenamento. Portanto, de acordo com a exigência do sistema de armazenamento, quando uma quantidade de vezes que os dados a serem gravados recebidos através do controlador porta uma mesma impressão digital é maior que N, os dados duplicados que aparecem pela (N+1)ésima vez são armazenados no SD 2, e o SD 2 é inserido na entrada de impressão digital. Isto é, o controlador realiza deduplicação apenas nos mesmos dados que foram recebidos múltiplas vezes e isso reduz uma quantidade de dados na tabela de impressão digital.
[0045] Nessa modalidade da presente invenção, o controlador armazena um bloco de dados que é gravado pela primeira vez no primeiro endereço de armazenamento e insere uma impressão digital do bloco de dados que é gravado pela primeira vez em uma nova entrada de impressão digital criada na tabela de impressão digital, porém, não insere um endereço de armazenamento no qual o bloco de dados é armazenado. Ao receber um bloco de dados duplicado subsequentemente gravado, o controlador aloca um segundo endereço de armazenamento para o bloco de dados duplicado, armazena o bloco de dados duplicado no segundo endereço de armazenamento e insere o segundo endereço de armazenamento em uma entrada de impressão digital correspondente na tabela de impressão digital. Isto é, o controlador realiza deduplicação apenas nos mesmos dados que foram recebidos múltiplas vezes e isso reduz a quantidade dos dados na tabela de impressão digital. Além disso, o controlador armazena os dados referenciáveis em um endereço de armazenamento da área de armazenamento 2. Devido à performance de armazenamento da área de armazenamento 2 ser melhor que performance de armazenamento da área de armazenamento 1, performance do controlador em acessar os dados referenciáveis pode ser melhorado.
[0046] Quando o controlador recebe uma terceira solicitação de gravação, a terceira solicitação de gravação porta, de modo geral, o identificador do LUN 2, um LBA 3 e terceiros dados a serem gravados. O LBA 3 é um endereço de bloco lógico-alvo dos terceiros dados a serem gravados. O controlador obtém a impressão digital A dos terceiros dados a serem gravados, por exemplo, obtém a impressão digital A dos terceiros dados a serem gravados através de um algoritmo hash (Hash). As impressões digitais dos primeiros dados a serem gravados, dos segundos dados a serem gravados e dos terceiros dados a serem gravados são todas a impressão digital A, e a mesma indica que os primeiros dados a serem gravados, os segundos dados a serem gravados e os terceiros dados a serem gravados são idênticos. Ao consultar a nova entrada de impressão digital de acordo com a impressão digital A para determinar que o endereço de armazenamento que corresponde à impressão digital A é o SD 2, o controlador estabelece uma relação de mapeamento entre o LBA 3 e o SD 2, conforme mostrado na Figura 6. Isto é, o LBA 3 no LUN 2 aponta para o SD 2 e os terceiros dados a serem gravados não são armazenados. Com base nisso, o controlador realiza uma operação de deduplicação nos dados duplicados, e o espaço de armazenamento pode ser economizado. Opcionalmente, a relação de mapeamento entre o LBA 3 e o SD 2 pode portar adicionalmente um identificador que indica se os dados são dados referenciáveis. Por exemplo, 1 é usado para identificar dados referenciáveis. O controlador pode identificar facilmente que os dados armazenados no SD 2 são dados referenciáveis através de um identificador de dados referenciáveis na relação de mapeamento entre o LBA 3 e o SD 2. Conforme mostrado na Figura 9, o controlador atualiza a quantidade de tempos de referência na nova entrada de impressão digital para 2.
[0047] Opcionalmente, essa modalidade da presente invenção fornece adicionalmente uma tabela de mapeamento inversa. Conforme mostrado na Figura 10, uma entrada na tabela de mapeamento inversa é usada para registrar uma relação de mapeamento entre um endereço de armazenamento em uma entrada na tabela de impressão digital e um endereço de bloco lógico que aponta para o endereço de armazenamento. Por exemplo, para o SD 2 que corresponde à impressão digital A, endereços de bloco lógico que apontam para o SD 2 são, respectivamente, o LBA 2 e o LBA 3; portanto, a entrada na tabela de mapeamento inversa mostrada na Figura 10 registra as relações de mapeamento entre o SD 2 e tanto o LBA 2 quanto o LBA 3. Quando o SSD que fornece a área de armazenamento 2 é defeituoso, um novo SSD substitui o SSD defeituoso. Se o SD 2 é fornecido pelo SSD defeituoso, quando o SD 2 é realocado do novo SSD, o LBA 2 e o LBA 3 que são correspondentes ao SD 2 podem ser determinados apenas consultando-se a entrada na tabela de mapeamento inversa mostrada na Figura 10 e os dados do LBA 2 e do LBA 3 podem ser recuperados no SD 2 fornecido pelo novo SSD, e não há necessidade em determinar o endereço de bloco lógico que aponta para o SD 2 (em outras palavras, o endereço de bloco lógico que corresponde ao SD 2) atravessando- se relações de mapeamento entre endereços de bloco lógico de todos os LUNs no sistema de armazenamento e endereços de armazenamento. Portanto, a eficiência de busca de endereço de bloco lógico durante a recuperação de dados é melhorada.
[0048] Quando a primeira solicitação de gravação é uma modificação/solicitação de gravação, isto é, antes dos primeiros dados a serem gravados serem gravados, um bloco de dados M foi gravado no LBA 1 e uma impressão digital que corresponde ao bloco de dados M é uma impressão digital B. Uma entrada de impressão digital na tabela de impressão digital inclui as informações mostradas na Figura 11: Um endereço de armazenamento que armazena o bloco de dados M é um SD 3 na área de armazenamento 2 e uma quantidade de tempos de referência é 1. Uma relação de mapeamento entre o LBA 1 e o endereço de armazenamento SD 3 é mostrada na Figura 12: Um endereço de armazenamento para o qual o LBA 1 aponta é o SD 3 e dados armazenados no SD 3 são dados referenciáveis. Ao armazenar os primeiros dados a serem gravados no SD 1 de acordo com a primeira solicitação de gravação, o controlador atualiza a relação de mapeamento mostrada na Figura 12 para a relação de mapeamento mostrada na Figura 4; o controlador atualiza a quantidade de tempos de referência na entrada de impressão digital mostrada na Figura 11, isto é, reduz a quantidade de tempos de referência para 0; e, então, o controlador pode deletar diretamente a relação de mapeamento entre o LBA 1 e o SD 3 ou invalidar a relação de mapeamento, e liberar o endereço de armazenamento SD 3, de modo que o SD 3 se torne um endereço de armazenamento inativo na área de armazenamento 2, isto é, o SD 3 é um endereço de armazenamento que não é alocado. Deletar a relação de mapeamento entre o LBA 1 e o SD 3 é deletar totalmente a relação de mapeamento. Uma implantação específica para invalidar a relação de mapeamento pode usar um identificador inválido para identificar a relação de mapeamento e o identificador inválido indica que a relação de mapeamento é inválida.
[0049] Quando a lógica de deduplicação do controlador está offline, o controlador grava os primeiros dados a serem gravados no SD 1 de acordo com a primeira solicitação de gravação (o controlador aloca um endereço de armazenamento da área de armazenamento 1 para os dados a serem gravados) e estabelece a relação de mapeamento entre o LBA 1 e o SD 1. Quando uma relação de mapeamento entre o LBA 1 e um endereço de armazenamento é mostrada na Figura 12, isto é, o endereço de armazenamento que corresponde ao LBA 1 é o SD 3 e os dados armazenados no SD 3 são dados referenciáveis, o controlador registra uma diminuição de quantidade de tempos de referência do SD 3 em um registro. Após a lógica de deduplicação do controlador estar online, de acordo com o registro da diminuição de quantidade de tempos de referência do SD 3 no registro, o controlador atualiza a quantidade de tempos de referência na entrada de impressão digital mostrada na Figura 11, isto é, reduz uma contagem de referência para 0. Nessa modalidade da presente invenção, em que a lógica de deduplicação do controlador está offline, significa: uma função de deduplicação do controlador é desabilitada ou defeituosa, e em que a lógica de deduplicação do controlador está online, significa: a função de deduplicação do controlador está em um estado de funcionamento. De acordo com aspectos descritos nessa modalidade da presente invenção, quando o controlador não realiza deduplicação, o controlador ainda pode acessar dados armazenados no dispositivo de armazenamento, dados de gravação e dados de eliminação do dispositivo de armazenamento de acordo com a relação de mapeamento entre o endereço de bloco lógico e o endereço de armazenamento. Portanto, a acessibilidade de dados do sistema de armazenamento é melhorada. Nessa modalidade da presente invenção, situações nas quais o controlador não realiza deduplicação podem incluir uma situação na qual a lógica de deduplicação do controlador está offline, uma situação na qual o controlador não pode acessar uma entrada na tabela de impressão digital e semelhantes.
[0050] Além disso, nessa modalidade da presente invenção, o controlador recebe uma quarta solicitação de eliminação, e a quarta solicitação de eliminação porta, de modo geral, o identificador do LUN 2 e do LBA 3. O controlador consulta, de acordo com o LBA 3, a relação de mapeamento mostrada na Figura 8 e invalida ou deleta a relação de mapeamento entre o LBA 3 e o SD 2 mostrada na Figura 8. Deletar a relação de mapeamento entre o LBA 3 e o SD 2 é deletar totalmente a relação de mapeamento. Uma implantação específica para invalidar a relação de mapeamento entre o LBA 3 e o SD 2 pode usar um identificador inválido para identificar a relação de mapeamento e o identificador inválido indica que a relação de mapeamento é inválida.
[0051] Devido ao LBA 3 não apontar mais para o SD 2, a quantidade de tempos de referência na entrada de impressão digital mostrada na Figura 9 é reduzida em 1, isto é, é atualizada para 1. Quando o controlador deleta ou invalida a relação de mapeamento mostrada na Figura 8 de acordo com a quarta solicitação de eliminação, porém, a lógica de deduplicação do controlador está offline, o controlador registra uma diminuição de quantidade de tempos de referência do SD 2 em um registro. Após a lógica de deduplicação do controlador estar online, de acordo com o registro da diminuição de quantidade de tempos de referência do SD 2 no registro, o controlador atualiza a quantidade de tempos de referência na entrada de impressão digital mostrada na Figura 9, isto é, reduz uma contagem de referência para 1.
[0052] A solução descrita nessa modalidade da presente invenção também é aplicável ao LUN 1. Isto é, endereços de armazenamento são alocados de uma mesma área de armazenamento. Opcionalmente, a solução descrita nessa modalidade da presente invenção não é apenas aplicável a uma solicitação de operação de um LUN, porém, também é aplicável em solicitações de operação de múltiplos LUNs. Isso não é limitado na presente invenção. Nessa modalidade da presente invenção, outro modo de endereço de armazenamento alocação pode ser usado adicionalmente com base no sistema de armazenamento mostrado na Figura 1. Por exemplo, um endereço de armazenamento é fornecido diretamente para um LUN de um disco rígido com base no algoritmo de RAID. Isso não é limitado na presente invenção.
[0053] Além disso, nessa modalidade da presente invenção, uma entrada de impressão digital cuja quantidade de tempos de referência é maior que um limite predefinido pode ser armazenada em um cache do controlador de acordo com uma quantidade de tempos de referência registrados na entrada de impressão digital na tabela de impressão digital, de modo a melhorar a eficiência de busca de impressão digital durante deduplicação.
[0054] Em referência à Figura 1 até a Figura 3 e ao sistema de armazenamento descrito na modalidade supracitada, a Figura 13 fornece um fluxograma de uma modalidade de um método para deduplicação em um sistema de armazenamento da presente invenção.
[0055] Etapa 1301: Um controlador recebe uma primeira solicitação de gravação, em que a primeira solicitação de gravação porta um primeiro endereço de bloco lógico e primeiros dados a serem gravados.
[0056] Etapa 1302: O controlador obtém uma primeira impressão digital dos primeiros dados a serem gravados.
[0057] Conforme descrito na modalidade supracitada, o controlador pode obter a primeira impressão digital realizando-se cálculo nos primeiros dados a serem gravados de acordo com um algoritmo hash ou semelhantes.
[0058] Etapa 1303: Quando uma tabela de impressão digital não inclui a primeira impressão digital, o controlador insere a primeira impressão digital na tabela de impressão digital e aloca um primeiro endereço de armazenamento de um dispositivo de armazenamento para os primeiros dados a serem gravados.
[0059] Em uma implantação específica, quando uma entrada de impressão digital é usada para registrar uma relação de mapeamento entre uma impressão digital e um endereço de armazenamento e nenhuma entrada de impressão digital na tabela de impressão digital inclui a primeira impressão digital, o controlador cria uma primeira entrada de impressão digital na tabela de impressão digital e insere a primeira impressão digital na primeira entrada de impressão digital.
[0060] Etapa 1304: O controlador armazena os primeiros dados a serem gravados no primeiro endereço de armazenamento, e estabelece uma relação de mapeamento entre o primeiro endereço de bloco lógico e o primeiro endereço de armazenamento.
[0061] Opcionalmente, o controlador registra, na tabela de impressão digital, o tempo quando a primeira impressão digital é inserida. Especificamente, o controlador registra, na primeira entrada de impressão digital, o tempo que a primeira impressão digital é inserida.
[0062] Quando a tabela de impressão digital não inclui a primeira impressão digital, o controlador insere a primeira impressão digital na tabela de impressão digital, porém, nenhum endereço de armazenamento que corresponde à primeira impressão digital existe. Portanto, os primeiros dados a serem gravados armazenados no primeiro endereço de armazenamento não são dados referenciáveis. Em uma implantação específica, em que nenhum endereço de armazenamento que corresponde à primeira impressão digital existe na tabela de impressão digital pode significar: o endereço de armazenamento que corresponde à primeira impressão digital não é definido na tabela de impressão digital ou a primeira impressão digital não corresponde a nenhum endereço de armazenamento. Em uma implantação do uso da entrada de impressão digital para registrar a relação de mapeamento entre uma impressão digital e um endereço de armazenamento, quando nenhuma entrada de impressão digital na tabela de impressão digital inclui a primeira impressão digital, o controlador cria a primeira entrada de impressão digital na tabela de impressão digital; quando a primeira impressão digital é inserida na primeira entrada de impressão digital, o endereço de armazenamento pode não ser definido na primeira entrada de impressão digital, isto é, um parâmetro de endereço de armazenamento pode não ser definido na primeira entrada de impressão digital, ou não há endereço de armazenamento, isto é, o parâmetro de endereço de armazenamento é definido como nulo. Esses casos indicam que nenhum endereço de armazenamento que corresponde à primeira impressão digital existe na tabela de impressão digital, isto é, uma relação de mapeamento entre a primeira impressão digital e o primeiro endereço de armazenamento não é estabelecida na tabela de impressão digital.
[0063] Etapa 1305: O controlador recebe uma segunda solicitação de gravação, em que a segunda solicitação de gravação porta um segundo endereço de bloco lógico e segundos dados a serem gravados.
[0064] Etapa 1306: O controlador obtém uma impressão digital dos segundos dados a serem gravados, em que a impressão digital dos segundos dados a serem gravados é a primeira impressão digital.
[0065] Conforme descrito na modalidade supracitada, o controlador pode obter a primeira impressão digital realizando-se cálculo nos segundos dados a serem gravados de acordo com um algoritmo hash ou semelhantes. As impressões digitais dos primeiros dados a serem gravados e dos segundos dados a serem gravados são as mesmas, e indicam que os primeiros dados a serem gravados são os mesmos que os segundos dados a serem gravados.
[0066] Etapa 1307: Quando o controlador consulta a tabela de impressão digital de acordo com a primeira impressão digital dos segundos dados a serem gravados e determina que nenhum endereço de armazenamento que corresponde à primeira impressão digital existe, o controlador aloca um segundo endereço de armazenamento do dispositivo de armazenamento para os segundos dados a serem gravados.
[0067] Etapa 1308: O controlador estabelece uma relação de mapeamento entre o segundo endereço de bloco lógico e o segundo endereço de armazenamento, e estabelece uma relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital.
[0068] Opcionalmente, o controlador aloca o primeiro endereço de armazenamento de uma primeira área de armazenamento do dispositivo de armazenamento para os primeiros dados a serem gravados, e o controlador aloca o segundo endereço de armazenamento de uma segunda área de armazenamento do dispositivo de armazenamento para os segundos dados a serem gravados, em que performance de armazenamento da segunda área de armazenamento é maior que performance de armazenamento da primeira área de armazenamento, e performance do controlador em acessar dados referenciáveis pode ser melhorado.
[0069] Opcionalmente, o controlador registra uma quantidade de tempos de referência do segundo endereço de armazenamento na tabela de impressão digital. Em uma implantação específica, o controlador pode registrar a quantidade de tempos de referência do segundo endereço de armazenamento na primeira entrada de impressão digital na tabela de impressão digital. Uma quantidade de tempos de referência é uma quantidade de vezes que um endereço de bloco lógico faz referência a um endereço de armazenamento que corresponde a uma impressão digital na tabela de impressão digital. A quantidade de vezes que um endereço de bloco lógico faz referência a um endereço de armazenamento que corresponde a uma impressão digital na tabela de impressão digital é determinada por uma relação de mapeamento entre o endereço de bloco lógico e o endereço de armazenamento. Quando o controlador estabelece a relação de mapeamento entre o endereço de bloco lógico e o endereço de armazenamento, e o endereço de armazenamento é registrado na tabela de impressão digital, o endereço de bloco lógico faz referência ao endereço de armazenamento que corresponde à impressão digital na tabela de impressão digital uma vez. Em uma implantação específica, o controlador registra a quantidade de tempos de referência do segundo endereço de armazenamento na primeira entrada de impressão digital na tabela de impressão digital, e a quantidade de tempos de referência é uma quantidade de vezes que o endereço de bloco lógico faz referência a um endereço de armazenamento na entrada de impressão digital. Pode ser determinado, de acordo com a quantidade de tempos de referência, se os dados podem ser gravados no segundo endereço de armazenamento novamente. Quando a quantidade de tempos de referência é 0, isso indica que nenhum endereço de bloco lógico aponta para o segundo endereço de armazenamento, e o segundo endereço de armazenamento pode ser liberado, de modo que o segundo endereço de armazenamento se torne um endereço de armazenamento inativo no dispositivo de armazenamento e possa ser usado para gravar dados novamente. O controlador armazena, em um cache do controlador de acordo com uma quantidade de tempos de referência registrados na tabela de impressão digital, uma relação de mapeamento entre uma impressão digital cuja quantidade de tempos de referência é maior que um limite predefinido e um endereço de armazenamento que corresponde à impressão digital, e isso melhora a eficiência de busca de impressão digital durante deduplicação.
[0070] O controlador conta uma quantidade de vezes que uma solicitação de gravação recebida porta dados a serem gravados cujo valor de impressão digital é a primeira impressão digital. Quando a quantidade de vezes é maior que uma quantidade N predefinida de vezes, o controlador armazena os segundos dados a serem gravados no segundo endereço de armazenamento e estabelece a relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital, em que N é um número inteiro não inferior a 1. Isto é, dados duplicados (os segundos dados a serem gravados) que aparecem pela (N+1)ésima vez são armazenados no segundo endereço de armazenamento, e a relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento é estabelecida na tabela de impressão digital. Dados armazenados no segundo endereço de armazenamento são dados referenciáveis. Conforme descrito acima, uma implantação específica para estabelecer, através do controlador, a relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital pode ser, especificamente, inserir, através do controlador, o segundo endereço de armazenamento na primeira entrada de impressão digital na tabela de impressão digital. Portanto, a deduplicação em um bloco de dados cujo grau de duplicação alcança um valor específico pode ser definida de acordo com uma exigência do sistema de armazenamento. Dados referenciáveis são dados que são armazenados em um endereço de armazenamento que corresponde a uma impressão digital na tabela de impressão digital, e dados não referenciáveis são dados que são armazenados no sistema de armazenamento, porém, não são armazenados em um endereço de armazenamento que corresponde a uma impressão digital na tabela de impressão digital. Em uma implantação específica, dados referenciáveis são dados que são armazenados em um endereço de armazenamento em uma entrada de impressão digital na tabela de impressão digital e dados não referenciáveis são dados que são armazenados no sistema de armazenamento, porém, não são armazenados em um endereço de armazenamento registrado em uma entrada de impressão digital na tabela de impressão digital.
[0071] O controlador estabelece a relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital; portanto, os segundos dados a serem gravados armazenados no segundo endereço de armazenamento são dados referenciáveis.
[0072] Opcionalmente, o controlador recebe uma terceira solicitação de gravação, em que a terceira solicitação de gravação porta um terceiro endereço de bloco lógico e terceiros dados a serem gravados; o controlador obtém uma impressão digital dos terceiros dados a serem gravados, em que a impressão digital dos terceiros dados a serem gravados é a primeira impressão digital; e ao consultar a tabela de impressão digital de acordo com a primeira impressão digital dos terceiros dados a serem gravados para determinar que um endereço de armazenamento que corresponde à primeira impressão digital é o segundo endereço de armazenamento, o controlador estabelece uma relação de mapeamento entre o terceiro endereço de bloco lógico e o segundo endereço de armazenamento. As impressões digitais dos primeiros dados a serem gravados, dos segundos dados a serem gravados e dos terceiros dados a serem gravados são todas a primeira impressão digital, e a mesma indica que os primeiros dados a serem gravados, os segundos dados a serem gravados e os terceiros dados a serem gravados são idênticos. Com base nisso, o controlador realiza uma operação de deduplicação nos dados duplicados, e o espaço de armazenamento pode ser economizado. Em uma implantação específica, ao consultar a primeira entrada de impressão digital na tabela de impressão digital de acordo com a primeira impressão digital dos terceiros dados a serem gravados para determinar que o endereço de armazenamento que corresponde à primeira impressão digital é o segundo endereço de armazenamento, o controlador estabelece a relação de mapeamento entre o terceiro endereço de bloco lógico e o segundo endereço de armazenamento.
[0073] Opcionalmente, o controlador deleta uma segunda impressão digital da tabela de impressão digital. Nenhum endereço de armazenamento que corresponde à segunda impressão digital existe, e a duração para que a segunda impressão digital exista na tabela de impressão digital excede a duração predefinida, e isso reduz adicionalmente uma quantidade de dados na tabela de impressão digital. Em uma implantação específica, pode ser determinado, de acordo com o tempo quando a segunda impressão digital é inserida e que é registrada na tabela de impressão digital, que a duração para que a segunda impressão digital exista na tabela de impressão digital excede a duração predefinida. Opcionalmente, uma entrada de impressão digital é usada como um exemplo. Para a segunda impressão digital registrada em uma entrada de impressão digital através do controlador, a segunda impressão digital não corresponde a nenhum endereço de armazenamento em uma segunda entrada de impressão digital, e a duração para que a segunda impressão digital exista na segunda entrada de impressão digital excede a duração predefinida.
[0074] Opcionalmente, o sistema de armazenamento inclui adicionalmente uma tabela de mapeamento inversa. Uma entrada na tabela de mapeamento inversa é usada para registrar uma relação de mapeamento entre um endereço de armazenamento que corresponde a uma impressão digital na tabela de impressão digital e um endereço de bloco lógico que aponta para o endereço de armazenamento. Para o segundo endereço de armazenamento que corresponde à primeira impressão digital, endereços de bloco lógico que apontam para o segundo endereço de armazenamento são respectivamente o segundo endereço de bloco lógico e o terceiro endereço de bloco lógico. Quando o segundo endereço de armazenamento fornecido pelo dispositivo de armazenamento é defeituoso (ou a segunda área de armazenamento é defeituosa), o dispositivo de armazenamento defeituoso é substituído por um novo dispositivo de armazenamento (a segunda área de armazenamento defeituosa é substituída por uma nova área de armazenamento). Portanto, quando o segundo endereço de armazenamento é realocado do novo dispositivo de armazenamento ou da nova área de armazenamento, o segundo endereço de bloco lógico e o terceiro endereço de bloco lógico que são correspondentes ao segundo endereço de armazenamento precisam apenas ser determinados de acordo com uma entrada na tabela de mapeamento inversa, e não há necessidade em determinar os endereços de bloco lógico que apontam para o segundo endereço de armazenamento atravessando-se relações de mapeamento entre endereços de bloco lógico de todas as unidades lógicas no sistema de armazenamento e endereços de armazenamento. Portanto, a eficiência de busca de endereço de bloco lógico durante a recuperação de dados é melhorada.
[0075] Opcionalmente, uma relação de mapeamento entre um endereço de bloco lógico e um endereço de armazenamento pode incluir adicionalmente um identificador que indica se os dados são dados referenciáveis. Por exemplo, a relação de mapeamento entre o primeiro endereço de bloco lógico e o primeiro endereço de armazenamento porta um identificador que indica se os dados são dados referenciáveis, a relação de mapeamento entre o segundo endereço de bloco lógico e o segundo endereço de armazenamento porta um identificador que indica se os dados são dados referenciáveis e a relação de mapeamento entre o terceiro endereço de bloco lógico e o segundo endereço de armazenamento porta um identificador que indica se os dados são dados referenciáveis. O controlador pode identificar facilmente se os dados armazenados nos endereços de armazenamento são dados referenciáveis com o uso de identificadores de dados referenciáveis nas relações de mapeamento supracitadas.
[0076] De acordo com o fluxograma mostrado na Figura 13, as impressões digitais dos primeiros dados a serem gravados e dos segundos dados a serem gravados são ambos a primeira impressão digital, e indicam que os primeiros dados a serem gravados são os mesmos que os segundos dados a serem gravados. O controlador armazena um bloco de dados que é gravado pela primeira vez no primeiro endereço de armazenamento e insere, na tabela de impressão digital, a primeira impressão digital dos primeiros dados a serem gravados que são gravados pela primeira vez, porém, não estabelecem a relação de mapeamento entre a primeira impressão digital e o primeiro endereço de armazenamento. Ao receber os segundos dados a serem gravados subsequentemente gravados (os segundos dados a serem gravados não são limitados aos mesmos dados recebidos através do controlador pela segunda vez), o controlador aloca o segundo endereço de armazenamento para os segundos dados a serem gravados duplicados, armazena os segundos dados a serem gravados no segundo endereço de armazenamento, e estabelece a relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital. Isto é, o controlador realiza deduplicação apenas nos mesmos dados que foram recebidos múltiplas vezes e isso reduz a quantidade dos dados na tabela de impressão digital.
[0077] Para uma implantação específica do fluxograma mostrado na Figura 13, consultar a descrição na modalidade supracitada e detalhes não são descritos no presente documento novamente.
[0078] De acordo com as soluções descritas nas modalidades da presente invenção, outra modalidade da presente invenção fornece um controlador mostrado na Figura 14, aplicado a um sistema de armazenamento nas modalidades da presente invenção. O controlador inclui uma unidade de recebimento 1401, uma unidade de obtenção 1402, uma unidade de inserção 1403, uma unidade de alocação 1404, uma unidade de armazenamento 1405 e uma unidade de estabelecimento 1406. A unidade de recebimento 1401 é configurada para receber uma primeira solicitação de gravação, em que a primeira solicitação de gravação porta um primeiro endereço de bloco lógico e primeiros dados a serem gravados. A unidade de obtenção 1402 é configurada para obter uma primeira impressão digital dos primeiros dados a serem gravados. A unidade de inserção 1403 é configurada para: inserir a primeira impressão digital na tabela de impressão digital quando uma tabela de impressão digital não inclui a primeira impressão digital. A unidade de alocação 1404 é configurada para alocar um primeiro endereço de armazenamento de um dispositivo de armazenamento para os primeiros dados a serem gravados. A unidade de armazenamento 1405 é configurada para armazenar os primeiros dados a serem gravados no primeiro endereço de armazenamento. A unidade de estabelecimento 1406 é configurada para estabelecer uma relação de mapeamento entre o primeiro endereço de bloco lógico e o primeiro endereço de armazenamento. A unidade de recebimento 1401 é configurada adicionalmente para receber uma segunda solicitação de gravação, em que a segunda solicitação de gravação porta um segundo endereço de bloco lógico e segundos dados a serem gravados. A unidade de obtenção 1402 é configurada adicionalmente para obter uma impressão digital dos segundos dados a serem gravados, em que a impressão digital dos segundos dados a serem gravados é a primeira impressão digital. A unidade de alocação 1404 é configurada adicionalmente para: alocar um segundo endereço de armazenamento do dispositivo de armazenamento para os segundos dados a serem gravados ao consultar a tabela de impressão digital de acordo com a primeira impressão digital dos segundos dados a serem gravados para determinar que nenhum endereço de armazenamento que corresponde à primeira impressão digital existe na tabela de impressão digital. A unidade de armazenamento 1405 é configurada adicionalmente para armazenar os segundos dados a serem gravados no segundo endereço de armazenamento. A unidade de estabelecimento 1406 é configurada adicionalmente para estabelecer uma relação de mapeamento entre o segundo endereço de bloco lógico e o segundo endereço de armazenamento e estabelecer uma relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital.
[0079] Opcionalmente, a unidade de alocação 1404 é especificamente configurada para alocar o primeiro endereço de armazenamento de uma primeira área de armazenamento do dispositivo de armazenamento para os primeiros dados a serem gravados e alocar o segundo endereço de armazenamento de uma segunda área de armazenamento do dispositivo de armazenamento para os segundos dados a serem gravados. Performance de armazenamento da segunda área de armazenamento é maior que performance de armazenamento da primeira área de armazenamento.
[0080] Opcionalmente, a unidade de recebimento 1401 é configurada adicionalmente para receber uma terceira solicitação de gravação, em que a terceira solicitação de gravação porta um terceiro endereço de bloco lógico e terceiros dados a serem gravados. A unidade de obtenção 1402 é configurada adicionalmente para obter uma impressão digital dos terceiros dados a serem gravados, em que a impressão digital dos terceiros dados a serem gravados é a primeira impressão digital. A unidade de estabelecimento 1406 é configurada adicionalmente para: estabelecer uma relação de mapeamento entre o terceiro endereço de bloco lógico e o segundo endereço de armazenamento quando a tabela de impressão digital é consultada de acordo com a primeira impressão digital dos terceiros dados a serem gravados para determinar que um endereço de armazenamento que corresponde à primeira impressão digital é o segundo endereço de armazenamento.
[0081] Opcionalmente, o controlador inclui adicionalmente uma unidade de registro e a unidade de registro é configurada para registrar uma quantidade de tempos de referência do segundo endereço de armazenamento em uma primeira entrada de impressão digital. Opcionalmente, a unidade de registro é configurada adicionalmente para registrar a quantidade de tempos de referência do segundo endereço de armazenamento na tabela de impressão digital.
[0082] Opcionalmente, o controlador inclui adicionalmente uma unidade de eliminação e a unidade de eliminação é configurada para deletar uma segunda impressão digital da tabela de impressão digital. Nenhum endereço de armazenamento que corresponde à segunda impressão digital existe e a duração para que a segunda impressão digital exista na tabela de impressão digital excede a duração predefinida.
[0083] Opcionalmente, o controlador inclui adicionalmente uma unidade de contabilização configurada para contar uma quantidade de vezes que uma solicitação de gravação recebida porta dados a serem gravados cujo valor de impressão digital é a primeira impressão digital. A unidade de armazenamento 1405 armazena os segundos dados a serem gravados no segundo endereço de armazenamento e a unidade de estabelecimento 1406 estabelece a relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital quando a quantidade de vezes é maior que uma quantidade N predefinida de vezes, em que N é um número inteiro não inferior a 1.
[0084] Para um efeito implantado através do controlador mostrado na Figura 14 e para uma implantação adicional, consultar a descrição correspondente nas modalidades supracitadas, e detalhes não são descritos no presente documento novamente.
[0085] Para o controlador mostrado na Figura 14, uma implantação é que as unidades supracitadas são instaladas no controlador, as unidades supracitadas podem ser portadas em uma memória do controlador e uma CPU no controlador executa uma instrução na memória, de modo a implantar funções nas modalidades correspondentes da presente invenção; outra implantação é que as unidades incluídas no controlador podem ser implantadas por hardware ou implantadas por uma combinação de hardware e a instrução na memória executada pela CPU. As unidades supracitadas também são denominadas unidades estruturais.
[0086] Uma modalidade da presente invenção fornece adicionalmente um meio de armazenamento legível por computador não volátil e um produto de programa de computador, e uma instrução de computador incluída no meio de armazenamento legível por computador não volátil e no produto de programa de computador. Uma CPU executa a instrução de computador portada em uma memória, de modo a implantar funções que correspondem ao controlador nas modalidades da presente invenção.
[0087] De acordo com aspectos descritos nas modalidades da presente invenção, quando o controlador não pode acessar uma entrada em uma tabela de impressão digital, o controlador ainda pode acessar dados no dispositivo de armazenamento, dados de gravação e dados de eliminação do dispositivo de armazenamento de acordo com uma relação de mapeamento entre um endereço de bloco lógico e um endereço de armazenamento.
[0088] Nas modalidades da presente invenção, uma entrada de impressão digital na tabela de impressão digital e a relação de mapeamento entre um endereço de bloco lógico e um endereço de armazenamento podem ser estruturas de dados ou outras estruturas descritivas apropriadas, e são usadas para registrar informações correspondentes. Uma descrição exemplificativa é dada nas modalidades da presente invenção. "Primeiro", "segundo", "terceiro" e "quarto " nas modalidades da presente invenção não são usados para limitar estritamente uma sequência. Por exemplo, quando usados para representar uma solicitação de operação, "primeiro", "segundo" e "terceiro" são usados apenas para distinção entre diferentes solicitações de operação, e quando usados para representar dados a serem gravados, "primeiro", "segundo" e "terceiro" são usados apenas para representar dados a serem gravados portados em diferentes solicitações de gravação. O controlador pode receber adicionalmente uma ou mais solicitações de gravação entre a primeira solicitação de gravação e a segunda solicitação de gravação. Performance de armazenamento nas modalidades da presente invenção pode ser medido por um ou mais indicadores, tais como largura de banda (Bandwidth), operações de entrada/saída por segundo (Input/Output Operations Per Second, IOPS), uma velocidade de gravação/leitura sequencial (Sequential), uma velocidade de gravação/leitura aleatória (Random), uma capacidade de rendimento suportado (Sustained Throughput) e uma capacidade de processamento de intermitência (Intermitência I/O), e as modalidades da presente invenção não definem limitação aos mesmos.
[0089] Nas diversas modalidades fornecidas na presente invenção, deve ser entendido que o aparelho e método revelados podem ser implantados de outras maneiras. Por exemplo, a divisão de unidade na modalidade de aparelho descrita é meramente divisão de função lógica e pode ser outra divisão na implantação real. Por exemplo, múltiplas unidades ou componentes podem ser combinados ou integrados a 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 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.
[0090] As unidades descritas como partes separadas podem ou não ser fisicamente separadas, e as partes exibidas como unidades podem ou não ser unidades físicas, podem estar localizadas em uma posição, ou podem ser distribuídas em múltiplas 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.
[0091] Além disso, unidades funcionais nas modalidades da presente invenção podem ser integradas em uma unidade de processamento ou cada uma das unidades pode existir fisicamente isolada ou duas ou mais unidades serem integradas em uma unidade.

Claims (28)

1. Método para deduplicação em um sistema de armazenamento, o sistema de armazenamento compreende um controlador e um dispositivo de armazenamento, e CARACTERIZADO pelo fato de que o método compreende: receber (1301), através do controlador, uma primeira solicitação de gravação, em que a primeira solicitação de gravação porta um primeiro endereço de bloco lógico e primeiros dados a serem gravados; obter (1302), através do controlador, uma primeira impressão digital dos primeiros dados a serem gravados; inserir (1303), através do controlador, a primeira impressão digital na tabela de impressão digital quando uma tabela de impressão digital não compreende a primeira impressão digital, e alocar um primeiro endereço de armazenamento do dispositivo de armazenamento para os primeiros dados a serem gravados; em que não existe endereço de armazenamento que corresponde à primeira impressão digital na tabela de impressão digital; armazenar (1304), através do controlador, os primeiros dados a serem gravados no primeiro endereço de armazenamento; estabelecer (1304), através do controlador, uma relação de mapeamento entre o primeiro endereço de bloco lógico e o primeiro endereço de armazenamento; receber (1305), através do controlador, uma segunda solicitação de gravação, em que a segunda solicitação de gravação porta um segundo endereço de bloco lógico e segundos dados a serem gravados; obter (1306), através do controlador, uma impressão digital dos segundos dados a serem gravados, em que a impressão digital dos segundos dados a serem gravados é a primeira impressão digital; alocar, através do controlador, um segundo endereço de armazenamento do dispositivo de armazenamento para os segundos dados a serem gravados quando o controlador consulta a tabela de impressão digital de acordo com a primeira impressão digital dos segundos dados a serem gravados e determina que nenhum endereço de armazenamento que corresponde à primeira impressão digital existe; armazenar, através do controlador, os segundos dados a serem gravados no segundo endereço de armazenamento; estabelecer, através do controlador, uma relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital; e estabelecer, através do controlador, uma relação de mapeamento entre o segundo endereço de bloco lógico e o segundo endereço de armazenamento.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a alocação, através do controlador, de um primeiro endereço de armazenamento do dispositivo de armazenamento para os primeiros dados a serem gravados especificamente compreende: alocar, através do controlador, o primeiro endereço de armazenamento de uma primeira área de armazenamento do dispositivo de armazenamento para os primeiros dados a serem gravados; e a alocação, através do controlador, de um segundo endereço de armazenamento do dispositivo de armazenamento para os segundos dados a serem gravados especificamente compreende: alocar, através do controlador, o segundo endereço de armazenamento de uma segunda área de armazenamento do dispositivo de armazenamento para os segundos dados a serem gravados, em que performance de armazenamento da segunda área de armazenamento é maior que performance de armazenamento da primeira área de armazenamento.
3. Método, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de que o método compreende adicionalmente: receber, através do controlador, uma terceira solicitação de gravação, em que a terceira solicitação de gravação porta um terceiro endereço de bloco lógico e terceiros dados a serem gravados; obter, através do controlador, uma impressão digital dos terceiros dados a serem gravados, em que a impressão digital dos terceiros dados a serem gravados é a primeira impressão digital; e estabelecer, através do controlador, uma relação de mapeamento entre o terceiro endereço de bloco lógico e o segundo endereço de armazenamento ao consultar a tabela de impressão digital de acordo com a primeira impressão digital dos terceiros dados a serem gravados para determinar que um endereço de armazenamento que corresponde à primeira impressão digital é o segundo endereço de armazenamento.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, CARACTERIZADO pelo fato de que o método compreende adicionalmente: registrar, através do controlador, uma quantidade de tempos de referência do segundo endereço de armazenamento na tabela de impressão digital.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, CARACTERIZADO pelo fato de que o método compreende adicionalmente:registrar, através do controlador na tabela de impressão digital, o tempo em que a primeira impressão digital é inserida.
6. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que o método compreende adicionalmente: deletar, através do controlador, uma segunda impressão digital da tabela de impressão digital, em que nenhum endereço de armazenamento que corresponde à segunda impressão digital existe, e duração para que a segunda impressão digital exista na tabela de impressão digital excede duração predefinida.
7. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o método compreende adicionalmente: contar, através do controlador, uma quantidade de vezes que uma solicitação de gravação recebida porta dados a serem gravados cujo valor de impressão digital é a primeira impressão digital; armazenar, através do controlador, os segundos dados a serem gravados no segundo endereço de armazenamento, e estabelecer a relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital quando a quantidade de vezes for maior que uma quantidade N predefinida de vezes, em que N é um número inteiro não inferior a 1.
8. Sistema de armazenamento, que compreende um controlador de armazenamento e um dispositivo de armazenamento, CARACTERIZADO pelo fato de que o controlador é configurado para: receber uma primeira solicitação de gravação, em que a primeira solicitação de gravação porta um primeiro endereço de bloco lógico e primeiros dados a serem gravados; obter uma primeira impressão digital dos primeiros dados a serem gravados; inserir a primeira impressão digital na tabela de impressão digital quando uma tabela de impressão digital não compreende a primeira impressão digital, e alocar um primeiro endereço de armazenamento do dispositivo de armazenamento para os primeiros dados a serem gravados; armazenar os primeiros dados a serem gravados no primeiro endereço de armazenamento; e estabelecer uma relação de mapeamento entre o primeiro endereço de bloco lógico e o primeiro endereço de armazenamento; em que não existe endereço de armazenamento que corresponde à primeira impressão digital na tabela de impressão digital; o controlador é configurado adicionalmente para: receber uma segunda solicitação de gravação, em que a segunda solicitação de gravação porta um segundo endereço de bloco lógico e segundos dados a serem gravados; obter uma impressão digital dos segundos dados a serem gravados, em que a impressão digital dos segundos dados a serem gravados é a primeira impressão digital; alocar um segundo endereço de armazenamento do dispositivo de armazenamento para os segundos dados a serem gravados ao consultar a tabela de impressão digital de acordo com a primeira impressão digital dos segundos dados a serem gravados para determinar que nenhum endereço de armazenamento que corresponde à primeira impressão digital existe; armazenar os segundos dados a serem gravados no segundo endereço de armazenamento; estabelecer uma relação de mapeamento entre o segundo endereço de bloco lógico e o segundo endereço de armazenamento; e estabelecer uma relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital; e o dispositivo de armazenamento é configurado para fornecer o primeiro endereço de armazenamento e o segundo endereço de armazenamento.
9. Sistema de armazenamento, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o controlador é especificamente configurado para alocar o primeiro endereço de armazenamento de uma primeira área de armazenamento do dispositivo de armazenamento para os primeiros dados a serem gravados e alocar o segundo endereço de armazenamento de uma segunda área de armazenamento do dispositivo de armazenamento para os segundos dados a serem gravados, em que performance de armazenamento da segunda área de armazenamento é maior que performance de armazenamento da primeira área de armazenamento.
10. Sistema de armazenamento, de acordo com a reivindicação 8 ou 9, CARACTERIZADO pelo fato de que o controlador é configurado adicionalmente para: receber uma terceira solicitação de gravação, em que a terceira solicitação de gravação porta um terceiro endereço de bloco lógico e terceiros dados a serem gravados; obter uma impressão digital dos terceiros dados a serem gravados, em que a impressão digital dos terceiros dados a serem gravados é a primeira impressão digital; estabelecer uma relação de mapeamento entre o terceiro endereço de bloco lógico e o segundo endereço de armazenamento ao consultar a tabela de impressão digital de acordo com a primeira impressão digital dos terceiros dados a serem gravados para determinar que um endereço de armazenamento que corresponde à primeira impressão digital é o segundo endereço de armazenamento.
11. Sistema de armazenamento, de acordo com qualquer uma das reivindicações 8 a 10, CARACTERIZADO pelo fato de que o controlador é configurado adicionalmente para registrar uma quantidade de tempos de referência do segundo endereço de armazenamento na tabela de impressão digital.
12. Sistema de armazenamento, de acordo com qualquer uma das reivindicações 8 a 11, CARACTERIZADO pelo fato de que o controlador é configurado adicionalmente para registrar, na tabela de impressão digital, tempo em que a primeira impressão digital é inserida.
13. Sistema de armazenamento, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que o controlador é configurado adicionalmente para deletar uma segunda impressão digital, em que nenhum endereço de armazenamento que corresponde à segunda impressão digital existe, e duração para que a segunda impressão digital exista na tabela de impressão digital excede duração predefinida.
14. Sistema de armazenamento, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o controlador é configurado adicionalmente para: contar uma quantidade de vezes que uma solicitação de gravação recebida porta dados a serem gravados cujo valor de impressão digital é a primeira impressão digital, armazenar os segundos dados a serem gravados no segundo endereço de armazenamento, e estabelecer a relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital quando a quantidade de vezes for maior que uma quantidade N predefinida de vezes, em que N é um número inteiro não inferior a 1.
15. Controlador aplicado a um sistema de armazenamento, CARACTERIZADO pelo fato de que o sistema de armazenamento compreende o controlador e um dispositivo de armazenamento, o controlador compreende uma interface e um processador, a interface se comunica com o processador, e a interface é configurada para receber uma primeira solicitação de gravação, em que a primeira solicitação de gravação porta um primeiro endereço de bloco lógico e primeiros dados a serem gravados; o processador é configurado para: obter uma primeira impressão digital dos primeiros dados a serem gravados; inserir a primeira impressão digital na tabela de impressão digital quando uma tabela de impressão digital não compreende a primeira impressão digital, e alocar um primeiro endereço de armazenamento do dispositivo de armazenamento para os primeiros dados a serem gravados; armazenar os primeiros dados a serem gravados no primeiro endereço de armazenamento; e estabelecer uma relação de mapeamento entre o primeiro endereço de bloco lógico e o primeiro endereço de armazenamento; em que não existe endereço de armazenamento que corresponde à primeira impressão digital na tabela de impressão digital; a interface é configurada adicionalmente para receber uma segunda solicitação de gravação, em que a segunda solicitação de gravação porta um segundo endereço de bloco lógico e segundos dados a serem gravados; e o processador é configurado adicionalmente para: obter uma impressão digital dos segundos dados a serem gravados, em que a impressão digital dos segundos dados a serem gravados é a primeira impressão digital; alocar um segundo endereço de armazenamento do dispositivo de armazenamento para os segundos dados a serem gravados ao consultar a tabela de impressão digital de acordo com a primeira impressão digital dos segundos dados a serem gravados para determinar que nenhum endereço de armazenamento que corresponde à primeira impressão digital existe na tabela de impressão digital; armazenar os segundos dados a serem gravados no segundo endereço de armazenamento; estabelecer uma relação de mapeamento entre o segundo endereço de bloco lógico e o segundo endereço de armazenamento; e estabelecer uma relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital.
16. Controlador, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que o processador é especificamente configurado para alocar o primeiro endereço de armazenamento de uma primeira área de armazenamento do dispositivo de armazenamento para os primeiros dados a serem gravados e alocar o segundo endereço de armazenamento de uma segunda área de armazenamento do dispositivo de armazenamento para os segundos dados a serem gravados, em que performance de armazenamento da segunda área de armazenamento é maior que performance de armazenamento da primeira área de armazenamento.
17. Controlador, de acordo com a reivindicação 15 ou 16, CARACTERIZADO pelo fato de que a interface é configurada adicionalmente para receber uma terceira solicitação de gravação, em que a terceira solicitação de gravação porta um terceiro endereço de bloco lógico e terceiros dados a serem gravados; e o processador é configurado adicionalmente para: obter uma impressão digital dos terceiros dados a serem gravados, em que a impressão digital dos terceiros dados a serem gravados é a primeira impressão digital; e estabelecer uma relação de mapeamento entre o terceiro endereço de bloco lógico e o segundo endereço de armazenamento ao consultar a tabela de impressão digital de acordo com a primeira impressão digital dos terceiros dados a serem gravados para determinar que um endereço de armazenamento que corresponde à primeira impressão digital é o segundo endereço de armazenamento.
18. Controlador, de acordo com qualquer uma das reivindicações 15 a 17, CARACTERIZADO pelo fato de que o processador é configurado adicionalmente para registrar uma quantidade de tempos de referência do segundo endereço de armazenamento na tabela de impressão digital.
19. Controlador, de acordo com qualquer uma das reivindicações 15 a 18, CARACTERIZADO pelo fato de que o processador é configurado adicionalmente para registrar, na tabela de impressão digital, tempo em que a primeira impressão digital é inserida.
20. Controlador, de acordo com a reivindicação 19, CARACTERIZADO pelo fato de que o processador é configurado adicionalmente para deletar uma segunda impressão digital da tabela de impressão digital, em que nenhum endereço de armazenamento que corresponde à segunda impressão digital existe, e duração para que a segunda impressão digital exista na tabela de impressão digital excede duração predefinida.
21. Controlador, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que o processador é configurado adicionalmente para: contar uma quantidade de vezes que uma solicitação de gravação recebida porta dados a serem gravados cujo valor de impressão digital é a primeira impressão digital, armazenar os segundos dados a serem gravados no segundo endereço de armazenamento, e estabelecer a relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital quando a quantidade de vezes for maior que uma quantidade N predefinida de vezes, em que N é um número inteiro não inferior a 1.
22. Controlador aplicado a um sistema de armazenamento, CARACTERIZADO pelo fato de que o sistema de armazenamento compreende o controlador e um dispositivo de armazenamento, o controlador compreende uma unidade de recebimento (1401), uma unidade de obtenção (1402), uma unidade de inserção (1403), uma unidade de alocação (1404), uma unidade de armazenamento (1405), e uma unidade de estabelecimento (1406), em que a unidade de recebimento (1401) é configurada para receber uma primeira solicitação de gravação, em que a primeira solicitação de gravação porta um primeiro endereço de bloco lógico e primeiros dados a serem gravados; a unidade de obtenção (1402) é configurada para obter uma primeira impressão digital dos primeiros dados a serem gravados; a unidade de inserção (1403) é configurada para: inserir a primeira impressão digital na tabela de impressão digital quando uma tabela de impressão digital não compreende a primeira impressão digital; em que não existe endereço de armazenamento que corresponde à primeira impressão digital na tabela de impressão digital; a unidade de alocação (1404) é configurada para alocar um primeiro endereço de armazenamento do dispositivo de armazenamento para os primeiros dados a serem gravados; a unidade de armazenamento (1405) é configurada para armazenar os primeiros dados a serem gravados no primeiro endereço de armazenamento; a unidade de estabelecimento (1406) é configurada para estabelecer uma relação de mapeamento entre o primeiro endereço de bloco lógico e o primeiro endereço de armazenamento; a unidade de recebimento (1401) é configurada adicionalmente para receber uma segunda solicitação de gravação, em que a segunda solicitação de gravação porta um segundo endereço de bloco lógico e segundos dados a serem gravados; a unidade de obtenção (1402) é configurada adicionalmente para obter uma impressão digital dos segundos dados a serem gravados, em que a impressão digital dos segundos dados a serem gravados é a primeira impressão digital; a unidade de alocação (1404) é configurada adicionalmente para: alocar um segundo endereço de armazenamento do dispositivo de armazenamento para os segundos dados a serem gravados ao consultar a tabela de impressão digital de acordo com a primeira impressão digital dos segundos dados a serem gravados para determinar que nenhum endereço de armazenamento que corresponde à primeira impressão digital existe na tabela de impressão digital; a unidade de armazenamento (1405) é configurada adicionalmente para armazenar os segundos dados a serem gravados no segundo endereço de armazenamento; e a unidade de estabelecimento (1406) é configurada adicionalmente para estabelecer uma relação de mapeamento entre o segundo endereço de bloco lógico e o segundo endereço de armazenamento e estabelecer uma relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital.
23. Controlador, de acordo com a reivindicação 22, CARACTERIZADO pelo fato de que a unidade de alocação (1404) é especificamente configurada para alocar o primeiro endereço de armazenamento de uma primeira área de armazenamento do dispositivo de armazenamento para os primeiros dados a serem gravados e alocar o segundo endereço de armazenamento de uma segunda área de armazenamento do dispositivo de armazenamento para os segundos dados a serem gravados, em que performance de armazenamento da segunda área de armazenamento é maior que performance de armazenamento da primeira área de armazenamento.
24. Controlador, de acordo com a reivindicação 22 ou 23, CARACTERIZADO pelo fato de que a unidade de recebimento (1401) é configurada adicionalmente para receber uma terceira solicitação de gravação, em que a terceira solicitação de gravação porta um terceiro endereço de bloco lógico e terceiros dados a serem gravados;a unidade de obtenção (1402) é configurada adicionalmente para obter uma impressão digital dos terceiros dados a serem gravados, em que a impressão digital dos terceiros dados a serem gravados é a primeira impressão digital; e a unidade de estabelecimento (1406) é configurada adicionalmente para: estabelecer uma relação de mapeamento entre o terceiro endereço de bloco lógico e o segundo endereço de armazenamento quando a tabela de impressão digital é consultada de acordo com a primeira impressão digital dos terceiros dados a serem gravados para determinar que um endereço de armazenamento que corresponde à primeira impressão digital é o segundo endereço de armazenamento.
25. Controlador, de acordo com qualquer uma das reivindicações 22 a 24, CARACTERIZADO pelo fato de que o controlador compreende adicionalmente uma unidade de registro, e a unidade de registro é configurada para registrar uma quantidade de tempos de referência do segundo endereço de armazenamento na tabela de impressão digital.
26. Controlador, de acordo com qualquer uma das reivindicações 22 a 25, CARACTERIZADO pelo fato de que a unidade de registro é configurada adicionalmente para registrar, na tabela de impressão digital, tempo em que a primeira impressão digital é inserida.
27. Controlador, de acordo com a reivindicação 26, CARACTERIZADO pelo fato de que o controlador compreende adicionalmente uma unidade de eliminação, e a unidade de eliminação é configurada para deletar uma segunda impressão digital da tabela de impressão digital, em que nenhum endereço de armazenamento que corresponde à segunda impressão digital existe, e duração para que a segunda impressão digital exista na tabela de impressão digital excede duração predefinida.
28. Controlador, de acordo com a reivindicação 22, CARACTERIZADO pelo fato de que o controlador compreende adicionalmente uma unidade de contabilização, configurada para contar uma quantidade de vezes que uma solicitação de gravação recebida porta dados a serem gravados cujo valor de impressão digital é a primeira impressão digital; a unidade de armazenamento (1405) armazena os segundos dados a serem gravados no segundo endereço de armazenamento, e a unidade de estabelecimento (1406) estabelece a relação de mapeamento entre a primeira impressão digital e o segundo endereço de armazenamento na tabela de impressão digital quando a quantidade de vezes é maior que uma quantidade N predefinida de vezes, em que N é um número inteiro não inferior a 1.
BR112017019142-3A 2016-09-28 Método para deduplicação em sistema de armazenamento, sistema de armazenamento e controlador BR112017019142B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/100629 WO2018058382A1 (zh) 2016-09-28 2016-09-28 一种存储系统中重复数据删除方法、存储系统及控制器

Publications (3)

Publication Number Publication Date
BR112017019142A2 BR112017019142A2 (pt) 2018-07-03
BR112017019142A8 BR112017019142A8 (pt) 2019-01-22
BR112017019142B1 true BR112017019142B1 (pt) 2024-03-19

Family

ID=

Similar Documents

Publication Publication Date Title
US10216446B2 (en) Method for deduplication in storage system, storage system, and controller
US10248623B1 (en) Data deduplication techniques
JP6729914B2 (ja) ソリッドステートストレージドライブ、システム、および方法
US10747440B2 (en) Storage system and storage system management method
US20130013880A1 (en) Storage system and its data processing method
US10740018B2 (en) Data migration method and apparatus applied to computer system, and computer system
WO2016045096A1 (zh) 一种文件迁移方法、装置和存储设备
US20160179581A1 (en) Content-aware task assignment in distributed computing systems using de-duplicating cache
US9779026B2 (en) Cache bypass utilizing a binary tree
KR102440370B1 (ko) Ssd 내 핫 데이터 및 스트림을 식별하기 위한 시스템 및 방법
KR20170038853A (ko) 호스트-관리 비휘발성 메모리
TW202203061A (zh) 包含鍵值儲存裝置的機器、區塊介面仿真方法及包括非暫時性儲存媒體的製品
WO2019120226A1 (zh) 数据访问预测方法和装置
US10365846B2 (en) Storage controller, system and method using management information indicating data writing to logical blocks for deduplication and shortened logical volume deletion processing
US11226769B2 (en) Large-scale storage system and data placement method in large-scale storage system
US11513702B2 (en) Placement of metadata on data storage drives in a first storage enclosure of a data storage system
US10614036B1 (en) Techniques for de-duplicating data storage systems using a segmented index
BR112017019142B1 (pt) Método para deduplicação em sistema de armazenamento, sistema de armazenamento e controlador
JP2021096513A (ja) 管理装置、管理方法及びプログラム
US11803527B2 (en) Techniques for efficient data deduplication
CN112988034B (zh) 一种分布式系统数据写入方法及装置
US11055006B1 (en) Virtual storage domain for a content addressable system
CN115083478A (zh) 配置为支持多流的存储设备的操作方法