BR112017006639B1 - Método, aparelho e sistema de gravação de dados - Google Patents

Método, aparelho e sistema de gravação de dados Download PDF

Info

Publication number
BR112017006639B1
BR112017006639B1 BR112017006639-4A BR112017006639A BR112017006639B1 BR 112017006639 B1 BR112017006639 B1 BR 112017006639B1 BR 112017006639 A BR112017006639 A BR 112017006639A BR 112017006639 B1 BR112017006639 B1 BR 112017006639B1
Authority
BR
Brazil
Prior art keywords
lock
data
storage
written
write
Prior art date
Application number
BR112017006639-4A
Other languages
English (en)
Other versions
BR112017006639A2 (pt
Inventor
Lei Chen
Keji HUANG
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
Publication of BR112017006639A2 publication Critical patent/BR112017006639A2/pt
Publication of BR112017006639B1 publication Critical patent/BR112017006639B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

Trata-se de um sistema ativo-ativo, em que se permissão de bloqueio de gravação for concedida para uma segunda matriz de armazenamento, uma primeira matriz de armazenamento envia dados a serem gravados e uma solicitação de revogação de bloqueio junto a um servidor de bloqueio; o servidor de bloqueio envia uma solicitação de revogação de bloqueio que porta os dados a serem gravados para a segunda matriz de armazenamento; após armazenar os dados a serem gravados, a segunda matriz de armazenamento envia uma mensagem de sucesso de revogação de bloqueio para o servidor de bloqueio; o servidor de bloqueio fornece a permissão de bloqueio de gravação para a primeira matriz de armazenamento; e a primeira matriz de armazenamento obtém a permissão de bloqueio de gravação e armazena os dados a serem gravados. Mediante o uso do método, os dados a serem gravados são armazenados em duas matrizes de armazenamento com relativamente poucos procedimentos.

Description

CAMPO DA TÉCNICA
[0001] A presente invenção refere-se ao campo da computação e, em particular, a uma tecnologia de armazenamento.
ANTECEDENTES
[0002] Em uma tecnologia de rede de área de armazenamento (SAN), um hospedeiro é conectado a uma matriz de armazenamento usando-se um canal de fibra (FC) e um sistema de armazenamento fornece serviços de armazenamento de dados ao hospedeiro.
[0003] Para aprimorar estabilidade de dados, um sistema de armazenamento pode usar duas matrizes de armazenamento. Em referência à Figura 1, há uma matriz de armazenamento 121 e uma matriz de armazenamento 123 em um sistema de armazenamento, e as duas matrizes de armazenamento são conectadas uma à outra usando-se um FC. Quando um hospedeiro grava dados na matriz de armazenamento 121, a matriz de armazenamento 121 não apenas armazena os dados em um armazenamento local, mas também envia os dados para a matriz de armazenamento 123 para armazenamento. De modo similar, os dados recebidos pela matriz de armazenamento 123 também são enviados para a matriz de armazenamento 121 para armazenamento. Nessa maneira de armazenamento, as duas matrizes de armazenamento podem fornecer serviços de armazenamento para o hospedeiro e os mesmos dados são armazenados nas duas matrizes de armazenamento. Isso é denominado um sistema de armazenamento ativo-ativo. Em um sistema de armazenamento ativo-ativo, mesmo se uma matriz de armazenamento for defeituosa, um hospedeiro também pode obter dados da outra matriz de armazenamento, o que aprimora, portanto, a segurança de dados.
[0004] O mesmo conteúdo é gravado nas duas matrizes de armazenamento. Portanto, segmentos de endereço lógico das duas matrizes de armazenamento correspondem uns aos outros. Para evitar dados inconsistentes nas duas matrizes de armazenamento, em implantação específica, um bloqueio global é usado para garantir operações de gravação mutualmente exclusivas. Em um mesmo período de tempo, apenas uma matriz de armazenamento pode obter um bloqueio de gravação de um segmento de endereço lógico aplicando- se, e apenas essa matriz de armazenamento que obteve o bloqueio de gravação do segmento de endereço lógico pode gravar, dados nas duas matrizes de armazenamento.
[0005] Se a matriz de armazenamento 121 tiver obtido, mediante aplicação, um bloqueio de gravação de um segmento de endereço lógico de um servidor de bloqueio 122, a matriz de armazenamento 123 não pode obter o bloqueio de gravação e, portanto, não pode gravar dados a um segmento de endereço lógico que corresponde à matriz de armazenamento 123. A matriz de armazenamento 123 pode obter o bloqueio de gravação apenas após o bloqueio de gravação ser retirado pelo servidor de bloqueio 122 da matriz de armazenamento 121.
[0006] Em um processo de retirada do bloqueio de gravação, as duas matrizes de armazenamento precisam se comunicar com o servidor de bloqueio 122. Após o bloqueio de gravação ser retirado, as duas matrizes de armazenamento também precisam se comunicar uma com a outra, de modo que os dados obtidos pela matriz de armazenamento 121 sejam gravados na matriz de armazenamento 123.
[0007] A matriz de armazenamento 121 e a matriz de armazenamento 123 são, em geral, separadas, por exemplo, em uma distância de 100 km a 300 km. Portanto, em uma topologia na Figura 1, a matriz de armazenamento 121 é adjacente ao servidor de bloqueio 122, e um tempo de comunicação entre os dois pode ser ignorado. No entanto, a comunicação entre o servidor de bloqueio 122 e a matriz de armazenamento 123 e a comunicação entre a matriz de armazenamento 121 e a matriz de armazenamento 123 pode tomar muito tempo. Por exemplo, a comunicação demora diversos milissegundos a cada vez. Se o servidor de bloqueio 122 for movido para mais próximo da matriz de armazenamento 123, embora a comunicação entre o servidor de bloqueio 122 e a matriz de armazenamento 123 possa levar um tempo menor, a comunicação entre a matriz de armazenamento 121 e o servidor de bloqueio 122 pode levar, de modo correspondente, um tempo maior.
[0008] Portanto, em um sistema ativo-ativo de longa distância, como reduzir um tempo de comunicação total entre um servidor de bloqueio e duas matrizes de armazenamento é um problema que precisa ser solucionado.
SUMÁRIO
[0009] Um primeiro aspecto da presente invenção fornece um método de gravação de dados, e o método é aplicado a um servidor de bloqueio. O servidor de bloqueio é conectado a uma primeira matriz de armazenamento e a uma segunda matriz de armazenamento. A primeira matriz de armazenamento e a segunda matriz de armazenamento podem formar um sistema de armazenamento ativo-ativo. O método inclui: receber uma solicitação de bloqueio de uma primeira matriz de armazenamento, em que a solicitação de bloqueio porta um comando de bloqueio, dados a serem gravados e um endereço de gravação, e o endereço de gravação descreve uma localização para armazenar os dados a serem gravados; enviar, pelo servidor de bloqueio, uma solicitação de revogação de bloqueio para uma segunda matriz de armazenamento se for detectado que a permissão de bloqueio de gravação para o endereço de gravação já foi concedida à segunda matriz de armazenamento, em que a solicitação de revogação de bloqueio é usada para tirar a permissão de bloqueio de gravação, e a solicitação de revogação de bloqueio porta adicionalmente os dados a serem gravados e o endereço de gravação e é usada para instruir a segunda matriz de armazenamento para armazenar os dados a serem gravados de acordo com o endereço de gravação; e enviar uma mensagem de alocação de bloqueio para a primeira matriz de armazenamento após receber uma mensagem de sucesso de revogação de bloqueio enviada pela segunda matriz de armazenamento, em que a mensagem de sucesso de revogação de bloqueio é usada para descrever que a segunda matriz de armazenamento já finalizou o uso da permissão de bloqueio de gravação, e é adicionalmente usada para descrever que a segunda matriz de armazenamento escreveu os dados a serem gravados, em que a mensagem de alocação de bloqueio é usada para alocar a permissão de bloqueio de gravação solicitada pela primeira matriz de armazenamento à primeira matriz de armazenamento, e é adicionalmente usada para descrever que a segunda matriz de armazenamento completou a descrição dos dados a serem gravados. O mesmo pode ser um sistema de armazenamento ativo-ativo.
[0010] O método aprimora a eficácia de gravar dados na segunda matriz de armazenamento pela primeira matriz de armazenamento em um caso de um conflito de bloqueio.
[0011] Em uma primeira maneira de implantação possível do primeiro aspecto, após receber a solicitação de revogação de bloqueio, a segunda matriz de armazenamento armazena os dados a serem gravados em um armazenamento local de acordo com o endereço de gravação, e envia a mensagem de sucesso de revogação de bloqueio; e após receber a mensagem de alocação de bloqueio, a primeira matriz de armazenamento armazena os dados a serem gravados em um armazenamento local de acordo com o endereço de gravação.
[0012] O método aprimora eficácia de gravar os mesmos dados em algumas localizações da primeira matriz de armazenamento e da segunda matriz de armazenamento em um caso de um conflito de bloqueio.
[0013] Em referência à primeira maneira de implantação possível do primeiro aspecto, opcionalmente, o armazenamento, pela segunda matriz de armazenamento, dos dados a serem gravados em um armazenamento local de acordo com o endereço de gravação, especificamente inclui: combinar, pela segunda matriz de armazenamento, outros dados a serem gravados e os dados a serem gravados, e armazenar dados combinados no armazenamento local de acordo com o endereço de gravação.
[0014] O método adicionalmente aprimora eficácia de gravar dados na segunda matriz de armazenamento.
[0015] Opcionalmente, a operação de combinação especificamente inclui: se os outros dados a serem gravados e os dados a serem gravados compartilharem uma parte de sobreposição de endereço, armazenar a parte de sobreposição de endereço como os dados a serem gravados.
[0016] O método fornece uma maneira viável para aprimorar adicionalmente a eficácia de gravação de dados na segunda matriz de armazenamento.
[0017] Em uma segunda maneira de implantação possível do primeiro aspecto, a primeira matriz de armazenamento e a segunda matriz de armazenamento, cada uma, incluem uma rede de área de armazenamento controlador de armazenamento de SAN e um armazenamento conectado ao controlador de armazenamento de SAN.
[0018] Em uma terceira maneira de implantação possível do primeiro aspecto, a primeira matriz de armazenamento e a segunda matriz de armazenamento são matrizes de armazenamento de objeto, em que a matriz de armazenamento de objeto inclui um controlador de armazenamento de objeto e um armazenamento de objeto.
[0019] Em uma quarta maneira de implantação possível do primeiro aspecto, o endereço de gravação é uma ID de número de unidade lógica LUN e uma faixa de endereços em uma LUN.
[0020] De acordo com um segundo aspecto, com base no primeiro aspecto e as diversas maneiras possíveis do primeiro aspecto, a presente invenção fornece adicionalmente um aparelho de gerenciamento de bloqueio correspondente que tem um efeito correspondente.
[0021] De acordo com um terceiro aspecto, um sistema é fornecido em detalhes, e inclui um servidor de bloqueio, uma primeira matriz de armazenamento e uma segunda matriz de armazenamento.
[0022] A primeira matriz de armazenamento é configurada para: receber uma solicitação de gravação de dados, em que a solicitação de gravação de dados porta dados a serem gravados e um endereço de gravação, e o endereço de gravação descreve uma localização para armazenar os dados a serem gravados e, então, envia uma solicitação de bloqueio para o servidor de bloqueio, em que a solicitação de bloqueio porta um comando de bloqueio, os dados a serem gravados e o endereço de gravação. O servidor de bloqueio é configurado para: receber a solicitação de bloqueio, e se for detectado que a permissão de bloqueio de gravação para o endereço de gravação já foi concedida à segunda matriz de armazenamento, enviar uma solicitação de revogação de bloqueio para a segunda matriz de armazenamento, em que a solicitação de revogação de bloqueio é usada para tirar a permissão de bloqueio de gravação concedida à segunda matriz de armazenamento, e a solicitação de revogação de bloqueio porta adicionalmente os dados a serem gravados e o endereço de gravação. A segunda matriz de armazenamento é configurada para: após receber a solicitação de revogação de bloqueio, armazenar os dados a serem gravados em um armazenamento local de acordo com o endereço de gravação e, então, enviar uma mensagem de sucesso de revogação de bloqueio para o servidor de bloqueio, em que a mensagem de sucesso de revogação de bloqueio é usada para descrever que a segunda matriz de armazenamento finalizou o uso da permissão de bloqueio de gravação e, adicionalmente, a mensagem de sucesso de revogação de bloqueio porta informações que os dados a serem gravados são gravados com sucesso. O servidor de bloqueio é adicionalmente configurado para enviar uma mensagem de alocação de bloqueio para a primeira matriz de armazenamento após receber a mensagem de sucesso de revogação de bloqueio, em que a mensagem de alocação de bloqueio é usada para alocar a permissão de bloqueio de gravação solicitada pela primeira matriz de armazenamento à primeira matriz de armazenamento, e é adicionalmente usada para descrever que a segunda matriz de armazenamento completou a gravação dos dados a serem gravados. A primeira matriz de armazenamento é adicionalmente configurada para armazenar os dados a serem gravados em um armazenamento local de acordo com o endereço de gravação após receber a mensagem de alocação de bloqueio.
[0023] Uma solução de sistema ativo-ativo é fornecida para fornecer eficácia de um sistema ativo-ativo. Em outras palavras, a eficácia de gravar os mesmos dados nas mesmas localizações da primeira matriz de armazenamento e a segunda matriz de armazenamento é aprimorada em um caso de um conflito de bloqueio.
[0024] De modo correspondente, a presente invenção fornece adicionalmente dois métodos de gravação de dados, aplicados a um controlador de armazenamento de uma primeira matriz de armazenamento e um controlador de armazenamento de uma segunda matriz de armazenamento, respectivamente. Os dois controladores de armazenamento podem executar respectivamente operações da primeira matriz de armazenamento e da segunda matriz de armazenamento em um primeiro aspecto e diversas maneiras de implantação possíveis do primeiro aspecto, e têm efeitos correspondentes. Uma diferença se encontra na matriz de armazenamento que tem um controlador, enquanto que para o controlador de armazenamento, um armazenamento pode não estar localizado de modo local no controlador de armazenamento. Além disso, para os dois métodos de gravação de dados adicionalmente fornecidos, a presente invenção fornece adicionalmente aparelhos que correspondem aos dois métodos.
[0025] Adicionalmente, na presente invenção, o método de gravação de dados executado pelo primeiro controlador de armazenamento e o método de gravação de dados executado pelo segundo controlador de armazenamento podem ser combinados. Há duas maneiras de combinação. Em uma maneira de combinação, os dois métodos são respectivamente executados por dois controladores de armazenamento de um sistema de gravação de dados, de modo a gravar os mesmos dados a serem gravados para dois armazenamentos. Em outra maneira de implantação, dois métodos são executados por um mesmo controlador de armazenamento. O controlador de armazenamento desempenha um papel do controlador na primeira matriz de armazenamento em um processo de gravação dos dados a serem gravados, e desempenha um papel do controlador na segunda matriz de armazenamento em outro processo de gravação dos dados a serem gravados.
[0026] De modo correspondente, a presente invenção fornece adicionalmente um meio de armazenamento legível por computador não volátil e um produto de programa de computador. Quando uma memória do dispositivo de armazenamento fornecida na presente invenção carrega uma instrução de computador incluída no meio de armazenamento legível por computador não volátil e no produto de programa de computador, uma unidade de processamento central (CPU) do dispositivo de armazenamento executa a instrução de computador, de modo que o dispositivo de armazenamento execute as diversas soluções de implantação possíveis dos diversos aspectos da presente invenção.
BREVE DESCRIÇÃO DOS DESENHOS
[0027] A Figura 1 é um diagrama de topologia de uma modalidade de um sistema de gerenciamento de bloqueio de acordo com a presente invenção;
[0028] A Figura 2 é um diagrama de topologia de uma modalidade de um sistema de gerenciamento de bloqueio de acordo com a presente invenção;
[0029] A Figura 3 é um fluxograma de uma modalidade de um método de gravação de dados de acordo com a presente invenção;
[0030] A Figura 4 é um diagrama estrutural de uma modalidade de um aparelho de gerenciamento de bloqueio de acordo com a presente invenção;
[0031] A Figura 5 é um diagrama estrutural de uma modalidade de um servidor de bloqueio de acordo com a presente invenção;
[0032] A Figura 6 é um diagrama estrutural de uma modalidade de um aparelho de gravação de dados de acordo com a presente invenção; e
[0033] A Figura 7 é um diagrama estrutural de uma modalidade de um controlador de armazenamento de acordo com a presente invenção.
DESCRIÇÃO DAS MODALIDADES
[0034] 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. Aparentemente, as modalidades descritas são meramente algumas, mas não todas as modalidades da presente invenção.
[0035] Um sistema de armazenamento que inclui um servidor de bloqueio, uma primeira matriz de armazenamento e uma segunda matriz de armazenamento é usado como um exemplo. Na técnica anterior, após receber dados a serem gravados de um hospedeiro, a primeira matriz de armazenamento se aplica ao servidor de bloqueio para permissão de bloqueio (que especificamente pode ser permissão de bloqueio de gravação) de acordo com um endereço a ser gravado. Se a permissão de bloqueio de gravação tiver sido concedida à segunda matriz de armazenamento nesse momento (ou seja, um conflito de bloqueio existe), o servidor de bloqueio envia uma solicitação de revogação de bloqueio para a segunda matriz de armazenamento, de modo que a segunda matriz de armazenamento libere a permissão de bloqueio de gravação concedida em uma maneira de tempo oportuno após a gravação dos dados.
[0036] Um processo de gravação de dados é descrito na modalidade a seguir. Deve ser verificado que modificação de dados também pertence à gravação de dados.
[0037] Após gravar dados atuais, a segunda matriz de armazenamento notifica o servidor de bloqueio que a permissão de bloqueio de gravação está liberada, ou seja, revogação de bloqueio ocorre. O servidor de bloqueio autoriza um bloqueio de gravação para a primeira matriz de armazenamento enviando-se uma mensagem de autorização. Após obter o bloqueio de gravação, a primeira matriz de armazenamento de modo local grava os dados a serem gravados, e envia os dados a serem gravados para a segunda matriz de armazenamento usando-se um canal de transmissão entre um primeiro controlador de armazenamento e um controlador de armazenamento da segunda matriz de armazenamento, de modo que a segunda matriz de armazenamento grave os dados a serem gravados. Após tanto a primeira matriz de armazenamento quanto a segunda matriz de armazenamento descreverem os dados a serem gravados, todo o processo de gravação de dados termina.
[0038] De fato, se a primeira matriz de armazenamento e o servidor de bloqueio forem integrados, a transmissão de mensagem de longa distância precisa ser realizada três vezes, como a seguir: O servidor de bloqueio envia a solicitação de revogação de bloqueio para a segunda matriz de armazenamento; a segunda matriz de armazenamento libera a permissão de bloqueio para o servidor de bloqueio; e a primeira matriz de armazenamento envia os dados a serem gravados para a segunda matriz de armazenamento.
[0039] Resumindo, nessa modalidade da presente invenção, a terceira mensagem pode ser combinada com as outras duas mensagens, de modo a reduzir um período de tempo de transmissão de dados e um tempo total de todo o serviço. Além disso, de acordo com essa modalidade da presente invenção, o segundo controlador de armazenamento pode combinar os dados a serem gravados recebidos da primeira matriz de armazenamento e dados em um armazenamento local e armazenar dados combinados em um meio de armazenamento não volátil, de modo que o tempo seja economizado em comparação com armazenar separadamente as duas peças de dados no meio de armazenamento não volátil.
[0040] Adicionalmente, em um processo de resposta de revogação de bloqueio e um processo de alocar o bloqueio na primeira matriz de armazenamento pelo servidor de bloqueio, uma mensagem de resposta de gravação de dados também podem ser combinados, produzindo um efeito de economia de tempo. Uma mensagem de sucesso de revogação de bloqueio não apenas descreve que a segunda matriz de armazenamento finalizou o uso da permissão de bloqueio de gravação e que a permissão de bloqueio de gravação é retirada pelo servidor de bloqueio, mas também pode portar informações de que a segunda matriz de armazenamento finalizou o uso da permissão de bloqueio de gravação. Uma mensagem de alocação de bloqueio enviada pelo servidor de bloqueio para a primeira matriz de armazenamento não é apenas usada para alocar a permissão de bloqueio de gravação solicitada pela primeira matriz de armazenamento para a primeira matriz de armazenamento, mas também usada para notificar a primeira matriz de armazenamento de que a segunda matriz de armazenamento finalizou a descrição dos dados a serem gravados.
[0041] Pode ser entendido que para a combinação de mensagem, uma mensagem combinada precisa apenas portar informações de uma mensagem antes de ser combinada. A nomeação da mensagem e uma maneira de transmissão das informações correspondentes (por exemplo, transmissão de cabeçalho de pacote ou transmissão de carga pode ser usada) não são limitadas no presente pedido. Por exemplo, conforme descrito acima, a mensagem de sucesso de revogação de bloqueio porta duas informações: uma, informações de que a revogação da permissão de bloqueio é permitida; e duas, informações de que a segunda matriz de armazenamento finalizou o uso da permissão de bloqueio de gravação. Embora a mensagem seja nomeada “mensagem de sucesso de revogação de bloqueio”, a mesma não significa uma relação de prioridade entre as informações um e as informações dois, ou limita localizações das duas em toda a mensagem, ou limita tipos de campos para registrar as duas na mensagem.
[0042] Em referência à Figura 2, a Figura 2 é um diagrama arquitetural de um sistema de armazenamento 20 de acordo com a presente invenção. Conforme mostrado na Figura, o sistema de armazenamento 20 inclui uma primeira matriz de armazenamento 2 e uma segunda matriz de armazenamento 3. Um hospedeiro 1 é conectado a um controlador de armazenamento 21 da primeira matriz de armazenamento 2 e um controlador de armazenamento 31 da segunda matriz de armazenamento 3. A primeira matriz de armazenamento 2 inclui adicionalmente um primeiro armazenamento 22 conectado ao primeiro controlador de armazenamento 21. A segunda matriz de armazenamento 3 inclui adicionalmente um segundo armazenamento 32 conectado ao segundo controlador de armazenamento 31. Além disso, um servidor de bloqueio 23 e o segundo controlador de armazenamento 31 são conectados, por exemplo, usando-se um canal de fibra. Opcionalmente, o hospedeiro 1 pode ser conectado ao segundo controlador de armazenamento 31 de segunda matriz de armazenamento 3. A primeira matriz de armazenamento 2 pode incluir adicionalmente o servidor de bloqueio 23 conectado ao primeiro controlador de armazenamento 21.
[0043] Os dados nas duas matrizes de armazenamento permanecem consistentes e quando os dados são gravados para qualquer uma das matrizes de armazenamento, os mesmos dados também precisam ser gravados para a outra matriz de armazenamento na mesma localização. Por exemplo, todos os dados gravados na primeira matriz de armazenamento 2 também podem ser gravados para a segunda matriz de armazenamento 3 no mesmo endereço de gravação. Todo o processo de gravação termina apenas se tanto a primeira matriz de armazenamento 2 quanto a segunda matriz de armazenamento 3 tiverem completado a gravação.
[0044] Além disso, a primeira matriz de armazenamento e a segunda matriz de armazenamento são consistentes em termos de divisão e uso de espaço de endereço. Ou seja, a primeira matriz de armazenamento e a segunda matriz de armazenamento têm uma mesma quantidade de LUNs, IDs de LUN correspondem uma à outra de uma maneira um para um, e tamanhos das LUNs também correspondem uns aos outros de uma maneira um para um. Uma mesma faixa de endereços é usada para armazenar os mesmos dados. Portanto, os mesmos dados podem ser obtidos a partir das duas matrizes de armazenamento de acordo com um mesmo endereço. Quando qualquer uma das matrizes de armazenamento é defeituosa, o hospedeiro pode obter dados exigidos da outra matriz de armazenamento.
[0045] As matrizes de armazenamento na presente invenção podem ser matrizes de armazenamento baseadas em bloqueio (block), por exemplo, uma SAN; ou podem ser matrizes de armazenamento baseadas em objeto (object). Para facilidade de descrição, a SAN é usada como um exemplo para a descrição abaixo.
[0046] A primeira matriz de armazenamento e a segunda matriz de armazenamento podem ser matrizes de armazenamento de SAN. O controlador de armazenamento é equivalente a um computador e pode receber dados do hospedeiro e enviar os dados para o armazenamento para armazenagem. O armazenamento pode ser um meio de armazenamento não volátil, por exemplo, um disco rígido ou um disco rígido de estado sólido, que pode armazenar de modo persistente os dados.
[0047] Conforme mostrado na Figura 2, uma modalidade da presente invenção fornece um sistema de armazenamento 20 que inclui uma primeira matriz de armazenamento 2, uma segunda matriz de armazenamento 3 e um servidor de bloqueio 23. O servidor de bloqueio 23 pode ser integrado à primeira matriz de armazenamento 2. No sistema de armazenamento, a primeira matriz de armazenamento 2 e a segunda matriz de armazenamento 3 podem não se comunicar uma com a outra, mas dependem do servidor de bloqueio 23 para implantar gravação de dados. As funções dos aparelhos no sistema de armazenamento 20 são descritas a seguir.
[0048] A primeira matriz de armazenamento 2 é configurada para: receber uma solicitação de gravação de dados, em que a solicitação de gravação de dados porta dados a serem gravados e um endereço de gravação, e o endereço de gravação descreve uma localização para armazenar os dados a serem gravados e, então, envia uma solicitação de bloqueio para o servidor de bloqueio 23, em que a solicitação de bloqueio porta um comando de bloqueio, os dados a serem gravados e o endereço de gravação.
[0049] O servidor de bloqueio 23 é configurado para: receber a solicitação de bloqueio, e se for detectado que a permissão de bloqueio de gravação para o endereço de gravação já foi concedida à segunda matriz de armazenamento 3, enviar uma solicitação de revogação de bloqueio para a segunda matriz de armazenamento 3, em que a solicitação de revogação de bloqueio é usada para tirar a permissão de bloqueio de gravação concedida à segunda matriz de armazenamento 3, e a solicitação de revogação de bloqueio porta adicionalmente os dados a serem gravados e o endereço de gravação.
[0050] A segunda matriz de armazenamento 3 é configurada para: após receber a solicitação de revogação de bloqueio, armazenar os dados a serem gravados em um armazenamento local de acordo com o endereço de gravação e, então, enviar uma mensagem de sucesso de revogação de bloqueio para o servidor de bloqueio 23, em que a mensagem de sucesso de revogação de bloqueio é usada para descrever que a segunda matriz de armazenamento 3 finalizou o uso da permissão de bloqueio de gravação e, adicionalmente, a mensagem de sucesso de revogação de bloqueio porta informações que os dados a serem gravados são gravados com sucesso.
[0051] O servidor de bloqueio 23 é adicionalmente configurado para enviar uma mensagem de alocação de bloqueio para a primeira matriz de armazenamento 2 após receber a mensagem de sucesso de revogação de bloqueio, em que a mensagem de alocação de bloqueio é usada para alocar a permissão de bloqueio de gravação solicitada pela primeira matriz de armazenamento 2 para a primeira matriz de armazenamento 2, e é adicionalmente usada para descrever que a segunda matriz de armazenamento 3 completou a gravação dos dados a serem gravados. A primeira matriz de armazenamento 2 é adicionalmente configurada para armazenar os dados a serem gravados em um armazenamento local de acordo com o endereço de gravação após receber a mensagem de alocação de bloqueio.
[0052] A seguir, é descrito um método para armazenar dados usando-se a arquitetura, em referência à Figura 3.
[0053] Etapa S31: Um primeiro controlador de armazenamento recebe uma solicitação de gravação de um hospedeiro. A solicitação de gravação porta dados a serem gravados e um endereço de gravação.
[0054] A solicitação de gravação indica que os dados a serem gravados portados precisam ser armazenados. Os dados a serem gravados são dados que precisam ser armazenados em um primeiro armazenamento e em um segundo armazenamento. O endereço de gravação é um endereço usado para armazenar os dados a serem gravados nas matrizes de armazenamento. O endereço de gravação pode incluir duas partes: uma ID de LUN e uma faixa de endereços (faixa de endereços). A ID de LUN é usada para marcar uma LUN, e a faixa de endereços marca adicionalmente uma localização específica na LUN. A faixa de endereços é, por exemplo, um segmento de endereço contínuo, e a faixa de endereços pode ser descrita de duas maneiras: um endereço inicial mais um endereço final, por exemplo, (0X00001111, 0X00011111), e um endereço inicial mais um comprimento dos dados a serem gravados.
[0055] Nessa modalidade da presente invenção, o espaço de endereço de gravação é usado como uma granularidade mínima de gerenciamento de permissão realizado por um servidor de bloqueio. Em outra modalidade, outra unidade pode ser usada como uma granularidade de gerenciamento de permissão. Isso não é explicado em detalhes nessa modalidade.
[0056] Etapa S32: Após receber a solicitação de gravação, o primeiro controlador de armazenamento envia uma solicitação de bloqueio para um servidor de bloqueio, para solicitar uma obtenção de permissão de bloqueio de gravação para espaço de armazenamento descrito pelo endereço de gravação. A solicitação de bloqueio porta adicionalmente os dados a serem gravados e o endereço de gravação, e o endereço de gravação descreve uma localização para armazenar os dados a serem gravados. A solicitação de bloqueio pode portar adicionalmente informações de permissão de bloqueio para descrever a permissão desejada pelo primeiro controlador de armazenamento, e as informações de permissão de bloqueio descritas nessa modalidade são de permissão de bloqueio de gravação.
[0057] Nessa modalidade, o servidor de bloqueio é configurado para gerenciar permissão de bloqueio, por exemplo, realizar alocação de permissão de bloqueio, detecção de conflito de bloqueio e revogação de bloqueio. O servidor de bloqueio pode ser um servidor independente; ou conforme mostrado na Figura 2, pode ser hardware ou software que está situado em uma matriz de armazenamento e que se comunica com um controlador de armazenamento; ou pode ser software ou hardware integrado em um controlador de armazenamento. De modo diferente à técnica anterior, o servidor de bloqueio nessa modalidade da presente invenção é adicionalmente configurado para: receber e enviar dados a serem gravados, e receber e enviar mensagens de resposta correspondentes.
[0058] Além disso, o servidor de bloqueio pode ter uma arquitetura distribuída, ou seja, múltiplos servidores de bloqueio gerenciam de modo conjunto toda a permissão de bloqueio, e cada servidor de bloqueio gerencia uma parte da permissão de bloqueio. Por exemplo, cada matriz de armazenamento tem um servidor de bloqueio, e cada servidor de bloqueio tem permissão de gerenciamento para uma faixa de endereços parcial. Em um cenário de gerenciamento de bloqueio distribuído, o servidor de bloqueio nessa modalidade da presente invenção se refere a um servidor de bloqueio que tem permissão de gerenciamento para uma faixa de endereços que é aplicada.
[0059] Por exemplo, se a solicitação de gravação for para atualizar parcialmente dados originais nas matrizes de armazenamento, a solicitação de bloqueio de dados pode ser representada como Bloqueio (ID de LUN, faixa, certo, DeltaData). O Bloqueio indica que essa é uma solicitação de bloqueio; a ID de LUN é usada para identificar uma LUN em um endereço a ser bloqueado; a faixa é usada para identificar uma faixa de endereços para bloqueio na LUN; o certo descreve permissão desejada (na qual, por exemplo, pode ser gravada a permissão); e os dados de delta (Dados de Delta) são dados a serem gravados para os quais a permissão de bloqueio é aplicada nesse momento e, especificamente, são dados que precisam ser atualizados para as matrizes de armazenamento durante a solicitação de gravação atual. Em comparação com a solicitação de gravação, a solicitação de bloqueio tem as informações certas, ou seja, as informações de permissão de bloqueio.
[0060] O DeltaData pode portar múltiplos segmentos de dados, e o DeltaData pode ser dividido em múltiplos DeltaItems de acordo com uma quantidade dos segmentos de dados incluídos. Cada DeltaItem inclui: um desvio (offset), um comprimento (lenght) e conteúdo (content). O conteúdo é um segmento contínuo de dados a serem gravados, e todo o conteúdo junto forma os dados a serem gravados; o desvio indica uma localização de início do Conteúdo no DeltaData; e o comprimento é um comprimento no DeltaItem.
[0061] Opcionalmente, se os dados a serem gravados forem contínuos, a solicitação de bloqueio pode ser representada como Bloqueio (ID de LUN, faixa, certo, dados). Os dados são dados contínuos. Portanto, os dados não precisam ser divididos em DeltaItems. Essa solicitação de bloqueio pode ser usada em dois casos possíveis. Em um caso possível, todos os dados a serem gravados são novos e não foram armazenados em uma primeira matriz de armazenamento. Em outro caso possível, dados parciais (equivalentes a Deltadata) são novos, os dados remanescentes são lidos a partir da matriz de armazenamento para formar dados que têm um endereço contínuo, e um comprimento dos dados que têm um endereço contínuo é o mesmo que um comprimento descrito pela faixa.
[0062] Etapa S33: Após receber a solicitação de bloqueio do primeiro controlador de armazenamento, o servidor de bloqueio verifica se o endereço de gravação já foi bloqueado por outro controlador de armazenamento.
[0063] Se o endereço de gravação não for bloqueado por outro controlador de armazenamento, o primeiro controlador de armazenamento é autorizado, ou seja, permissão de gravação de dados exclusiva é alocada para o primeiro controlador de armazenamento de acordo com uma faixa de endereços solicitada pela solicitação de bloqueio. A seguir, o primeiro controlador de armazenamento grava os dados a serem gravados no primeiro armazenamento, e envia os dados a serem gravados para um segundo controlador de armazenamento, de modo que o segundo controlador de armazenamento armazene os dados a serem gravados no segundo armazenamento. Após a primeira matriz de armazenamento gravar com sucesso os dados a serem gravados de modo local, e receber, da segunda matriz de armazenamento, uma mensagem de resposta de que os dados a serem gravados são gravados com sucesso, todo o processo de gravação é completado, e o processo termina.
[0064] Se o endereço de gravação já tiver sido bloqueado por outro controlador de armazenamento, assumir que a permissão de bloqueio é concedida à segunda matriz de armazenamento, o servidor de bloqueio envia uma solicitação de revogação de bloqueio para o segundo controlador de armazenamento. A solicitação de revogação de bloqueio é usada para tirar a permissão de bloqueio de gravação. A solicitação de revogação de bloqueio porta adicionalmente os dados a serem gravados e o endereço de gravação, e é usada para instruir a segunda matriz de armazenamento a armazenar os dados a serem gravados de acordo com o endereço de gravação.
[0065] A solicitação de revogação de bloqueio nessa modalidade porta o endereço de gravação e os dados a serem gravados que estão na solicitação de bloqueio, e é uma solicitação de revogação de bloqueio aprimorada. Portanto, a solicitação de revogação porta, de fato, duas informações: informações de solicitação para tirar a permissão de bloqueio de gravação, e informações sobre o endereço de gravação e os dados a serem gravados. Uma solicitação de revogação convencional porta apenas as informações de solicitação para tirar a permissão de bloqueio de gravação.
[0066] Etapa S34: Após receber uma solicitação de revogação de bloqueio, um segundo controlador de armazenamento processa a solicitação de revogação de bloqueio.
[0067] O processamento da solicitação de revogação de bloqueio inclui duas partes: uma primeira parte de gravar os dados a serem gravados portados na solicitação de revogação de bloqueio para o local segundo controlador de armazenamento, e uma segunda parte de retornar, para o servidor de bloqueio, uma mensagem de sucesso de revogação de bloqueio e uma mensagem de que os dados a serem gravados são gravados com sucesso. A mensagem de sucesso de revogação de bloqueio é usada para descrever que a segunda matriz de armazenamento finalizou o uso da permissão de bloqueio de gravação, e notificar o servidor de bloqueio de que a segunda matriz de armazenamento não precisa mais usar a permissão de bloqueio de gravação e a permissão de bloqueio de gravação pode ser retirada pelo servidor de bloqueio.
[0068] Na primeira parte, o segundo controlador de armazenamento grava os dados a serem gravados no segundo armazenamento de acordo com o endereço de gravação.
[0069] No segundo armazenamento, se outros dados além dos dados a serem gravados precisarem ser gravados no segundo armazenamento, as duas peças de dados podem ser gravadas separadamente. Os outros dados são gravados primeiro e, então, os dados a serem gravados são descritos.
[0070] Pode ser entendido a partir da etapa S33 que, para um mesmo endereço de gravação, há um conflito de permissão de bloqueio de gravação entre a primeira matriz de armazenamento e a segunda matriz de armazenamento. Portanto, os dados a serem gravados e os outros dados estão localizados em uma mesma faixa de endereços. Portanto, os dados a serem gravados e os outros dados podem ser combinados no presente pedido, e os dados combinados são adicionalmente gravados no segundo armazenamento. Dessa maneira, a eficácia pode ser adicionalmente aprimorada. Um ponto no tempo no qual os dados a serem gravados são gravados para o sistema de armazenamento é, no mais tardar, um ponto no tempo no qual os outros dados a serem gravados são gravados para o sistema de armazenamento. Portanto, o último citado são dados mais novos. Portanto, durante a combinação, se os outros dados a serem gravados e os dados a serem gravados compartilharem uma parte de sobreposição de endereço, a parte de sobreposição de endereço é armazenada como conteúdo que pertence aos dados a serem gravados. Em outras palavras, para a parte de sobreposição de endereço, o conteúdo que pertence aos outros dados a serem gravados é abandonado.
[0071] Na segunda parte, após completar a operação de gravação, o segundo controlador de armazenamento gera a mensagem de sucesso de revogação de bloqueio e a mensagem de que os dados a serem gravados são gravados com sucesso, e envia as duas mensagens para o servidor de bloqueio. Para reduzir procedimentos, as duas mensagens podem ser combinadas e enviadas, ou seja, a mensagem de sucesso de revogação de bloqueio porta informações de que os dados a serem gravados são gravados com sucesso. Uma nova mensagem de sucesso de revogação de bloqueio é usada para descrever que a segunda matriz de armazenamento finalizou o uso da permissão de bloqueio de gravação, e é adicionalmente usada para descrever que a segunda matriz de armazenamento completou a gravação dos dados a serem gravados.
[0072] O controlador de armazenamento pode determinar sucesso de gravação de dados de duas maneiras. Em uma primeira maneira, o controlador de armazenamento enviou todos os dados que precisa ser gravados. Em uma segunda maneira, após o armazenamento ter armazenado todos os dados recebidos, o controlador de armazenamento recebe uma mensagem de resposta que indica que o armazenamento completou o armazenamento.
[0073] Etapa S35: O servidor de bloqueio encaminha uma mensagem de sucesso de revogação de bloqueio recebida para o primeiro controlador de armazenamento. De modo alternativo, o servidor de bloqueio envia uma mensagem completa de gravação da segunda matriz de armazenamento para o primeiro controlador de armazenamento, e envia uma mensagem de alocação de permissão de bloqueio de gravação para a primeira matriz de armazenamento, em que a mensagem de alocação de permissão de bloqueio de gravação é usada para alocar a permissão de bloqueio de gravação no endereço de gravação para o primeiro controlador de armazenamento. As duas mensagens podem ser combinadas em uma, ou seja, a mensagem de alocação de permissão de bloqueio de gravação porta a mensagem completa de gravação da segunda matriz de armazenamento. Uma nova mensagem de alocação de bloqueio após a combinação é usada para alocar a permissão de bloqueio de gravação solicitada pela primeira matriz de armazenamento na primeira matriz de armazenamento, e é adicionalmente usada para descrever que a segunda matriz de armazenamento completou a gravação dos dados a serem gravados. De modo alternativo, o servidor de bloqueio envia uma instrução de gravação de dados para o primeiro controlador de armazenamento.
[0074] Etapa S36: Após receber a mensagem enviada pelo servidor de bloqueio na etapa S35, o primeiro controlador de armazenamento grava os dados a serem gravados no primeiro armazenamento de acordo com o endereço de gravação determinado pela ID de LUN e pela faixa. Então, o primeiro controlador de armazenamento envia uma mensagem de resposta completa de gravação para o hospedeiro, para notificar o hospedeiro de que todo o processo de gravar os dados a serem gravados termina. Nesse momento, tanto o armazenamento da primeira matriz de armazenamento quanto o armazenamento da segunda matriz de armazenamento armazenam os dados a serem gravados na mesma localização de armazenamento.
[0075] Deve ser verificado que na Figura 2 e no processo anteriormente citado, o servidor de bloqueio está localizado na primeira matriz de armazenamento, e a solicitação de revogação porta adicionalmente o endereço de gravação e os dados a serem gravados. Isso é equivalente a enviar as duas informações ao mesmo tempo, de modo que uma quantidade de tempo de comunicação entre o servidor de bloqueio e a segunda matriz de armazenamento seja reduzida, as mensagens de resposta correspondentes também podem ser combinadas e tempo é economizado. Além disso, uma quantidade de tempo de comunicação entre os dois controladores de armazenamento e o servidor de bloqueio também é reduzida.
[0076] As mensagens e as mensagens de resposta entre a primeira matriz de armazenamento e o servidor de bloqueio também podem ser combinadas. Portanto, em outra modalidade, se o servidor de bloqueio estiver localizado entre as duas matrizes de armazenamento, ou o servidor de bloqueio estiver localizado na segunda matriz de armazenamento, tempo também pode ser economizado.
[0077] Em referência à Figura 4, uma modalidade da presente invenção fornece adicionalmente um aparelho de gerenciamento de bloqueio 4. O aparelho de gerenciamento de bloqueio 4 pode executar as etapas do servidor de bloqueio mencionado no método anteriormente citado, e pode ser um servidor de bloqueio ou software que é executado em um servidor de bloqueio. O aparelho de gerenciamento de bloqueio 4 se comunica com uma primeira matriz de armazenamento e uma segunda matriz de armazenamento. O aparelho de gerenciamento de bloqueio 4 inclui: um módulo de transceptor 41, configurado para se comunicar com a primeira matriz de armazenamento e a segunda matriz de armazenamento; e um módulo de gerenciamento de bloqueio 42, que se comunica com o módulo de transceptor 41 e especificamente configurado para: após receber uma solicitação de bloqueio da primeira matriz de armazenamento usando-se o módulo de transceptor 41, gerar uma solicitação de revogação de bloqueio e enviar a solicitação de revogação de bloqueio para a segunda matriz de armazenamento usando-se o módulo de transceptor 41, e após receber uma mensagem de sucesso de revogação de bloqueio da segunda matriz de armazenamento usando-se o módulo de transceptor 41, gerar uma mensagem de alocação de bloqueio e enviar a mensagem de alocação de bloqueio para a primeira matriz de armazenamento usando-se o módulo de transceptor 41.
[0078] A solicitação de bloqueio porta um comando de bloqueio, dados a serem gravados e um endereço de gravação. O endereço de gravação descreve uma localização para armazenar os dados a serem gravados. A solicitação de revogação de bloqueio é usada para tirar permissão de bloqueio de gravação concedida à segunda matriz de armazenamento. A solicitação de revogação de bloqueio porta adicionalmente os dados a serem gravados e o endereço de gravação, e a solicitação de revogação de bloqueio é adicionalmente usada para instruir a segunda matriz de armazenamento a armazenar os dados a serem gravados de acordo com o endereço de gravação. A mensagem de sucesso de revogação de bloqueio é usada para descrever que a segunda matriz de armazenamento finalizou o uso da permissão de bloqueio de gravação, e é adicionalmente usada para descrever que a segunda matriz de armazenamento gravou os dados a serem gravados. A mensagem de alocação de bloqueio é usada para alocar a permissão de bloqueio de gravação solicitada pela primeira matriz de armazenamento na primeira matriz de armazenamento, e é adicionalmente usada para descrever que a segunda matriz de armazenamento completou a gravação dos dados a serem gravados.
[0079] O endereço de gravação é uma ID de número de unidade lógica LUN e uma faixa de endereços em uma LUN.
[0080] O aparelho de gerenciamento de bloqueio 4 e funções dos módulos no aparelho de gerenciamento de bloqueio 4 já foram descritos em detalhes na modalidade de método e detalhes não são descritos novamente no presente documento.
[0081] Em referência à Figura 5, outra modalidade da presente invenção fornece um servidor de bloqueio. Um servidor de bloqueio 5 inclui uma interface 51 e um processador 52, e a interface 51 é conectada a uma primeira matriz de armazenamento e a uma segunda matriz de armazenamento. O servidor de bloqueio 5 pode executar funções do servidor de bloqueio mencionado no método anteriormente citado.
[0082] O processador 52 se comunica com a interface 51, e é configurado para: após receber uma solicitação de bloqueio da primeira matriz de armazenamento usando-se a interface 51, gerar uma solicitação de revogação de bloqueio e enviar a solicitação de revogação de bloqueio para a segunda matriz de armazenamento usando-se a interface 51; e após receber uma mensagem de sucesso de revogação de bloqueio da segunda matriz de armazenamento usando-se a interface 51, gerar uma mensagem de alocação de bloqueio e enviar a mensagem de alocação de bloqueio para a primeira matriz de armazenamento usando-se a interface 51.
[0083] Em referência à Figura 6, uma modalidade da presente invenção fornece um aparelho de gravação de dados. O aparelho é um controlador de armazenamento ou software que é executado em um controlador, e funciona como o controlador na primeira matriz de armazenamento na modalidade de método anteriormente citada. Um aparelho de gravação de dados 6 se comunica com um armazenamento e um servidor de bloqueio, e o aparelho de gravação de dados 6 inclui um módulo de transceptor 61 e um módulo de processamento 62.
[0084] O módulo de transceptor 61 é configurado para receber uma solicitação de gravação de dados de um hospedeiro, em que a solicitação de gravação de dados porta dados a serem gravados e um endereço de gravação, e o endereço de gravação descreve uma localização para armazenar os dados a serem gravados.
[0085] O módulo de processamento 62 se comunica com o módulo de transceptor 61, e é configurado para: após o módulo de transceptor 61 receber a solicitação de gravação de dados, gerar uma solicitação de bloqueio e enviar a solicitação de bloqueio para o servidor de bloqueio usando-se o módulo de transceptor 61, em que a solicitação de bloqueio porta um comando de bloqueio, os dados a serem gravados e o endereço de gravação.
[0086] O módulo de processamento 62 é adicionalmente configurado para: após receber, usando-se o módulo de transceptor 61, uma mensagem de alocação de bloqueio enviada pelo servidor de bloqueio, instruir o armazenamento para armazenar os dados a serem gravados de acordo com o endereço de gravação, em que a mensagem de alocação de bloqueio é usada para alocar uma permissão de bloqueio de gravação solicitada pela primeira matriz de armazenamento para a primeira matriz de armazenamento, e é adicionalmente usada para descrever que outro controlador de armazenamento gravou os dados a serem gravados de acordo com o endereço de gravação.
[0087] O módulo de processamento 62 é adicionalmente configurado para: após gravar os dados no armazenamento, enviar mensagem de gravação de dados concluída para o hospedeiro usando-se o módulo de transceptor 61.
[0088] O aparelho tem funções do controlador na primeira matriz de armazenamento na modalidade de método anteriormente citada, e pode executar as etapas correspondentes. Portanto, referência pode ser feita à modalidade de método anteriormente citada, e detalhes não são descritos novamente no presente documento.
[0089] Em referência à Figura 7, a presente invenção fornece adicionalmente uma modalidade de um controlador de armazenamento. O controlador de armazenamento é combinado com um armazenamento, tem funções do controlador na primeira matriz de armazenamento na modalidade de método anteriormente citada, e pode executar etapas correspondentes. Para funções e operações executáveis do controlador de armazenamento, referência à modalidade de método. Um controlador de armazenamento 7 pode ser conectado a um armazenamento e a um servidor de bloqueio. O controlador de armazenamento 7 inclui uma interface 71 e um processador 72.
[0090] A interface 71 é configurada para receber uma solicitação de gravação de dados de um hospedeiro, em que a solicitação de gravação de dados porta dados a serem gravados e um endereço de gravação, e o endereço de gravação descreve uma localização para armazenar os dados a serem gravados.
[0091] O processador 72 se comunica com a interface 71 e é configurado para: após receber a solicitação de gravação de dados usando-se a interface 71, gerar uma solicitação de bloqueio e enviar a solicitação de bloqueio para o servidor de bloqueio usando-se a interface 71, em que a solicitação de bloqueio porta um comando de bloqueio, os dados a serem gravados e o endereço de gravação.
[0092] O processador 72 é adicionalmente configurado para: após receber uma mensagem de alocação de bloqueio enviada pelo servidor de bloqueio usando-se a interface 71, instruir o armazenamento para armazenar os dados a serem gravados de acordo com o endereço de gravação, em que a mensagem de alocação de bloqueio é usada para alocar uma permissão de bloqueio de gravação solicitada pelo primeiro controlador de armazenamento para o primeiro controlador de armazenamento, e é adicionalmente usada para descrever que outro controlador de armazenamento gravou os dados a serem gravados de acordo com o endereço de gravação.
[0093] O processador 72 é adicionalmente configurado para: após gravar os dados para o armazenamento, enviar mensagem de gravação de dados concluída para o hospedeiro usando-se a interface 71.
[0094] Uma modalidade da presente invenção fornece outro aparelho de gravação de dados e uma estrutura do aparelho é a mesma que a estrutura do aparelho de gravação de dados anteriormente citado. Portanto, pode ser feita referência à Figura 6. Um aparelho de gravação 6 é um controlador de armazenamento ou software que é executado em um controlador, e funciona como o controlador na segunda matriz de armazenamento na modalidade de método anteriormente citada. De fato, para serviços diferentes, um aparelho de gravação de dados pode implantar, não apenas funções do primeiro controlador de armazenamento, mas também funções do segundo controlador de armazenamento. Portanto, o aparelho de gravação de dados nessa modalidade e o aparelho de gravação de dados mencionado na modalidade anteriormente citada podem ser combinados em um aparelho de gravação de dados.
[0095] Nessa modalidade, ao aparelho de gravação de dados 6 é concedida permissão de bloqueio de gravação. O aparelho de gravação de dados se comunica com um armazenamento e um servidor de bloqueio, e o aparelho de gravação de dados 6 inclui: um módulo de transceptor 61, configurado para receber uma solicitação de revogação de bloqueio enviada pelo servidor de bloqueio, em que a solicitação de revogação de bloqueio é usada para tirar a permissão de bloqueio de gravação, e a solicitação de revogação de bloqueio porta adicionalmente dados a serem gravados e o endereço de gravação; e um módulo de processamento 62, configurado para: instruir o armazenamento para armazenar os dados a serem gravados de acordo com o endereço de gravação, e gerar uma mensagem de sucesso de revogação de bloqueio, em que a mensagem de sucesso de revogação de bloqueio é usada para descrever que o aparelho de gravação de dados finalizou o uso da permissão de bloqueio de gravação e, adicionalmente, a mensagem de sucesso de revogação de bloqueio porta informações de que os dados a serem gravados são gravados com sucesso. O módulo de transceptor 61 é adicionalmente configurado para enviar a mensagem de sucesso de revogação de bloqueio para o servidor de bloqueio.
[0096] A presente invenção fornece adicionalmente uma modalidade de um controlador de armazenamento, e uma estrutura do controlador de armazenamento é a mesma que a estrutura do controlador de armazenamento na modalidade anteriormente citada. Portanto, também pode feita referência à Figura 7.
[0097] Um controlador de armazenamento 7 nessa modalidade é combinado com um armazenamento, e é equivalente ao controlador de armazenamento na segunda matriz de armazenamento na modalidade de método anteriormente citada. Para funções e operações executáveis do controlador de armazenamento 7, referência à modalidade de método.
[0098] Ao controlador de armazenamento 7 é concedida permissão de bloqueio de gravação, e o controlador de armazenamento é conectado a um armazenamento e a um servidor de bloqueio.
[0099] Uma interface 71 é configurada para receber uma solicitação de revogação de bloqueio enviada pelo servidor de bloqueio, em que a solicitação de revogação de bloqueio é usada para tirar a permissão de bloqueio de gravação, e a solicitação de revogação de bloqueio porta adicionalmente dados a serem gravados e o endereço de gravação. Um processador 72 é conectado à interface 71 e é configurado para: instruir o armazenamento para armazenar os dados a serem gravados de acordo com o endereço de gravação, e gerar uma mensagem de sucesso de revogação de bloqueio, em que a mensagem de sucesso de revogação de bloqueio é usada para descrever que o controlador de armazenamento finalizou o uso da permissão de bloqueio de gravação e, adicionalmente, a mensagem de sucesso de revogação de bloqueio porta informações de que os dados a serem gravados são gravados com sucesso. A interface 71 é adicionalmente configurada para enviar a mensagem de sucesso de revogação de bloqueio para o servidor de bloqueio.
[0100] Um servidor de bloqueio inclui um processador e uma interface, e a interface é conectada a um primeiro controlador de armazenamento e um segundo controlador de armazenamento. As operações executadas pelo servidor de bloqueio são especificamente executadas pelo processador. O servidor de bloqueio pode incluir adicionalmente uma memória, e o processador executa um programa na memória de modo que o servidor de bloqueio execute as operações do servidor de bloqueio.
[0101] Há duas interpretações para a “matriz de armazenamento” nas modalidades anteriormente citadas da presente invenção. Em uma interpretação, a matriz de armazenamento é uma combinação de um controlador de armazenamento e um armazenamento, e o “armazenamento local” é um armazenamento gerenciado pelo controlador de armazenamento. Em outra interpretação, a matriz de armazenamento é um controlador de armazenamento e não inclui um armazenamento, e o “armazenamento local” é um armazenamento gerenciado pelo controlador de armazenamento.
[0102] As modalidades da presente invenção podem ser adicionalmente usadas para deletar dados, e uma diferença se encontra no fato de que os dados a serem gravados não precisam ser enviados, e apenas um endereço de exclusão precisa ser fornecido.
[0103] Cada aspecto da presente invenção ou uma maneira de implantação possível de cada aspecto podem ser especificamente implantados como um sistema, um método ou um produto de programa de computador. Portanto, cada aspecto da presente invenção ou uma maneira de implantação possível de cada aspecto pode usar formas de modalidades de apenas hardware, modalidades de apenas software (incluindo firmware, software residente e similares), ou modalidades com uma combinação de software e hardware, que são referenciados de modo uniforme como “circuito”, “módulo” ou “sistema” no presente documento. Além disso, cada aspecto da presente invenção ou a maneira de implantação possível de cada aspecto pode assumir a forma de um produto de programa de computador, em que o produto de programa de computador se refere a código de programa legível por computador armazenado em um meio legível por computador.
[0104] O meio legível por computador pode ser um meio de sinal legível por computador ou um meio de armazenamento legível por computador. O meio de armazenamento legível por computador inclui, porém, sem limitação, um sistema, dispositivo ou aparelho eletrônico, magnético, óptico, eletromagnético, infravermelho ou semicondutor, ou qualquer combinação apropriada dos mesmos, como um armazenamento de acesso aleatório (RAM), um armazenamento de apenas leitura (ROM), um armazenamento de apenas leitura programável apagável (EPROM ou armazenamento flash), uma fibra óptica e um armazenamento de apenas leitura de disco compacto (CD-ROM).
[0105] Um processador em um computador lê código de programa legível por computador armazenado em um meio legível por computador, de modo que o processador possa realizar uma função e uma ação especificada em cada etapa ou uma combinação de etapas em um fluxograma; um aparelho é gerado para implantar uma função e uma ação especificada em cada bloco ou uma combinação de blocos em um diagrama de blocos.

Claims (19)

1. Método de gravação de dados, aplicado a um servidor de bloqueio, CARACTERIZADO pelo fato de que o método compreende: receber uma solicitação de bloqueio de uma primeira matriz de armazenamento, em que a solicitação de bloqueio porta um comando de bloqueio, dados a serem gravados e um endereço de gravação, e o endereço de gravação descreve uma localização para armazenar os dados a serem gravados (S32); enviar, pelo servidor de bloqueio, uma solicitação de revogação de bloqueio para uma segunda matriz de armazenamento quando é detectado que a permissão de bloqueio de gravação para o endereço de gravação já foi concedida à segunda matriz de armazenamento, em que a solicitação de revogação de bloqueio é usada para tirar a permissão de bloqueio de gravação, e a solicitação de revogação de bloqueio porta adicionalmente os dados a serem gravados e o endereço de gravação, e é usada para instruir a segunda matriz de armazenamento a armazenar os dados a serem gravados de acordo com o endereço de gravação (S33); e enviar uma mensagem de alocação de bloqueio para a primeira matriz de armazenamento após receber uma mensagem de sucesso de revogação de bloqueio enviada pela segunda matriz de armazenamento, em que a mensagem de sucesso de revogação de bloqueio é usada para descrever que a segunda matriz de armazenamento finalizou o uso da permissão de bloqueio de gravação, e é adicionalmente usada para descrever que a segunda matriz de armazenamento terminou a gravação dos dados a serem gravados, em que a mensagem de alocação de bloqueio é usada para alocar a permissão de bloqueio de gravação solicitada pela primeira matriz de armazenamento na primeira matriz de armazenamento, e é adicionalmente usada para descrever que a segunda matriz de armazenamento terminou a gravação dos dados a serem gravados (S35).
2. Método de gravação de dados, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o método compreende adicionalmente: após receber a solicitação de revogação de bloqueio, armazenar, pela segunda matriz de armazenamento, os dados a serem gravados em um armazenamento local de acordo com o endereço de gravação, e enviar a mensagem de sucesso de revogação de bloqueio; e armazenar, pela primeira matriz de armazenamento, os dados a serem gravados em um armazenamento local de acordo com o endereço de gravação após receber a mensagem de alocação de bloqueio.
3. Método de gravação de dados, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que o armazenamento, pela segunda matriz de armazenamento, dos dados a serem gravados em um armazenamento local de acordo com o endereço de gravação compreende especificamente: combinar, pela segunda matriz de armazenamento, outros dados a serem gravados e os dados a serem gravados, e armazenar dados combinados no armazenamento local de acordo com o endereço de gravação.
4. Método de gravação de dados, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que combinar compreende especificamente: se os outros dados a serem gravados e os dados a serem gravados compartilham uma parte de sobreposição de endereço, armazenar a parte de sobreposição de endereço como os dados a serem gravados.
5. Método de gravação de dados, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a primeira matriz de armazenamento e a segunda matriz de armazenamento, cada uma, compreende uma rede de área de armazenamento, controlador de armazenamento de SAN e um armazenamento conectado ao controlador de armazenamento de SAN.
6. Método de gravação de dados, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o endereço de gravação é uma ID de número de unidade lógica LUN e uma faixa de endereços em uma LUN.
7. Aparelho de gerenciamento de bloqueio, CARACTERIZADO pelo fato de que o aparelho de gerenciamento de bloqueio (4) se comunica com uma primeira matriz de armazenamento e uma segunda matriz de armazenamento, e o aparelho compreende: um módulo de transceptor (41), configurado para se comunicar com a primeira matriz de armazenamento e a segunda matriz de armazenamento; e um módulo de gerenciamento de bloqueio (42), que se comunica com o módulo de transceptor (41), e é especificamente configurado para: após receber uma solicitação de bloqueio da primeira matriz de armazenamento usando-se o módulo de transceptor (41), gerar uma solicitação de revogação de bloqueio e enviar a solicitação de revogação de bloqueio para a segunda matriz de armazenamento usando-se o módulo de transceptor (41), e após receber uma mensagem de sucesso de revogação de bloqueio da segunda matriz de armazenamento usando-se o módulo de transceptor (41), gerar uma mensagem de alocação de bloqueio e enviar a mensagem de alocação de bloqueio para a primeira matriz de armazenamento usando-se o módulo de transceptor (41), em que a solicitação de bloqueio porta um comando de bloqueio, dados a serem gravados e um endereço de gravação, e o endereço de gravação descreve uma localização para armazenar os dados a serem gravados; a solicitação de revogação de bloqueio é usada para tirar a permissão de bloqueio de gravação concedida à segunda matriz de armazenamento, em que a solicitação de revogação de bloqueio porta adicionalmente os dados a serem gravados e o endereço de gravação, e a solicitação de revogação de bloqueio é adicionalmente usada para instruir a segunda matriz de armazenamento a armazenar os dados a serem gravados de acordo com o endereço de gravação; a mensagem de sucesso de revogação de bloqueio é usada para descrever que a segunda matriz de armazenamento terminou o uso da permissão de bloqueio de gravação, e é adicionalmente usada para descrever que a segunda matriz de armazenamento completou a gravação dos dados a serem gravados; e a mensagem de alocação de bloqueio é usada para alocar a permissão de bloqueio de gravação solicitada pela primeira matriz de armazenamento na primeira matriz de armazenamento, e é adicionalmente usada para descrever que a segunda matriz de armazenamento completou a gravação dos dados a serem gravados.
8. Aparelho de gerenciamento de bloqueio, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que o endereço de gravação é uma ID de número de unidade lógica LUN e uma faixa de endereços em uma LUN.
9. Aparelho de gerenciamento de bloqueio, de acordo com a reivindicação 7 ou 8, CARACTERIZADO pelo fato de que o aparelho de gerenciamento de bloqueio e a primeira matriz de armazenamento são integrados.
10. Sistema de armazenamento CARACTERIZADO pelo fato de que o sistema de armazenamento (20) compreende: uma primeira matriz de armazenamento (21) é configurada para receber uma solicitação de gravação de dados, em que a solicitação de gravação de dados porta dados a serem gravados e um endereço de gravação, e o endereço de gravação descreve uma localização para armazenar os dados a serem gravados; e, então, envia uma solicitação de bloqueio para um servidor de bloqueio, em que a solicitação de bloqueio porta um comando de bloqueio, os dados a serem gravados e o endereço de gravação; o servidor de bloqueio (23), configurado para: receber a solicitação de bloqueio, e quando for detectado que a permissão de bloqueio de gravação para o endereço de gravação já foi concedida a uma segunda matriz de armazenamento (31), enviar uma solicitação de revogação de bloqueio para a segunda matriz de armazenamento (31), em que a solicitação de revogação de bloqueio é usada para tirar a permissão de bloqueio de gravação concedida à segunda matriz de armazenamento, e a solicitação de revogação de bloqueio porta adicionalmente os dados a serem gravados e o endereço de gravação; e a segunda matriz de armazenamento (31) é configurada para, após receber a solicitação de revogação de bloqueio, armazenar os dados a serem gravados em um armazenamento local (32) de acordo com o endereço de gravação e, então, enviar uma mensagem de sucesso de revogação de bloqueio para o servidor de bloqueio (23), em que a mensagem de sucesso de revogação de bloqueio é usada para descrever que a segunda matriz de armazenamento (31) finalizou o uso da permissão de bloqueio de gravação e, adicionalmente, as informações de sucesso de revogação de bloqueio portam informações de que os dados a serem gravados são gravados com sucesso, em que o servidor de bloqueio (23) é adicionalmente configurado para enviar uma mensagem de alocação de bloqueio para a primeira matriz de armazenamento (21) após receber a mensagem de sucesso de revogação de bloqueio, em que a mensagem de alocação de bloqueio é usada para alocar a permissão de bloqueio de gravação solicitada pela primeira matriz de armazenamento na primeira matriz de armazenamento (21), e é adicionalmente usada para descrever que a segunda matriz de armazenamento (31) completou a gravação dos dados a serem gravados, e a primeira matriz de armazenamento (21) é adicionalmente configurada para armazenar os dados a serem gravados em um armazenamento local (22) de acordo com o endereço de gravação após receber a mensagem de alocação de bloqueio.
11. Servidor de bloqueio, CARACTERIZADO pelo fato de que o servidor de bloqueio compreende um processador (52) e uma interface (51), e a interface (51) é conectada a uma primeira matriz de armazenamento e uma segunda matriz de armazenamento, em que o processador (52) se comunica com a interface (51), e é configurado para: após receber uma solicitação de bloqueio da primeira matriz de armazenamento usando-se a interface (51), gerar uma solicitação de revogação de bloqueio e enviar a solicitação de revogação de bloqueio para a segunda matriz de armazenamento usando-se a interface (51); e após receber uma mensagem de sucesso de revogação de bloqueio da segunda matriz de armazenamento usando-se a interface (51), gerar uma mensagem de alocação de bloqueio e enviar a mensagem de alocação de bloqueio para a primeira matriz de armazenamento usando-se a interface (51), em que a solicitação de bloqueio porta um comando de bloqueio, dados a serem gravados e um endereço de gravação, e o endereço de gravação descreve uma localização para armazenar os dados a serem gravados; a solicitação de revogação de bloqueio é usada para tirar a permissão de bloqueio de gravação concedida à segunda matriz de armazenamento, em que a solicitação de revogação de bloqueio porta adicionalmente os dados a serem gravados e o endereço de gravação, e a solicitação de revogação de bloqueio é adicionalmente usada para instruir a segunda matriz de armazenamento a armazenar os dados a serem gravados de acordo com o endereço de gravação; a mensagem de sucesso de revogação de bloqueio é usada para descrever que a segunda matriz de armazenamento terminou o uso da permissão de bloqueio de gravação, e é adicionalmente usada para descrever que a segunda matriz de armazenamento completou a gravação dos dados a serem gravados; e a mensagem de alocação de bloqueio é usada para alocar a permissão de bloqueio de gravação solicitada pela primeira matriz de armazenamento na primeira matriz de armazenamento, e é adicionalmente usada para descrever que a segunda matriz de armazenamento completou a gravação dos dados a serem gravados.
12. Método de gravação de dados, aplicado a um controlador de armazenamento, CARACTERIZADO pelo fato de que o controlador de armazenamento é conectado a um armazenamento e um servidor de bloqueio, em que o método compreende: receber uma solicitação de gravação de dados de um hospedeiro, em que a solicitação de gravação de dados porta dados a serem gravados e um endereço de gravação, e o endereço de gravação descreve uma localização para armazenar os dados a serem gravados; e, então, enviar uma solicitação de bloqueio para o servidor de bloqueio, em que a solicitação de bloqueio porta um comando de bloqueio, os dados a serem gravados e o endereço de gravação; após receber uma mensagem de alocação de bloqueio enviada pelo servidor de bloqueio, instruir o armazenamento a armazenar os dados a serem gravados de acordo com o endereço de gravação, em que a mensagem de alocação de bloqueio é usada para alocar a permissão de bloqueio de gravação solicitada pela primeira matriz de armazenamento em uma primeira matriz de armazenamento, e é adicionalmente usada para descrever que outro controlador de armazenamento gravou os dados a serem gravados de acordo com o endereço de gravação; e após gravar os dados no armazenamento, enviar uma mensagem de gravação de dados concluída para o hospedeiro.
13. Aparelho de gravação de dados, CARACTERIZADO pelo fato de que o aparelho de gravação de dados se comunica com um armazenamento e um servidor de bloqueio, em que o aparelho de gravação de dados compreende: um módulo de transceptor (61), configurado para receber uma solicitação de gravação de dados de um hospedeiro, em que a solicitação de gravação de dados porta dados a serem gravados e um endereço de gravação, e o endereço de gravação descreve uma localização para armazenar os dados a serem gravados; e um módulo de processamento (62), que se comunica com o módulo de transceptor (61), e configurado para: após o módulo de transceptor (61) receber a solicitação de gravação de dados, gerar uma solicitação de bloqueio e enviar a solicitação de bloqueio para o servidor de bloqueio usando-se o módulo de transceptor (61), em que a solicitação de bloqueio porta um comando de bloqueio, os dados a serem gravados e o endereço de gravação, em que o módulo de processamento (62) é adicionalmente configurado para: após receber, usando-se o módulo de transceptor (61), uma mensagem de alocação de bloqueio enviada pelo servidor de bloqueio, instruir o armazenamento a armazenar os dados a serem gravados de acordo com o endereço de gravação, em que a mensagem de alocação de bloqueio é usada para alocar a permissão de bloqueio de gravação solicitada pelo aparelho de gravação de dados para o aparelho de gravação de dados, e é adicionalmente usada para descrever que outro aparelho de gravação de dados gravou os dados a serem gravados de acordo com o endereço de gravação; e o módulo de processamento (62) é adicionalmente configurado para: após gravar os dados para o armazenamento, enviar uma mensagem de gravação de dados concluída para o hospedeiro usando-se o módulo de transceptor.
14. Controlador de armazenamento, CARACTERIZADO pelo fato de que o controlador de armazenamento (7) é conectado a um armazenamento e um servidor de bloqueio, e o controlador de armazenamento compreende: uma interface (71), configurada para receber uma solicitação de gravação de dados de um hospedeiro, em que a solicitação de gravação de dados porta dados a serem gravados e um endereço de gravação, e o endereço de gravação descreve uma localização para armazenar os dados a serem gravados; e um processador (72), que se comunica com a interface (71), configurado para: após receber a solicitação de gravação de dados usando-se a interface (71), gerar uma solicitação de bloqueio e enviar a solicitação de bloqueio para o servidor de bloqueio usando-se a interface (71), em que a solicitação de bloqueio porta um comando de bloqueio, os dados a serem gravados e o endereço de gravação; adicionalmente configurado para: após receber uma mensagem de alocação de bloqueio enviada pelo servidor de bloqueio usando-se a interface (71), instruir o armazenamento a armazenar os dados a serem gravados de acordo com os endereços de gravação, em que a mensagem de alocação de bloqueio é usada para alocar a permissão de bloqueio de gravação solicitada pelo controlador de armazenamento para o controlador de armazenamento, e é adicionalmente usado para descrever que outro controlador de armazenamento gravou os dados a serem gravados de acordo com o endereço de gravação; e adicionalmente configurado para: após gravar os dados para o armazenamento, enviar uma mensagem de gravação de dados concluída para o hospedeiro usando-se a interface (71).
15. Método de gravação de dados, aplicado a um controlador de armazenamento, CARACTERIZADO pelo fato de que o controlador de armazenamento é concedido com permissão de bloqueio de gravação, e o controlador de armazenamento é conectado a um armazenamento e um servidor de bloqueio, em que o método compreende: receber uma solicitação de revogação de bloqueio enviada pelo servidor de bloqueio, em que a solicitação de revogação de bloqueio é usada para tirar a permissão de bloqueio de gravação, e a solicitação de revogação de bloqueio porta adicionalmente dados a serem gravados e um endereço de gravação; instruir o armazenamento a armazenar os dados a serem gravados de acordo com o endereço de gravação; e enviar uma mensagem de sucesso de revogação de bloqueio para o servidor de bloqueio, em que a mensagem de sucesso de revogação de bloqueio é usada para descrever que o controlador de armazenamento finalizou o uso da permissão de bloqueio de gravação e, adicionalmente, as informações de sucesso de revogação de bloqueio portam informações de que os dados a serem gravados são gravados com sucesso.
16. Método de gravação de dados, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que instruir, pelo controlador de armazenamento, o armazenamento para armazenar os dados a serem gravados de acordo com o endereço de gravação compreende especificamente: combinar outros dados a serem gravados no controlador de armazenamento e os dados a serem gravados, e instruir o armazenamento a armazenar dados combinados de acordo com o endereço de gravação.
17. Aparelho de gravação de dados, CARACTERIZADO pelo fato de que o aparelho de gravação de dados é concedido com permissão de bloqueio de gravação, e o aparelho de gravação de dados se comunica com um armazenamento e um servidor de bloqueio, em que o aparelho de gravação de dados compreende: um módulo de transceptor (61), configurado para receber uma solicitação de revogação de bloqueio enviada pelo servidor de bloqueio, em que a solicitação de revogação de bloqueio é usada para tirar a permissão de bloqueio de gravação, e a solicitação de revogação de bloqueio porta adicionalmente dados a serem gravados e o endereço de gravação; e um módulo de processamento (61), configurado para: instruir o armazenamento a armazenar os dados a serem gravados de acordo com o endereço de gravação, e gerar uma mensagem de sucesso de revogação de bloqueio, em que a mensagem de sucesso de revogação de bloqueio é usada para descrever que o aparelho de gravação de dados finalizou o uso da permissão de bloqueio de gravação e, adicionalmente, as informações de sucesso de revogação de bloqueio portam informações de que os dados a serem gravados são gravados com sucesso, em que o módulo de transceptor (62) é adicionalmente configurado para enviar a mensagem de sucesso de revogação de bloqueio para o servidor de bloqueio.
18. Controlador de armazenamento, CARACTERIZADO pelo fato de que o controlador de armazenamento (6) é concedido com permissão de bloqueio de gravação, e o controlador de armazenamento (6) é conectado a um armazenamento e um servidor de bloqueio, em que o controlador de armazenamento compreende: uma interface (61), configurada para receber uma solicitação de revogação de bloqueio enviada pelo servidor de bloqueio, em que a solicitação de revogação de bloqueio é usada para tirar a permissão de bloqueio de gravação, e a solicitação de revogação de bloqueio porta adicionalmente dados a serem gravados e o endereço de gravação; e um processador (62), conectado à interface (61) e configurado para: instruir o armazenamento a armazenar os dados a serem gravados de acordo com o endereço de gravação, e gerar uma mensagem de sucesso de revogação de bloqueio, em que a mensagem de sucesso de revogação de bloqueio é usada para descrever que uma segunda matriz de armazenamento finalizou o uso da permissão de bloqueio de gravação e, adicionalmente, as informações de sucesso de revogação de bloqueio portam informações de que os dados a serem gravados são gravados com sucesso, em que a interface (61) é adicionalmente configurada para enviar a mensagem de sucesso de revogação de bloqueio para o servidor de bloqueio.
19. Controlador de armazenamento, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de que o controlador de armazenamento (6) é configurado para instruir o armazenamento a armazenar os dados a serem gravados de acordo com o endereço de gravação compreende especificamente: o controlador de armazenamento (6) ser configurado para combinar outros dados a serem gravados no controlador de armazenamento (6) e os dados a serem gravados, e instruir o armazenamento a armazenar dados combinados de acordo com o endereço de gravação.
BR112017006639-4A 2015-12-31 2015-12-31 Método, aparelho e sistema de gravação de dados BR112017006639B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/100249 WO2017113351A1 (zh) 2015-12-31 2015-12-31 写数据方法和装置以及***

Publications (2)

Publication Number Publication Date
BR112017006639A2 BR112017006639A2 (pt) 2017-12-19
BR112017006639B1 true BR112017006639B1 (pt) 2022-12-13

Family

ID=59219092

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112017006639-4A BR112017006639B1 (pt) 2015-12-31 2015-12-31 Método, aparelho e sistema de gravação de dados

Country Status (8)

Country Link
US (3) US10776285B2 (pt)
EP (2) EP3553647B1 (pt)
KR (1) KR101903536B1 (pt)
CN (2) CN107209733B (pt)
AU (1) AU2015410318C1 (pt)
BR (1) BR112017006639B1 (pt)
CA (1) CA2963365C (pt)
WO (1) WO2017113351A1 (pt)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102529710B1 (ko) * 2018-02-19 2023-05-09 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN108958984B (zh) * 2018-08-13 2022-02-11 深圳市证通电子股份有限公司 基于ceph的双活同步在线热备方法
CN110968563B (zh) * 2018-09-29 2023-11-17 华为技术有限公司 一种数据存储方法、元数据服务器及客户端
KR102188052B1 (ko) * 2018-11-15 2020-12-07 오스템임플란트 주식회사 정보 잠금 방법 및 이를 수행하는 치과용 업무 통합관리 장치
CN109815227B (zh) * 2018-12-13 2024-04-16 平安科技(深圳)有限公司 数据锁管理方法、装置、计算机设备及存储介质
CN109739443B (zh) * 2019-01-08 2022-02-18 郑州云海信息技术有限公司 一种ssd混合读写的方法、装置、设备及存储介质
CN110321357B (zh) * 2019-06-14 2021-06-29 北京奇艺世纪科技有限公司 一种读写控制方法、装置及服务器
US20210073050A1 (en) * 2019-09-11 2021-03-11 International Business Machines Corporation Re-dispatching tasks on associated processors to reduce lock contention
CN110888603B (zh) * 2019-11-27 2024-01-16 深圳前海环融联易信息科技服务有限公司 高并发数据写入方法、装置、计算机设备及存储介质
CN111405015B (zh) * 2020-03-09 2022-09-30 中国建设银行股份有限公司 一种数据处理方法、装置、设备及存储介质
US11334293B1 (en) * 2021-01-28 2022-05-17 EMC IP Holding Company LLC Facilitating the implementation of cluster counters on lock value blocks in distributed file systems
CN113703674B (zh) * 2021-07-30 2023-08-11 苏州浪潮智能科技有限公司 一种存储***的写数据方法及相关装置
CN113885806A (zh) * 2021-10-21 2022-01-04 郑州云海信息技术有限公司 一种盘阵的写入控制方法、装置以及存储介质
CN115951844B (zh) * 2023-03-13 2023-06-06 浪潮电子信息产业股份有限公司 分布式文件***的文件锁管理方法、设备及介质
CN118093730B (zh) * 2024-04-29 2024-07-23 济南浪潮数据技术有限公司 数据双写方法、装置、计算机设备及程序产品

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6457098B1 (en) * 1998-12-23 2002-09-24 Lsi Logic Corporation Methods and apparatus for coordinating shared multiple raid controller access to common storage devices
US6499058B1 (en) * 1999-09-09 2002-12-24 Motokazu Hozumi File shared apparatus and its method file processing apparatus and its method recording medium in which file shared program is recorded and recording medium in which file processing program is recorded
JP3944449B2 (ja) * 2002-12-19 2007-07-11 株式会社日立製作所 計算機システム、磁気ディスク装置、および、ディスクキャッシュ制御方法
US20050155011A1 (en) * 2004-01-12 2005-07-14 Stephan Heik Method and system for restricting access in a distributed job environment
US8543781B2 (en) * 2004-02-06 2013-09-24 Vmware, Inc. Hybrid locking using network and on-disk based schemes
US7096325B2 (en) * 2004-03-29 2006-08-22 Hitachi, Ltd. Method and apparatus for multistage volume locking
US7751341B2 (en) * 2004-10-05 2010-07-06 Cisco Technology, Inc. Message distribution across fibre channel fabrics
GB0428108D0 (en) * 2004-12-23 2005-01-26 Ibm Storage system with multiple copy targeting
KR100825721B1 (ko) * 2005-12-08 2008-04-29 한국전자통신연구원 객체 기반 스토리지 시스템에서 사용자 파일 관리자 내의시간 기반 캐쉬 일관성 유지 시스템 및 방법
CN101252603B (zh) * 2008-04-11 2011-03-30 清华大学 基于存储区域网络san的集群分布式锁管理方法
US9626859B2 (en) * 2012-04-11 2017-04-18 Digilock Asia Limited Electronic locking systems, methods, and apparatus
US9176902B1 (en) * 2012-06-27 2015-11-03 Emc Corporation Data migration techniques
US10318171B1 (en) * 2012-06-29 2019-06-11 EMC IP Holding Company LLC Accessing fast memory in a data storage array
WO2014101108A1 (zh) 2012-12-28 2014-07-03 华为技术有限公司 分布式存储***的缓存方法、节点和计算机可读介质
WO2015077955A1 (zh) * 2013-11-28 2015-06-04 华为技术有限公司 一种写数据方法、装置和***
CN104954392A (zh) * 2014-03-24 2015-09-30 ***通信集团河北有限公司 一种云盘及其实现方法、装置
CN106133676B (zh) * 2014-04-21 2019-05-17 株式会社日立制作所 存储***
US9805056B2 (en) * 2014-06-24 2017-10-31 Panzura, Inc. Synchronizing file updates between two cloud controllers of a distributed filesystem
US9600949B2 (en) * 2014-07-30 2017-03-21 Master Lock Company Llc Wireless key management for authentication
CN104536834A (zh) * 2014-11-26 2015-04-22 华为技术有限公司 一种授权锁权限的方法和分布式锁管理器
CN104636088B (zh) * 2015-02-17 2018-04-10 华为技术有限公司 一种将数据写入数据服务器的方法及存储***
US9959062B1 (en) * 2016-02-05 2018-05-01 Datadirect Networks, Inc. Low latency and reduced overhead data storage system and method for sharing multiple storage devices by high performance computing architectures

Also Published As

Publication number Publication date
EP3217248A1 (en) 2017-09-13
CN107209733B (zh) 2019-01-18
CA2963365C (en) 2019-02-05
WO2017113351A1 (zh) 2017-07-06
AU2015410318B2 (en) 2018-11-08
CN110134327B (zh) 2022-03-29
BR112017006639A2 (pt) 2017-12-19
AU2015410318A1 (en) 2017-07-20
CN110134327A (zh) 2019-08-16
EP3553647A1 (en) 2019-10-16
CN107209733A (zh) 2017-09-26
EP3217248B1 (en) 2019-04-03
US20180260340A1 (en) 2018-09-13
US20220309007A1 (en) 2022-09-29
EP3553647B1 (en) 2023-10-25
US11366768B2 (en) 2022-06-21
CA2963365A1 (en) 2017-06-30
US10776285B2 (en) 2020-09-15
AU2015410318C1 (en) 2019-01-31
EP3217248A4 (en) 2017-12-27
KR20170095184A (ko) 2017-08-22
US20200394142A1 (en) 2020-12-17
KR101903536B1 (ko) 2018-10-02

Similar Documents

Publication Publication Date Title
BR112017006639B1 (pt) Método, aparelho e sistema de gravação de dados
US9619389B1 (en) System for a backward and forward application environment compatible distributed shared coherent storage
EP3035197B1 (en) File migration method and apparatus and storage device
WO2018068626A1 (zh) 一种磁盘锁的管理方法、装置和***
CN106201659B (zh) 一种虚拟机热迁移的方法及宿主机
US8819056B2 (en) Facilitation of search, list, and retrieval operations on persistent data set using distributed shared memory
CN107526537B (zh) 用于锁定存储***中的存储区域的方法和***
WO2015054897A1 (zh) 数据存储方法、数据存储装置和存储设备
CN109144406B (zh) 分布式存储***中元数据存储方法、***及存储介质
BR112017001850B1 (pt) Sistema e método implementado por computador de redesignação de carga de trabalho distribuída após falha de comunicação
WO2019062856A1 (zh) 数据重构方法及装置、数据存储***
CN106357703B (zh) 集群切换方法与设备
US20140059314A1 (en) Preventing data loss during reboot and logical storage resource management device
US20200104054A1 (en) Methods, apparatuses, system and computer program products for managing storage units
US20160283162A1 (en) Storage system, storage management method, and storage medium
WO2017096942A1 (zh) 一种文件存储***、数据调度方法及数据节点
US20150074368A1 (en) Thin provisioning storage devices in connection with secure delete operations
US10095706B2 (en) Data access system and data access method
CN102147751A (zh) 一种多进程间的通信方法
US9645946B2 (en) Encryption for solid state drives (SSDs)
US9864643B1 (en) Using locks of different scopes in a data storage system to optimize performance and complexity
JP2018504689A5 (pt)
US20180088846A1 (en) Multi-user dynamic storage allocation and encryption
US11513951B2 (en) System and method for improving write performance for log structured storage systems
CN116360696B (zh) 分布式块存储***、介质及其电子设备

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 31/12/2015, OBSERVADAS AS CONDICOES LEGAIS