BR112021002987B1 - Método de tratamento de falha de disco rígido, controlador de arranjo, e disco rígido - Google Patents

Método de tratamento de falha de disco rígido, controlador de arranjo, e disco rígido Download PDF

Info

Publication number
BR112021002987B1
BR112021002987B1 BR112021002987-7A BR112021002987A BR112021002987B1 BR 112021002987 B1 BR112021002987 B1 BR 112021002987B1 BR 112021002987 A BR112021002987 A BR 112021002987A BR 112021002987 B1 BR112021002987 B1 BR 112021002987B1
Authority
BR
Brazil
Prior art keywords
hard disk
controller
logical
fault
data
Prior art date
Application number
BR112021002987-7A
Other languages
English (en)
Other versions
BR112021002987A2 (pt
Inventor
Guoxia LIU
Liming Wu
Original Assignee
Huawei Technologies Co., Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN201811451958.7A external-priority patent/CN110879761A/zh
Application filed by Huawei Technologies Co., Ltd filed Critical Huawei Technologies Co., Ltd
Priority claimed from PCT/CN2019/104163 external-priority patent/WO2020048442A1/zh
Publication of BR112021002987A2 publication Critical patent/BR112021002987A2/pt
Publication of BR112021002987B1 publication Critical patent/BR112021002987B1/pt

Links

Abstract

MÉTODO DE TRATAMENTO DE FALHA DE DISCO RÍGIDO, CONTROLADOR DE ARRANJO, E DISCO RÍGIDO. Um método de tratamento de falha de disco rígido é fornecido. O método é realizado por um controlador de arranjo (101) em um arranjo de armazenamento (100). O arranjo de armazenamento (100) inclui uma pluralidade de discos rígidos (105, 106, 107, e 108), cada um dos discos rígidos (105, 106, 107, e 108) é dividido em uma pluralidade de chunks, e uma pluralidade de chunks de diferentes discos rígidos (105, 106, 107, e 108) forma um grupo de chunks por meio do uso de um algoritmo de redundância. O método inclui: obter informações de falha de uma área com falha que está em um primeiro disco rígido e no qual uma falha ocorre; quando as informações de falha indicarem que dados na área com falha estão perdidos, determinar um chunk com falha no qual os dados perdidos estão localizados; recuperar os dados no chunk com falha por meio do uso de outro chunk em um grupo de chunks ao qual o chunk com falha pertence; armazenar os dados recuperados em um chunk recuperado, em que o chunk recuperado está localizado em um segundo disco rígido, e o segundo disco rígido é um disco rígido diferente de discos rígidos no qual o (...).

Description

CAMPO TÉCNICO
[0001] A presente invenção refere-se ao campo de tecnologias de armazenamento e, em particular, a um método de tratamento realizado depois de uma área de armazenamento em um disco rígido estar com falha, e a um controlador de arranjo e a um disco rígido que realizam o método de tratamento.
FUNDAMENTOS
[0002] Como dados não podem ser escritos em um disco de estado sólido no local, mas apenas em um lugar remoto, uma parte do espaço redundante precisa ser reservada no disco de estado sólido para que dados sejam escritos no disco de estado sólido, para melhorar o desempenho do disco de estado sólido. Uma capacidade nominal fornecida pelo disco de estado sólido não inclui uma capacidade do espaço redundante.
[0003] Quando ocorre uma falha em uma área (por exemplo, um DIE está com falha, que é brevemente referido como uma área com falha abaixo) no disco de estado sólido, a fim de não reduzir a capacidade nominal, a área com falha precisa ser compensada por meio do uso da capacidade do espaço redundante. Consequentemente, a capacidade do espaço redundante é reduzida. Um grau de desgaste do disco de estado sólido é aumentado devido à redução do espaço redundante, afetando, desse modo, o desempenho do disco de estado sólido.
SUMÁRIO
[0004] As modalidades da presente invenção fornecem um método de tratamento realizado depois da ocorrência de uma área com falha em um disco rígido. De acordo com o método de tratamento, depois da ocorrência da área com falha no disco rígido, o espaço redundante do disco rígido não é reduzido e, portanto, um grau de desgaste do disco rígido não é aumentado.
[0005] Um primeiro aspecto das modalidades da presente invenção fornece um método de tratamento de falha de disco rígido. O método é realizado por um controlador de arranjo em um arranjo de armazenamento. O arranjo de armazenamento inclui uma pluralidade de discos rígidos, cada um dos discos rígidos é dividido em uma pluralidade de chunks e uma pluralidade de chunks de diferentes discos rígidos formam um grupo de chunks por meio do uso de um algoritmo de redundância. O método inclui: obter informações de falha de uma área com falha que está em um primeiro disco rígido e em que uma falha ocorre; quando as informações de falha indicam que os dados na área com falha estão perdidos, determinar um chunk com falha em que os dados perdidos estão localizados; recuperar os dados no chunk com falha por meio do uso de outro chunk em um grupo de chunks ao qual o chunk com falha pertence; armazenar os dados recuperados em um chunk recuperado, onde o chunk recuperado está localizado em um segundo disco rígido e o segundo disco rígido é um disco rígido diferente dos discos rígidos em que o grupo de chunks está localizado; e gravar uma correspondência entre um endereço dos dados no chunk com falha no primeiro disco rígido e um endereço do bloco de dados recuperado no segundo disco rígido.
[0006] Os dados perdidos no chunk com falha no primeiro disco rígido são recuperados para o chunk recuperado no segundo disco rígido e a correspondência entre o endereço do chunk com falha no primeiro disco rígido e o endereço do chunk recuperado no segundo disco rígido é gravada. Desta maneira, o espaço redundante do primeiro disco rígido não é reduzido, de modo que o desempenho do primeiro disco rígido seja garantido.
[0007] Na modalidade do primeiro aspecto, duas maneiras de obter as informações de falha da área com falha que está no primeiro disco rígido e em que uma falha ocorre são fornecidas. Em uma primeira maneira, o controlador de arranjo recebe as informações de falha reportadas pelo primeiro disco rígido. Em uma segunda maneira, o controlador de arranjo envia um comando de consulta de falha para o primeiro disco rígido e, em seguida, recebe as informações de falha reportadas pelo primeiro disco rígido, de acordo com o comando de consulta de falha.
[0008] Opcionalmente, as informações de falha incluem um identificador, indicando se os dados estão perdidos, e é determinado, com base no identificador, que os dados na área com falha estão perdidos.
[0009] Na modalidade do primeiro aspecto, duas maneiras de determinar o chunk com falha em que os dados perdidos estão localizados são fornecidas. Em uma primeira maneira, o controlador de arranjo obtém um endereço de um primeiro chunk no primeiro disco rígido no primeiro disco rígido; e envia um comando de consulta de perda de dados para o primeiro disco rígido, onde o comando de consulta porta o endereço do primeiro chunk no primeiro disco rígido. Depois de receber a instrução de consulta, o primeiro disco rígido determina se o endereço portado na instrução de consulta inclui uma parte ou a totalidade de um endereço da área com falha e se o endereço portado na instrução de consulta incluir a parte ou a totalidade do endereço da área com falha, o primeiro disco rígido utiliza uma mensagem de retorno da instrução de consulta para portar informações de indicação, indicando que o primeiro chunk inclui os dados perdidos; ou se o endereço portado na instrução de consulta não incluir a parte ou a totalidade do endereço da área com falha, o primeiro disco rígido utiliza uma mensagem de retorno da instrução de consulta para portar informações de indicação, indicando que o primeiro chunk não inclui os dados perdidos. Depois de receber informações de indicação que são retornadas pelo primeiro disco rígido e que indicam se o primeiro chunk inclui os dados perdidos, se o controlador de arranjo determinar que as informações de indicação indicam que o primeiro chunk inclui os dados perdidos, o controlador de arranjo determina que o primeiro chunk é o chunk com falha; e, em seguida, gera um novo comando de consulta de perda de dados, onde o novo comando de consulta de perda de dados porta um endereço de um segundo chunk no primeiro disco rígido.
[0010] Em uma segunda maneira de determinar o chunk com falha em que os dados perdidos estão localizados, o controlador de arranjo envia um comando de consulta de área com falha para o primeiro disco rígido; recebe informações que são retornadas pelo primeiro disco rígido e que incluem um endereço da área com falha; e determina o chunk com falha com base no endereço da área com falha.
[0011] Opcionalmente, as informações de falha incluem uma capacidade da área com falha. O método inclui adicionalmente: obter a capacidade da área com falha que está nas informações de falha e adicionar a capacidade da área com falha a uma capacidade de falha total do primeiro disco rígido; e ao determinar que a capacidade de falha total é maior que um valor predefinido, incitar um usuário a substituir o primeiro disco rígido.
[0012] Em comparação ao estado da técnica em que um grau de desgaste do disco rígido é detectado, uma maneira de detectar uma perda de capacidade total pelo disco rígido para determinar se deve substituir o disco rígido é mais conveniente e mais precisa.
[0013] Um segundo aspecto da presente invenção fornece um método de tratamento de falha de disco rígido. O método é realizado por um controlador de arranjo em um arranjo de armazenamento, o arranjo de armazenamento inclui um primeiro disco rígido e o primeiro disco rígido inclui uma área com falha. O método inclui: obter informações de falha da área com falha; determinar uma capacidade da área com falha com base nas informações de falha; migrar alguns dados no primeiro disco rígido para um segundo disco rígido com base na capacidade; e gravar uma relação de mapeamento entre um endereço dos dados migrados no primeiro disco rígido e um endereço dos dados migrados no segundo disco rígido.
[0014] Opcionalmente, o primeiro disco rígido e outro disco rígido no arranjo de armazenamento formam um disco lógico por meio do uso de um algoritmo de redundância. O método inclui adicionalmente: determinar, com base nas informações de falha, se os dados no primeiro disco rígido estão perdidos; e se os dados no primeiro disco rígido estiverem perdidos, recuperar os dados no primeiro disco rígido por meio do uso do algoritmo de redundância.
[0015] Os dados perdidos no disco rígido podem ser recuperados no tempo para obter informações sobre os dados perdidos no disco rígido e um algoritmo de redundância entre os discos rígidos.
[0016] Um terceiro aspecto da presente invenção fornece um método de tratamento de falha de disco rígido, que é realizado por um disco rígido. O método inclui: detectar uma área com falha no disco rígido; determinar se os dados na área com falha estão perdidos; definir, com base em um resultado de determinação, uma marca indicando se os dados na área com falha estão perdidos; e reportar, para um controlador de arranjo, uma marca indicando que o disco rígido inclui a área com falha e a marca indicando se os dados na área com falha estão perdidos pelo fato de que são usados como informações de falha.
[0017] Opcionalmente, o disco rígido grava adicionalmente uma capacidade da área com falha e reporta a capacidade da área com falha pelo fato de que é usada como informações de falha para um controlador de arranjo.
[0018] O controlador de arranjo pode detectar uma capacidade de perda da área com falha reportando a capacidade da área com falha no disco rígido. Portanto, ao receber uma solicitação de escrita, um arranjo pode alocar a solicitação de escrita para um disco rígido com uma capacidade remanescente relativamente grande, para controlar melhor o disco rígido.
[0019] Opcionalmente, o método inclui adicionalmente: determinar se a capacidade da área com falha é maior que um valor predefinido; e quando a capacidade da área com falha é maior que o valor predefinido, reportar as informações de falha para o controlador de arranjo.
[0020] Quando a capacidade da área com falha é maior que o valor predefinido, as informações de falha são reportadas, para evitar o impacto no desempenho do arranjo de armazenamento que é causado pelo reporte frequente das informações de falha.
[0021] Na implementação do terceiro aspecto, quando existem diferentes protocolos de comunicação entre o disco rígido e o controlador de arranjo, as maneiras de gravar e reportar as informações de falha pelo disco rígido também são diferentes. Quando um protocolo de comunicação entre o disco rígido e o controlador de arranjo é o protocolo SCSI, as informações de falha são gravadas em uma página de registro de exceção informativa no protocolo SCSI.
[0022] No protocolo SCSI, as informações de falha são reportadas de duas maneiras. Uma primeira maneira é receber uma solicitação de entrada/saída I/O enviada pelo controlador de arranjo; e reportar as informações de falha para o controlador de arranjo por meio do uso de informações de resposta que são para a solicitação I/O e que incluem a página de registro de exceção informativa. Uma segunda maneira é receber uma solicitação de consulta de informações de falha enviada pelo controlador de arranjo; e reportar as informações de falha por meio do uso de informações de resposta que são para a solicitação de consulta de informações de falha e que incluem a página de registro de exceção informativa.
[0023] Quando um protocolo de comunicação entre o disco rígido e o controlador de arranjo é o protocolo ATA, as informações de falha são gravadas em um página de estatísticas de dispositivo de estado sólido no protocolo ATA e, neste caso, uma maneira de reportar as informações de falha é receber uma solicitação de consulta de informações de falha enviada pelo controlador de arranjo; e reportar as informações de falha por meio do uso de informações de resposta que são para a solicitação de consulta de informações de falha e que incluem a página de estatísticas de dispositivo de estado sólido.
[0024] Quando um protocolo de comunicação entre o disco rígido e o controlador de arranjo é o protocolo NVMe, as informações de falha são gravadas em um registro de informações de saúde no protocolo NVMe e, neste caso, uma maneira de reportar as informações de falha é reportar as informações de falha por meio do uso de informações de resposta que são para uma solicitação de evento assíncrona e que inclui a página de estatísticas de dispositivo de estado sólido.
[0025] Um quarto aspecto da presente invenção fornece um método de tratamento de falha de disco rígido. Uma diferença entre o disco rígido método de tratamento fornecido no quarto aspecto e o método de tratamento de falha de disco rígido fornecido no primeiro aspecto reside apenas em que, depois dos dados recuperados serem armazenados no chunk recuperado, o chunk com falha no grupo de chunks é substituído com o chunk recuperado e uma correspondência entre o chunk recuperado e o chunk com falha não precisa ser gravada.
[0026] Um quinto aspecto da presente invenção fornece um controlador de arranjo correspondente ao método de tratamento de falha de disco rígido fornecido no primeiro aspecto. As funções realizadas por módulos de função do controlador de arranjo são as mesmas que as etapas incluídas no método de tratamento de falha de disco rígido fornecido no primeiro aspecto. Os detalhes não são descritos neste relatório novamente.
[0027] Um sexto aspecto da presente invenção fornece um controlador de arranjo correspondente ao método de tratamento de falha de disco rígido fornecido no segundo aspecto. As funções realizadas por módulos de função do controlador de arranjo são as mesmas que as etapas incluídas no método de tratamento de falha de disco rígido fornecido no segundo aspecto. Os detalhes não são descritos neste relatório novamente.
[0028] Um sétimo aspecto da presente invenção fornece um disco rígido correspondente ao método de tratamento de falha de disco rígido fornecido no terceiro aspecto. As funções realizadas por módulos de função do disco rígido são as mesmas que as etapas incluídas no método de tratamento de falha de disco rígido fornecido no terceiro aspecto. Os detalhes não são descritos neste relatório novamente.
[0029] Um oitavo aspecto da presente invenção fornece um controlador de arranjo correspondente ao método de tratamento de falha de disco rígido fornecido no quarto aspecto. As funções realizadas por módulos de função do controlador de arranjo são as mesmas que as etapas incluídas no método de tratamento de falha de disco rígido fornecido no quarto aspecto. Os detalhes não são descritos neste relatório novamente.
[0030] Um nono aspecto da presente invenção fornece um controlador de arranjo. O controlador de arranjo inclui um processador e uma mídia de armazenamento legível por computador, a mídia de armazenamento armazena uma instrução de programa, e o processador executa a instrução de programa para realizar o método de tratamento de falha de disco rígido, de acordo com o primeiro aspecto, o segundo aspecto ou o quarto aspecto.
[0031] Um décimo aspecto da presente invenção fornece um disco rígido. O disco rígido inclui um processador e uma mídia de armazenamento legível por computador, a mídia de armazenamento armazena uma instrução de programa, e o processador executa a instrução de programa para realizar o método de tratamento de falha de disco rígido, de acordo com o terceiro aspecto.
[0032] Um décimo primeiro aspecto da presente invenção fornece uma mídia de armazenamento legível por computador. A mídia de armazenamento legível por computador armazena uma instrução, e quando a instrução é executada em um computador, o computador é habilitado para realizar o método, de acordo com o primeiro aspecto, o segundo aspecto, o terceiro aspecto ou o quarto aspecto.
BREVE DESCRIÇÃO DOS DESENHOS
[0033] Para descrever as soluções técnicas nas modalidades da presente invenção ou no estado da técnica mais claramente, o seguinte descreve brevemente os desenhos anexos para descrever as modalidades ou o estado da técnica.
[0034] A FIG. 1 é um diagrama estrutural de um arranjo de armazenamento;
[0035] A FIG. 2 é um diagrama esquemático de geração de um disco lógico por um controlador de arranjo, de acordo com a Modalidade 1 da presente invenção;
[0036] A FIG. 3 é um diagrama esquemático de fornecimento de espaço de hot spare e espaço redundante por um arranjo de armazenamento, de acordo com a Modalidade 1 da presente invenção;
[0037] A FIG. 4 é um fluxograma de processamento de uma área com falha em um disco rígido por um arranjo de armazenamento, de acordo com a Modalidade 1 da presente invenção;
[0038] A FIG. 5 mostra o código ASC e o código ASCQ que indicam uma área com falha em um disco rígido e que são definidos no protocolo SCSI, de acordo com uma modalidade da presente invenção;
[0039] A FIG. 6 é um diagrama de um exemplo de uma página de registro de exceção informativa no protocolo SCSI, de acordo com uma modalidade da presente invenção;
[0040] A FIG. 7 é um diagrama esquemático de dados de detecção de formato de descritor em informações de retorno de uma solicitação I/O, de acordo com uma modalidade da presente invenção;
[0041] A FIG. 8 é um diagrama esquemático de uma página de estatísticas de dispositivo de estado sólido definida no protocolo ATA, de acordo com uma modalidade da presente invenção;
[0042] A FIG. 9 é um diagrama esquemático de um registro de informações de saúde definido no protocolo NVMe, de acordo com uma modalidade da presente invenção;
[0043] A FIG. 10 é um fluxograma de um método de tratamento realizado quando um controlador de arranjo recebe uma solicitação de reescrita, de acordo com uma modalidade da presente invenção.
[0044] A FIG. 11 é um diagrama esquemático de formação de um disco lógico por um controlador de arranjo por meio do uso de uma pluralidade de discos rígidos independentes e um algoritmo RAID, de acordo com a Modalidade 2 da presente invenção;
[0045] A FIG. 12 é um fluxograma de um método para processar uma área com falha em um disco rígido, de acordo com a Modalidade 2 da presente invenção;
[0046] A FIG. 13 é um diagrama de módulo de um disco rígido, de acordo com uma modalidade da presente invenção;
[0047] A FIG. 14 é um diagrama de módulo de um controlador de arranjo, de acordo com a Modalidade 1 da presente invenção; e
[0048] A FIG. 15 é um diagrama de módulo de um controlador de arranjo, de acordo com a Modalidade 2 da presente invenção.
DESCRIÇÃO DAS MODALIDADES
[0049] O seguinte descreve clara e completamente as soluções técnicas nas modalidades da presente invenção com referência aos desenhos anexos nas modalidades da presente invenção. É claro que as modalidades descritas são meramente algumas, mas não todas as modalidades da presente invenção.
[0050] A FIG. 1 é um diagrama estrutural de um arranjo de armazenamento 100. O arranjo de armazenamento 100 inclui um controlador de arranjo 101, uma pluralidade de discos rígidos 105 a 108, memória 103, uma interface de comunicações 104 e um barramento 102. O controlador de arranjo 101 é configurado para executar um programa (não mostrado na figura) na memória 103 para gerenciar os discos rígidos 105 a 108 e acessar dados nos discos rígidos 105 a 108. A interface de comunicações 104 é configurada para conectar a um hospedeiro (não mostrado na figura), e o hospedeiro pode transmitir uma instrução de leitura/escrita ou uma instrução de gerenciamento para o arranjo de armazenamento 100 através da interface de comunicações 104. A interface de comunicações pode ser uma interface de memória não volátil expressa (Non-Volatile Memory express, NVMe) ou pode ser uma interface SCSI, interface de sistema de computador pequeno (Small Computer System Interface, SCSI).
[0051] A FIG. 2 é um diagrama esquemático em que um controlador de arranjo 101 gera um disco lógico fornecido para um hospedeiro para utilizar, de acordo com a Modalidade 1 da presente invenção. Quando o arranjo de armazenamento 100 é um arranjo flash usando a interface NVMe, o hospedeiro se comunica com o arranjo de armazenamento 100 por meio do uso do protocolo NVMe, e o disco lógico gerado pelo arranjo de armazenamento 100 pode ser representado por meio do uso de um espaço de nome (Namespace) definido no protocolo NVMe. Quando o arranjo de armazenamento 100 é um arranjo de armazenamento usando a interface SCSI, o hospedeiro se comunica com o arranjo de armazenamento 100 por meio do uso do protocolo SCSI e o disco rígido pode ser representado por meio do uso de um número de unidade lógica (Logic Unit Number, LUN) definido no protocolo SCSI. Na modalidade na FIG. 2, um processo em que o controlador de arranjo 101 gera o LUN por meio do uso do protocolo SCSI é usado como um exemplo para descrição.
[0052] Como mostrado na FIG. 2, cada um dos discos rígidos 105 a 108 no arranjo de armazenamento 100 é dividido em chunks (chunks) de um mesmo tamanho, e os chunks pertencentes a diferentes discos rígidos formam um grupo de chunks (chunk group) por meio do uso de um algoritmo de arranjo redundante de discos independentes (arranjos redundantes de unidades independentes, RAID). Como mostrado na FIG. 2, um chunk 201 pertencente ao disco rígido 102, um chunk 202 pertencente ao disco rígido 106 e um chunk 203 pertencente ao disco rígido 107 formam um grupo de chunks 204 por meio do uso de um algoritmo RAID 5. Um chunk 205 pertencente ao disco rígido 102, um chunk 206 pertencente ao disco rígido 107 e um chunk 207 pertencente ao disco rígido 108 formam um grupo de chunks 208 por meio do uso do algoritmo RAID 5. Depois que o grupo de chunks é gerado, o controlador de armazenamento 101 grava os discos rígidos em que os chunks formando cada grupo de chunks estão localizados. Um pool de armazenamento 209 é construído com base no grupo de chunks e nos discos lógicos, tais como um LUN 0, um LUN 1 e um LUN 3 são construídos com base no pool de armazenamento 209.
[0053] Como mostrado na FIG. 3, nesta modalidade da presente invenção, além do pool de recursos de armazenamento 209, o arranjo de armazenamento 100 fornece adicionalmente o espaço de hot spare 210 e espaço redundante 211. O espaço de hot spare 210 é configurado para: depois de um chunk no disco rígido estar com falha, recuperar os dados no chunk com falha e substituir o chunk com falha. O espaço redundante é o espaço reservado pelo arranjo de armazenamento 100, o arranjo de armazenamento 100 não fornece um tamanho do espaço redundante para fora, e o espaço redundante é configurado para melhorar o desempenho do arranjo de armazenamento 100. O espaço de hot spare 210 e o espaço redundante 211, cada um, podem ser um único disco rígido, ou podem ser o espaço de pool formados por chunks em uma pluralidade de discos rígidos. Nesta modalidade da presente invenção, o espaço de hot spare e o espaço redundante, cada um, podem ser divididos em granularidades do mesmo tamanho que os chunks, e são configurados para substituir o chunk com falha no disco rígido. Como utilizar o espaço de hot spare 210 e o espaço redundante 211 para substituir o chunk com falha no disco rígido é descrito em detalhes abaixo quando um método de tratamento de falha de disco rígido é descrito.
[0054] Como descrito nos fundamentos, no estado da técnica, depois da área com falha (isto é, um segmento do espaço de armazenamento em que ocorre uma falha no disco rígido) ser gerada no disco rígido, por exemplo, depois de uma falha DIE no disco rígido, o controlador de arranjo 100 não detecta a falha e, portanto, não trata a falha. Em seguida, depois de detectar que um grau de desgaste do disco rígido atinge um limite, o controlador de arranjo 100 realiza diretamente o processamento de substituição de disco. Entretanto, quando o grau de desgaste do disco rígido não atingir o limite, o espaço redundante do disco rígido é reduzido devido à área com falha e o desempenho de um sistema de armazenamento é afetado devido à redução do espaço redundante.
[0055] De acordo com o método de tratamento de falhas fornecido nesta modalidade da presente invenção, o controlador de arranjo 100 pode determinar o chunk com falha em que a área com falha no disco rígido está localizada, e substituir o chunk com falha com um chunk no espaço redundante 211 ou no espaço de hot spare 210, de modo que o desempenho de todo o sistema de armazenamento não seja afetado.
[0056] O seguinte descreve um método de tratamento de falha de disco rígido em uma modalidade da presente invenção por meio do uso de um fluxograma na FIG. 4.
[0057] A FIG. 4 é um fluxograma de um método para processar uma área com falha em um disco rígido por um sistema de armazenamento em uma arquitetura mostrada na FIG. 2. As seguintes descrições são fornecidas apenas por meio do uso de um exemplo em que o disco rígido 105 no arranjo de armazenamento 100 está com falha.
[0058] Etapa S401: O disco rígido 105 identifica uma área com falha no disco rígido 105 e acumula capacidades de áreas com falha.
[0059] A área com falha pode ser uma partícula DIE em um flash do disco rígido, ou pode ser um segmento de espaço no disco rígido. Em um processamento de execução de disco rígido, o disco rígido coleta estatísticas sobre uma quantidade de vezes de uma exceção de uma área de armazenamento no disco rígido. Quando uma quantidade de vezes de um tipo de exceção de uma área de armazenamento excede um valor predefinido, a área de armazenamento pode ser identificada como a área com falha. A exceção pode ser uma verificação de erro e erro de correção (error checking and correction error, ECC error), um erro de código ECC incorrigível (erro de código de correção de erro incorrigível, UNC), uma resposta lenta para I/O, um tempo limite de uma resposta para I/O ou semelhantes. A área com falha pode ser identificada em qualquer maneira no estado da técnica. Isto não é limitado neste relatório. Uma função realizada pelo disco rígido é implementada por um processador (não mostrado na figura) no disco rígido, executando um segmento do código de programa armazenado na memória (não mostrada na figura) no disco rígido.
[0060] Etapa S402: O controlador de arranjo 101 obtém informações de falha da área com falha no disco rígido 105. As informações de falha incluem um identificador indicando se os dados na área com falha estão perdidos. Em algumas modalidades, as informações de falha incluem adicionalmente uma capacidade da área com falha.
[0061] Na aplicação real, alguns discos rígidos realizam um RAID, tal como um RAID 1 ou um RAID 5 com uma capacidade de recuperação de dados nos discos rígidos para garantir a confiabilidade de dados. Desta maneira, mesmo se houver uma área com falha no disco rígido, os dados na área com falha podem ser recuperados por meio do uso de um algoritmo RAID no disco rígido e, portanto, os dados não estão perdidos. Se o disco rígido não realizar um RAID no disco ou realizar um RAID em que os dados não podem ser recuperados, por exemplo, um RAID 0, os dados na área com falha não podem ser recuperados e, portanto, os dados estão perdidos. Portanto, nesta modalidade da presente invenção, o controlador de arranjo 101 obtém o identificador indicando se os dados na área com falha estão perdidos, para subsequentemente recuperar os dados perdidos na área com falha.
[0062] Nesta modalidade da presente invenção, para diferentes protocolos de comunicação entre o disco rígido 105 e o arranjo de armazenamento 100, as maneiras de obter as informações de falha também são diferentes. O seguinte descreve separadamente as maneiras de obter as informações de falha da área com falha nos diferentes protocolos de comunicação.
[0063] 1. Protocolo SCSI
[0064] No protocolo SCSI existente, o código de detecção adicional (ASC) e um qualificador de código de detecção de anexo (ASCQ) são definidos, e diferentes ASC e ASCQs são usados para identificar uma exceção gerada em um disco rígido. Depois da exceção do disco rígido ser detectada, o ASC e o ASCQ que correspondem à exceção são gravados em uma página de registro de exceção informativa (information exception log page). A página de registro de exceção informativa é uma página de registro que é definida no protocolo SCSI e que é usada para gravar a exceção do disco rígido. No protocolo SCSI existente, quando o ASC é 5D, isto indica que um limite de predição de falha foi excluído (FAILURE PREDICTION THRESHOLD EXCEEDED). Para ser específico, quando um parâmetro em um disco rígido monitorado excede um limite especificado, o parâmetro precisa ser reportado a um controlador de arranjo. Cada parâmetro que precisa ser detectado no disco rígido é definido em cada ASCQ correspondente a 5D. Pelo fato de que um ASCQ usado para reportar a área com falha no disco rígido não é definido no protocolo SCSI existente, e uma capacidade da área com falha não pode ser reportada, os códigos ASCQ 6D e 6E indicam que um estado de falha da área com falha é definido nesta modalidade da presente invenção. A FIG. 5 mostra as definições dos códigos ASCQ 6D e 6E recentemente definidos, de acordo com uma modalidade da presente invenção. Neste relatório, 6D indica que uma área com falha ocorre em um disco rígido, mas nenhum dado está perdido, e 6E indica que uma área com falha ocorre em um disco rígido e os dados estão perdidos. Quando a área com falha no disco rígido é detectada e uma capacidade de falha total atinge um valor predefinido, 6D ou 6E é gravado na página de registro de exceção informativa com base em se dados na área com falha estão perdidos. A FIG. 6 é um diagrama de um exemplo de uma página de registro de exceção informativa. Quando uma capacidade de falha de uma área com falha atinge um valor predefinido e nenhum dado está perdido, 5D é preenchido em um ASC de exceção informativa (CÓDIGO DE DETECÇÃO ADICIONAL DE EXCEÇÃO INFORMATIVA, INFORMATIONAL EXCEPTION ADDITIONAL SENSE CODE) indicado pelo oitavo byte na página de registro de exceção informativa, e 6D é preenchido em um ASCQ de exceção informativa (QUALIFICADOR DE CÓDIGO DE DETECÇÃO DE EXCEÇÃO INFORMATIVA, INFORMATIONAL EXCEPTION ADDITIONAL SENSE CODE QUALIFIER) indicado pelo nono byte na página de registro de exceção informativa. Quando uma capacidade de uma área com falha atinge um valor predefinido e os dados estão perdidos, 5D é preenchido no ASC de exceção informativa indicado pelo oitavo byte na página de registro de exceção informativa, e 6E é preenchido em um ASCQ de exceção informativa indicado pelo nono byte na página de registro de exceção informativa. Além disso, opcionalmente, a capacidade da área com falha é gravada em byte de informações (information) na página de registro de exceção informativa. Como mostrado na FIG. 6, “00 00 00 00 00 01 00 00” (em hexadecimal) é portado, isto é, uma capacidade de falha de 8 GB. Os códigos ASCQ 6D e 6E anteriores são meramente exemplos para descrição. Na utilização real, qualquer ASCQ que não seja usado no protocolo no ASC 5D pode ser usado.
[0065] No protocolo SCSI, as informações de falha da área com falha podem ser obtidas de duas maneiras.
[0066] Em uma primeira maneira, o disco rígido 105 reporta ativamente as informações de falha da área com falha.
[0067] Depois de uma solicitação I/O enviada pelo controlador de arranjo 101 ser recebida, quando o código excepcional, tal como 5D e 6E é gravado no byte de ASC de exceção informativa e o byte de ASCQ de exceção informativa na página de registro de exceção informativa, 5D, 6E e a capacidade de falha 8G gravada no byte de informações são escritos nos dados de detecção de formato de descritor (descriptor format sense data) em informações de retorno para a solicitação I/O. Como mostrado na FIG. 7, se os dados de detecção de formato de descritor incluírem um byte ASC e um byte ASCQ, o código ASC 5D e o código ASCQ 6D/6E obtidos a partir da página de registro de exceção informativa são preenchidos no ASC e o ASCQ nos dados de detecção de formato de descritor. Além disso, se os dados de detecção de formato de descritor incluírem adicionalmente um byte de informações, a capacidade da área com falha pode ser escrita no byte de informações nos dados de detecção de formato de descritor.
[0068] Desta maneira, depois de receber as informações de retorno para a solicitação I/O, o controlador de arranjo 101 pode obter as informações de falha da área com falha no disco rígido a partir dos dados de detecção de formato de descritor nas informações de retorno.
[0069] Em uma segunda maneira, o controlador de arranjo 101 consulta periodicamente as informações de falha da área com falha no disco rígido 105.
[0070] Desta maneira, o controlador de arranjo 101 envia periodicamente uma instrução de consulta de falha para o disco rígido 105, onde a instrução de consulta de falha porta um identificador da página de registro de exceção informativa. Depois de receber a instrução de consulta de falha, o disco rígido 105 retorna a página de registro de exceção informativa para o controlador de arranjo 101. Depois de receber a página de registro, o controlador de arranjo 101 obtém ASC, um ASCQ e o conteúdo correspondente às informações da página de registro. Se o ASC e o ASCQ forem 5D e 6D respectivamente, o controlador de arranjo 101 pode aprender que uma exceção do disco rígido 105 indica que uma área com falha ocorre, e nenhum dado na área com falha está perdido. Se o ASC e o ASCQ forem 5D e 6E respectivamente, o controlador de arranjo 101 pode aprender que uma exceção do disco rígido indica que uma área com falha ocorre, e os dados na área com falha estão perdidos. Opcionalmente, o controlador de arranjo 101 pode obter adicionalmente a capacidade da área com falha de um byte correspondente às informações.
[0071] 2. Protocolo de anexo de tecnologia avançada (Advanced Technology Attachment, ATA)
[0072] No protocolo ATA, uma página de estatísticas de dispositivo de estado sólido (Solid State Device Statistics) é definida, e a página de estatísticas é usada para gravar informações de exceção de exceções do disco rígido que são detectados pelo disco rígido. Nesta modalidade da presente invenção, novas informações de exceção, isto é, informações de erro de unidade flash incorrigíveis (Uncorrectable Flash Unit Error Information), são definidas e são usadas para gravar informações de falha de uma área com falha no disco rígido. Como mostrado na FIG. 8, as informações são representadas por meio do uso de um número binário de 64 bits. Um bit 0 a um bit 15 são definidos como 00000010 (representado por 0002 em hexadecimal na figura), e são um identificador da página de estatísticas de dispositivo de estado sólido. Um bit 16 a um bit 23 são usados para indicar se há uma área com falha no disco rígido. Se houver uma área com falha, o bit 16 ao bit 23 são definidos como 00000001 (representado por 01 em hexadecimal na figura). Se não houver nenhuma área com falha, o bit 16 ao bit 23 são definidos como 00000000 (representado por 00 em hexadecimal na figura). Um bit 24 a um bit 31 são usados para indicar se os dados na área com falha estão perdidos. Se os dados estiverem perdidos, o bit 24 ao bit 31 são definidos como 00000001 (representado por 01 em hexadecimal na figura). Se nenhum dado estiver perdido, o bit 24 ao bit 31 são definidos como 00000000 (que pode ser representado por 00 em hexadecimal). Além disso, o disco rígido grava adicionalmente a capacidade da área com falha na página de estatísticas de dispositivo de estado sólido. Por exemplo, um parâmetro, isto é, um parâmetro de capacidade incorrigível (uncorrectable capacity parameter), é definido nos bytes 24 a 31 na FIG. 8 e também é de 64 bits. A capacidade de falha da área com falha é gravada em uma localização correspondente ao parâmetro. Nesta modalidade da presente invenção, a capacidade reportada é 00 00 00 00 00 01 00 00 (em hexadecimal), isto é, 8G.
[0073] O controlador de arranjo 101 envia periodicamente um comando de consulta para o disco rígido 105, onde o comando de consulta porta um identificador da página de estatísticas de dispositivo de estado sólido. Depois de receber a instrução de consulta de falha, o disco rígido retorna a página de estatísticas de dispositivo de estado sólido para o controlador de arranjo 101. Depois de receber a página de estatísticas de dispositivo de estado sólido, o controlador de arranjo 101 obtém as informações de erro de unidade flash incorrigível a partir da página de estatísticas de dispositivo de estado sólido, isto é, o número binário de 64 bits (ou um número hexadecimal de 16 bits). O controlador de arranjo 101 pode obter as informações sobre a área com falha no disco rígido 105 analisando as informações de erro de unidade flash incorrigível.
[0074] 3. Protocolo NVMe
[0075] No protocolo NVMe, um registro de informações de saúde (Health Information Log) é definido, e o registro é usado para gravar informações de exceção de exceções do disco rígido que são detectadas pelo disco rígido. Como mostrado na FIG. 9, diferentes informações de exceção no disco rígido são definidas em diferentes bits em um byte 0 no registro de informações de saúde. O primeiro, segundo, terceiro e quarto bits são informações de exceção definidas no protocolo NVMe existente, e não são descritos neste relatório pelo fato de que os bits não são relacionados à presente invenção. Nesta modalidade da presente invenção, o quinto bit é definido recentemente para indicar se uma área com falha ocorre no disco rígido 105. Quando um valor do quinto bit for 1, isto indica que uma área com falha ocorre no disco rígido 105. Além disso, uma cadeia de caracteres de 32 bits é definida em quatro bytes, isto é, do sexto ao nono bytes. Um bit mais significativo, isto é, um bit 7 no nono byte, é usado para indicar se os dados na área com falha estão perdidos. Por exemplo, quando o bit for definido como 1, isto indica que os dados na área com falha estão perdidos; ou quando o bit for definido como 0, isto indica que nenhum dado na área com falha está perdido. Os bits depois após o bit mais significativo são usados para indicar uma capacidade de falha de um chunk com falha. Por exemplo, “00 00 00 00 00 01 00 00” em hexadecimal indica que nenhum dado no chunk com falha está perdido e a capacidade de falha do chunk com falha é 8 GB, e “80 00 00 00 00 01 00 00” (onde um bit mais significativo em hexadecimal é 8, isto é, um bit mais significativo em binário é 1) indica que nenhum dado no chunk com falha está perdido e a capacidade de falha do chunk com falha é de 8 GB.
[0076] Quando as estatísticas sobre a capacidade de falha do chunk com falha que são coletadas pelo disco rígido atingem um valor predefinido, o disco rígido reporta o registro de informações de saúde para o controlador de arranjo 101 por meio do uso de uma resposta para uma solicitação de evento assíncrona (Asynchronous Event Request). O controlador de arranjo 101 pode obter as informações de falha da área com falha analisando o registro de informações de saúde.
[0077] Etapa S403: O controlador de arranjo 101 obtém a capacidade da área com falha do disco rígido 105 a partir das informações de falha, e adicionas informações sobre a capacidade obtida a uma capacidade de falha total que é do disco rígido e que2 é gravada pelo controlador de arranjo 101. Quando a capacidade de falha total do disco rígido 105 atinge um valor predefinido, o controlador de arranjo 101 notifica um usuário para substituir o disco rígido 105.
[0078] Etapa S404: Se as informações de falha indicarem que os dados na área com falha estão perdidos, o controlador de arranjo 101 determina um chunk em que os dados perdidos estão localizados.
[0079] Nesta modalidade da presente invenção, dois métodos para determinar o chunk em que os dados perdidos estão localizados são fornecidos. Em um primeiro método, o controlador de arranjo 101 obtém um endereço de cada chunk pertencente ao disco rígido no disco rígido 105. Quando o disco rígido é um SSD, o endereço no disco rígido 105 é um endereço lógico no disco rígido. Em seguida, o controlador de arranjo 101 envia um comando de consulta de perda de dados para o disco rígido 105, onde o comando de consulta porta um endereço lógico de um dos chunks. Como descrito na FIG. 2, ao construir o pool de armazenamentos, o controlador de arranjo 101 grava um chunk pertencente a cada disco rígido. Portanto, ao determinar o chunk em que os dados perdidos estão localizados, o controlador de arranjo 101 consulta um endereço lógico dos dados perdidos no disco rígido em uma granularidade do chunk. Ao receber o comando de consulta de perda de dados, o disco rígido determina se o endereço lógico portado no comando de consulta de perda de dados inclui uma parte ou todo o endereço da área com falha, e se o endereço lógico portado no comando de consulta de perda de dados incluir a parte ou todos do endereço da área com falha, reportar um identificador indicando que os dados estão perdidos para o controlador de armazenamento 101; ou se o endereço lógico portado no comando de consulta de perda de dados não incluir a parte ou todo o endereço da área com falha, reportar um identificador indicando que nenhum dado está perdido para o controlador de armazenamento 101. Depois de receber informações de reporte, se as informações de reporte incluírem o identificador indicando que os dados estão perdidos, o controlador de armazenamento 101 utiliza, como o chunk em que os dados perdidos estão localizados, o chunk indicado pelo endereço lógico que é do chunk e que é portado no comando de consulta de perda de dados. Em uma implementação, a área com falha reportada pelo disco rígido é usualmente menor que um chunk. Nesta implementação, se as informações de reporte incluírem o identificador indicando que nenhum dado está perdido, um novo comando de consulta de perda de dados é enviado para o disco rígido, onde o novo comando de consulta de perda de dados porta um endereço lógico de outro chunk no disco rígido, até que o chunk em que os dados perdidos estão localizados é encontrado. Em outra implementação, se a área com falha reportada pelo disco rígido for maior que um chunk, o controlador de arranjo envia um endereço de um chunk para o disco rígido a cada vez para determinar um chunk com falha, e depois de receber informações de retorno de um chunk, envia um endereço de um chunk seguinte para o disco rígido, até que os endereços de todos os chunks no disco rígido sejam enviados para o disco rígido, para determinar uma pluralidade de chunks em que os dados perdidos estão localizados.
[0080] Em um segundo método, o controlador de arranjo 101 envia um comando de consulta de lista de falhas para o disco rígido 105. Depois de receber o comando de consulta, o disco rígido 105 reporta uma lista de endereços lógicos gravada da área com falha para o controlador de arranjo 101, e o controlador de arranjo 101 pode determinar, com base na lista de endereços lógicos reportada, o chunk em que os dados perdidos estão localizados.
[0081] Etapa S405: Depois de determinar o chunk em que os dados perdidos estão localizados, isto é, um chunk com falha, o controlador de arranjo 101 recupera os dados no chunk com falha por meio do uso de outro chunk em um grupo de chunks incluindo o chunk com falha e um algoritmo RAID.
[0082] Etapa S406: O controlador de arranjo 101 armazena os dados recuperados em um chunk ocioso no espaço de hot spare ou um espaço OP, onde o chunk ocioso é um chunk de cópia de segurança. Um disco rígido em que o chunk de cópia de segurança está localizado é diferente de um disco rígido em que o outro chunk no grupo de chunks está localizado.
[0083] Etapa S407: O controlador de arranjo 101 grava uma relação de mapeamento entre um endereço do chunk com falha no disco rígido e um endereço do chunk de cópia de segurança em um espaço de cópia de segurança ou no espaço OP.
[0084] Desta maneira, ao receber subsequentemente uma solicitação para atualizar os dados no chunk com falha, o controlador de arranjo 101 escreve os dados a serem escritos na solicitação no chunk de cópia de segurança; e define os dados no chunk com falha como inválidos e pode liberar espaço diferente da área com falha no chunk com falha em um processo de coleta de lixo subsequente.
[0085] Na Modalidade 2 da presente invenção, depois de recuperar os dados recuperados para o chunk de cópia de segurança na etapa S406, o controlador de arranjo 101 substitui o chunk com falha no grupo de chunks com o chunk recuperado. Durante a substituição, o controlador de arranjo 101 pode substituir um endereço do chunk com falha no primeiro disco rígido que é gravado nos metadados no grupo de chunks por um endereço do chunk recuperado em um disco rígido em que o chunk recuperado está localizado.
[0086] Depois que o disco rígido reporta uma capacidade de perda do disco rígido, o controlador de arranjo 101 grava uma capacidade de perda de cada disco rígido, calcula uma capacidade disponível atual de cada disco rígido e restringe os dados a serem escritos em um disco rígido com uma capacidade de perda relativamente grande. A FIG. 10 é um fluxograma de um método de tratamento realizado quando o controlador de arranjo 101 recebe uma solicitação de reescrita para os dados em um disco rígido.
[0087] Etapa S501: Receber uma solicitação de escrita, onde a solicitação de escrita porta os dados a serem escritos, um endereço lógico dos dados a serem escritos e uma quantidade de dados dos dados a serem escritos.
[0088] Etapa S502: Determinar, com base no endereço lógico dos dados a serem escritos, que um disco rígido de destino dos dados a serem escritos é o disco rígido 105.
[0089] Etapa S503: Consultar uma capacidade disponível do disco rígido 105.
[0090] Etapa S504: Determinar se a capacidade disponível do disco rígido é menor que a quantidade de dados dos dados a serem escritos.
[0091] Etapa S505: Se a capacidade disponível do disco rígido for maior que a quantidade de dados dos dados a serem escritos, escrever os dados a serem escritos no disco rígido.
[0092] Etapa S506: Se a capacidade disponível do disco rígido for menor que ou igual à quantidade de dados dos dados a serem escritos, escrever os dados a serem escritos no espaço de hot spare ou no espaço redundante, marcar os dados que estão no disco rígido 105 e para os quais o endereço lógico aponta como dados de lixo e aguardar para a coleta de lixo subsequente.
[0093] Depois que o controlador de arranjo 101 marca uma capacidade disponível de cada disco rígido, quando um novo grupo de chunks precisa ser criado subsequentemente, um disco rígido com uma grande capacidade disponível pode ser selecionado para criar o grupo de chunks. Capacidade disponível do disco rígido = Capacidade nominal do disco rígido - Capacidade de perda - Espaço usado.
[0094] A FIG. 11 mostra um disco lógico LNU 1101 formado por uma pluralidade de discos rígidos independentes 1104 a 1106 por meio do uso de um algoritmo RAID, de acordo com a Modalidade 3 da presente invenção. O espaço de hot spare 1102 e o espaço redundante 1103 também são fornecidos por discos rígidos independentes 1107 e 1108.
[0095] O seguinte descreve, por meio do uso de um fluxograma mostrado na FIG. 12, como processar uma área com falha em um disco rígido na Modalidade 3.
[0096] Na Modalidade 3, as etapas S701 a S703 são iguais às etapas S401 a S403 na FIG. 4 na Modalidade 1. Os detalhes não são descritos neste relatório novamente.
[0097] Etapa S704: O controlador de arranjo 101 obtém o identificador indicando se os dados na área com falha estão perdidos a partir das informações de falha.
[0098] Etapa S705: Se as informações de identificação indicam que nenhum dado na área com falha está perdido, o controlador de arranjo 101 migra os dados que estão no disco rígido 105 e que tem a mesma capacidade que a capacidade de perda para o espaço de hot spare 1102 ou o espaço redundante 1103.
[0099] Etapa S706: Se as informações de identificação indicam que os dados na área com falha no disco rígido estão perdidos, o controlador de arranjo 101 recupera os dados no disco rígido por meio do uso de um algoritmo RAID e realiza a etapa S705 depois da recuperação, isto é, migra os dados que estão no disco rígido 105 e que tem a mesma capacidade que a capacidade de perda para o espaço de hot spare 1102 ou o espaço redundante 1103.
[0100] Etapa S707: Gravar uma relação de mapeamento entre um endereço dos dados migrados no disco rígido 105 no disco rígido 105 e um endereço dos dados migrados para o espaço de hot spare ou o espaço redundante.
[0101] Quando uma solicitação de acesso para acessar os dados migrados é subsequentemente recebida, os dados migrados podem ser acessados no espaço de hot spare ou no espaço redundante com base na relação de mapeamento.
[0102] Desta maneira, o espaço redundante ou o espaço de hot spare é usado para compensar o espaço perdido da área com falha no disco rígido. Portanto, o espaço redundante no disco rígido não precisa ser usado para compensar a área com falha no disco rígido. Desta maneira, mesmo se a área com falha ocorrer no disco rígido, o espaço redundante do disco rígido não é reduzido, de modo que um grau de desgaste do disco rígido não seja aumentado e o desempenho do arranjo de armazenamento seja garantido.
[0103] A FIG. 13 é um diagrama de módulo de um disco rígido 1200, de acordo com uma modalidade da presente invenção.
[0104] O disco rígido 1200 inclui um módulo de identificação 1201, um módulo de marcação 1202 e um módulo de reporte 1203. O módulo de identificação 1201 é configurado para: identificar uma área com falha no disco rígido 105, e acumular capacidades de área com falha. Uma função realizada pelo módulo de identificação 1201 é a mesma que na etapa S401 na FIG. 4. Para uma maneira de identificar a área com falha e acumular as capacidades de áreas com falha, consultar as descrições na etapa S401. O módulo de marcação 1202 é configurado para marcar informações de falha da área com falha identificada. Para um método de marcação, consultar as descrições relacionadas na etapa S402 de como o disco rígido marca as informações de falha da área com falha em diferentes protocolos, por exemplo, o protocolo SCSI, o protocolo ATA e o protocolo NVMe. Para detalhes, consultar as descrições relacionadas na FIG. 4, FIG. 5, FIG. 8 e FIG. 9.
[0105] O módulo de reporte 1203 é configurado para reportar as informações de falha marcadas pelo módulo de marcação 1202 para o controlador de arranjo. Para uma maneira específica de reportar as informações de falha pelo módulo de reporte 1203, consultar as descrições relacionadas na etapa S402 de como o disco rígido reporta as informações de falha da área com falha em diferentes protocolos, por exemplo, o protocolo SCSI, o protocolo ATA e o protocolo NVMe. Os detalhes não são descritos neste relatório novamente.
[0106] A FIG. 14 é um diagrama de módulo de um controlador de arranjo 1300, de acordo com a Modalidade 1 da presente invenção. O controlador de arranjo 1300 inclui um módulo de obtenção 1301, um módulo de adição 1302, um módulo de recuperação 1303 e um módulo de gravação 1304. O módulo de obtenção 1301 é configurado para obter informações de falha de uma área com falha em um disco rígido. Para uma maneira de obter as informações de falha da área com falha no disco rígido, consultar as descrições relacionadas na etapa S402. As maneiras de obter as informações de falha em diferentes protocolos, por exemplo, o protocolo SCSI, o protocolo ATA e o protocolo NVMe, são diferentes. Para detalhes, consultar as descrições na etapa S402. Os detalhes não são descritos neste relatório novamente.
[0107] O módulo de adição 1302 é configurado para: obter uma capacidade de área com falha no disco rígido a partir das informações de falha e adicionar informações sobre a capacidade obtida a uma capacidade de falha total gravada do disco rígido; e quando a capacidade de falha total do disco rígido atinge um valor predefinido, notificar um usuário para substituir o disco rígido. Para detalhes, consultar as descrições relacionadas na etapa S403.
[0108] O módulo de recuperação 1303 é configurado para: depois que o módulo de obtenção obtém as informações de falha da área com falha no disco rígido, se as informações de falha indicarem que os dados na área com falha estão perdidos, determinar um chunk com falha em que os dados perdidos estão localizados; e recuperar os dados no chunk com falha por meio do uso de outro chunk em um grupo de chunks incluindo o chunk com falha e um algoritmo RAID, em seguida, armazenar os dados recuperados em um chunk de cópia de segurança, e formar um novo grupo de chunks por meio do uso do chunk de cópia de segurança e um chunk diferente do chunk com falha no grupo de chunks. Para detalhes, consultar as descrições relacionadas nas etapas S404 a S407.
[0109] O módulo de gravação 1304 é configurado para gravar uma relação de mapeamento entre um endereço do chunk com falha no disco rígido e um endereço do chunk de cópia de segurança no espaço de cópia de segurança ou no espaço OP. Para detalhes, consultar as descrições relacionadas na etapa S407.
[0110] Um controlador de arranjo na Modalidade 2 da presente invenção tem as mesmas funções que o módulo de obtenção 1301, o módulo de adição 1302 e o módulo de recuperação 1303 no controlador de arranjo na Modalidade 1. Uma diferença reside em que na Modalidade 2, um módulo de gravação substitui o chunk com falha no grupo de chunks com o chunk recuperado. Durante a substituição, o módulo de gravação pode substituir um endereço do chunk com falha no primeiro disco rígido que é gravado nos metadados no grupo de chunks por um endereço do chunk recuperado em um disco rígido em que o chunk recuperado está localizado.
[0111] A FIG. 15 é um diagrama de módulo de um controlador de arranjo 1400, de acordo com a Modalidade 3 da presente invenção. O controlador de arranjo 1400 inclui um módulo de obtenção 1401, um módulo de adição 1402, um módulo de migração 1403 e um módulo de gravação 1404.
[0112] As funções do módulo de obtenção 1401 e do módulo de adição 1402 são as mesmas que as funções do módulo de obtenção 1301 e do módulo de adição 1302 no controlador de arranjo 1300. Para detalhes, consultar as descrições relacionadas do módulo de obtenção 1301 e do módulo de adição 1302. Os detalhes não são descritos neste relatório novamente. O módulo de migração 1403 é configurado para: se as informações de falha indicarem que nenhum dado na área com falha está perdido, migrar os dados que estão no disco rígido e que tem uma mesma capacidade que a capacidade de perda para o espaço de hot spare ou o espaço redundante; ou se as informações de falha indicarem que os dados na área com falha no disco rígido estão perdidos, recuperar os dados no disco rígido por meio do uso de um algoritmo RAID, e migrar, depois da recuperação, os dados que estão no disco rígido e que tem a mesma capacidade que a capacidade de perda para o espaço de hot spare ou o espaço redundante. Para detalhes, consultar as descrições relacionadas das etapas S704 a S706.
[0113] O módulo de gravação 1404 é configurado para gravar uma relação de mapeamento entre um endereço dos dados migrados no disco rígido 105 no disco rígido 105 e um endereço dos dados migrados para o espaço de hot spare ou o espaço redundante. Para detalhes, consultar as descrições relacionadas da etapa S707. Quando uma solicitação de acesso para acessar os dados migrados é subsequentemente recebida, os dados migrados podem ser acessados no espaço de hot spare ou no espaço redundante com base na relação de mapeamento.
[0114] Um ou mais dos módulos anteriores podem ser implementados por meio do uso de software, hardware ou uma combinação dos mesmos. Quando qualquer um dos módulos ou unidades anteriores é implementado por meio do uso de software, o software existe em uma forma de uma instrução de programa de computador e é armazenado em uma memória. Um processador pode ser configurado para executar a instrução de programa para implementar os procedimentos do método anteriores. O processador pode incluir, mas não é limitado a pelo menos um dos seguintes dispositivos computacionais que executam vários tipos de software: uma unidade de processamento central (central processing unit, CPU), um microprocessador, um processador de sinal digital (DSP), uma unidade de microcontrolador (microcontroller unit, MCU), um processador de inteligência artificial ou semelhantes. Cada dispositivo computacional pode incluir um ou mais núcleos configurados para realizar uma operação ou processamento executando uma instrução de software. O processador pode ser incorporado em um SoC (sistema em um chip) ou um circuito integrado específico da aplicação (application specific integrated circuit, ASIC), ou pode ser um chip semicondutor independente. Além do núcleo configurado para realizar uma operação ou processamento executando uma instrução de software, o processador pode incluir adicionalmente um acelerador de hardware necessário, por exemplo, um arranjo de portas programáveis em campo (field programmable gate array, FPGA), um PLD (dispositivo lógico programável) ou um circuito lógico que implementa uma operação lógica dedicada.
[0115] Quando os módulos ou unidades anteriores são implementados por meio do uso de hardware, o hardware pode ser qualquer um ou qualquer combinação de uma CPU, um microprocessador, um DSP, uma MCU, um processador de inteligência artificial, um ASIC, um SoC, um FPGA, um PLD, um circuito digital dedicado, um acelerador de hardware ou um dispositivo discreto não integrado, e o hardware pode executar o software necessário ou não depender do software para realizar os procedimentos do método anteriores.
[0116] O anterior descreve o método de tratamento de falha de disco rígido, o controlador de arranjo e o disco rígido fornecido nas modalidades da presente invenção. Neste relatório descritivo, os exemplos específicos são usados para descrever o princípio e as implementações da presente invenção, e as descrições das modalidades destinam-se meramente a ajudar a compreender o método e a ideia central da presente invenção. Além disso, um técnico no assunto pode fazer, com base na ideia da presente invenção, modificações com relação às implementações específicas e ao escopo do pedido. Portanto, o conteúdo deste relatório descritivo não deve ser interpretado como uma limitação à presente invenção.

Claims (17)

1. Sistema, CARACTERIZADO pelo fato de que compreende: um controlador configurado para enviar um comando de consulta e receber um alarme assíncrono; e um disco rígido de Memória Não Volátil Expressa (NVMe) em comunicação com o controlador através de um protocolo NVMe e configurado para: detectar uma pluralidade de endereços lógicos de falha no disco rígido NVMe; gravar a pluralidade de endereços lógicos de falha; e enviar o alarme assíncrono ao controlador para notificar o controlador de que o disco rígido NVMe tem um ou mais endereços lógicos de falha na pluralidade de endereços lógicos de falha; e reportar, em resposta ao comando de consulta, a pluralidade de endereços lógicos de falha.
2. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o controlador é adicionalmente configurado para: receber, a partir do disco rígido NVMe, a pluralidade de endereços lógicos de falha; e recuperar, em resposta à pluralidade de endereços lógicos de falha sendo recebidos, dados do um ou mais endereços lógicos de falha.
3. Sistema, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que o controlador é adicionalmente configurado para recuperar os dados usando um algoritmo de Arranjo Redundante de Discos Independentes (RAID).
4. Sistema, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que o controlador é adicionalmente configurado para escrever os dados em localizações de endereços lógicos originais correspondentes ao um ou mais endereços lógicos de falha.
5. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o protocolo NVMe compreende um registro de informações de saúde, e em que um quinto bit de um byte zero no registro de informações de saúde indica se uma área com falha existe no disco rígido NVMe.
6. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o controlador está disposto em um arranjo de armazenamento.
7. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o disco rígido NVMe é adicionalmente configurado para enviar o alarme assíncrono ao controlador em resposta à identificação de que uma quantidade da pluralidade de endereços lógicos de falha excede um limite.
8. Método implementado por um sistema de armazenamento de dados, CARACTERIZADO pelo fato de que o método compreende: detectar, por um disco rígido de Memória Não Volátil Expressa (NVMe) do sistema de armazenamento de dados, uma pluralidade de endereços lógicos de falha no disco rígido NVMe; gravar, pelo disco rígido NVMe, a pluralidade de endereços lógicos de falha; enviar um alarme assíncrono para um controlador do sistema de armazenamento de dados, em que o alarme assíncrono notifica o controlador de que o disco rígido NVMe tem um ou mais endereços lógicos de falha na pluralidade de endereços lógicos de falha; enviar, pelo controlador através de um protocolo NVMe, um comando de consulta ao disco rígido NVMe; e reportar, pelo disco rígido NVMe em resposta ao comando de consulta, a pluralidade de endereços lógicos de falha.
9. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que compreende adicionalmente: receber, pelo controlador a partir do disco rígido NVMe, a pluralidade de endereços lógicos de falha; e recuperar, pelo controlador em resposta à pluralidade de endereços lógicos de falha sendo recebidos, dados do um ou mais endereços lógicos de falha.
10. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que compreende adicionalmente recuperação adicional, pelo controlador, dos dados usando um algoritmo de Arranjo Redundante de Discos Independentes (RAID).
11. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que compreende adicionalmente escrever, pelo controlador, os dados em localizações de endereços lógicos originais correspondentes ao um ou mais endereços lógicos de falha.
12. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o protocolo NVMe compreende um registro de informações de saúde, e em que um quinto bit de um byte zero no registro de informações de saúde indica se uma área com falha existe no disco rígido NVMe.
13. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o controlador está disposto em um arranjo de armazenamento.
14. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o envio do alarme assíncrono compreende adicionalmente: identificar, pelo disco rígido NVMe, que uma quantidade da pluralidade de endereços lógicos de falha excede um limite; e enviar, pelo disco rígido NVMe em resposta à identificação, o alarme assíncrono ao controlador.
15. Disco rígido de Memória Não Volátil Expressa (NVMe) CARACTERIZADO pelo fato de que compreende: uma mídia de armazenamento legível por computador não transitória configurada para armazenar conjunto de instruções; e um processador acoplado à mídia de armazenamento legível por computador não transitória, em que o conjunto de instruções faz com que o processador seja configurado para: detectar uma pluralidade de endereços lógicos de falha no disco rígido NVMe; gravar a pluralidade de endereços lógicos de falha; enviar um alarme assíncrono a um controlador para notificar o controlador de que o disco rígido NVMe tem um ou mais endereços lógicos de falha na pluralidade de endereços lógicos de falha; receber, a partir do controlador, um comando de consulta; e reportar, em resposta ao comando de consulta sendo recebido, a pluralidade de endereços lógicos de falha ao controlador.
16. Disco rígido NVMe, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que o controlador está disposto em um arranjo de armazenamento.
17. Disco rígido NVMe, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que o conjunto de instruções faz adicionalmente com que o processador seja configurado para enviar o alarme assíncrono ao controlador em resposta à identificação de que uma quantidade da pluralidade de endereços lógicos de falha excede um limite.
BR112021002987-7A 2018-09-05 2019-09-03 Método de tratamento de falha de disco rígido, controlador de arranjo, e disco rígido BR112021002987B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201811028931.7 2018-09-05
CN201811028931 2018-09-05
CN201811451958.7 2018-11-30
CN201811451958.7A CN110879761A (zh) 2018-09-05 2018-11-30 硬盘故障处理方法、阵列控制器及硬盘
PCT/CN2019/104163 WO2020048442A1 (zh) 2018-09-05 2019-09-03 硬盘故障处理方法、阵列控制器及硬盘

Publications (2)

Publication Number Publication Date
BR112021002987A2 BR112021002987A2 (pt) 2021-05-11
BR112021002987B1 true BR112021002987B1 (pt) 2023-07-04

Family

ID=

Similar Documents

Publication Publication Date Title
US11264055B2 (en) Hard disk fault handling method, array controller, and hard disk
JP6294518B2 (ja) 不揮発性メモリシステムにおける同期ミラーリング
US9684468B2 (en) Recording dwell time in a non-volatile memory system
TWI428737B (zh) 半導體記憶體裝置
US9043639B2 (en) Dynamically expandable and contractible fault-tolerant storage system with virtual hot spare
US10474527B1 (en) Host-assisted error recovery
BR112014005623B1 (pt) Método de gravar escritas pendentes em um conjunto de armazenamento e meio de armazenamento legível por computador
US11662929B2 (en) Systems, methods, and computer readable media providing arbitrary sizing of data extents
TWI671631B (zh) 記憶體管理方法以及儲存控制器
WO2020048442A1 (zh) 硬盘故障处理方法、阵列控制器及硬盘
JP4905510B2 (ja) ストレージ制御装置及びストレージ装置のデータ回復方法
BR112021002987B1 (pt) Método de tratamento de falha de disco rígido, controlador de arranjo, e disco rígido
US10956245B1 (en) Storage system with host-directed error scanning of solid-state storage devices
CN110659152A (zh) 一种数据处理方法及设备