BR112021002987A2 - 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
BR112021002987A2
BR112021002987A2 BR112021002987-7A BR112021002987A BR112021002987A2 BR 112021002987 A2 BR112021002987 A2 BR 112021002987A2 BR 112021002987 A BR112021002987 A BR 112021002987A BR 112021002987 A2 BR112021002987 A2 BR 112021002987A2
Authority
BR
Brazil
Prior art keywords
chunk
fault
hard disk
data
area
Prior art date
Application number
BR112021002987-7A
Other languages
English (en)
Other versions
BR112021002987B1 (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
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

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1879Direct read-after-write methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1423Reconfiguring to eliminate the error by reconfiguration of paths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1428Reconfiguring to eliminate the error with loss of hardware functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1489Generic software techniques for error detection or fault masking through recovery blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1612Error detection by comparing the output signals of redundant hardware where the redundant component is persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1883Methods for assignment of alternate areas for defective areas

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

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 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 recuperados no segundo disco rígido.

Description

“MÉTODO DE TRATAMENTO DE FALHA DE DISCO RÍGIDO, CONTROLADOR DE ARRANJO, E DISCO RÍGIDO” 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] Pelo fato de que os dados não podem ser gravados 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 gravados 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 relata 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 relatando a capacidade da área com falha no disco rígido. Portanto, ao receber uma solicitação de gravação, um arranjo pode alocar a solicitação de gravação 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 relato 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 regravação, 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/gravação 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 arranjo redundante de algoritmo 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 relata 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 gravados 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 gravada 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 relata 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 relata 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 grava os dados a serem gravados 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 relata 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 gravados 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 regravação para os dados em um disco rígido.
[0087] Etapa S501: Receber uma solicitação de gravação, onde a solicitação de gravação porta os dados a serem gravados, um endereço lógico dos dados a serem gravados e uma quantidade de dados dos dados a serem gravados.
[0088] Etapa S502: Determinar, com base no endereço lógico dos dados a serem gravados, que um disco rígido de destino dos dados a serem gravados é 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 gravados.
[0091] Etapa S505: Se a capacidade disponível do disco rígido for maior que a quantidade de dados dos dados a serem gravados, gravar os dados a serem gravados 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 gravados, gravar os dados a serem gravados 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 relata 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 (46)

REIVINDICAÇÕES
1. Método de tratamento de falha de disco rígido, realizado por um controlador de arranjo em um arranjo de armazenamento, em que o arranjo de armazenamento compreende 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 forma um grupo de chunks por meio do uso de um algoritmo de redundância; CARACTERIZADO pelo fato de que o método compreende: 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 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 dos dados recuperados no segundo disco rígido.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a obtenção de informações de falha de uma área com falha que está em um primeiro disco rígido e no qual uma falha ocorre compreende: receber as informações de falha reportadas pelo primeiro disco rígido.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a obtenção de informações de falha de uma área com falha que está em um primeiro disco rígido e no qual uma falha ocorre compreende: enviar um comando de consulta de falha para o primeiro disco rígido; e receber as informações de falha reportadas pelo primeiro disco rígido de acordo com o comando de consulta de falha.
4. Método, de acordo com a reivindicação 2 ou 3, CARACTERIZADO pelo fato de que as informações de falha compreendem um identificador indicando se dados estão perdidos, e é determinado, com base no identificador, que dados na área com falha estão perdidos.
5. Método, de acordo com qualquer uma das reivindicações 1 a 4, CARACTERIZADO pelo fato de que a determinação de um chunk com falha no qual os dados perdidos estão localizados compreende: obter um endereço de um primeiro chunk no primeiro disco rígido no primeiro disco rígido; enviar um comando de consulta de perda de dados para o primeiro disco rígido, em que o comando de consulta porta o endereço do primeiro chunk no primeiro disco rígido; receber informações de indicação que são retornadas pelo primeiro disco rígido e que indicam se o primeiro chunk compreende os dados perdidos; e quando as informações de indicação indicarem que o primeiro chunk compreende os dados perdidos, determinar que o primeiro chunk é o chunk com falha; ou quando as informações de indicação indicarem que o primeiro chunk não compreende os dados perdidos, gerar um novo comando de consulta de perda de dados, em que o novo comando de consulta de perda de dados porta um endereço de um segundo chunk no primeiro disco rígido no primeiro disco rígido.
6. Método, de acordo com qualquer uma das reivindicações 1 a 4, CARACTERIZADO pelo fato de que a determinação de um chunk com falha no qual os dados perdidos estão localizados compreende: enviar um comando de consulta de área com falha para o primeiro disco rígido; receber informações que são retornadas pelo primeiro disco rígido e que compreendem um endereço da área com falha; e determinar o chunk com falha com base no endereço da área com falha.
7. Método, de acordo com qualquer uma das reivindicações 1 a 6, CARACTERIZADO pelo fato de que as informações de falha compreendem uma capacidade da área com falha; e o método compreende 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.
8. Método de tratamento de falha de disco rígido, realizado por um controlador de arranjo em um arranjo de armazenamento, em que o arranjo de armazenamento compreende um primeiro disco rígido, e o primeiro disco rígido compreende uma área com falha; CARACTERIZADO pelo fato de que o método compreende: 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.
9. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que 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; e o método compreende adicionalmente: determinar, com base nas informações de falha, se 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.
10. Método de tratamento de falha de disco rígido, realizado por um disco rígido, CARACTERIZADO pelo fato de que o método compreende: detectar uma área com falha no disco rígido; determinar se dados na área com falha estão perdidos; definir, com base em um resultado de determinação, uma marca indicando se dados na área com falha estão perdidos; e reportar, para um controlador de arranjo, uma marca indicando que o disco rígido compreende a área com falha e a marca indicando se dados na área com falha estão perdidos que são usados como informações de falha.
11. Método, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que o método compreende adicionalmente: gravar uma capacidade da área com falha, em que as informações de falha compreendem adicionalmente a capacidade da área com falha.
12. Método, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que o método compreende adicionalmente: determinar se a capacidade da área com falha é maior que um valor predefinido; e quando a capacidade da área com falha for maior que o valor predefinido, reportar as informações de falha para o controlador de arranjo.
13. Método, de acordo com qualquer uma das reivindicações 10 a 12, CARACTERIZADO pelo fato de que as informações de falha são gravadas em uma página de registro de exceção informativa no protocolo de interface de sistema de computador pequeno SCSI; e o método compreende adicionalmente: 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 compreendem a página de registro de exceção informativa.
14. Método, de acordo com qualquer uma das reivindicações 10 a 12, CARACTERIZADO pelo fato de que as informações de falha são gravadas em uma página de registro de exceção informativa no protocolo de interface de sistema de computador pequeno SCSI; e o método compreende adicionalmente: 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 compreendem a página de registro de exceção informativa.
15. Método, de acordo com qualquer uma das reivindicações 10 a 12, CARACTERIZADO pelo fato de que as informações de falha são gravadas em uma página de estatísticas de dispositivo de estado sólido no protocolo de anexo de tecnologia avançada ATA; e o método compreende adicionalmente: 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 compreendem a página de estatísticas de dispositivo de estado sólido.
16. Método, de acordo com qualquer uma das reivindicações 10 a 12, CARACTERIZADO pelo fato de que as informações de falha são gravadas em um registro de informações de saúde no protocolo de memória não volátil expressa NVMe; e o método compreende adicionalmente: 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 compreendem a página de estatísticas de dispositivo de estado sólido.
17. Controlador de arranjo em um arranjo de armazenamento, em que o arranjo de armazenamento compreende uma pluralidade de discos rígidos, cada um dos discos rígidos é dividido em uma pluralidade de chunks, e uma pluralidade de chunks e diferentes discos rígidos forma um grupo de chunks por meio do uso de um algoritmo de redundância; CARACTERIZADO pelo fato de que o controlador de arranjo compreende: um módulo de obtenção, configurado para obter informações de falha de uma área com falha que está em um primeiro disco rígido e no qual uma falha ocorre; um módulo de recuperação, configurado para: 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; e 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 grupo de chunks está localizado; e um módulo de gravação, configurado para 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 recuperados no segundo disco rígido.
18. Controlador de arranjo, de acordo com a reivindicação 17, CARACTERIZADO pelo fato de que uma maneira na qual o módulo de obtenção obtém as informações de falha da área com falha que está no primeiro disco rígido e no qual uma falha ocorre está recebendo as informações de falha reportadas pelo primeiro disco rígido.
19. Controlador de arranjo, de acordo com a reivindicação 17, CARACTERIZADO pelo fato de que uma maneira na qual o módulo de obtenção obtém as informações de falha da área com falha que está no primeiro disco rígido e no qual uma falha ocorre é: enviar um comando de consulta de falha para o primeiro disco rígido; e receber as informações de falha reportadas pelo primeiro disco rígido de acordo com o comando de consulta de falha.
20. Controlador de arranjo, de acordo com qualquer uma das reivindicações 17 a 19, CARACTERIZADO pelo fato de que as informações de falha compreendem um identificador indicando se dados estão perdidos, e é determinado, com base no identificador, que dados na área com falha estão perdidos.
21. Controlador de arranjo, de acordo com qualquer uma das reivindicações 17 a 20, CARACTERIZADO pelo fato de que ao determinar o chunk com falha no qual os dados perdidos estão localizados, o módulo de recuperação é especificamente configurado para: obter um endereço de um primeiro chunk no primeiro disco rígido no primeiro disco rígido; enviar um comando de consulta de perda de dados para o primeiro disco rígido, em que o comando de consulta porta o endereço do primeiro chunk no primeiro disco rígido; receber informações de indicação que são retornadas pelo primeiro disco rígido e que indicam se o primeiro chunk compreende os dados perdidos; e quando as informações de indicação indicarem que o primeiro chunk compreende os dados perdidos, determinar que o primeiro chunk é o chunk com falha; ou quando as informações de indicação indicarem que o primeiro chunk não compreende os dados perdidos, gerar um novo comando de consulta de perda de dados, em que o novo comando de consulta de perda de dados porta um endereço de um segundo chunk no primeiro disco rígido no primeiro disco rígido.
22. Controlador de arranjo, de acordo com qualquer uma das reivindicações 17 a 20, CARACTERIZADO pelo fato de que ao determinar o chunk com falha no qual os dados perdidos estão localizados, o módulo de recuperação é especificamente configurado para: enviar um comando de consulta de área com falha para o primeiro disco rígido; receber informações que são retornadas pelo primeiro disco rígido e que compreendem um endereço da área com falha; e determinar o chunk com falha com base no endereço da área com falha.
23. Controlador de arranjo, de acordo com qualquer uma das reivindicações 17 a 22, CARACTERIZADO pelo fato de que as informações de falha compreendem uma capacidade da área com falha; e o controlador de arranjo compreende adicionalmente: um módulo de adição configurado para: 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.
24. Controlador de arranjo em um arranjo de armazenamento, CARACTERIZADO pelo fato de que o arranjo de armazenamento compreende um primeiro disco rígido, e o primeiro disco rígido compreende uma área com falha; e o método compreende: um módulo de obtenção, configurado para obter informações de falha da área com falha; um módulo de migração, configurado para: determinar uma capacidade da área com falha com base nas informações de falha, e migrar alguns dados no primeiro disco rígido para um segundo disco rígido com base na capacidade; e um módulo de gravação, configurado para 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.
25. Controlador de arranjo, de acordo com a reivindicação 24, CARACTERIZADO pelo fato de que 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; e o módulo de migração é adicionalmente configurado para: determinar, com base nas informações de falha, se 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.
26. Disco rígido, CARACTERIZADO pelo fato de que compreende: um módulo de identificação configurado para detectar uma área com falha no disco rígido; um módulo de marcação configurado para determinar se dados na área com falha estão perdidos e, definir, com base em um resultado de determinação, uma marca indicando se dados na área com falha estão perdidos; e um módulo de reporte configurado para reportar, para um controlador de arranjo, uma marca indicando que o disco rígido compreende a área com falha e a marca indicando se dados na área com falha estão perdidos que são usados como informações de falha.
27. Disco rígido, de acordo com a reivindicação 26, CARACTERIZADO pelo fato de que o disco rígido compreende adicionalmente: o módulo de marcação é adicionalmente configurado para gravar uma capacidade da área com falha, em que as informações de falha compreendem adicionalmente a capacidade da área com falha.
28. Disco rígido, de acordo com a reivindicação 26, CARACTERIZADO pelo fato de que o módulo de reporte é adicionalmente configurado para: determinar se a capacidade da área com falha é maior que um valor predefinido; e quando a capacidade da área com falha for maior que o valor predefinido, reportar as informações de falha para o controlador de arranjo.
29. Disco rígido, de acordo com qualquer uma das reivindicações 26 a 28, CARACTERIZADO pelo fato de que o módulo de gravação grava as informações de falha em uma página de registro de exceção informativa no protocolo de interface de sistema de computador pequeno SCSI; e o módulo de reporte é especificamente configurado para: 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 compreendem a página de registro de exceção informativa.
30. Disco rígido, de acordo com qualquer uma das reivindicações 26 a 28, CARACTERIZADO pelo fato de que o módulo de gravação grava as informações de falha em uma página de registro de exceção informativa no protocolo de interface de sistema de computador pequeno SCSI; e o módulo de reporte é especificamente configurado para: 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 compreendem a página de registro de exceção informativa.
31. Disco rígido, de acordo com qualquer uma das reivindicações 26 a 28, CARACTERIZADO pelo fato de que as informações de falha são gravadas em uma página de estatísticas de dispositivo de estado sólido no protocolo de anexo de tecnologia avançada ATA; e o módulo de reporte é especificamente configurado para: 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 compreendem a página de estatísticas de dispositivo de estado sólido.
32. Disco rígido, de acordo com qualquer uma das reivindicações 26 a 28, CARACTERIZADO pelo fato de que as informações de falha são gravadas em um registro de informações de saúde no protocolo de memória não volátil expressa NVMe; e o módulo de reporte é especificamente configurado para: 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 compreendem a página de estatísticas de dispositivo de estado sólido.
33. Método de tratamento de falha de disco rígido, realizado por um controlador de arranjo em um arranjo de armazenamento, em que o arranjo de armazenamento compreende 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 forma um grupo de chunks por meio do uso de um algoritmo de redundância; CARACTERIZADO pelo fato de que o método compreende: 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 grupo de chunks está localizado; e substituir o chunk com falha no grupo de chunks pelo chunk recuperado.
34. Método, de acordo com a reivindicação 33, CARACTERIZADO pelo fato de que a substituição do chunk com falha no grupo de chunks pelo chunk recuperado compreende: substituir um endereço do chunk com falha no primeiro disco rígido que é gravado em metadados no grupo de chunks por um endereço do chunk recuperado no segundo disco rígido.
35. Método, de acordo com a reivindicação 33 ou 34, CARACTERIZADO pelo fato de que a obtenção de informações de falha de uma área com falha que está em um primeiro disco rígido e no qual uma falha ocorre compreende:
receber as informações de falha reportadas pelo primeiro disco rígido.
36. Método, de acordo com a reivindicação 33 ou 34, CARACTERIZADO pelo fato de que a obtenção de informações de falha de uma área com falha que está em um primeiro disco rígido e no qual uma falha ocorre compreende: enviar um comando de consulta de falha para o primeiro disco rígido; e receber as informações de falha reportadas pelo primeiro disco rígido de acordo com o comando de consulta de falha.
37. Método, de acordo com qualquer uma das reivindicações 34 a 36, CARACTERIZADO pelo fato de que as informações de falha compreendem um identificador indicando se dados estão perdidos, e é determinado, com base no identificador, que dados na área com falha estão perdidos.
38. Método, de acordo com qualquer uma das reivindicações 33 a 37, CARACTERIZADO pelo fato de que a determinação de um chunk com falha no qual os dados perdidos estão localizados compreende: obter um endereço de um primeiro chunk no primeiro disco rígido no primeiro disco rígido; enviar um comando de consulta de perda de dados para o primeiro disco rígido, em que o comando de consulta porta o endereço do primeiro chunk no primeiro disco rígido; receber informações de indicação que são retornadas pelo primeiro disco rígido e que indicam se o primeiro chunk compreende os dados perdidos; e quando as informações de indicação indicarem que o primeiro chunk compreende os dados perdidos, determinar que o primeiro chunk é o chunk com falha; ou quando as informações de indicação indicarem que o primeiro chunk não compreende os dados perdidos, gerar um novo comando de consulta de perda de dados, em que o novo comando de consulta de perda de dados porta um endereço de um segundo chunk no primeiro disco rígido no primeiro disco rígido.
39. Método, de acordo com qualquer uma das reivindicações 33 a 37, CARACTERIZADO pelo fato de que a determinação de um chunk com falha no qual os dados perdidos estão localizados compreende: enviar um comando de consulta de área com falha para o primeiro disco rígido; receber informações que são retornadas pelo primeiro disco rígido e que compreendem um endereço da área com falha; e determinar o chunk com falha com base no endereço da área com falha.
40. Controlador de arranjo em um arranjo de armazenamento, em que o arranjo de armazenamento compreende 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 forma um grupo de chunks por meio do uso de um algoritmo de redundância; CARACTERIZADO pelo fato de que o controlador de arranjo compreende: um módulo de obtenção, configurado para obter informações de falha de uma área com falha que está em um primeiro disco rígido e no qual uma falha ocorre; um módulo de recuperação, configurado para: 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; e 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 grupo de chunks está localizado; e um módulo de gravação, configurado para substituir o chunk com falha no grupo de chunks pelo chunk recuperado.
41. Controlador de arranjo em um arranjo de armazenamento, CARACTERIZADO pelo fato de que ao substituir o chunk com falha no grupo de chunks pelo chunk recuperado, o módulo de substituição é especificamente configurado para substituir um endereço do chunk com falha no primeiro disco rígido que é gravado em metadados no grupo de chunks por um endereço do chunk recuperado no segundo disco rígido.
42. Controlador de arranjo, de acordo com a reivindicação 40 ou 41, CARACTERIZADO pelo fato de que uma maneira na qual o módulo de obtenção obtém as informações de falha da área com falha que está no primeiro disco rígido e no qual uma falha ocorre está recebendo as informações de falha reportadas pelo primeiro disco rígido.
43. Controlador de arranjo, de acordo com a reivindicação 40 ou 41, CARACTERIZADO pelo fato de que uma maneira na qual o módulo de obtenção obtém as informações de falha da área com falha que está no primeiro disco rígido e no qual uma falha ocorre é: enviar um comando de consulta de falha para o primeiro disco rígido; e receber as informações de falha reportadas pelo primeiro disco rígido de acordo com o comando de consulta de falha.
44. Controlador de arranjo, de acordo com qualquer uma das reivindicações 40 a 43, CARACTERIZADO pelo fato de que as informações de falha compreendem um identificador indicando se dados estão perdidos, e é determinado, com base no identificador, que dados na área com falha estão perdidos.
45. Controlador de arranjo, de acordo com qualquer uma das reivindicações 40 a 43, CARACTERIZADO pelo fato de que ao determinar o chunk com falha no qual os dados perdidos estão localizados, o módulo de recuperação é especificamente configurado para: obter um endereço de um primeiro chunk no primeiro disco rígido no primeiro disco rígido; enviar um comando de consulta de perda de dados para o primeiro disco rígido, em que o comando de consulta porta o endereço do primeiro chunk no primeiro disco rígido; receber informações de indicação que são retornadas pelo primeiro disco rígido e que indicam se o primeiro chunk compreende os dados perdidos; e quando as informações de indicação indicarem que o primeiro chunk compreende os dados perdidos, determinar que o primeiro chunk é o chunk com falha; ou quando as informações de indicação indicarem que o primeiro chunk não compreende os dados perdidos, gerar um novo comando de consulta de perda de dados, em que o novo comando de consulta de perda de dados porta um endereço de um segundo chunk no primeiro disco rígido no primeiro disco rígido.
46. Controlador de arranjo, de acordo com qualquer uma das reivindicações 40 a 43, CARACTERIZADO pelo fato de que ao determinar o chunk com falha no qual os dados perdidos estão localizados, o módulo de recuperação é especificamente configurado para: enviar um comando de consulta de área com falha para o primeiro disco rígido; receber informações que são retornadas pelo primeiro disco rígido e que compreendem um endereço da área com falha; e determinar o chunk com falha com base no endereço da área com falha.
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.7A CN110879761A (zh) 2018-09-05 2018-11-30 硬盘故障处理方法、阵列控制器及硬盘
CN201811451958.7 2018-11-30
PCT/CN2019/104163 WO2020048442A1 (zh) 2018-09-05 2019-09-03 硬盘故障处理方法、阵列控制器及硬盘

Publications (2)

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

Family

ID=

Also Published As

Publication number Publication date
JP2021193550A (ja) 2021-12-23
JP7326379B2 (ja) 2023-08-15
US11264055B2 (en) 2022-03-01
EP3920031B1 (en) 2024-05-01
KR102632961B1 (ko) 2024-02-01
KR20210028268A (ko) 2021-03-11
EP3920031A1 (en) 2021-12-08
CN110879761A (zh) 2020-03-13
JP2021535518A (ja) 2021-12-16
US20210233569A1 (en) 2021-07-29
EP3822792A4 (en) 2021-10-13
US11501800B2 (en) 2022-11-15
CN111949443B (zh) 2022-07-22
MA53144A (fr) 2021-05-19
EP3822792A1 (en) 2021-05-19
US11322179B2 (en) 2022-05-03
CN111949443A (zh) 2020-11-17
US20220108724A1 (en) 2022-04-07
JP7147050B2 (ja) 2022-10-04
US20210158841A1 (en) 2021-05-27
MX2021002274A (es) 2021-05-27

Similar Documents

Publication Publication Date Title
US11501800B2 (en) Hard disk fault handling method, array controller, and hard disk
JP6294518B2 (ja) 不揮発性メモリシステムにおける同期ミラーリング
TWI428737B (zh) 半導體記憶體裝置
US7814273B2 (en) Dynamically expandable and contractible fault-tolerant storage system permitting variously sized storage devices and method
BR112014005623B1 (pt) Método de gravar escritas pendentes em um conjunto de armazenamento e meio de armazenamento legível por computador
WO2015087184A1 (en) Recording dwell time in a non-volatile memory system
US11662929B2 (en) Systems, methods, and computer readable media providing arbitrary sizing of data extents
TWI671631B (zh) 記憶體管理方法以及儲存控制器
WO2020048442A1 (zh) 硬盘故障处理方法、阵列控制器及硬盘
TWI404071B (zh) 能識別快閃記憶體中錯誤資料的控制電路及儲存系統與方法
US8418029B2 (en) Storage control device and storage control method
BR112021002987B1 (pt) Método de tratamento de falha de disco rígido, controlador de arranjo, e disco rígido
WO2020001059A1 (zh) 一种数据处理方法及设备

Legal Events

Date Code Title Description
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

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