ES2624412T3 - Procedimiento y sistema para compartir recursos de almacenamiento - Google Patents

Procedimiento y sistema para compartir recursos de almacenamiento Download PDF

Info

Publication number
ES2624412T3
ES2624412T3 ES13869766.9T ES13869766T ES2624412T3 ES 2624412 T3 ES2624412 T3 ES 2624412T3 ES 13869766 T ES13869766 T ES 13869766T ES 2624412 T3 ES2624412 T3 ES 2624412T3
Authority
ES
Spain
Prior art keywords
storage
read
data
write control
control module
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
ES13869766.9T
Other languages
English (en)
Inventor
Jiongjiong Gu
Xiaoyong MIN
Daohui Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
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
Application granted granted Critical
Publication of ES2624412T3 publication Critical patent/ES2624412T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Un procedimiento para compartir un recurso de almacenamiento, aplicado a un sistema de grupo de servidores, en el que el sistema de grupo de servidores comprende uno o varios nodos servidores y uno o varios nodos de almacenamiento en red, cada nodo servidor comprende un disco duro, cada nodo de almacenamiento en red comprende una matriz de almacenamiento, un controlador de almacenamiento distribuido se ejecuta en cada nodo servidor, y el controlador de almacenamiento distribuido comprende un controlador de metadatos, un módulo de servicio de bloque virtual y un módulo de control de lectura-escritura, el módulo de control de lectura-escritura comprende un delegado de almacenamiento de objetos configurado para realizar control de lectura-escritura sobre el recurso de almacenamiento del disco duro y un agente de almacenamiento SAN configurado para realizar control de lectura-escritura sobre el recurso de almacenamiento de la matriz de almacenamiento, y el procedimiento comprende: determinar, mediante el controlador de metadatos, estados de despliegue del delegado de almacenamiento de objetos y el agente de almacenamiento SAN en el nodo servidor, generar información de visualización del módulo de control de lectura-escritura según los estados de despliegue determinados, incluyendo dicha información de visualización el servidor en el que está desplegado el delegado de almacenamiento de objetos o el agente de almacenamiento SAN, y suministrar la información de visualización del módulo de control de lectura-escritura al módulo de servicio de bloque virtual, utilizándose la información de visualización del módulo de control de lecturaescritura para indicar información de encaminamiento de cada módulo de control de lectura-escritura; dividir, mediante el controlador de metadatos, los recursos de almacenamiento de los discos duros y las matrices de almacenamiento en múltiples particiones de almacenamiento, donde las múltiples particiones de almacenamiento forman un conjunto de recursos de almacenamiento compartidos; asignar, mediante el controlador de metadatos, un módulo de control de lectura-escritura a cada partición de almacenamiento; generar, mediante el controlador de metadatos, información de partición global y suministrar la información de partición global al módulo de servicio de bloque virtual, donde la información de partición global registra una correspondencia entre cada partición de almacenamiento en el conjunto de recursos de almacenamiento compartidos y el módulo de control de lectura-escritura asignado, de cada partición de almacenamiento; cuando se recibe, mediante el módulo de servicio de bloque virtual, un mensaje de solicitud de almacenamiento, llevar a cabo el proceso siguiente: determinar, mediante el módulo de servicio de bloque virtual, una partición de almacenamiento correspondiente al mensaje de solicitud de almacenamiento; determinar, mediante el módulo de servicio de bloque virtual, según la información de partición global, un módulo de control de lectura-escritura que corresponde a la partición de almacenamiento correspondiente al mensaje de solicitud de almacenamiento; determinar, mediante el módulo de servicio de bloque virtual, información de encaminamiento del módulo de control de lectura-escritura determinado, según la información de visualización del módulo de control de lectura-escritura; y enviar, mediante el módulo de servicio de bloque virtual, el mensaje de solicitud de almacenamiento al módulo de control de lectura-escritura determinado, de acuerdo con la información de encaminamiento del módulo de control de lectura-escritura determinado, de tal modo que el módulo de control de lectura-escritura determinado lleva a cabo una operación solicitada por el mensaje de solicitud de almacenamiento.

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Procedimiento y sistema para compartir recursos de almacenamiento SECTOR TECNICO
La presente invencion se refiere al sector de las tecnologfas de comunicaciones, y en particular, a un procedimiento y un sistema para compartir un recurso de almacenamiento.
ANTECEDENTES
En una aplicacion informatica en la nube, un sistema de grupo de servidores integra recursos informaticos, recursos de almacenamiento y recursos de red, y proporciona, utilizando una tecnologfa tal como virtualizacion y por medio de una red, los recursos a los usuarios para su utilizacion. Una forma de aplicacion es, por ejemplo, una maquina virtual (Virtual Machine, "VM" para abreviar), el alquiler de la capacidad informatica, el alquiler de la capacidad de almacenamiento o similares.
Actualmente, por razones tales como los diferentes tipos de demandas de recursos, un sistema de grupo de servidores utiliza generalmente diferentes dispositivos para proporcionar dispositivos de almacenamiento, y las fuentes de recursos de almacenamiento estan diversificadas, por ejemplo, un recurso de almacenamiento incorporado en un nodo servidor, y un recurso de almacenamiento desplegado independientemente, donde el recurso de almacenamiento desplegado independientemente puede ser, por ejemplo, una matriz de almacenamiento o un servidor de almacenamiento dedicados, tal como una red de area de almacenamiento (Storage Area Network, "SAN" por brevedad).
En la tecnica anterior, los dispositivos de almacenamiento de un sistema de grupo de servidores proporcionan independientemente servicios de almacenamiento externos, lo que tiene como resultado una baja utilizacion combinada de los recursos de almacenamiento. Ademas, los recursos de almacenamiento de dispositivo de almacenamiento en red, acaparados primitivamente por empresas, no pueden ser utilizados por el sistema de grupo de servidores, provocando un tremendo derroche.
El documento US 2011/087833 A1 se refiere a un servidor de datos, a un sistema de adaptador de anfitrion para el servidor de datos y a procedimientos de funcionamiento relacionados, que facilitan las operaciones de escritura y lectura de datos para un almacenamiento de datos basado en red que esta acoplado remotamente al servidor de datos. El sistema de adaptador de anfitrion incluye un modulo de controlador de almacenamiento local y un modulo de controlador de almacenamiento en red. El modulo de controlador de almacenamiento local se utiliza para un dispositivo de memoria cache, no volatil, de escritura simultanea, conectado localmente, del servidor de datos. El modulo de controlador de almacenamiento en red se utiliza para una arquitectura de almacenamiento de datos basada en red, del servidor de datos. Los modulos de controlador de almacenamiento soportan escritura simultaneamente de datos en el almacenamiento en memoria cache local y la arquitectura de almacenamiento basada en red. Los modulos de controlador de almacenamiento soportan asimismo la lectura de datos mantenidos por servidor desde el almacenamiento en memoria cache local y la arquitectura de almacenamiento basado en red.
RESUMEN
Las realizaciones de la presente invencion dan a conocer un procedimiento y un sistema para compartir un recurso de almacenamiento, que se utilizan para integrar, compartir y utilizar recursos de almacenamiento heterogeneos, mejorando de ese modo la utilizacion de los recursos de almacenamiento.
De acuerdo con un primer aspecto, una realizacion de la presente invencion da a conocer un procedimiento para compartir un recurso de almacenamiento, aplicado a un sistema de grupo de servidores, donde el sistema de grupo de servidores incluye un nodo servidor y un nodo de almacenamiento en red, el nodo servidor incluye un disco duro, el nodo de almacenamiento en red incluye una matriz de almacenamiento, un controlador de almacenamiento distribuido se ejecuta en el nodo servidor, y el controlador de almacenamiento distribuido comprende un controlador de metadatos, un modulo de servicio de bloque virtual y un modulo de control de lectura-escritura, el modulo de control de lectura-escritura comprende un delegado de almacenamiento de objetos y un agente de almacenamiento SAN, y el procedimiento incluye:
determinar, mediante el controlador de metadatos, estados de despliegue del delegado de almacenamiento de objetos y del agente de almacenamiento SAN en el nodo servidor; generar informacion de visualizacion del modulo de control de lectura-escritura de acuerdo con los estados de despliegue determinados, y suministrar la informacion de visualizacion del modulo de control de lectura-escritura al modulo de servicio de bloque virtual, la informacion de visualizacion de dichos por lo menos dos modulos de control de lectura-escritura se utiliza para indicar informacion de encaminamiento a cada modulo de control de lectura-escritura;
dividir, mediante el controlador de metadatos, los recursos de almacenamiento del disco duro y la matriz de almacenamiento en multiples particiones de almacenamiento, donde las multiples particiones de almacenamiento forman un conjunto de recursos de almacenamiento compartidos;
5
10
15
20
25
30
35
40
45
50
asignar, mediante el controlador de metadatos, un modulo de control de lectura-escritura a cada particion de almacenamiento;
generar, mediante el controlador de metadatos, informacion de particion global y suministrar la informacion de particion global al modulo de servicio de bloque virtual, donde la informacion de particion global registra una correspondencia entre cada particion de almacenamiento en el conjunto de recursos de almacenamiento compartidos y el modulo de control de lectura-escritura asignado, de cada particion de almacenamiento;
recibir, mediante el modulo de servicio de bloque virtual, un mensaje de solicitud de almacenamiento, y determinar una particion de almacenamiento correspondiente al mensaje de solicitud de almacenamiento;
determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con la informacion de particion global, un modulo de control de lectura-escritura que es correspondiente a la particion de almacenamiento correspondiente al mensaje de solicitud de almacenamiento; determinar, mediante el modulo de servicio de bloque virtual, informacion de encaminamiento del modulo de control de lectura-escritura determinado, de acuerdo con la informacion de visualizacion del modulo de control de lectura-escritura; y
enviar, mediante el modulo de servicio de bloque virtual, el mensaje de solicitud de almacenamiento al modulo de control de lectura-escritura determinado, de acuerdo con la informacion de encaminamiento del modulo de control de lectura-escritura determinado, de tal modo que el modulo de control de lectura-escritura determinado lleva a cabo una operacion solicitada por el mensaje de solicitud de almacenamiento.
Haciendo referencia al primer aspecto, en un primer posible modo de implementacion, la determinacion de una particion de almacenamiento correspondiente al mensaje de solicitud de almacenamiento incluye:
determinar, mediante el modulo de servicio de bloque virtual, un ID de un volumen de usuario en el que estan localizados los datos a gestionar de acuerdo con el mensaje de solicitud de almacenamiento y una direccion de bloque logico LBA de por lo menos un bloque de datos de los datos a gestionar; y
determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, una particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos.
Haciendo referencia al primer posible modo de implementacion del primer aspecto, en un segundo posible modo de implementacion, el procedimiento incluye ademas:
configurar, mediante el modulo de servicio de bloque virtual, metadatos de cada particion de almacenamiento en el conjunto de recursos de almacenamiento compartidos, donde los metadatos de cada particion de almacenamiento registran una correspondencia entre un ID de la particion de almacenamiento y un ID de cada bloque de datos asignado a la particion de almacenamiento, donde
la determinacion, mediante el modulo de servicio de bloque virtual, de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, de una particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos, incluye:
determinar, mediante el modulo de servicio de bloque virtual, un ID de dicho por lo menos un bloque de datos de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, consultar los metadatos de cada particion de almacenamiento y determinar un ID de la particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos
Haciendo referencia al primer aspecto o con el primer posible modo de implementacion del primer aspecto, en un tercer posible modo de implementacion, la determinacion, mediante el modulo de servicio de bloque virtual, de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, de una particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos, incluye:
formar un valor de clave de cada bloque de datos utilizando el ID del volumen de usuario y una LBA de cada bloque de datos, calcular un valor valor correspondiente al valor de clave de cada bloque de datos y determinar, de acuerdo con el valor valor, una particion de almacenamiento correspondiente a cada bloque de datos.
Haciendo referencia al primer posible modo de implementacion del primer aspecto, al segundo posible modo de implementacion del primer aspecto o al tercer posible modo de implementacion del tercer aspecto, en un cuarto posible modo de implementacion, la recepcion, mediante el modulo de servicio de bloque virtual, de un mensaje de solicitud de almacenamiento incluye: recibir un comando de creacion de volumen de usuario, donde el comando de creacion de volumen de usuario indica el tamano del volumen de usuario, donde
la determinacion, mediante el modulo de servicio de bloque virtual, de un ID de un volumen de usuario en el que estan situados los datos a gestionar de acuerdo con el mensaje de solicitud de almacenamiento y de una direccion de bloque logico LBA de por lo menos un bloque de datos de los datos a gestionar, y la determinacion, de acuerdo
5
10
15
20
25
30
35
40
45
50
con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, de la particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos, incluye:
asignar, mediante el modulo de servicio de bloque virtual, el ID del volumen de usuario al volumen de usuario;
determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con el tamano del volumen de usuario, el tamano de un recurso de almacenamiento inicial asignado al volumen de usuario, y determinar la LBA de dicho por lo menos un bloque de datos de acuerdo con el tamano del recurso de almacenamiento inicial; y
determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, la particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos.
Haciendo referencia al primer posible modo de implementacion del primer aspecto, al segundo posible modo de implementacion del primer aspecto o al tercer posible modo de implementacion del primer aspecto, en un quinto posible modo de implementacion, la recepcion, mediante el modulo de servicio de bloque virtual, de un mensaje de solicitud de almacenamiento incluye: recibir, mediante el modulo de servicio de bloque virtual, una solicitud de operacion de escritura;
determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con un nombre de archivo contenido en la solicitud de operacion de escritura de datos, un ID de un volumen de usuario correspondiente a una operacion de escritura actual;
dividir, mediante el modulo de servicio de bloque virtual, los datos a escribir en multiples bloques de datos a escribir, y asignar una LBA a cada bloque de datos a escribir;
determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con el ID del volumen de usuario correspondiente a la operacion de escritura actual, y con la LBA de cada bloque de datos a escribir, la particion de almacenamiento correspondiente a cada bloque de datos a escribir;
determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con la informacion de particion global, el modulo de control de lectura-escritura que es correspondiente a la particion de almacenamiento correspondiente a cada bloque de datos a escribir;
generar, mediante el modulo de servicio de bloque virtual, comandos de escritura de bloque de datos, donde cada comando de escritura de bloque de datos es correspondiente a un bloque de datos a escribir, y cada comando de escritura de bloque de datos lleva el bloque de datos a escribir y un ID de los datos a escribir; y
enviar por separado cada comando de escritura de bloque de datos al modulo de control de lectura-escritura determinado correspondiente a cada bloque de datos a escribir, de tal modo que el modulo de control de lectura- escritura determinado correspondiente a cada bloque de datos a escribir escribe cada bloque de datos a escribir en un recurso de hardware de almacenamiento.
Haciendo referencia al primer posible modo de implementacion del primer aspecto, al segundo posible modo de implementacion del primer aspecto o al tercer posible modo de implementacion del primer aspecto, en un quinto posible modo de implementacion, la recepcion, mediante el modulo de servicio de bloque virtual, de un mensaje de solicitud de almacenamiento incluye: recibir, mediante el modulo de servicio de bloque virtual, una solicitud de operacion de lectura de datos, donde la solicitud de operacion de lectura de datos lleva un nombre de archivo y un desplazamiento de los datos a leer;
determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con el nombre de archivo contenido en la solicitud de operacion de lectura de datos, un ID de un volumen de usuario correspondiente a una operacion de lectura actual;
determinar, mediante el modulo de servicio de bloque virtual, LBAs de multiples bloques de datos a leer, de acuerdo con informacion de desplazamiento de los datos a leer;
determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con el ID del volumen de usuario correspondiente a la operacion de lectura actual, y con la LBA de cada bloque de datos a leer, la particion de almacenamiento correspondiente a cada bloque de datos a leer;
determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con la informacion de particion global, modulos de control de lectura-escritura que son correspondientes a las particiones de almacenamiento correspondientes a los multiples bloques de datos a leer;
generar, mediante el modulo de servicio de bloque virtual, multiples comandos de lectura de bloque de datos, donde cada comando de lectura de bloque de datos es correspondiente a un bloque de datos a leer, y cada comando de lectura de bloque de datos lleva el bloque de datos a leer y un ID del bloque de datos a leer; y
5
10
15
20
25
30
35
40
45
50
55
enviar por separado, mediante el modulo de servicio de bloque virtual, cada comando de lectura de bloque de datos al modulo de control de lectura-escritura correspondiente a cada bloque de datos a leer, de tal modo que el modulo de control de lectura-escritura determinado correspondiente a cada bloque de datos a leer lee cada bloque de datos a leer.
De acuerdo con un segundo aspecto, una realizacion de la presente invencion da a conocer un sistema de grupo de servidores, donde el sistema de grupo de servidores incluye un nodo servidor y un nodo de almacenamiento en red, el nodo servidor incluye un disco duro, el nodo de almacenamiento en red incluye una matriz de almacenamiento, se ejecuta un controlador de almacenamiento distribuido en el nodo servidor, y el controlador de almacenamiento distribuido incluye un controlador de metadatos, un modulo de servicio de bloque virtual y un modulo de control de lectura-escritura, comprendiendo el modulo de control de lectura-escritura un delegado de almacenamiento de objetos y un agente de almacenamiento SAN;
en el que
el controlador de metadatos, configurado para: determinar estados de despliegue del delegado de almacenamiento de objetos y del agente de almacenamiento SAN en el nodo servidor; generar informacion de visualizacion del modulo de control de lectura-escritura de acuerdo con los estados de despliegue determinados y suministrar la informacion de visualizacion del modulo de control de lectura-escritura al modulo de servicio de bloque virtual, utilizandose la informacion de visualizacion del modulo de control de lectura-escritura para indicar informacion de encaminamiento de cada modulo de control de lectura-escritura;
el controlador de metadatos esta configurado ademas para dividir: recursos de almacenamiento del disco duro y de la matriz de almacenamiento en multiples particiones de almacenamiento, donde las multiples particiones de almacenamiento forman un conjunto de recursos de almacenamiento compartidos; asignar un modulo de control de lectura-escritura a cada particion de almacenamiento; generar informacion de particion global, donde la informacion de particion global registra una correspondencia entre cada particion de almacenamiento en el conjunto de recursos de almacenamiento compartidos y el modulo de control de lectura-escritura asignado, de cada particion de almacenamiento; y suministrar la informacion de particion global a un modulo de servicio de bloque virtual;
el modulo de servicio de bloque virtual, configurado para: estar frente a una capa de servicio, y recibir un mensaje de solicitud de almacenamiento; determinar una particion de almacenamiento correspondiente al mensaje de solicitud de almacenamiento; determinar, de acuerdo con la informacion de particion global, un modulo de control de lectura- escritura que es correspondiente a la particion de almacenamiento correspondiente al mensaje de solicitud de almacenamiento; determinar informacion de encaminamiento del modulo de control de lectura-escritura determinado, de acuerdo con la informacion de visualizacion del modulo de control de lectura-escritura, y enviar el mensaje de solicitud de almacenamiento al modulo de control de lectura-escritura determinado; y
el modulo de control de lectura-escritura, configurado para estar frente al disco duro o al nodo de almacenamiento en red, y llevar a cabo una operacion solicitada por el mensaje de solicitud de almacenamiento.
Haciendo referencia al segundo aspecto, en un primer posible modo de implementacion, donde:
el controlador de metadatos esta configurado espedficamente para asignar el delegado de almacenamiento de objetos a una particion de almacenamiento del disco duro local, como un modulo de control de lectura-escritura, y asignar el agente de almacenamiento SAN a una particion de almacenamiento de la matriz de almacenamiento, como un modulo de control de lectura-escritura;
el delegado de almacenamiento de objetos esta configurado para: recibir el mensaje de solicitud de almacenamiento, determinar una direccion ffsica correspondiente al mensaje de solicitud de almacenamiento, y llevar a cabo, en funcion de la direccion ffsica, la operacion solicitada por el mensaje de solicitud de almacenamiento en el disco duro; y
el agente de almacenamiento SAN esta configurado para: recibir el mensaje de solicitud de almacenamiento, determinar una direccion logica que es del nodo de almacenamiento en red y corresponde al mensaje de solicitud de almacenamiento, y llevar a cabo, de acuerdo con la direccion logica, la operacion solicitada por el mensaje de solicitud de almacenamiento en la matriz de almacenamiento.
Haciendo referencia al segundo aspecto, en un segundo posible modo de implementacion, el modulo de servicio de bloque virtual esta configurado espedficamente para determinar un ID de un volumen de usuario en el que estan situados datos a gestionar de acuerdo con el mensaje de solicitud de almacenamiento y una direccion de bloque logico LBA de por lo menos un bloque de datos de los datos a gestionar, y determinar, de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, una particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos.
Haciendo referencia al segundo posible modo de implementacion del segundo aspecto, en un tercer posible modo de implementacion, el modulo de servicio de bloque virtual esta configurado espedficamente para: configurar metadatos de cada particion de almacenamiento en el conjunto de recursos de almacenamiento compartidos, donde los metadatos de cada particion de almacenamiento registran una correspondencia entre un ID del particion de
5
10
15
20
25
30
35
40
45
50
55
60
almacenamiento y un ID de un bloque de datos asignado a la particion de almacenamiento; determinar un ID de dicho por lo menos un bloque de datos de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos; consultar los metadatas de cada particion de almacenamiento; y determinar un ID de la particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos.
Haciendo referencia al segundo posible modo de implementacion del segundo aspecto, en un cuarto posible modo de implementacion, el modulo de servicio de bloque virtual esta configurado espedficamente para formar un valor de clave de cada bloque de datos utilizando el ID del volumen de usuario y una LBA de cada bloque de datos, calcular un valor valor correspondiente al valor de clave de cada bloque de datos y determinar, de acuerdo con el valor valor, una particion de almacenamiento correspondiente a cada bloque de datos.
Haciendo referencia al segundo aspecto y a cualquiera de los posibles modos de implementacion del segundo aspecto, en un quinto posible modo de implementacion, el modulo de servicio de bloque virtual esta configurado espedficamente para: recibir un comando de creacion de volumen de usuario, donde el comando de creacion de volumen de usuario indica el tamano del volumen de usuario; asignar el ID del volumen de usuario al volumen de usuario; determinar, de acuerdo con el tamano del volumen de usuario, el tamano de un recurso de almacenamiento inicial asignado al volumen de usuario, y determinar la LBA de dicho por lo menos un bloque de datos de acuerdo con el tamano del recurso de almacenamiento inicial; y determinar, de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, la particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos.
Haciendo referencia al segundo aspecto y a cualquiera de los posibles modos de implementacion del segundo aspecto, en un sexto posible modo de implementacion, el modulo de servicio de bloque virtual esta configurado espedficamente para: recibir una solicitud de operacion de escritura de datos; determinar, de acuerdo con un nombre de archivo contenido en la solicitud de operacion de escritura de datos, un ID de un volumen de usuario correspondiente a una operacion de escritura actual; dividir los datos a escribir en multiples bloques de datos a escribir, y asignar una LBA a cada bloque de datos a escribir; determinar, de acuerdo con el ID del volumen de usuario correspondiente a la operacion de escritura actual, y a la LBA de cada bloque de datos a escribir, una particion de almacenamiento correspondiente a cada bloque de datos a escribir; determinar, de acuerdo con la informacion de particion global, un modulo de control de lectura-escritura que es correspondiente a la particion de almacenamiento correspondiente a cada bloque de datos a escribir; generar multiples comandos de escritura de bloque de datos, donde cada comando de escritura de bloque de datos es correspondiente a un bloque de datos a escribir, y cada comando de escritura de bloque de datos lleva el bloque de datos a escribir y un ID de los datos a escribir, y enviar por separado cada comando de escritura de bloque de datos al modulo de control de lectura- escritura correspondiente a cada bloque de datos a escribir.
Haciendo referencia al segundo aspecto y a cualquiera de los posibles modos de implementacion del segundo aspecto, en un septimo posible modo de implementacion, el modulo de servicio de bloque virtual esta configurado espedficamente para: recibir una solicitud de operacion de lectura de datos, donde la solicitud de operacion de lectura de datos lleva un nombre de archivo y un desplazamiento de los datos a leer; determinar, de acuerdo con el nombre de archivo contenido en la solicitud de operacion de lectura de datos, un ID de un volumen de usuario correspondiente a una actual operacion de lectura; determinar LBAs de multiples bloques de datos a leer de acuerdo con la informacion de desplazamiento de los datos a leer; determinar, de acuerdo con el ID del volumen de usuario correspondiente a la operacion de lectura actual y a una LBA de cada bloque de datos a leer, una particion de almacenamiento correspondiente a cada bloque de datos a leer; determinar, de acuerdo con la informacion de particion global, modulos de control de lectura-escritura que son correspondientes a las particiones de almacenamiento correspondientes a los multiples bloques de datos a leer; generar multiples comandos de lectura de bloque de datos, donde cada comando de lectura de bloque de datos es correspondiente a un bloque de datos a leer, y cada comando de lectura de bloque de datos lleva el bloque de datos a leer y un ID del bloque de datos a leer; y enviar independientemente cada comando de lectura de bloque de datos al modulo de control de lectura- escritura correspondiente a cada bloque de datos a leer.
Haciendo referencia al octavo posible modo de implementacion del segundo aspecto, en un noveno posible modo de implementacion, el controlador de metadatos esta configurado espedficamente para: determinar desplegar el delegado de almacenamiento de objetos en un nodo servidor que tiene un recurso de disco duro en el sistema de grupo de servidores, y determinar desplegar el agente de almacenamiento SAN en un nodo servidor con una carga pequena en el sistema de grupo de servidores.
Haciendo referencia al octavo posible modo de implementacion del segundo aspecto, en un decimo posible modo de implementacion, el controlador de metadatos esta configurado ademas para reunir un recurso de almacenamiento disponible del disco duro del nodo servidor y un recurso de almacenamiento disponible de la matriz de almacenamiento del nodo de almacenamiento en red, y dividir los recursos de almacenamiento disponibles del disco duro y de la matriz de almacenamiento en multiples particiones de almacenamiento.
De acuerdo con un tercer aspecto, una realizacion de la presente invencion da a conocer un ordenador.
De acuerdo con un cuarto aspecto, una realizacion de la presente invencion da a conocer un medio de almacenamiento informatico.
5
10
15
20
25
30
35
40
45
50
55
A partir de las soluciones tecnicas anteriores se puede ver que, en las realizaciones de la presente invencion, los recursos de almacenamiento de un disco duro y de una matriz de almacenamiento se dividen en multiples particiones de almacenamiento, y las multiples particiones de almacenamiento forman un conjunto de recursos de almacenamiento compartidos, un modulo de control de lectura-escritura es asignado a cada particion de almacenamiento, y se genera informacion de particion global para registrar una correspondencia entre cada particion de almacenamiento en el conjunto de recursos de almacenamiento compartidos y el modulo de control de lectura- escritura. De este modo, cuando se recibe posteriormente un mensaje de solicitud de almacenamiento, se puede determinar una particion de almacenamiento correspondiente al mensaje de solicitud de almacenamiento, se puede determinar en funcion de la informacion de particion global un modulo de control de lectura-escritura que se corresponde con la particion de almacenamiento correspondiente al mensaje de solicitud de almacenamiento, y finalmente el mensaje de solicitud de almacenamiento puede ser enviado al modulo de control de lectura-escritura determinado, de tal modo que el modulo de control de lectura-escritura lleva a cabo una operacion solicitada por el mensaje de solicitud de almacenamiento. Las realizaciones de la presente invencion implementan una integracion rapida y simple de recursos de almacenamiento heterogeneos, y por lo tanto pueden utilizar eficientemente diversos recursos de almacenamiento, ahorrar costes y evitar el derroche de recursos.
BREVE DESCRIPCION DE LOS DIBUJOS
Para describir mas claramente las soluciones tecnicas en las realizaciones de la presente invencion o de la tecnica anterior, a continuacion se introducen brevemente los dibujos adjuntos necesarios para describir las realizaciones o la tecnica anterior. Obviamente, los dibujos adjuntos en la siguiente descripcion muestran algunas realizaciones de la presente invencion.
La figura 1 es un diagrama de bloques esquematico de un sistema de grupo de servidores, de acuerdo con una realizacion de la presente invencion;
la figura 2 es un diagrama esquematico que muestra la division de recursos de almacenamiento compartidos de acuerdo con una realizacion de la presente invencion;
la figura 3 es un diagrama de flujo de utilizacion de un recurso de almacenamiento compartido de acuerdo con una realizacion de la presente invencion;
la figura 4 es otro diagrama de flujo de utilizacion de un recurso de almacenamiento compartido de acuerdo con una realizacion de la presente invencion;
la figura 5 es otro diagrama de flujo de utilizacion de un recurso de almacenamiento compartido de acuerdo con una realizacion de la presente invencion;
la figura 6 es otro diagrama de bloques esquematico de un sistema de grupo de servidores, de acuerdo con una realizacion de la presente invencion; y
la figura 7 es un diagrama de composicion de un ordenador, de acuerdo con una realizacion de la presente invencion.
DESCRIPCION DE REALIZACIONES
Para aclarar los objetivos, soluciones tecnicas y ventajas de las realizaciones de la presente invencion, a continuacion se describen de manera clara y completa las soluciones tecnicas de las realizaciones de la presente invencion haciendo referencia a los dibujos adjuntos de las realizaciones de la presente invencion. Evidentemente, las realizaciones descritas son algunas, pero no la totalidad de las realizaciones de la presente invencion.
Ademas, el termino "y/o" en esta descripcion, describe solamente una relacion de asociacion para describir objetos asociados, y representa que pueden existir tres relaciones. Por ejemplo, A y/o B puede representar lo siguientes tres casos: solamente existe A, existen tanto A como B, y existe solamente B. Ademas, en esta descripcion el sfmbolo "/" representa en general que los objetos asociados antes y despues del sfmbolo estan en una relacion "o".
En las soluciones tecnicas dadas a conocer por las realizaciones de la presente invencion, un controlador distribuido se despliega en un servidor para implementar la integracion de recursos de almacenamiento heterogeneos, de tal modo que la integracion y utilizacion de los recursos de almacenamiento heterogeneos se puede implementar sin necesidad de adquirir adicionalmente un dispositivo de integracion y almacenamiento heterogeneo, mejorando de ese modo la relacion precio/rendimiento del sistema.
En las realizaciones de la presente invencion, despues de que sean integrados verticalmente los recursos informaticos y los recursos de almacenamiento, se integran entonces horizontalmente varios recursos de almacenamiento, y en particular, son integrados y utilizados recursos de almacenamiento heterogeneos. En las realizaciones de la presente invencion, se despliega un controlador de almacenamiento distribuido en un servidor, y se utilizan varios recursos de almacenamiento heterogeneos para formar un conjunto de recursos de almacenamiento de comparticion en grupo con el fin de asignar y gestionar los recursos de almacenamiento de manera unificada. El procedimiento puede implementar una integracion rapida y simple de los recursos de
5
10
15
20
25
30
35
40
45
50
55
60
almacenamiento heterogeneos, y por lo tanto puede utilizar eficientemente varios recursos de almacenamiento, ahorrar costes y evitar el derroche de recursos.
Los recursos de almacenamiento heterogeneos mencionados en las realizaciones de la presente invencion se refieren a dos o mas tipos diferentes de dispositivos de almacenamiento. Espedficamente, un dispositivo de almacenamiento de un primer tipo se refiere a un disco duro local incorporado en un nodo servidor, tal como un disco de estado solido (Solid State Disk, SSD), un disco duro mecanico (Hard Disk, HD) o un disco duro tffbrido (Hybrid Hard Disk, HHD); un dispositivo de almacenamiento de un segundo tipo se refiere a un nodo de almacenamiento en red, donde el nodo de almacenamiento en red puede ser un dispositivo de almacenamiento de red de area de almacenamiento (Storage Area Network, SAN), y puede ser asimismo un dispositivo de almacenamiento de almacenamiento conectado en red (Network Attached Storage, NAS) y el nodo de almacenamiento en red es un dispositivo de hardware externo de un servidor, pero no es un dispositivo incorporado en el servidor.
La figura 1 es un diagrama de composicion del sistema de grupo de servidores, de acuerdo con una realizacion de la presente invencion. El sistema de grupo de servidores comunica con un cliente de aplicacion o un centro de gestion de almacenamiento utilizando una capa de red. El sistema de grupo de servidores incluye un nodo servidor y un nodo de almacenamiento en red (esta realizacion utiliza, como ejemplo, un dispositivo de almacenamiento SAN), puede haber uno o varios nodos servidores y uno o varios nodos de almacenamiento en red, y esta realizacion utiliza como ejemplo 2 nodos de almacenamiento SAN. Un dispositivo ffsico de cada nodo servidor incluye una CPU, una memoria, una red, un disco duro y similares, y un dispositivo ffsico del nodo de almacenamiento en red incluye una matriz de almacenamiento y un controlador de la matriz de almacenamiento. En esta realizacion, los dispositivos ffsicos, tales como la CPU y la memoria del nodo servidor, que se utilizan para proporcionar recursos informaticos para un programa de aplicacion conectado al sistema de grupo de servidores, se denominan colectivamente recursos informaticos del sistema de grupo de servidores y proporcionan la base para formar una capa informatica; el disco duro del nodo servidor y la matriz de almacenamiento del nodo de almacenamiento en red que estan en una capa de recursos de almacenamiento se denominan colectivamente recursos de almacenamiento del sistema de grupo de servidores.
El sistema de grupo de servidores se utiliza para proporcionar externamente los recursos informaticos a diferentes programas de aplicacion para su utilizacion. Por ejemplo, una aplicacion web o un sistema de grupo distribuido HADOOP se pueden ejecutar en el sistema de grupo de servidores. Los recursos informaticos del sistema de grupo de servidores se pueden abstraer adicionalmente en multiples maquinas virtuales; diferentes programas de aplicacion se ejecutan en cada maquina virtual, o las multiples maquinas virtuales forman un grupo de maquinas virtuales para proporcionar servicios para el mismo programa de aplicacion. Esta realizacion no impone una limitacion sobre una forma de implementacion espedfica. Cuando un programa de aplicacion se ejecuta en el sistema de grupo de servidores, los datos relacionados del programa de aplicacion se pueden almacenar en un recurso de almacenamiento del sistema de grupo de servidores, es decir, almacenar en el disco duro del nodo servidor, o en la matriz de almacenamiento del nodo SAN, o se pueden almacenar tanto en el disco duro del nodo servidor como en la matriz de almacenamiento del nodo SAN.
El sistema de grupo de servidores en esta realizacion de la presente invencion ejecuta ademas un controlador de almacenamiento distribuido, donde el controlador de almacenamiento distribuido esta configurado para dividir recursos de almacenamiento del disco duro del nodo servidor y de la matriz de almacenamiento proporcionada por un nodo de almacenamiento en red (tal como una SAN) en multiples particiones de almacenamiento, donde las multiples particiones de almacenamiento forman un conjunto de recursos de almacenamiento compartidos del sistema de grupo de servidores, de tal modo que un programa de aplicacion que se ejecuta en el sistema de grupo de servidores puede obtener un bloque de recursos de almacenamiento distribuidos a partir del conjunto de recursos de almacenamiento compartidos y utilizar este bloque de recursos de almacenamiento distribuidos, garantizando de ese modo una mayor utilizacion de los recursos de almacenamiento y una distribucion homogenea del almacenamiento, y mejorar la eficiencia de lectura-escritura de los recursos de almacenamiento. En esta realizacion de la presente invencion, el controlador de almacenamiento distribuido se implementa utilizando un modulo de software instalado en un dispositivo de hardware de un servidor, y por lo tanto se puede evitar la adquisicion de un dispositivo de hardware adicional como dispositivo de control de almacenamiento. La solucion es mas economica y ahorra costes.
El controlador de almacenamiento distribuido descrito en esta realizacion de la presente invencion es un termino general para un modulo funcional de control de almacenamiento que se ejecuta en cada nodo servidor, y el controlador de almacenamiento distribuido proporcionado por la solucion puede incluir diferentes modulos funcionales. Sin embargo, durante el despliegue real, cada nodo servidor puede ejecutar diferentes modulos funcionales del controlador de almacenamiento distribuido, segun la funcion y la pofftica de despliegue del nodo servidor. Es decir, de acuerdo con la pofftica de despliegue del sistema de grupo de servidores, diferentes modulos funcionales del controlador de almacenamiento distribuido se pueden ejecutar en diferentes nodos servidores, y cada nodo servidor puede ejecutar la totalidad de los modulos funcionales del controlador de almacenamiento distribuido, o puede ejecutar algunos modulos funcionales del controlador de almacenamiento distribuido. A continuacion se describen en detalle modos de despliegue espedficos.
El controlador de almacenamiento distribuido esta configurado principalmente para proporcionar una interfaz de acceso de datos para los recursos informaticos del sistema de grupo de servidores, y para llevar a cabo la gestion y el control de lectura-escritura sobre los recursos de almacenamiento compartidos del sistema de grupo de servidores.
5 Espedficamente, el controlador de almacenamiento distribuido se puede dividir funcionalmente en los modulos
siguientes:
un controlador de metadatos MDC, configurado para: adquirir un recurso de almacenamiento del disco duro local del nodo servidor y un recurso de almacenamiento de la matriz de almacenamiento del nodo de almacenamiento en red, dividir el recurso de almacenamiento del nodo servidor y el recurso de almacenamiento del nodo de almacenamiento 10 en red en multiples particiones de almacenamiento (particion), asignar un identificador de particion de almacenamiento a cada particion de almacenamiento, y a continuacion formar un conjunto de recursos de almacenamiento compartidos utilizando las multiples particiones de almacenamiento, de tal modo que un programa de aplicacion que se ejecuta en el sistema de grupo de servidores utiliza los recursos de almacenamiento compartidos.
15 Espedficamente, el MDC puede llevar a cabo en primer lugar una revision del estado del recurso de disco duro del
nodo servidor y de la matriz de almacenamiento del nodo de almacenamiento en red, y recopilar los recursos de almacenamiento disponibles de los mismos para formar el conjunto de recursos de almacenamiento compartidos. Durante la division de la particion, el MDC puede dividir los recursos en particiones de almacenamiento de un mismo tamano, por ejemplo, division en unidades de 10 GB. La informacion sobre los recursos de almacenamiento 20 recopilada por el MDC puede incluir: la capacidad y un ID de cada disco duro, un ID de un servidor en el que esta emplazado cada disco duro, la capacidad y un ID de cada unidad de almacenamiento logica LUN incluida en cada matriz de almacenamiento, y un ID de un nodo de almacenamiento en red en el que esta situada cada LUN.
La informacion sobre los recursos de almacenamiento recopilados por el MDC es, por ejemplo, la siguiente:
ID del disco = 1, capacidad del disco = 50 GB, ID del servidor = 1
25 ID del disco = 2, capacidad del disco = 50 GB, ID del servidor = 1
ID del disco = 3, capacidad del disco = 50 GB, ID del servidor = 2

LUN = 1, capacidad de la LUN = 50 GB, ID de la SAN = 1;

LUN = 2, capacidad de la LUN = 50 GB, ID de la SAN = 1; y

LUN = 3, capacidad de la LUN = 50 GB, ID de la SAN = 1;
30 Despues de reunir la informacion anterior sobre los recursos de almacenamiento, el MDC divide los recursos de
almacenamiento de los discos 1 a 3 y de las LUN 1 a 3 en multiples particiones de almacenamiento, donde las particiones de almacenamiento pueden ser de tamano igual o diferente. Por ejemplo, los recursos de almacenamiento se dividen homogeneamente en unidades de 10 GB, y los recursos de almacenamiento de los discos y de las LUN se dividen en 30 particiones de almacenamiento, donde el tamano de cada particion de 35 almacenamiento es de 10 GB, y los identificadores de particion de las particiones de almacenamiento son 1 a 30, es decir, P1 a P30. El MDC forma un conjunto de recursos de almacenamiento compartidos utilizando las particiones de almacenamiento P1 a P30, donde las particiones de almacenamiento P1 a P15 incluyen el recurso de almacenamiento del disco duro incorporado en el nodo servidor, y las particiones de almacenamiento P16 a P30 incluyen el recurso de almacenamiento de la matriz de almacenamiento del nodo SAN. Es decir, los recursos de 40 almacenamiento compartidos incluyen dos tipos de particiones de almacenamiento, donde las particiones de almacenamiento del primer tipo son P1 a P15, y las particiones de almacenamiento del segundo tipo son P16 a P30.
El controlador de almacenamiento distribuido incluye ademas un modulo de control de lectura-escritura, donde el modulo de control de lectura-escritura incluye en esta realizacion un delegado de almacenamiento de objetos (object storage delegate, OSD) y un agente de almacenamiento SAN (SAN storage agent, SSA). El OSD esta configurado 45 para llevar a cabo un control de lectura-escritura sobre el recurso de almacenamiento del disco duro incorporado en el nodo servidor, es decir, para implementar almacenamiento de datos en, y adquisicion de datos desde el disco duro local del nodo servidor; por ejemplo, el OSD lleva a cabo un control de lectura-escritura sobre las particiones de almacenamiento P1 a P15 en esta realizacion. El SSA lleva a cabo un control de lectura-escritura sobre el recurso de almacenamiento de la matriz de almacenamiento del nodo SAN, es decir, implementa el almacenamiento de 50 datos en, y adquisicion de datos desde la matriz de almacenamiento del nodo SAN; por ejemplo, el SSA lleva a cabo un control de lectura-escritura sobre las particiones de almacenamiento P16 a P30 en esta realizacion. Tanto el OSD como el SSA son modulos funcionales del controlador de almacenamiento distribuido, y despues de reunir la informacion sobre los recursos de almacenamiento del sistema de grupo de servidores, el MDC puede determinar ademas, de acuerdo con los estados de despliegue de los recursos de almacenamiento, como desplegar el OSD y la 55 SSA en el sistema de grupo de servidores. Espedficamente, el MDC puede ejecutar el OSD en cada nodo servidor que tiene un disco duro local en el sistema de grupo de servidores; el MDC puede ejecutar el SSA en cada nodo servidor en el sistema de grupo de servidores, y puede asimismo desplegar, en funcion de la situacion de carga de
cada nodo servidor, el SSA en un nodo servidor con poca carga. Por ejemplo, el MDC puede calcular de manera unificada las condiciones de carga de los recursos informaticos en todos los nodos servidores, y generar informacion global de despliegue del SSA en funcion de la capacidad de la matriz de almacenamiento de cada nodo de almacenamiento SAN y de la carga. En esta realizacion, por ejemplo, el MDC ejecuta un OSD1 en un nodo servidor 5 1, ejecuta un OSD2 en un nodo servidor 2 y ejecuta un SSA1 en el nodo servidor 2.
Despues de determinar los estados de despliegue del OSD y del SSA, el MDC puede registrar ademas informacion de visualizacion del OSD e informacion de visualizacion del SSA. La informacion de visualizacion del OSD incluye un servidor en el que esta desplegado correspondientemente el OSD, que se utiliza para indicar informacion de encaminamiento del OSD; ademas, la visualizacion del OSD puede incluir ademas cada OSD, un estado 10 correspondiente a cada OSD y un DISCO gestionado correspondientemente por cada OSD. La informacion de visualizacion del SSA incluye un servidor en el que esta desplegado correspondientemente el SSA, que se utiliza para indicar informacion de encaminamiento del SSA; ademas, la informacion de visualizacion del SSA incluye ademas el estado de cada SSA y una LUN, de la matriz de almacenamiento de la SAN, que esta gestionada correspondientemente por cada SSA. Por ejemplo, las siguientes tabla 1 y tabla 2 muestran la informacion de 15 visualizacion del OSD y la informacion de visualizacion del SSA, respectivamente:
Tabla 1: informacion de visualizacion del OSD
Informacion del OSD
Informacion del nodo de despliegue Estado del OSD (opcional) Informacion del dispositivo de almacenamiento (opcional)
OSD1
Servidor 1 IN DISCO1 y DISCO2
OSD2
Servidor 2 IN DISCO3
Tabla 2: informacion de visualizacion del SSA
Informacion del SSA
Informacion del nodo de despliegue Estado del SSA (opcional) Informacion del dispositivo de almacenamiento (opcional)
SSA1
Servidor 2 IN LUN1, LUN2 y LUN3
20 Las anteriores tabla 1 y tabla 2 describen respectivamente informacion de visualizacion del OSD e informacion de visualizacion del SSA, y un experto en la materia puede combinar asimismo las anteriores tabla 1 y tabla 2 en informacion de visualizacion de un modulo de control de lectura-escritura.
Despues de dividir los recursos de almacenamiento en particiones de almacenamiento y determinar el despliegue del modulo de control de lectura-escritura, el MDC puede configurar ademas un correspondiente modulo de control 25 de lectura-escritura para cada particion de almacenamiento. El proceso de asignacion puede ser relativamente flexible y puede ser determinado por el MDC en funcion de la situacion de division de las particiones de almacenamiento y de la carga de ejecucion real. Por ejemplo, las particiones de almacenamiento P1 a 10 se despliegan correspondientemente en el nodo servidor 1, y el OSD1 que se ejecuta en el nodo servidor 1 sirve como modulo de control de lectura-escritura para las particiones de almacenamiento; las particiones de almacenamiento 30 P11 a 20 se despliegan correspondientemente en el nodo servidor 2, y el OSD2 que se ejecuta en el nodo servidor 2
sirve como un modulo de control de lectura-escritura para las particiones de almacenamiento; las particiones de almacenamiento P21 a 30 se despliegan correspondientemente en el nodo servidor 2, y el SSA1 que se ejecuta en el nodo servidor 2 sirve como modulo de control de lectura-escritura para las particiones de almacenamiento.
Ademas, el MDC puede generar adicionalmente informacion de particion global (se utiliza una tabla de informacion 35 de particion global como ejemplo en esta realizacion de la presente invencion), donde la tabla de informacion de particion global registra una situacion de distribucion de las particiones de almacenamiento en el sistema de grupo de servidores. Tal como se muestra en la figura 2 y en la tabla 3, la tabla de informacion de particion global registra un modulo de control de lectura-escritura (un OSD o un SSA) correspondiente a cada particion de almacenamiento. La tabla de informacion de particion global puede registrar ademas informacion sobre un dispositivo de 40 almacenamiento de origen correspondiente a cada particion de almacenamiento, por ejemplo, un numero de disco magnetico o informacion de direccion ffsica.
Tal como se muestra en la tabla 3, el modulo de control de lectura-escritura correspondiente a P1 es el OSD1, una unidad de almacenamiento de origen correspondiente a P1 es un DISCO1 en un SERVIDOR1, y una direccion ffsica de origen correspondiente a P1 es de 100 a 199.
5
10
15
20
25
30
35
40
45
Tabla 3: tabla de informacion de particion global
Almacenamiento
Lectura- escritura Informacion del dispositivo de almacenamiento de origen
informacion de particion
modulo de control unidad de origen (opcional) nodo de origen (opcional) direccion ffsica de origen (opcional)
P1
OSD1 DISCO1 Servidor1 100-199
P2
OSD1 DISCO3 Servidor2 300-399
P3
SSA1 LUN3 SAN1 1000-1999
P30
SSA1 DISCO2 Servidor1 200-299
El controlador de almacenamiento distribuido incluye ademas un servicio de bloque virtual VBS. Despues de completar el despliegue de las particiones de almacenamiento y del modulo de control de lectura-escritura, el MDC puede suministrar ademas la anterior tabla de informacion de particion global e informacion de visualizacion del modulo de control de lectura-escritura al VBS. El VBS obtiene una visualizacion de E/S de acuerdo con la informacion suministrada por el MDC, donde la visualizacion de E/S es una tabla secundaria de la tabla de informacion de particion global, se utiliza para indicar un modulo de control de lectura-escritura actual correspondiente a cada particion de almacenamiento, e incluye una correspondencia entre la particion de almacenamiento y el modulo de control de lectura-escritura. La visualizacion de E/S puede ser suministrada directamente por el MDC al VBS, y puede ser asimismo generada por el VBS en funcion de la tabla de informacion de particion global suministrada por el modulo de MDC.
El VBS se puede ejecutar en cada nodo servidor en el sistema de grupo de servidores, y como capa de controlador de almacenamiento, esta configurado para proporcionar una interfaz de acceso de bloques para un modulo de aplicacion del sistema de grupo de servidores, por ejemplo, una interfaz de acceso de dispositivos de bloque basada en la SCSI. Despues de recibir una solicitud de lectura-escritura suministrada por una aplicacion de capa superior, el VBS determina una particion de almacenamiento que tiene que ser lefda y escrita segun la solicitud de lectura- escritura de datos, determina, de acuerdo con una regla de visualizacion de la visualizacion de E/S, un modulo de control de lectura-escritura (un OSD y un SSA) correspondiente a la particion de almacenamiento solicitada por la actual solicitud de lectura-escritura de datos, y suministra la solicitud de datos de lectura-escritura al correspondiente modulo de control de lectura-escritura, para completar la lectura y escritura de datos.
Espedficamente, el VBS puede soportar ademas la gestion de metadatos globales, donde los metadatos globales registran un estado de utilizacion global de las particiones de almacenamiento en el conjunto de recursos de almacenamiento compartidos en el sistema de grupo de servidores, y metadatos de cada particion de almacenamiento. El estado de utilizacion global incluye informacion sobre una particion de almacenamiento ocupada e informacion sobre una particion de almacenamiento libre. Los metadatos de cada particion de almacenamiento se utilizan para indicar el estado de asignacion de cada particion de almacenamiento. En esta realizacion de la presente invencion, las particiones de almacenamiento se asignan a modo de asignacion de almacenamiento de datos de bloque. Es decir, cada particion de almacenamiento se utiliza en una unidad de un bloque de datos, y la utilizacion de la particion de almacenamiento incluye lectura, escritura, asignacion o similares. Por ejemplo, cuando se asigna una particion de almacenamiento a un volumen de usuario, se utiliza un bloque de datos como unidad para asignacion. Por ejemplo, en esta realizacion de la presente invencion, cada particion de almacenamiento tiene 10 GB de tamano, y la particion de almacenamiento de 10 GB se puede dividir homogeneamente en 10.240 bloques de datos (bloque). Cuando se leen datos desde cada particion de almacenamiento o se escriben datos en cada particion de almacenamiento, se utiliza un bloque de datos como unidad para lectura y escritura. Por lo tanto, los metadatos de cada particion de almacenamiento incluyen espedficamente una correspondencia entre IDs de bloque asignados a cada particion de almacenamiento, donde multiples bloques de datos son asignados a cada particion de almacenamiento. Los bloques de datos pueden ser de tamano uniforme, o pueden no estar limitados en tamano. Esta realizacion de la presente invencion utiliza un ejemplo en el que el tamano de cada bloque de datos es de 1 MB. Ademas, en esta realizacion de la presente invencion, un ID de cada bloque de datos puede incluir un ID de un volumen de usuario correspondiente al bloque de datos, o puede incluir un ID de un volumen de usuario correspondiente al bloque de datos y una direccion de bloque logico (logical block address, LBA).
Los metadatos de cada particion de almacenamiento se muestran, por ejemplo, en la tabla 4:
5
10
15
20
25
30
35
40
45
Tabla 4: metadatas de una particion de almacenamiento
ID de particion de almacenamiento
Bloque de datos asignado Direccion ffsica de un bloque de datos asignado (opcional) Tamano de un bloque de datos asignado (opcional)
P1
Bloque 1 (volumen 1 + LBA 1) XXX-XXX 1 MB
P2
Bloque 2 (volumen 1 + LBA 2) xxx-xxx 1 MB
P3
Bloque 3 (volumen 1 + LBA 3) xxx-xxx 1 MB
P30
Bloque 100 (volumen 2 + LBA 70) xxx-xxx 1 MB
Una correspondencia entre una particion de almacenamiento y un bloque de datos asignado puede estar en forma de mdice de Valor de clave, donde un ID del bloque de datos es un valor de clave. Por ejemplo, el valor de clave esta relacionado con un identificador de un volumen de usuario y una direccion de bloque logico del bloque de datos, y un ID de la particion de almacenamiento es un valor Valor. Se debe observar que, si se utiliza la forma de mdice de Valor de clave, el VBS puede asimismo determinar directamente la correspondencia utilizando un algoritmo sin mantener la tabla 4 anterior. Al ser inicializado, el VBS puede adquirir informacion de asignacion de recursos de almacenamiento recorriendo el disco duro del nodo servidor y un disco magnetico de la matriz de almacenamiento del nodo SAN, e inicializa metadatos almacenados de acuerdo con la tabla de informacion de particion global suministrada por el MDC.
El controlador de almacenamiento distribuido incluye ademas un modulo de control de lectura-escritura, por ejemplo, un OSD que lleva a cabo control de lectura-escritura sobre un recurso de disco duro del nodo servidor, y un SSA que lleva a cabo control de lectura-escritura sobre un recurso de almacenamiento de la matriz de almacenamiento del nodo de almacenamiento en red.
Espedficamente, el OSD recibe principalmente un comando de lectura-escritura desde el VBS, y completa el almacenamiento de datos en, y la adquisicion de datos desde el disco duro del nodo servidor. El SSA recibe principalmente un comando de lectura-escritura desde el VBS, y completa el almacenamiento de datos en, y la adquisicion de datos desde el disco duro del nodo SAN. El SSA esta configurado para implementar un agente de un dispositivo SAN en un anfitrion. Se configura una vista, en el SSA, para informacion de almacenamiento de cada dispositivo SAN ffsico, se lleva a cabo el acceso a cada dispositivo SAN/NAS ffsico utilizando el agente del SSA, y se anade una funcion de interfaz iSCSI al SSA.
Ademas, si se asigna una direccion ffsica uniforme a las particiones de almacenamiento en el conjunto de recursos de almacenamiento compartidos, el SSA puede mantener ademas una correspondencia entre la direccion ffsica uniforme y la direccion LUN original en el nodo SAN, donde el SSA puede determinar ademas, de acuerdo con la correspondencia, una direccion de una LUN original correspondiente a la solicitud de lectura-escritura.
El anterior sistema de grupo de servidores ejecuta el controlador de almacenamiento distribuido, donde el MDC, el VBS, el OSD y el SSA en el controlador de almacenamiento distribuido pueden integrar y utilizar recursos de almacenamiento heterogeneos, formar un conjunto de recursos de comparticion en grupo utilizando varios recursos de almacenamiento heterogeneos, y asignar y gestionar la totalidad de los recursos de almacenamiento de manera unificada, mejorando de ese modo la utilizacion de los recursos de almacenamiento. Ademas, las multiples particiones de almacenamiento se pueden leer o escribir simultaneamente, mejorando de ese modo el rendimiento de lectura-escritura y aumentando el grado de interes del sistema.
Haciendo referencia a la figura 1, la figura 3 es un proceso de procesamiento de creacion de un volumen de usuario en un sistema de grupo de servidores que utiliza integracion de recursos de almacenamiento heterogeneos, de acuerdo con una realizacion de la presente invencion.
S301: un VBS desplegado en un nodo servidor en el sistema de grupo de servidores recibe un comando de creacion de volumen de usuario enviado por un extremo de aplicacion.
Espedficamente, un programa de aplicacion (por ejemplo, una maquina virtual) del extremo de aplicacion que se ejecuta en el sistema de grupo de servidores inicializa el comando de creacion de volumen de usuario, donde el comando es enviado mediante un gestor de aplicacion a un VBS desplegado en cualquier nodo servidor en el sistema de grupo de servidores (de manera preferente, un VBS en un nodo servidor recibe el comando de creacion de volumen de usuario, donde un recurso informatico de la maquina virtual que inicializa el comando esta situado en el nodo servidor). Preferentemente, si el sistema de grupo de servidores en esta realizacion de la presente invencion proporciona ademas una funcion de VBS primario y secundario, despues de recibir el comando de creacion de volumen de usuario, el VBS puede determinar ademas si el VBS es un VBS primario en el sistema de grupo de
5
10
15
20
25
30
35
40
45
50
55
servidores. Si no lo es, el VBS envfa el comando de creacion de volumen de usuario al VBS primario. De hecho, el despliegue del VBS es relativamente flexible. Los VBS instalados en todos los nodos servidores en el sistema de grupo de servidores pueden ser de igual rango, y en este caso, las configuraciones y funciones de todos los VBS son identicas. Se puede tener asimismo que un VBS en el sistema de grupo de servidores esta seleccionado como el VBS primario, y los otros VBS se utilizan como VBS secundarios. El vBs primario esta configurado para asignar un volumen de usuario/bloque de datos y gestionar metadatos de una particion de almacenamiento, y el VBS secundario esta configurado para consultar los metadatos en el VBS primario, y llevar a cabo una operacion de acuerdo con un comando del VBS primario. Esta realizacion de la presente invencion utiliza un ejemplo en el que un sistema de grupo de servidores implementa VBSs primario y secundarios.
S302: un VBS primario consulta metadatos globales segun la informacion del tamano de un volumen indicado por el comando de creacion de volumen de usuario; determina si los recursos restantes en un conjunto de recursos de almacenamiento compartidos satisfacen un requisito; y en caso afirmativo, crea un volumen de usuario, es decir, determina un identificador de volumen (ID) del volumen de usuario, asigna una particion de almacenamiento inicial al volumen de usuario y registra en los metadatos de la particion de almacenamiento inicial el identificador del volumen de usuario y la informacion sobre la particion de almacenamiento inicial asignada.
Espedficamente, si el comando de creacion de volumen de usuario especifica el ID del volumen de usuario, el VBS primario utiliza directamente el ID del volumen de usuario en el comando de creacion de volumen de usuario; si el comando de creacion de volumen de usuario no especifica el ID del volumen de usuario, el VBS asigna al volumen de usuario un ID del volumen de usuario.
En un proceso de creacion del volumen de usuario, el VBS puede asignar ademas la particion de almacenamiento inicial al volumen de usuario, es decir, algunas particiones de almacenamiento se seleccionan a partir de particiones de almacenamiento libres como particiones de almacenamiento iniciales del volumen de usuario. El tamano de un recurso de almacenamiento inicial del volumen de usuario se puede asignar flexiblemente segun la capacidad del volumen de usuario, especificada por el comando de creacion de volumen de usuario. Toda la capacidad del volumen de usuario especificada por el comando de creacion de volumen de usuario puede ser utilizada como capacidad de la particion de almacenamiento inicial. Por ejemplo, el comando de creacion de volumen de usuario solicita crear un volumen de usuario de 5 GB, y el VBS puede asignar la totalidad de los 5 GB al volumen de usuario, como particion de almacenamiento inicial. Es decir, los 5 GB se dividen en 5120 bloques de datos con un tamano de 1 MB, los 5120 bloques de datos se despliegan en las particiones de almacenamiento P1 a P30 de manera distribuida y, en este caso, el tamano de la particion de almacenamiento inicial es de 5 GB. El VBS puede utilizar asimismo un modo de asignacion reducida para asignar una parte del recurso de almacenamiento al volumen de usuario, segun el estado real del conjunto de recursos de almacenamiento compartidos, por ejemplo, asignar un recurso de almacenamiento inicial de 1 GB al volumen de usuario. El recurso de almacenamiento inicial de 1 GB se divide en 1024 bloques de datos con un tamano de 1 MB, los 1024 bloques de datos se despliegan en las particiones de almacenamiento P1 a P30 de manera distribuida y, en este caso, el tamano de la particion de almacenamiento inicial es de 1 GB.
El VBS registra el ID del volumen de usuario y la informacion sobre la particion de almacenamiento inicial asignada en informacion de metadatos de cada particion de almacenamiento inicial en los metadatos globales.
Cuando se asigna la particion de almacenamiento inicial al volumen de usuario, el VBS asigna asimismo una correspondiente direccion ffsica de origen a cada bloque de datos de cada volumen de usuario.
S303: el VBS primario monta el volumen de usuario, y genera un dispositivo de almacenamiento virtual despues de que el montaje sea satisfactorio.
S304: el VBS primario devuelve informacion sobre el dispositivo de almacenamiento virtual al extremo de aplicacion.
S305: el VBS primario devuelve los metadatos globales a un MDC en el sistema de grupo de servidores, de tal modo que el MDC actualiza una tabla de informacion de particion global de acuerdo con los metadatos globales.
La etapa 305 es una etapa opcional, y se puede implementar en una secuencia flexible.
Haciendo referencia a la figura 1, la figura 4 es un proceso de procesamiento en el que un usuario escribe datos en un sistema de grupo de servidores que utiliza integracion de recursos de almacenamiento heterogeneos, de acuerdo con una realizacion de la presente invencion.
S401: despues de que algun programa de aplicacion que se ejecuta en el sistema de grupo de servidores inicie una operacion de escritura de datos, un VBS en el sistema de grupo de servidores recibe una solicitud de operacion de escritura de datos.
La solicitud de operacion de escritura de datos lleva un nombre de archivo y datos a escribir.
S402: el VBS determina, de acuerdo con un nombre de archivo contenido en la solicitud de operacion de escritura de datos, un ID de un volumen de usuario correspondiente a la actual operacion de escritura.
5
10
15
20
25
30
35
40
45
50
El VBS puede calcular ademas, de acuerdo con los datos a escribir, el tamano de los datos a escribir.
El VBS asigna una LBA a los datos a escribir (la asignacion de una LBA es opcional en esta etapa, y el VBS puede asimismo no asignar una LBA a los datos a escribir en esta etapa).
Por ejemplo, el VBS determina el ID de volumen 1, tamano = 1 GB, y una LBA: 001*-221* para la actual operacion de escritura.
S403: el VBS segmenta los datos a escribir en multiples bloques de datos, y asigna una LBA a cada bloque de datos.
El VBS puede segmentar homogeneamente los datos a escribir segun una unidad, por ejemplo, segmentar los datos segun 1 MB, es decir, segmentar los datos segun una unidad de utilizacion de cada particion de almacenamiento, cada vez. En esta realizacion, el VBS segmenta los datos a escribir con el tamano de 1 GB en 1024 bloques de datos, donde el tamano de cada bloque de datos es de 1 MB. Si los restantes datos a escribir son menores de 1 MB, el tamano del ultimo bloque de datos es el tamano real de los restantes datos a escribir. El VBS asigna ademas la correspondiente LBA a cada bloque de datos.
Por ejemplo:
Bloque 1 LBA:0000-1024
Bloque 2 LBA:1025-2048
S404: el VBS determina una correspondiente particion de almacenamiento para cada bloque de datos.
Espedficamente, el VBS determina en primer lugar la direccion de bloque logico (LBA) de cada bloque de datos a escribir, combina a continuacion el ID del volumen de usuario y la LBA de cada bloque de datos en un valor de clave de cada bloque de datos, y determina, de acuerdo con un algoritmo de almacenamiento distribuido, tal como un algoritmo hash, la particion de almacenamiento correspondiente a cada bloque de datos. La LBA en la presente memoria puede ser un valor despues de que se haya procesado una LBA original, por ejemplo, la LBA 0000-1024 correspondiente al bloque 1 corresponde a 1, y la LBA 1025-2048 correspondiente al bloque 2 corresponde a 2.
S405: el VBS genera multiples comandos de escritura de bloque de datos, donde cada bloque de datos corresponde a un comando de escritura de bloque de datos, y cada comando de escritura de bloque de datos lleva el bloque de datos a escribir, y un ID del bloque de datos a escribir (por ejemplo, un ID de bloque incluye el ID del volumen de usuario y la LBA del bloque de datos a escribir).
Esta etapa se puede llevar a cabo asimismo despues de que se hayan completado las etapas siguientes, y la implementacion espedfica no se limita a ninguna secuencia temporal.
S406: el VBS determina, de acuerdo con la particion de almacenamiento correspondiente a cada bloque de datos, un modulo de control de lectura-escritura correspondiente a cada bloque de datos.
Espedficamente, el VBS determina, de acuerdo con una tabla de informacion de particion global, el modulo de control de lectura-escritura correspondiente a cada bloque de datos.
S407: el VBS envfa cada comando de escritura de bloque de datos al modulo de control de lectura-escritura correspondiente a cada bloque de datos, de manera que el modulo de control de lectura-escritura correspondiente a cada bloque de datos escribe cada bloque de datos en un recurso de hardware de almacenamiento.
Espedficamente, si un OSD recibe el comando de escritura de bloque de datos, el OSD consulta, de acuerdo con el ID del bloque de datos a escribir, los metadatos de bloque de datos almacenados por el OSD, y determina si la operacion a llevar a cabo por el OSD sobre el ID del bloque de datos es una primera operacion. Si se trata de la primera operacion, el OSD asigna una direccion ffsica real al bloque de datos a escribir, escribe el bloque de datos a escribir en un disco magnetico correspondiente a la direccion ffsica, actualiza los metadatos de bloque de datos almacenados por el OSD y registra la correspondencia entre el ID del bloque de datos a escribir y la direccion ffsica. Si no es la primera operacion, el OSD consulta, de acuerdo con el ID del bloque de datos a escribir, los metadatos de bloque de datos almacenados por el OSD, determina una direccion ffsica correspondiente al bloque de datos a escribir y escribe el bloque de datos a escribir en la direccion ffsica obtenida mediante la consulta.
Si un SSA recibe el comando de escritura de bloque de datos, el SSA consulta, de acuerdo con el ID del bloque de datos a escribir, los metadatos de bloque de datos almacenados por el SSA, y determina si la operacion a llevar a cabo por el SSA sobre el ID del bloque de datos es una primera operacion. Si es la primera operacion, el SSA asigna una direccion logica en una matriz de almacenamiento de un nodo de almacenamiento SAN real al bloque de datos a escribir, es decir, una direccion LUN, escribe el bloque de datos a escribir en un disco magnetico correspondiente a la direccion LUN, actualiza los metadatos de bloque de datos almacenados por el SSA y registra la correspondencia entre el ID del bloque de datos a escribir y la direccion LUN. Si no es la primera operacion, el
5
10
15
20
25
30
35
40
45
50
OSD consulta, de acuerdo con el ID del bloque de datos a escribir, los metadatos de bloque de datos almacenados por el OSD, determina una direccion LUN correspondiente al bloque de datos a escribir y escribe el bloque de datos a escribir en la direccion LUN obtenida mediante la consulta.
Durante una operacion de escritura, el OSD o la SSA pueden escribir en primer lugar el bloque de datos en una capa cache local, es decir, devolver un mensaje de respuesta, mejorando de ese modo la eficiencia del almacenamiento.
Haciendo referencia a la figura 1, la figura 5 es un proceso de procesamiento en el que un usuario lee datos en un sistema de grupo de servidores que utiliza integracion de recursos de almacenamiento heterogeneos, de acuerdo con una realizacion de la presente invencion.
S501: despues de que algun programa de aplicacion que se ejecuta en el sistema de grupo de servidores inicie una operacion de lectura de datos, un VBS en el sistema de grupo de servidores recibe una solicitud de operacion de lectura de datos.
La solicitud de operacion de lectura de datos lleva un nombre de archivo e informacion de desplazamiento de los datos a leer.
S502: el VBS determina, de acuerdo con un nombre de archivo contenido en la solicitud de operacion de lectura de datos, un ID de un volumen de usuario correspondiente a la operacion de lectura actual, y determina, de acuerdo con informacion de desplazamiento de los datos a leer, una LBA de los datos a leer.
S503: el VBS determina multiples bloques de datos a leer de acuerdo con el ID del volumen de usuario y la LBA de los datos a leer.
Espedficamente, un ID de cada bloque de datos a leer incluye el volumen de usuario y una LBA de cada bloque de datos, donde la LBA de cada bloque de datos se puede determinar en funcion de la cantidad de datos a leer y de un desplazamiento de los datos a leer.
S504: el VBS determina una correspondiente particion de almacenamiento para cada bloque de datos a leer.
Espedficamente, el VBS determina en primer lugar la direccion de bloque logico (LBA) de cada bloque de datos a leer, combina a continuacion el ID del volumen de usuario y la LBA de cada bloque de datos en un valor de clave de cada bloque de datos, y determina, de acuerdo con un algoritmo de almacenamiento distribuido, tal como un algoritmo hash, la particion de almacenamiento correspondiente a cada bloque de datos.
S505: el VBS genera multiples comandos de lectura de bloque de datos, donde cada bloque de datos corresponde a un comando de lectura de bloque de datos, y cada comando de lectura de bloque de datos lleva un ID del bloque de datos a leer (por ejemplo, un ID de bloque incluye el ID del volumen de usuario y una LBA del bloque de datos a leer).
S506: el VBS determina, de acuerdo con la particion de almacenamiento correspondiente a cada bloque de datos, un modulo de control de lectura-escritura correspondiente a cada bloque de datos.
Espedficamente, el VBS determina, de acuerdo con una tabla de informacion de particion global, el modulo de control de lectura-escritura correspondiente a cada bloque de datos.
S507: el VBS envfa cada comando de lectura de bloque de datos al modulo de control de lectura-escritura correspondiente a cada bloque de datos, de tal modo que el modulo de control de lectura-escritura correspondiente a cada bloque de datos lee cada bloque de datos a leer desde un recurso de hardware de almacenamiento.
Espedficamente, si un OSD recibe el comando de lectura de bloque de datos, el OSD consulta, de acuerdo con el ID del bloque de datos a leer, metadatos de bloque de datos almacenados por el OSD, determina una direccion ffsica real asignada al bloque de datos a leer y lee el bloque de datos a escribir desde un disco magnetico correspondiente a la direccion ffsica.
Si un SSA recibe el comando de escritura de bloque de datos, el SSA consulta, de acuerdo con el ID del bloque de datos a escribir, metadatos de bloque de datos almacenados por el SSA, determina una direccion logica real en una matriz de almacenamiento de un nodo de almacenamiento sAn, es decir, una direccion LUN, que esta asignada al bloque de datos a leer, y lee el bloque de datos a leer desde un disco magnetico correspondiente a la direccion LUN.
Utilizando un sistema de grupo para calculo, almacenamiento e integracion segun esta realizacion de la presente invencion, los problemas de funcionamiento complicado y coste elevado debidos a la utilizacion de una SAN dedicada en la tecnica anterior se resuelven en terminos de hardware. Puede haber multiples dispositivos de almacenamiento, y se puede desplegar una memoria cache en cada dispositivo de almacenamiento, incrementando sensiblemente de ese modo la capacidad de expansion de una memoria cache en un extremo de almacenamiento, en terminos de hardware. Un recurso de almacenamiento no depende de un recurso informatico, y se puede aumentar y reducir independientemente, mejorando de ese modo la escalabilidad de un sistema. Un disco
5
10
15
20
25
30
35
40
45
50
55
magnetico persistente y un recurso de memoria cache en el sistema se virtualizan en un conjunto de recursos compartidos, y son compartidos por toda la informatica, toda la informatica y el almacenamiento pueden participar en lectura de datos y escritura de datos, y se mejora el rendimiento de almacenamiento del sistema por medio de una mejora de la concurrencia. Ademas, un sistema de grupo para calculo, almacenamiento e integracion segun esta realizacion de la presente invencion utiliza una red de intercambio de datos de alta velocidad para llevar a cabo la comunicacion, y por lo tanto se incrementa adicionalmente la velocidad de intercambio de datos.
La figura 6 es otro diagrama de composicion de un sistema de grupo de servidores, de acuerdo con una realizacion de la presente invencion. El sistema de grupo de servidores incluye nodos servidores 1 y 2, y un nodo de almacenamiento en red, es decir, un dispositivo SAN de un fabricante A, donde el nodo servidor 1 incluye discos duros 1 y 2, el nodo servidor 2 incluye un disco duro 3, el nodo de almacenamiento en red incluye una matriz de almacenamiento, es decir, LUN1 y LUN2, un controlador de almacenamiento distribuido se ejecuta en los nodos servidores, y el controlador de almacenamiento distribuido incluye:
controladores de metadatos, desplegados en los dos nodos servidores en esta realizacion, donde el controlador de metadatos desplegado en el nodo servidor 1 es un MDC primario, el controlador de metadatos desplegado en el nodo servidor 2 es un MDC secundario y los controladores de metadatos estan configurados para: dividir recursos de almacenamiento de los discos duros y de la matriz de almacenamiento en multiples particiones de almacenamiento, donde la particion de almacenamiento multiple forma un conjunto de recursos de almacenamiento compartidos; asignar un modulo de control de lectura-escritura a cada particion de almacenamiento; generar informacion de particion global, donde la informacion de particion global registra una correspondencia entre cada particion de almacenamiento en el conjunto de recursos de almacenamiento compartidos y el modulo de control de lectura-escritura; y suministrar la informacion de particion global a un modulo de servicio de bloque virtual;
el modulo de servicio de bloque virtual, donde un VBS es desplegado en cada nodo servidor en esta realizacion, configurado para: estar situado frente a una capa de servicio, y recibir un mensaje de solicitud de almacenamiento; determinar una particion de almacenamiento correspondiente al mensaje de solicitud de almacenamiento; determinar, de acuerdo con la informacion de particion global, un modulo de control de lectura-escritura que es correspondiente a la particion de almacenamiento correspondiente al mensaje de solicitud de almacenamiento; y enviar el mensaje de solicitud de almacenamiento al modulo de control de lectura-escritura determinado; y
el modulo de control de lectura-escritura, configurado para estar situado frente a los discos duros o el nodo de almacenamiento en red, y llevar a cabo una operacion solicitada por el mensaje de solicitud de almacenamiento, donde el modulo de control de lectura-escritura en esta realizacion incluye un OSD1 y un OSD2 que estan desplegados en el nodo servidor 1, y un OSD3, un SSA1 y un SSA2 que estan desplegados en el nodo servidor 2, donde el OSD1 esta configurado para llevar a cabo control de lectura-escritura sobre el disco duro 1, el OSD2 esta configurado para llevar a cabo control de lectura-escritura sobre el disco duro 2, el OSD3 esta configurado para llevar a cabo control de lectura-escritura sobre el disco duro 3, el SSA1 esta configurado para llevar a cabo control de lectura-escritura sobre la LUN1 y el SSA2 esta configurado para llevar a cabo control de lectura-escritura sobre la LUN2.
El controlador de metadatos esta configurado ademas para: determinar independientemente estados de despliegue del delegado de almacenamiento de objetos y del agente de almacenamiento SAN en el nodo servidor; generar informacion de visualizacion del modulo de control de lectura-escritura de acuerdo con los estados de despliegue determinados, donde la informacion de visualizacion del modulo de control de lectura-escritura se utiliza para indicar informacion sobre un nodo servidor en el que se despliega cada modulo de control de lectura-escritura; y suministrar la informacion de visualizacion del modulo de control de lectura-escritura al modulo de servicio de bloque virtual.
Ademas, el controlador de metadatos esta configurado espedficamente para: determinar desplegar el delegado de almacenamiento de objetos en un nodo servidor que tiene un recurso de disco duro en el sistema de grupo de servidores, y determinar desplegar el agente de almacenamiento SAN en un nodo servidor con poca carga en el sistema de grupo de servidores.
Por ejemplo, en esta realizacion, el controlador de metadatos despliega el SSA1 y el SSA2 en el nodo servidor 2.
El modulo de servicio de bloque virtual esta configurado espedficamente para determinar informacion de encaminamiento del modulo de control de lectura-escritura de acuerdo con la informacion de visualizacion del modulo de control de lectura-escritura, y enviar el mensaje de solicitud de almacenamiento al modulo de control de lectura-escritura determinado.
En esta realizacion mostrada en la figura 6, se puede ejecutar adicionalmente el procedimiento descrito en cualquiera de las figuras 3 a 5, lo que no se describe de nuevo en detalle en esta realizacion de la presente invencion.
La figura 7 es un diagrama esquematico de composicion de una estructura de un ordenador segun una realizacion de la presente invencion. El ordenador de esta realizacion de la presente invencion puede incluir:
5
10
15
20
25
30
35
40
45
50
55
un procesador 701, una memoria 702, un bus del sistema 704 y una interfaz de comunicaciones 705, donde la CPU 701, la memoria 702 y la interfaz de comunicaciones 705 estan conectadas y completan la comunicacion mutua utilizando el bus del sistema 704.
El procesador 701 puede ser una unidad central de procesamiento de un solo nucleo o de multiples nucleos, o un circuito integrado espedfico, o puede estar configurado como uno o varios circuitos integrados que implementan esta realizacion de la presente invencion.
La memoria 702 puede ser una memoria RAM de alta velocidad, o puede ser una memoria no volatil (memoria no volatil), por ejemplo, por lo menos una memoria de disco magnetico.
La memoria 702 esta configurada para almacenar una instruccion de ejecucion por ordenador 703. Espedficamente, la instruccion de ejecucion por ordenador 703 puede incluir codigo de programa.
Cuando el ordenador esta en funcionamiento, el procesador 701 ejecuta la instruccion de ejecucion por ordenador 703, y puede ejecutar el procedimiento proporcionado por cualquier realizacion de las realizaciones de la presente invencion. Mas espedficamente, si un controlador de almacenamiento distribuido descrito en las realizaciones de la presente invencion se implementa utilizando codigo informatico, el ordenador lleva a cabo una funcion del controlador de almacenamiento distribuido de las realizaciones de la presente invencion.
Se debena entender que, en las realizaciones de la presente invencion, "B corresponde a A" indica B esta asociado con A, y B se puede determinar en funcion de A. Sin embargo, se debena entender ademas que determinar B segun A no significa que B se determine solamente segun A; B se puede determinar asimismo segun A y/u otra informacion.
Un experto en la materia puede ser consciente de que, en combinacion con los ejemplos descritos en las realizaciones dadas a conocer en esta descripcion, las unidades y etapas de algoritmo se pueden implementar mediante hardware electronico, software informatico o una combinacion de los mismos. Para describir claramente el caracter intercambiable entre el hardware y el software, en lo anterior se han descrito generalmente composiciones y etapas de cada ejemplo segun funciones. Que las funciones se lleven a cabo mediante hardware o software depende de aplicaciones particulares y de condiciones de lfmites de diseno de las soluciones tecnicas. Un experto en la materia puede utilizar diferentes procedimientos para implementar las funciones descritas para cada aplicacion particular, pero no se debera considerar que la implementacion va mas alla del alcance de la presente invencion.
En las realizaciones dadas a conocer en la presente solicitud, se debera comprender que el sistema dado a conocer se puede implementar de otros modos. Por ejemplo, la realizacion de sistema descrita es tan solo a modo de ejemplo. Por ejemplo, la division en unidades es simplemente una division de funciones logicas y puede ser otra division en una implementacion real. Por ejemplo, se pueden combinar o integrar una serie de unidades o componentes en otro sistema, o algunas caractensticas se pueden ignorar o no llevar a cabo. Ademas, los acoplamientos mutuos o los acoplamientos directos o conexiones de comunicacion, visualizados o discutidos, se pueden implementar por medio de algunas interfaces. Las conexiones de comunicacion o acoplamientos indirectos entre los aparatos o unidades se pueden implementar en forma electronica, mecanica u otras.
Las unidades descritas como partes independientes pueden o no ser ffsicamente independientes, y las partes visualizadas comunidades pueden o no ser unidades ffsicas, pueden estar emplazadas en una posicion, o pueden estar distribuidas en una serie de unidades de red. Parte o la totalidad de las unidades se pueden seleccionar en funcion de las necesidades reales para conseguir los objetivos de las soluciones de las realizaciones de la presente invencion.
Ademas, las unidades funcionales en las realizaciones de la presente invencion pueden estar integradas en una unidad de proceso, o cada una de las unidades pueden existir por separado ffsicamente, o dos o mas unidades estar integradas en una unidad. La unidad integrada puede estar implementada en forma de hardware, o puede estar implementada en forma de una unidad funcional de software.
Cuando la unidad integrada se implementa en forma de una unidad funcional de software y se vende o se utiliza como un producto independiente, la unidad integrada se puede almacenar en un medio de almacenamiento legible por ordenador. En base a este concepto, las soluciones tecnicas de la presente invencion esencialmente, o la parte que contribuye a la tecnica anterior, o la totalidad o parte de las soluciones tecnicas, se pueden implementar en forma de un producto de software. El producto de software se almacena en un medio de almacenamiento e incluye varias instrucciones para ordenar a un dispositivo informatico (que puede ser un ordenador personal, un servidor o un dispositivo de red) que lleve a cabo la totalidad o parte de las etapas de los procedimientos descritos en las realizaciones de la presente invencion. El medio de almacenamiento anterior incluye: cualquier medio que pueda almacenar codigo de programa, tal como una unidad flash USB, un disco duro extrafble, memoria de solo lectura (ROM, Read-Only Memory), una memoria de acceso aleatorio (RAM, Random Access Memory), un disco magnetico o un disco optico.

Claims (14)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    REIVINDICACIONES
    1. Un procedimiento para compartir un recurso de almacenamiento, aplicado a un sistema de grupo de servidores, en el que el sistema de grupo de servidores comprende uno o varios nodos servidores y uno o varios nodos de almacenamiento en red, cada nodo servidor comprende un disco duro, cada nodo de almacenamiento en red comprende una matriz de almacenamiento, un controlador de almacenamiento distribuido se ejecuta en cada nodo servidor, y el controlador de almacenamiento distribuido comprende un controlador de metadatos, un modulo de servicio de bloque virtual y un modulo de control de lectura-escritura, el modulo de control de lectura-escritura comprende un delegado de almacenamiento de objetos configurado para realizar control de lectura-escritura sobre el recurso de almacenamiento del disco duro y un agente de almacenamiento SAN configurado para realizar control de lectura-escritura sobre el recurso de almacenamiento de la matriz de almacenamiento, y el procedimiento comprende:
    determinar, mediante el controlador de metadatos, estados de despliegue del delegado de almacenamiento de objetos y el agente de almacenamiento SAN en el nodo servidor, generar informacion de visualizacion del modulo de control de lectura-escritura segun los estados de despliegue determinados, incluyendo dicha informacion de visualizacion el servidor en el que esta desplegado el delegado de almacenamiento de objetos o el agente de almacenamiento SAN, y suministrar la informacion de visualizacion del modulo de control de lectura-escritura al modulo de servicio de bloque virtual, utilizandose la informacion de visualizacion del modulo de control de lectura- escritura para indicar informacion de encaminamiento de cada modulo de control de lectura-escritura;
    dividir, mediante el controlador de metadatos, los recursos de almacenamiento de los discos duros y las matrices de almacenamiento en multiples particiones de almacenamiento, donde las multiples particiones de almacenamiento forman un conjunto de recursos de almacenamiento compartidos;
    asignar, mediante el controlador de metadatos, un modulo de control de lectura-escritura a cada particion de almacenamiento;
    generar, mediante el controlador de metadatos, informacion de particion global y suministrar la informacion de particion global al modulo de servicio de bloque virtual, donde la informacion de particion global registra una correspondencia entre cada particion de almacenamiento en el conjunto de recursos de almacenamiento compartidos y el modulo de control de lectura-escritura asignado, de cada particion de almacenamiento;
    cuando se recibe, mediante el modulo de servicio de bloque virtual, un mensaje de solicitud de almacenamiento, llevar a cabo el proceso siguiente:
    determinar, mediante el modulo de servicio de bloque virtual, una particion de almacenamiento correspondiente al mensaje de solicitud de almacenamiento;
    determinar, mediante el modulo de servicio de bloque virtual, segun la informacion de particion global, un modulo de control de lectura-escritura que corresponde a la particion de almacenamiento correspondiente al mensaje de solicitud de almacenamiento;
    determinar, mediante el modulo de servicio de bloque virtual, informacion de encaminamiento del modulo de control de lectura-escritura determinado, segun la informacion de visualizacion del modulo de control de lectura-escritura; y
    enviar, mediante el modulo de servicio de bloque virtual, el mensaje de solicitud de almacenamiento al modulo de control de lectura-escritura determinado, de acuerdo con la informacion de encaminamiento del modulo de control de lectura-escritura determinado, de tal modo que el modulo de control de lectura-escritura determinado lleva a cabo una operacion solicitada por el mensaje de solicitud de almacenamiento.
  2. 2. El procedimiento segun la reivindicacion 1, en el que la determinacion de una particion de almacenamiento correspondiente al mensaje de solicitud de almacenamiento comprende:
    determinar, mediante el modulo de servicio de bloque virtual, un ID de un volumen de usuario en el que estan localizados los datos a gestionar de acuerdo con el mensaje de solicitud de almacenamiento y una direccion de bloque logico, LBA, de por lo menos un bloque de datos de los datos a gestionar; y
    determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, una particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos.
  3. 3. El procedimiento segun la reivindicacion 2, en el que procedimiento comprende ademas:
    configurar, mediante el modulo de servicio de bloque virtual, metadatos de cada particion de almacenamiento, en el que los metadatos de cada particion de almacenamiento registran una correspondencia entre un ID de la particion de almacenamiento y un ID de cada bloque de datos asignado a la particion de almacenamiento, en el que
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    la determinacion, mediante el modulo de servicio de bloque virtual, de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, de la particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos, comprende:
    determinar, mediante el modulo de servicio de bloque virtual, un ID de dicho por lo menos un bloque de datos de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, consultar los metadatos de cada particion de almacenamiento y determinar un ID de la particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos.
  4. 4. El procedimiento segun la reivindicacion 2 o 3, en el que la recepcion, mediante el modulo de servicio de bloque virtual, de un mensaje de solicitud de almacenamiento comprende: recibir, mediante el modulo de servicio de bloque virtual, un comando de creacion de volumen de usuario, en el que el comando de creacion de volumen de usuario indica el tamano del volumen de usuario, en el que
    la determinacion, mediante el modulo de servicio de bloque virtual, de un ID de un volumen de usuario en el que estan situados los datos a gestionar de acuerdo con el mensaje de solicitud de almacenamiento y de una direccion de bloque logico, LBA, de por lo menos un bloque de datos de los datos a gestionar, y la determinacion, de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, de la particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos, comprende:
    asignar, mediante el modulo de servicio de bloque virtual, el ID del volumen de usuario al volumen de usuario;
    determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con el tamano del volumen de usuario, el tamano de un recurso de almacenamiento inicial asignado al volumen de usuario, y determinar la LBA de dicho por lo menos un bloque de datos de acuerdo con el tamano del recurso de almacenamiento inicial; y
    determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, la particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos.
  5. 5. El procedimiento segun la reivindicacion 2 o 3, en el que la recepcion, mediante el modulo de servicio de bloque virtual, de un mensaje de solicitud de almacenamiento comprende: recibir, mediante el modulo de servicio de bloque virtual, una solicitud de operacion de escritura de datos, en el que
    la determinacion, mediante el modulo de servicio de bloque virtual, de un ID de un volumen de usuario en el que estan situados los datos a gestionar de acuerdo con el mensaje de solicitud de almacenamiento y de una direccion de bloque logico, LBA, de por lo menos un bloque de datos de los datos a gestionar, y la determinacion, de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, de la particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos, comprende:
    determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con un nombre de archivo contenido en la solicitud de operacion de escritura de datos, un ID de un volumen de usuario correspondiente a una operacion de escritura actual;
    dividir, mediante el modulo de servicio de bloque virtual, los datos a escribir en multiples bloques de datos a escribir, y asignar una LBA a cada bloque de datos a escribir; y
    determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con el ID del volumen de usuario correspondiente a la operacion de escritura actual, y con la LBA de cada bloque de datos a escribir, la particion de almacenamiento correspondiente a cada bloque de datos a escribir.
  6. 6. El procedimiento segun la reivindicacion 2 o 3, en el que la recepcion, mediante el modulo de servicio de bloque virtual, de un mensaje de solicitud de almacenamiento comprende: recibir, mediante el modulo de servicio de bloque virtual, una solicitud de operacion de lectura de datos, en el que la solicitud de operacion de lectura de datos contiene un nombre de archivo y un desplazamiento de los datos a leer, en el que
    la determinacion, mediante el modulo de servicio de bloque virtual, de un ID de un volumen de usuario en el que estan situados los datos a gestionar de acuerdo con el mensaje de solicitud de almacenamiento y de una direccion de bloque logico, LBA, de por lo menos un bloque de datos de los datos a gestionar, y la determinacion, de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, de la particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos, comprende:
    determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con el nombre de archivo contenido en la solicitud de operacion de lectura de datos, un ID de un volumen de usuario correspondiente a una operacion de lectura actual;
    determinar, mediante el modulo de servicio de bloque virtual, LBAs de multiples bloques de datos a leer, de acuerdo con el desplazamiento de los datos a leer; y
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con el ID del volumen de usuario correspondiente a la operacion de lectura actual, y con la LBA de cada bloque de datos a leer, la particion de almacenamiento correspondiente a cada bloque de datos a leer;
  7. 7. El procedimiento segun la reivindicacion 6, en el que los multiples bloques de datos a leer que son de un tamano uniforme se determinan en funcion del desplazamiento de los datos a leer.
  8. 8. El procedimiento segun la reivindicacion 7, en el que la determinacion, mediante el modulo de servicio de bloque virtual, segun la informacion de particion global, de un modulo de control de lectura-escritura correspondiente al mensaje de solicitud de almacenamiento; y el envfo del mensaje de solicitud de almacenamiento al modulo de control de lectura-escritura determinado, de tal modo que el modulo de control de lectura-escritura determinado lleva a cabo una operacion solicitada por el mensaje de solicitud de almacenamiento, comprende:
    determinar, mediante el modulo de servicio de bloque virtual, de acuerdo con la informacion de particion global, los modulos de control de lectura-escritura determinados que son correspondientes a las particiones de almacenamiento correspondientes a los multiples bloques de datos a leer;
    generar, mediante el modulo de servicio de bloque virtual, multiples comandos de lectura de bloque de datos, donde cada comando de lectura de bloque de datos es correspondiente a un bloque de datos a leer, y cada comando de lectura de bloque de datos lleva el bloque de datos a leer y un ID del bloque de datos a leer; y
    enviar por separado, mediante el modulo de servicio de bloque virtual, cada comando de lectura de bloque de datos al modulo de control de lectura-escritura determinado, correspondiente a cada bloque de datos a leer, de tal modo que el modulo de control de lectura-escritura determinado correspondiente a cada bloque de datos a leer lee cada bloque de datos a leer.
  9. 9. Un sistema de grupo de servidores, en el que el sistema de grupo de servidores comprende uno o varios nodos servidores y uno o varios nodos de almacenamiento en red, cada nodo servidor comprende un disco duro, cada nodo de almacenamiento en red comprende una matriz de almacenamiento, un controlador de almacenamiento distribuido se ejecuta en cada nodo servidor, y el controlador de almacenamiento distribuido comprende un controlador de metadatos, un modulo de servicio de bloque virtual y un modulo de control de lectura-escritura, el modulo de control de lectura-escritura comprende un delegado de almacenamiento de objetos configurado para realizar control de lectura-escritura sobre el recurso de almacenamiento del disco duro y un agente de almacenamiento SAN configurado para realizar control de lectura-escritura sobre el recurso de almacenamiento de la matriz de almacenamiento; en el que
    el controlador de metadatos, configurado para determinar estados de despliegue del delegado de almacenamiento de objetos y el agente de almacenamiento SAN en el nodo servidor, generar informacion de visualizacion del modulo de control de lectura-escritura segun los estados de despliegue determinados, incluyendo dicha informacion de visualizacion el servidor en el que esta desplegado el delegado de almacenamiento de objetos o el agente de almacenamiento SAN, y suministrar la informacion de visualizacion del modulo de control de lectura-escritura al modulo de servicio de bloque virtual, la informacion de visualizacion del modulo de control de lectura-escritura se utiliza para indicar informacion de encaminamiento de cada modulo de control de lectura-escritura;
    el controlador de metadatos esta configurado ademas para: dividir recursos de almacenamiento de los discos duros y de las matrices de almacenamiento en multiples particiones de almacenamiento, donde las multiples particiones de almacenamiento forman un conjunto de recursos de almacenamiento compartidos; asignar un modulo de control de lectura-escritura a cada particion de almacenamiento; generar informacion de particion global, donde la informacion de particion global registra una correspondencia entre cada particion de almacenamiento en el conjunto de recursos de almacenamiento compartidos y el modulo de control de lectura-escritura asignado, de cada particion de almacenamiento; y suministrar la informacion de particion global a un modulo de servicio de bloque virtual;
    el modulo de servicio de bloque virtual, configurado para: estar situado frente a la capa de servicio, y recibir un mensaje de solicitud de almacenamiento; determinar una particion de almacenamiento correspondiente al mensaje de solicitud de almacenamiento; determinar, segun la informacion de particion global, un modulo de control de lectura-escritura que corresponde a la particion de almacenamiento correspondiente al mensaje de solicitud de almacenamiento; determinar informacion de encaminamiento del modulo de control de lectura-escritura determinado segun la informacion de visualizacion del modulo de control de lectura-escritura, y enviar el mensaje de solicitud de almacenamiento al modulo de control de lectura-escritura determinado, de acuerdo con la informacion de encaminamiento del modulo de control de lectura-escritura determinado; y
    el modulo de control de lectura-escritura, configurado para estar frente al disco duro o al nodo de almacenamiento en red, y llevar a cabo una operacion solicitada por el mensaje de solicitud de almacenamiento.
  10. 10. El sistema segun la reivindicacion 9, en el que:
    el controlador de metadatos esta configurado espedficamente para asignar el delegado de almacenamiento de objetos a una particion de almacenamiento del disco duro local, como un modulo de control de lectura-escritura, y
    5
    10
    15
    20
    25
    30
    asignar el agente de almacenamiento SAN a una particion de almacenamiento de la matriz de almacenamiento, como un modulo de control de lectura-escritura;
    el delegado de almacenamiento de objetos esta configurado para: recibir el mensaje de solicitud de almacenamiento, determinar una direccion ffsica correspondiente al mensaje de solicitud de almacenamiento, y llevar a cabo, en funcion de la direccion ffsica, la operacion solicitada por el mensaje de solicitud de almacenamiento en el disco duro; y
    el agente de almacenamiento SAN esta configurado para: recibir el mensaje de solicitud de almacenamiento, determinar una direccion logica que es del nodo de almacenamiento en red y corresponde al mensaje de solicitud de almacenamiento, y llevar a cabo, de acuerdo con la direccion logica, la operacion solicitada por el mensaje de solicitud de almacenamiento en la matriz de almacenamiento.
  11. 11. El sistema segun la reivindicacion 9, en el que el modulo de servicio de bloque virtual esta configurado espedficamente para determinar un ID de un volumen de usuario en el que estan situados datos a gestionar segun el mensaje de solicitud de almacenamiento y una direccion de bloque logico LBA de por lo menos un bloque de datos de los datos a gestionar, y determinar, de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos, una particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos.
  12. 12. El sistema segun la reivindicacion 11, en el que el modulo de servicio de bloque virtual esta configurado espedficamente para: configurar metadatos de cada particion de almacenamiento, en el que los metadatos de cada particion de almacenamiento registran una correspondencia entre un ID de la particion de almacenamiento y un ID de cada bloque de datos asignado a la particion de almacenamiento; determinar un ID dicho por lo menos un bloque de datos de acuerdo con el ID del volumen de usuario y con la LBA de dicho por lo menos un bloque de datos; consultar los metadatos de cada particion de almacenamiento; y determinar un ID de la particion de almacenamiento correspondiente a dicho por lo menos un bloque de datos.
  13. 13. El sistema segun la reivindicacion 9, en el que el controlador de metadatos esta configurado espedficamente para: determinar desplegar el delegado de almacenamiento de objetos en un nodo servidor que tiene un recurso de disco duro en el sistema de grupo de servidores, y determinar desplegar el agente de almacenamiento SAN en un nodo servidor con poca carga en el sistema de grupo de servidores.
  14. 14. El sistema segun la reivindicacion 9, en el que el controlador de metadatos esta configurado ademas para recopilar un recurso de almacenamiento disponible del disco duro del nodo servidor y un recurso de almacenamiento disponible de la matriz de almacenamiento del nodo de almacenamiento en red, y dividir los recursos de almacenamiento disponibles del disco duro y de la matriz de almacenamiento en multiples particiones de almacenamiento.
ES13869766.9T 2012-12-31 2013-12-31 Procedimiento y sistema para compartir recursos de almacenamiento Active ES2624412T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
PCT/CN2012/088109 WO2014101218A1 (zh) 2012-12-31 2012-12-31 一种计算存储融合的集群系统
WOPCT/CN2012/088109 2012-12-31
PCT/CN2013/091253 WO2014101896A1 (zh) 2012-12-31 2013-12-31 一种共享存储资源的方法和系统

Publications (1)

Publication Number Publication Date
ES2624412T3 true ES2624412T3 (es) 2017-07-14

Family

ID=49866757

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13869766.9T Active ES2624412T3 (es) 2012-12-31 2013-12-31 Procedimiento y sistema para compartir recursos de almacenamiento

Country Status (6)

Country Link
US (4) US10481804B2 (es)
EP (2) EP3188449B1 (es)
JP (1) JP6019513B2 (es)
CN (1) CN103503414B (es)
ES (1) ES2624412T3 (es)
WO (2) WO2014101218A1 (es)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105872031B (zh) * 2016-03-26 2019-06-14 天津书生云科技有限公司 存储系统
CN105657066B (zh) * 2016-03-23 2019-06-14 天津书生云科技有限公司 用于存储系统的负载再均衡方法及装置
US20190028542A1 (en) * 2016-02-03 2019-01-24 Surcloud Corp. Method and device for transmitting data
CN103503414B (zh) 2012-12-31 2016-03-09 华为技术有限公司 一种计算存储融合的集群系统
US9882984B2 (en) 2013-08-02 2018-01-30 International Business Machines Corporation Cache migration management in a virtualized distributed computing system
CN106105152B (zh) 2014-05-22 2018-07-13 华为技术有限公司 一种节点互连装置和服务器系统
CN104135514B (zh) * 2014-07-25 2017-10-17 英业达科技有限公司 融合式虚拟化存储系统
KR101912728B1 (ko) * 2014-11-05 2018-10-29 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 처리 방법 및 장치
CN104486444A (zh) * 2014-12-30 2015-04-01 北京天云融创软件技术有限公司 云管理平台的异构api转化系统
US10425352B2 (en) * 2015-03-09 2019-09-24 International Business Machines Corporation Policy driven storage hardware allocation
WO2016181554A1 (ja) * 2015-05-14 2016-11-17 株式会社日立製作所 サーバストレージシステムを含んだ計算機システム
US10346237B1 (en) * 2015-08-28 2019-07-09 EMC IP Holding Company LLC System and method to predict reliability of backup software
CN107851062A (zh) * 2015-12-31 2018-03-27 华为技术有限公司 一种主机集群中缓存管理方法及主机
WO2017113280A1 (zh) * 2015-12-31 2017-07-06 华为技术有限公司 分布式存储系统及管理元数据的方法
US10073725B2 (en) * 2016-02-11 2018-09-11 Micron Technology, Inc. Distributed input/output virtualization
US11086801B1 (en) * 2016-04-14 2021-08-10 Amazon Technologies, Inc. Dynamic resource management of network device
CN106657356A (zh) * 2016-12-29 2017-05-10 郑州云海信息技术有限公司 一种云存储系统的数据写入方法、装置及云存储系统
US10768986B2 (en) 2017-01-06 2020-09-08 International Business Machines Corporation Management and utilization of storage capacities in a converged system
US10824355B2 (en) 2017-01-10 2020-11-03 International Business Machines Corporation Hierarchical management of storage capacity and data volumes in a converged system
US10938901B2 (en) 2017-01-11 2021-03-02 International Business Machines Corporation Management and utilization of data volumes in a converged system
US10394454B2 (en) * 2017-01-13 2019-08-27 Arm Limited Partitioning of memory system resources or performance monitoring
CN106844052A (zh) * 2017-01-22 2017-06-13 郑州云海信息技术有限公司 一种基于Windows Server构建融合集群的方法及装置
CN106919456A (zh) * 2017-03-01 2017-07-04 郑州云海信息技术有限公司 一种实现服务器串联的模块
US10454844B2 (en) * 2017-03-08 2019-10-22 A10 Networks, Inc. Dynamic capacity planning for application delivery platform across multiple cloud deployment
WO2019071595A1 (zh) * 2017-10-13 2019-04-18 华为技术有限公司 分布式块存储系统中数据存储方法、装置及计算机可读存储介质
CN107729536B (zh) * 2017-10-31 2020-09-08 新华三技术有限公司 一种数据存储方法和装置
CN107807794B (zh) * 2017-10-31 2021-02-26 新华三技术有限公司 一种数据存储方法和装置
CN108235751B (zh) 2017-12-18 2020-04-14 华为技术有限公司 识别对象存储设备亚健康的方法、装置和数据存储系统
US11194746B2 (en) * 2017-12-22 2021-12-07 Seagate Technology Llc Exchanging drive information
CN109039743B (zh) * 2018-08-03 2022-05-10 陕西中光电信高科技有限公司 分布式存储ceph群集网络的集中管理方法
CN109120556B (zh) * 2018-08-21 2019-07-09 广州市品高软件股份有限公司 一种云主机访问对象存储服务器的方法及系统
US11106378B2 (en) 2018-11-21 2021-08-31 At&T Intellectual Property I, L.P. Record information management based on self describing attributes
US11042411B2 (en) 2019-03-15 2021-06-22 Toshiba Memory Corporation Data storage resource management
CN111786930A (zh) * 2019-04-03 2020-10-16 上海宽带技术及应用工程研究中心 虚拟现实的数据共享系统、方法、装置、终端、及介质
CN112099728B (zh) * 2019-06-18 2022-09-16 华为技术有限公司 一种执行写操作、读操作的方法及装置
CN111158595B (zh) * 2019-12-27 2023-05-23 中国建设银行股份有限公司 企业级异构存储资源调度方法及系统
CN111209253B (zh) * 2019-12-30 2023-10-24 河南创新科信息技术有限公司 分布式存储设备性能提升方法、装置及分布式存储设备
CN111459679B (zh) * 2020-04-03 2023-10-27 宁波大学 一种用于5g通信测试仪表测试数据的并行处理方法
CN111625401B (zh) * 2020-05-29 2023-03-21 浪潮电子信息产业股份有限公司 基于集群文件系统的数据备份方法、装置及可读存储介质
CN113946276B (zh) * 2020-07-16 2024-06-04 北京达佳互联信息技术有限公司 集群中的磁盘管理方法、装置及服务器
CN111949217A (zh) * 2020-08-21 2020-11-17 广东韶钢松山股份有限公司 超融合一体机及其软件定义存储sds处理方法和系统
CN112948300B (zh) * 2021-01-19 2023-02-10 浙江大华技术股份有限公司 服务器、存算一体设备以及服务器系统
US11016688B1 (en) * 2021-01-06 2021-05-25 Open Drives LLC Real-time localized data access in a distributed data storage system
CN113031858B (zh) * 2021-02-10 2022-09-20 山东英信计算机技术有限公司 一种基于多双活存储的数据处理方法、系统及介质
CN113342509B (zh) * 2021-08-03 2021-12-07 北京达佳互联信息技术有限公司 数据处理方法、装置、电子设备及存储介质
CN113821165B (zh) * 2021-08-20 2023-12-22 济南浪潮数据技术有限公司 一种分布式集群融合存储方法、系统及设备
CN114143190A (zh) * 2021-11-29 2022-03-04 中国建设银行股份有限公司 一种数据中心资源池构建方法及相关设备

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389503B1 (en) 1997-08-04 2002-05-14 Exabyte Corporation Tape drive emulation by removable disk drive and media formatted therefor
US6829610B1 (en) * 1999-03-11 2004-12-07 Microsoft Corporation Scalable storage system supporting multi-level query resolution
US6732166B1 (en) 1999-05-28 2004-05-04 Intel Corporation Method of distributed resource management of I/O devices in a network cluster
JP2001337850A (ja) 2000-05-25 2001-12-07 Hitachi Ltd 記憶装置および記憶装置の制御方法
WO2003007154A2 (en) * 2001-07-09 2003-01-23 Cable & Wireless Internet Services, Inc. Methods and systems for shared storage virtualization
EP1456766A1 (en) 2001-12-10 2004-09-15 Monosphere Limited Managing storage resources attached to a data network
US7379990B2 (en) 2002-08-12 2008-05-27 Tsao Sheng Ted Tai Distributed virtual SAN
EP1546884A4 (en) * 2002-09-16 2007-08-01 Tigi Corp STORAGE SYSTEM ARCHITECTURES AND MULTI-CACHE ARRANGEMENTS
US7624170B2 (en) * 2002-09-26 2009-11-24 International Business Machines Corporation Integrated storage appliance
US7565566B2 (en) 2003-04-23 2009-07-21 Dot Hill Systems Corporation Network storage appliance with an integrated switch
US7334064B2 (en) 2003-04-23 2008-02-19 Dot Hill Systems Corporation Application server blade for embedded storage appliance
US7380039B2 (en) * 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
CN100337218C (zh) 2005-02-23 2007-09-12 北京邦诺存储科技有限公司 网络存储系统中的数据管理方法及其构建的网络存储系统
JP4718285B2 (ja) 2005-09-22 2011-07-06 株式会社日立製作所 ファイル管理機能を備えたコンピュータシステム、ストレージ装置およびファイル管理方法
CN101169725A (zh) * 2006-10-23 2008-04-30 国际商业机器公司 随需个人计算机供应系统和方法
US8091087B2 (en) * 2007-04-20 2012-01-03 Microsoft Corporation Scheduling of new job within a start time range based on calculated current load and predicted load value of the new job on media resources
US8706914B2 (en) * 2007-04-23 2014-04-22 David D. Duchesneau Computing infrastructure
US8396937B1 (en) * 2007-04-30 2013-03-12 Oracle America, Inc. Efficient hardware scheme to support cross-cluster transactional memory
US9824006B2 (en) * 2007-08-13 2017-11-21 Digital Kiva, Inc. Apparatus and system for object-based storage solid-state device
US20090049236A1 (en) * 2007-08-15 2009-02-19 Hitachi, Ltd. System and method for data protection management for network storage
CN101374192A (zh) 2007-09-26 2009-02-25 北京数字太和科技有限责任公司 一种利用数字电视网络下载并存储多媒体数据的方法
JP2009223442A (ja) * 2008-03-13 2009-10-01 Hitachi Ltd ストレージシステム
US8654762B2 (en) * 2008-05-21 2014-02-18 Telefonaktiebolaget Lm Ericsson (Publ) Resource pooling in a blade cluster switching center server
CN100555206C (zh) * 2008-05-27 2009-10-28 中国科学院计算技术研究所 一种绑定计算资源和存储资源的装置
CN101730313A (zh) 2008-10-10 2010-06-09 中国移动通信集团公司 多载波移动通信系统中的通信方法、基站以及通信系统
US8525925B2 (en) * 2008-12-29 2013-09-03 Red.Com, Inc. Modular digital camera
JP5286192B2 (ja) * 2009-08-12 2013-09-11 株式会社日立製作所 ストレージシステムの容量を管理する管理計算機及びストレージシステムの容量管理方法
JP5999645B2 (ja) 2009-09-08 2016-10-05 ロンギチュード エンタープライズ フラッシュ エスエイアールエル ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
US20110087833A1 (en) 2009-10-08 2011-04-14 Advanced Micro Devices, Inc. Local nonvolatile write-through cache for a data server having network-based data storage, and related operating methods
US20110153570A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Data replication and recovery method in asymmetric clustered distributed file system
US8290919B1 (en) * 2010-08-27 2012-10-16 Disney Enterprises, Inc. System and method for distributing and accessing files in a distributed storage system
CN102480791B (zh) 2010-11-30 2014-05-21 普天信息技术研究院有限公司 一种协作多点传输的调度方法
CN102076096B (zh) 2011-01-12 2013-08-28 上海华为技术有限公司 一种 CoMP的实现方法、装置及基站
CN102164177A (zh) 2011-03-11 2011-08-24 浪潮(北京)电子信息产业有限公司 一种集群共享存储池的方法、装置及系统
CN102223409B (zh) 2011-06-13 2013-08-21 浪潮(北京)电子信息产业有限公司 一种网络存储资源应用系统及方法
CN102521063B (zh) 2011-11-30 2013-12-25 广东电子工业研究院有限公司 一种适用于虚拟机迁移和容错的共享存储方法
CN102520883B (zh) 2011-12-12 2015-05-20 杭州华三通信技术有限公司 一种数据存取方法及其装置
WO2013112634A1 (en) * 2012-01-23 2013-08-01 The Regents Of The University Of California System and method for implementing transactions using storage device support for atomic updates and flexible interface for managing data logging
CN102664923A (zh) 2012-03-30 2012-09-12 浪潮电子信息产业股份有限公司 一种利用Linux全局文件系统实现共享存储池的方法
CN102739771A (zh) * 2012-04-18 2012-10-17 上海和辰信息技术有限公司 一种支持服务融合的云应用集成管理平台和方法
WO2014000271A1 (zh) 2012-06-29 2014-01-03 华为技术有限公司 一种pcie交换系统、装置及交换方法
CN103503414B (zh) 2012-12-31 2016-03-09 华为技术有限公司 一种计算存储融合的集群系统
US10313251B2 (en) * 2016-02-01 2019-06-04 Netapp, Inc. Methods and systems for managing quality of service in a networked storage environment
US10048896B2 (en) * 2016-03-16 2018-08-14 Netapp, Inc. Methods and systems for determining performance capacity of a resource of a networked storage environment

Also Published As

Publication number Publication date
US20150301759A1 (en) 2015-10-22
CN103503414B (zh) 2016-03-09
US20200065010A1 (en) 2020-02-27
JP2016507814A (ja) 2016-03-10
US20170336998A1 (en) 2017-11-23
US11042311B2 (en) 2021-06-22
EP3188449A1 (en) 2017-07-05
WO2014101218A1 (zh) 2014-07-03
US10481804B2 (en) 2019-11-19
CN103503414A (zh) 2014-01-08
JP6019513B2 (ja) 2016-11-02
EP2930910B1 (en) 2017-02-22
WO2014101896A1 (zh) 2014-07-03
EP2930910A4 (en) 2015-11-25
US9733848B2 (en) 2017-08-15
US20140189128A1 (en) 2014-07-03
EP2930910A1 (en) 2015-10-14
US10082972B2 (en) 2018-09-25
EP3188449B1 (en) 2018-09-19

Similar Documents

Publication Publication Date Title
ES2624412T3 (es) Procedimiento y sistema para compartir recursos de almacenamiento
US10282136B1 (en) Storage system and control method thereof
KR20200017363A (ko) 호스트 스토리지 서비스들을 제공하기 위한 NVMe 프로토콜에 근거하는 하나 이상의 호스트들과 솔리드 스테이트 드라이브(SSD)들 간의 관리되는 스위칭
JP6532871B2 (ja) 仮想化ストレージエリアネットワークのための仮想ディスクブループリント
US8510515B2 (en) Storage system comprising multiple storage apparatuses with both storage virtualization function and capacity virtualization function
KR102414500B1 (ko) 지능형 데이터 배치
KR20140111589A (ko) 가상 기계들을 지원하는 플래시―기반 캐싱 해결책에서의 동적인 캐시 공유를 위한 시스템, 방법 및 컴퓨터―판독가능한 매체
US8954706B2 (en) Storage apparatus, computer system, and control method for storage apparatus
JP2014021972A (ja) 複数の仮想マシンとして動作する複数のシステムによって共有されるストレージ・キャッシングでの柔軟性を改善するための方法および構造
US20160054920A1 (en) Distributed Data Storage System with Key-Based Addressing
JP2020533694A (ja) クラウド・ベースのランクを使用するデータの動的再配置
CN111949210A (zh) 分布式存储系统中元数据存储方法、系统及存储介质
JP2018101334A (ja) メモリシステムおよび制御方法
CN109814805B (zh) 存储系统中分条重组的方法及分条服务器
US20210318826A1 (en) Data Storage Method and Apparatus in Distributed Storage System, and Computer Program Product
JP2018181172A (ja) ストレージ制御装置およびストレージ制御プログラム
JP5597266B2 (ja) ストレージシステム
US9098212B2 (en) Computer system with storage apparatuses including physical and virtual logical storage areas and control method of the computer system
US11269792B2 (en) Dynamic bandwidth management on a storage system
US11481147B1 (en) Buffer allocation techniques
CN112714910B (zh) 分布式存储系统及计算机程序产品
CN117348808A (zh) 分布式块存储的i/o本地化方法、装置和设备