ES2625690T3 - Método y dispositivo de procesamiento de datos en un sistema de clúster - Google Patents
Método y dispositivo de procesamiento de datos en un sistema de clúster Download PDFInfo
- Publication number
- ES2625690T3 ES2625690T3 ES12878640.7T ES12878640T ES2625690T3 ES 2625690 T3 ES2625690 T3 ES 2625690T3 ES 12878640 T ES12878640 T ES 12878640T ES 2625690 T3 ES2625690 T3 ES 2625690T3
- Authority
- ES
- Spain
- Prior art keywords
- physical node
- node
- data block
- sketch
- data
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
Abstract
Un método de procesamiento de datos un sistema de clúster, que comprende: dividir (10) un flujo de datos recibido por un nodo físico actual en m bloques de datos, obtener una huella de cada bloque de datos, y obtener n primeros valores de boceto que representan el flujo de datos de acuerdo con un primer algoritmo, en donde m es un número entero mayor o igual que 1, y n es un número entero mayor o igual que 1 y menor o igual que m; identificar (12), de acuerdo con un segundo algoritmo, un primer nodo físico que corresponde a cada primer valor de boceto en los n primeros valores de boceto y que está en el sistema de clúster, y enviar cada primer valor de boceto al correspondiente primer nodo físico para realizar una consulta; recibir (13) al menos un mensaje de respuesta de los primeros nodos físicos correspondientes a los n primeros valores de boceto, y obtener una primera dirección de almacenamiento a partir del mensaje de respuesta; comparar (14) una huella de un bloque de datos almacenado en una región de almacenamiento a la que apunta la primera dirección de almacenamiento con la huella de cada bloque de datos obtenida mediante la división del flujo de datos para obtener un bloque de datos no duplicados como un nuevo bloque de datos; y obtener (15) un segundo valor de boceto que representa el nuevo bloque de datos, identificar, de acuerdo con el segundo algoritmo, un segundo nodo físico correspondiente al segundo valor de boceto, y almacenar la correspondencia entre el segundo valor de boceto y una dirección de almacenamiento del nuevo bloque de datos representada por el segundo valor de boceto en el segundo nodo físico.
Description
5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Metodo y dispositivo de procesamiento de datos en un sistema de cluster.
Campo tecnico
La presente invencion se refiere a tecnologfas de almacenamiento, y, en particular, a un metodo y aparato de procesamiento de datos en un sistema de cluster.
Antecedentes
A la desduplicacion de datos (para abreviar, desduplicacion) tambien se la denomina compresion inteligente o almacenamiento de instancia unica, y constituye una tecnologfa de almacenamiento capaz de buscar datos duplicados automaticamente, de solo reservar una copia unica para datos iguales, y de utilizar un puntero que apunta a una copia unica para reemplazar otras copias duplicadas, con el fin de cumplir requerimientos para eliminar datos redundantes y reducir capacidad de almacenamiento.
La desduplicacion de datos de cluster (para abreviar, desduplicacion de cluster) se refiere a una tecnologfa que organiza multiples nodos ffsicos de desduplicacion para mejorar el rendimiento y la capacidad de la desduplicacion. En la tecnologfa de desduplicacion de cluster de la tecnica anterior, como regla general, un nodo ffsico que recibe un flujo de datos divide el flujo de datos en distintos bloques de datos, agrupa los bloques de datos obtenidos, y para cada grupo, realiza un muestreo de una parte de la informacion de metadatos a partir de informacion de metadatos de bloques de datos en el grupo y envfa la parte de informacion de metadatos a todos los nodos ffsicos en un sistema de cluster para realizar una consulta; cada nodo ffsico en el sistema de cluster almacena un bloque de datos conocido e informacion de metadatos correspondiente, compara la informacion de metadatos muestreada con la informacion de metadatos almacenada en cada nodo ffsico, obtiene un nodo ffsico objetivo que tiene la mayor parte de bloques de datos duplicados de un resultado de consulta, y a continuacion envfa toda la informacion de bloques de datos de un grupo de datos correspondiente a la informacion de metadatos muestreada hacia el nodo ffsico objetivo para realizar una consulta de datos duplicados.
La patente de Estados Unidos US 2008/270729 describe una solucion para enrutar un segmento hacia un nodo de cluster para desduplicacion, cuando se recibe el flujo de datos, el flujo de datos se divide en segmentos, cada uno de los cuales incluye sub-segmentos; se obtiene una huella para cada sub-segmento del segmento; los nodos de cluster estan asociados a un segmento basado en un calculo realizado en el contenido del segmento; y el cliente envfa el segmento y las huellas para sub-segmentos del segmento a un nodo de cluster asociado al segmento para realizar una desduplicacion.
La tecnica anterior presenta las siguientes desventajas: En la tecnologfa de desduplicacion de cluster de la tecnica anterior, es preciso enviar la informacion de metadatos muestreada a todos los nodos ffsicos para realizar una consulta, lo cual genera una gran cantidad de tiempos de interaccion entre los nodos ffsicos en un proceso de desduplicacion, y en el caso de que existan muchos nodos ffsicos en un sistema de cluster, cuando cada nodo ffsico realiza una desduplicacion, aumenta la cantidad de calculo con un incremento del numero de nodos ffsicos en el sistema de cluster, lo cual da lugar a la degradacion del rendimiento de desduplicacion del sistema.
Compendio
La presente invencion ofrece un metodo y aparato de procesamiento de datos en un sistema de cluster, con el fin de mejorar, de forma eficaz, el rendimiento de desduplicacion del sistema de cluster.
Para conseguir el objetivo de la presente invencion, como primer aspecto la presente invencion ofrece un metodo de procesamiento de datos en un sistema de cluster, en el que el metodo incluye:
dividir un flujo de datos recibido por un nodo ffsico actual en m bloques de datos, obtener una huella de cada bloque de datos, y obtener n primeros valores de boceto que representan el flujo de datos de acuerdo con un primer algoritmo, donde m es un numero entero mayor o igual que 1, y n es un numero entero mayor o igual que 1 y menor o igual que m;
identificar, de acuerdo con un segundo algoritmo, un primer nodo ffsico que corresponde a cada primer valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster, y enviar cada primer valor de boceto al correspondiente primer nodo ffsico para realizar una consulta;
recibir al menos un mensaje de respuesta de primeros nodos ffsicos correspondientes a los n primeros valores de boceto, y obtener una direccion de almacenamiento correspondiente al primer valor de boceto a partir del mensaje de respuesta;
obtener una primera direccion de almacenamiento a partir de todas las direcciones de almacenamiento recibidas, comparar una huella de un bloque de datos almacenado en una region de almacenamiento a la que apunta la primera direccion de almacenamiento con la huella de cada bloque de datos obtenida dividiendo el flujo de datos para obtener un bloque de datos no duplicados como un nuevo bloque de datos; y
2
5
10
15
20
25
30
35
40
45
50
obtener un segundo valor de boceto que representa el nuevo bloque de datos, identificar, de acuerdo con el segundo algoritmo, un segundo nodo ffsico correspondiente al segundo valor de boceto, almacenar la correspondencia entre el segundo valor de boceto y una direccion de almacenamiento del nuevo bloque de datos representada por el segundo valor de boceto en el segundo nodo ffsico.
En una posible primera manera del primer aspecto, obtener una primera direccion de almacenamiento a partir de todas las direcciones de almacenamiento recibidas incluye: obtener, del mensaje de respuesta, la direccion de almacenamiento correspondiente al primer valor de boceto, recoger estadfsticas sobre la cantidad de accesos de cada direccion de almacenamiento que lleva el mensaje de respuesta, y seleccionar s direcciones de almacenamiento que tienen la mayor cantidad de accesos como la primera direccion de almacenamiento, donde s es mayor o igual que 1.
En una segunda posible manera, el metodo ademas incluye: de acuerdo con una pofftica de almacenamiento pre- establecida, seleccionar una direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y una huella del nuevo bloque de datos, y cuando se cumple una condicion de almacenamiento pre-establecida, escribir el nuevo bloque de datos y la huella del nuevo bloque de datos en una region de almacenamiento a la que apunta la direccion de almacenamiento seleccionada.
En una posible tercera manera, y bajo la condicion de que se cumpla una condicion de almacenamiento pre- establecida, el metodo incluye: el nuevo bloque de datos es almacenado en una memoria cache del nodo ffsico actual, y cuando los datos en la memoria cache del nodo ffsico actual alcanzan un segundo umbral pre-establecido, se cumple la condicion de almacenamiento pre-establecida.
Como segundo aspecto la presente invencion ofrece un aparato de procesamiento de datos en un sistema de cluster, en el que el aparato incluye:
una unidad divisora, configurada para dividir un flujo de datos recibido por un nodo ffsico actual en m bloques de datos, y obtener una huella de cada bloque de datos, donde m es un numero entero mayor o igual que 1;
una unidad de obtencion de valor de boceto, configurada para obtener n primeros valores de boceto que representan el flujo de datos de acuerdo con un primer algoritmo donde n es un numero entero mayor o igual que 1 y menor o igual que m;
una unidad de identificacion, configurada para identificar, de acuerdo con un segundo algoritmo, un primer nodo ffsico que corresponde a cada valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster;
una unidad de envffo, configurada para enviar cada primer valor de boceto al correspondiente primer nodo ffsico para realizar una consulta;
una unidad de recepcion, configurada para recibir un mensaje de respuesta del primer nodo ffsico y obtener una primera direccion de almacenamiento a partir del mensaje de respuesta;
una unidad de consulta, configurada para comparar una huella de un bloque de datos en una region de almacenamiento a la que apunta la primera direccion de almacenamiento con la huella de cada bloque de datos obtenida dividiendo el flujo de datos recibido para obtener un bloque de datos no duplicados como un nuevo bloque de datos; y
una unidad de actualizacion, configurada para obtener un segundo valor de boceto que representa el nuevo bloque de datos, identificar, de acuerdo con el segundo algoritmo, un segundo nodo ffsico correspondiente al segundo valor de boceto, y almacenar la correspondencia entre el segundo valor de boceto y una direccion de almacenamiento del nuevo bloque de datos representada por el segundo valor de boceto en el segundo nodo ffsico.
En una segunda posible manera de implementacion, el aparato ademas incluye:
una unidad de obtencion de direccion de escritura, configurada para: de acuerdo con una pofftica de almacenamiento pre-establecida, seleccionar una direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y una huella del nuevo bloque de datos; y
una unidad de escritura, configurada para: cuando se cumple una condicion de almacenamiento pre-establecida, escribir el nuevo bloque de datos y la huella del nuevo bloque de datos en una region de almacenamiento correspondiente a la direccion de almacenamiento seleccionada.
En una tercera posible manera de implementacion, la unidad de escritura esta espedficamente configurada para almacenar el nuevo bloque de datos en una memoria cache del nodo ffsico actual, y cuando los datos en la memoria cache del nodo ffsico actual alcanzan un segundo umbral pre-establecido, y se cumple la condicion de almacenamiento pre-establecida, escribir el nuevo bloque de datos y la huella del nuevo bloque de datos en la region de almacenamiento correspondiente a la direccion de almacenamiento seleccionada.
5
10
15
20
25
30
35
40
45
Como otra forma de implementacion del segundo aspecto, la presente invencion ademas ofrece un aparato de procesamiento de datos en un sistema de cluster, donde el aparato incluye un procesador, una memoria, un bus, donde el procesador y la memoria se comunican entre sf mediante el bus;
la memoria esta configurada para almacenar un programa; y
el procesador esta configurado para ejecutar el programa en la memoria;
el procesador esta configurado para ejecutar el programa en la memoria; donde
el programa incluye:
una unidad divisora, configurada para dividir un flujo de datos recibido por un nodo ffsico actual en m bloques de datos, y obtener una huella de cada bloque de datos, donde m es un numero entero mayor o igual que 1;
una unidad de identificacion, configurada para identificar, de acuerdo con un segundo algoritmo, un primer nodo ffsico que corresponde a cada valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster;
una unidad de envfo, configurada para enviar cada primer valor de boceto al correspondiente primer nodo ffsico para realizar una consulta;
una unidad de recepcion, configurada para recibir un mensaje de respuesta del primer nodo ffsico y obtener una primera direccion de almacenamiento a partir del mensaje de respuesta;
una unidad de consulta, configurada para comparar una huella de un bloque de datos en una region de almacenamiento a la que apunta la primera direccion de almacenamiento con la huella de cada bloque de datos obtenida dividiendo el flujo de datos recibido, y realizar una consulta a un bloque de datos duplicados, donde un bloque de datos no duplicados obtenido se utiliza como un nuevo bloque de datos; y
una unidad de actualizacion, configurada para obtener al menos un segundo valor de boceto que representa el nuevo bloque de datos, identificar, de acuerdo con el segundo algoritmo, un segundo nodo ffsico correspondiente a cada segundo valor de boceto en el segundo valor de boceto, y almacenar la correspondencia entre cada segundo valor de boceto y una direccion de almacenamiento de un bloque de datos representada por cada segundo valor de boceto en el correspondiente segundo nodo ffsico.
En esta forma de implementacion, la unidad de recepcion puede incluir
una subunidad de recogida de estadfsticas, configurada para obtener una direccion de almacenamiento correspondiente al primer valor de boceto a partir del mensaje de respuesta, y recoger estadfsticas sobre el numero de accesos de cada direccion de almacenamiento que lleva el mensaje de respuesta; y
una subunidad de obtencion de direccion, configurada para seleccionar, de acuerdo con un resultado estadfstico de la subunidad de recogida de estadfsticas, s direcciones de almacenamiento que tienen el mayor numero de accesos como la primera direccion de almacenamiento, donde s es mayor o igual que 1.
En combinacion con el segundo aspecto y la primera posible manera del segundo aspecto, en una posible segunda manera de implementacion, el aparato ademas incluye:
una unidad de obtencion de direccion de escritura, configurada para: de acuerdo con una pofftica de almacenamiento pre-establecida, seleccionar una direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y una huella del nuevo bloque de datos; y
una unidad de escritura, configurada para: cuando se cumple una condicion de almacenamiento pre-establecida, escribir el nuevo bloque de datos y la huella del nuevo bloque de datos en una region de almacenamiento correspondiente a la direccion de almacenamiento seleccionada.
Asimismo, en esta forma de implementacion segun el segundo aspecto de la presente invencion, la unidad de escritura puede estar espedficamente configurada para almacenar el nuevo bloque de datos en una memoria cache del nodo ffsico actual, y cuando los datos en la memoria cache del nodo ffsico actual alcanzan un segundo umbral pre-establecido, y se cumple la condicion de almacenamiento pre-establecida, escribir el nuevo bloque de datos y la huella del nuevo bloque de datos en la region de almacenamiento correspondiente a la direccion de almacenamiento seleccionada.
Como tercer aspecto, la presente invencion ofrece un producto de programa informatico para almacenamiento de datos, donde el producto de programa informatico incluye un medio de almacenamiento legible por ordenador que almacena un codigo de programa, y una instruccion incluida en el codigo de programa se utiliza para:
5
10
15
20
25
30
35
40
45
50
dividir un flujo de datos recibido por un nodo ffsico actual en m bloques de datos, obtener una huella de cada bloque de datos, y obtener, de acuerdo con un primer algoritmo, n primeros valores de boceto que representan el flujo de datos, donde m es un numero entero mayor o igual que 1, y n es un numero entero mayor o igual que 1 y menor o igual que m;
identificar, de acuerdo con un segundo algoritmo, un primer nodo ffsico que corresponde a cada primer valor de boceto en los n primeros valores de boceto y esta en el sistema de cluster, y enviar cada primer valor de boceto al correspondiente primer nodo ffsico para realizar una consulta;
recibir al menos un mensaje de respuesta de primeros nodos ffsicos correspondientes a los n primeros valores de boceto, y obtener una direccion de almacenamiento correspondiente al primer valor de boceto a partir del mensaje de respuesta;
obtener una primera direccion de almacenamiento a partir de todas las direcciones de almacenamiento recibidas, comparar una huella de un bloque de datos almacenado en una region de almacenamiento a la que apunta la primera direccion de almacenamiento con la huella de cada bloque de datos obtenida dividiendo el flujo de datos, y realizar una consulta a un bloque de datos duplicados, donde un bloque de datos no duplicados obtenido se utiliza como un nuevo bloque de datos; y
obtener al menos un segundo valor de boceto que representa el nuevo bloque de datos, identificar, de acuerdo con el segundo algoritmo, un segundo nodo ffsico correspondiente a cada segundo valor de boceto en el segundo valor de boceto, y almacenar la correspondencia entre cada segundo valor de boceto y una direccion de almacenamiento de un bloque de datos representada por cada segundo valor de boceto en el correspondiente segundo nodo ffsico.
De acuerdo con la presente invencion, cuando se realiza una consulta de datos duplicados en el flujo de datos recibidos, el primer nodo ffsico que corresponde a cada primer valor de boceto y que esta en el sistema de cluster se identifica de acuerdo con el primer valor de boceto que representa el flujo de datos y, a continuacion, el primer valor de boceto que representa el flujo de datos se envfa al nodo ffsico identificado para realizar la consulta de datos duplicados, la cantidad de nodos ffsicos identificados para realizar la consulta de datos duplicados no aumenta con un incremento de la cantidad de nodos en el sistema de cluster; por lo tanto, una cantidad de calculo de cada nodo no aumenta con un incremento del numero de nodos en el sistema de cluster, y el rendimiento de desduplicacion del sistema de cluster se mejora de manera eficaz.
Breve descripcion de las figuras
Para describir las soluciones tecnicas de la presente invencion de manera mas clara, a continuacion se describen brevemente los dibujos que acompanan esta memoria y que describen realizaciones de la presente invencion o de la tecnica anterior Al parecer, los dibujos que acompanan la presente invencion en la siguiente descripcion muestran algunas realizaciones de la presente invencion unicamente.
La Fig. 1 es un diagrama de flujo de una realizacion de un metodo de procesamiento de datos en un sistema de cluster de acuerdo con la presente invencion;
La Fig. 2 es un diagrama esquematico de muestreo y division de bloques realizado por un nodo ffsico despues de que se ha recibido un flujo de datos segun una realizacion de la presente invencion;
La Fig. 3 es un diagrama esquematico de una estructura interna de un nodo ffsico segun una realizacion de la presente invencion;
La Fig. 4 es un diagrama de flujo de una realizacion de otro metodo de procesamiento de datos en un sistema de cluster de acuerdo con la presente invencion;
La Fig. 5 es un diagrama de flujo de una realizacion de otro metodo de procesamiento de datos en un sistema de cluster de acuerdo con la presente invencion;
La Fig. 6 es un diagrama esquematico de una estructura interna de otro nodo ffsico segun una realizacion de la presente invencion;
La Fig. 7 es un diagrama de flujo de una realizacion de otro metodo de procesamiento de datos en un sistema de cluster de acuerdo con la presente invencion;
La Fig. 8 es un diagrama esquematico de migracion de datos segun una realizacion de la presente invencion;
La Fig. 9 es un diagrama estructural de un aparato de procesamiento de datos en un sistema de cluster segun una realizacion de la presente invencion; y
La Fig. 10 es un diagrama estructural de otro aparato de procesamiento de datos en un sistema de cluster segun una realizacion de la presente invencion.
5
10
15
20
25
30
35
40
45
50
Descripcion de las realizaciones
Con el proposito de esclarecer los objetivos, soluciones tecnicas y ventajas de la presente invencion, a continuacion se describen con claridad las soluciones tecnicas de la presente invencion con referencia a los dibujos de realizaciones de dicha presente invencion que la acompanan. Aparentemente, las realizaciones que han de ser descritas son simplemente algunas pero no todas las realizaciones de la presente invencion.
Las realizaciones de la presente invencion pueden aplicarse en un sistema de cluster para almacenamiento, donde el sistema de cluster incluye multiples nodos ffsicos. Un nodo ffsico que posee un motor de desduplicacion puede utilizarse como materia de ejecucion de las realizaciones de la presente invencion, y lleva a cabo el metodo en las realizaciones de la presente invencion despues de realizar una tarea de desduplicacion.
La Fig. 1 es un diagrama de flujo de una realizacion de un metodo de procesamiento de datos en un sistema de cluster de acuerdo con la presente invencion, y tal y como se muestra en la Fig. 1, el metodo en esta realizacion puede incluir:
Etapa 10: Dividir un flujo de datos recibido por un nodo ffsico actual en m bloques de datos y obtener una huella de cada bloque de datos, donde m es un numero entero mayor o igual que 1.
En el sistema de cluster, un nodo ffsico puede utilizarse como un nodo para realizar una tarea de desduplicacion de cluster siempre y cuando se instale en el nodo ffsico un aparato para llevar a cabo el metodo de procesamiento de datos en la realizacion de la presente invencion.
Despues de recibir el flujo de datos, el nodo ffsico actual divide los datos en el flujo de datos en m bloques de datos y obtiene la huella de cada bloque de datos.
Etapa 11: Obtener, de acuerdo con un primer algoritmo, n primeros valores de boceto que representan el flujo de datos, donde n es un numero entero mayor o igual que 1 y menor o igual que m.
Los n primeros valores de boceto que representan el flujo de datos se obtienen mediante un algoritmo pre- establecido, y para facilitar la descripcion, a un algoritmo para obtener un primer valor de boceto que representa el flujo de datos se lo denomina el primer algoritmo, y a un valor de boceto que representa el flujo de datos recibidos se lo denomina el primer valor de boceto.
El primer algoritmo no se limita en la realizacion de la presente invencion siempre y cuando con el primer algoritmo se pueda obtener el primer valor de boceto que representa el flujo de datos. Por ejemplo, los bloques de datos obtenidos mediante division son muestreados directamente, y se calcula un valor de boceto de los n bloques de datos muestreados, y el valor de boceto calculado se utiliza como un valor de boceto que representa el flujo de datos recibidos.
Opcionalmente, para hacer que los datos muestreados sean mas uniformes, en la realizacion de la presente invencion, obtener los n primeros valores de boceto que representan el flujo de datos de acuerdo con el primer algoritmo puede incluir las siguientes etapas:
Las huellas de los bloques de datos obtenidos de acuerdo con el flujo de datos obtenidos se agrupan en n primeros grupos de huellas, en donde cada primer grupo de huellas incluye huellas de al menos dos bloques de datos.
Para cada primer grupo de huellas, se obtiene un primer valor de boceto que representa cada grupo de huellas, con el fin de obtener los n primeros valores de boceto.
Si n es igual que 1, indica que las huellas correspondientes a los bloques de datos obtenidos a partir del flujo de datos recibidos se agrupan en un primer grupo de huellas, y una huella se muestrea directamente como primer valor de boceto del primer grupo de huellas a partir de las huellas correspondientes a los bloques de datos obtenidos mediante division.
En la realizacion de la presente invencion, se pueden agrupar multiples bloques de datos consecutivos en un primer grupo de huellas y, seguramente, existen multiples metodos para dividir bloques de datos con el fin de obtener un primer grupo de huellas, y no estan limitados en esta realizacion.
En la realizacion de la presente invencion, si un primer valor de boceto se obtiene dividiendo un flujo de datos en bloques de datos y a continuacion agrupando las huellas correspondientes a los bloques de datos, de la misma manera, tambien pueden existir multiples metodos para obtener un primer valor de boceto a partir de cada grupo de huellas siempre y cuando el primer valor de boceto pueda representar un correspondiente primer grupo de huellas. Por ejemplo, puede seleccionarse como el primer valor de boceto una huella mayor entre las huellas de los bloques de datos, o se selecciona aleatoriamente informacion de huellas de uno o mas bloques de datos como el primer valor de boceto a partir de un primer grupo de huellas, lo cual no esta limitado en la realizacion de la presente invencion.
5
10
15
20
25
30
35
40
45
50
55
En esta realizacion, tambien se puede seleccionar un valor de una huella mas pequena, es decir, la mas pequena, a partir de informacion de huellas de todos los bloques de datos en el primer grupo de huellas, como un primer valor de boceto que representa un grupo de huellas al cual pertenece la huella mas pequena.
Etapa 12: Identificar, de acuerdo con un segundo algoritmo, un primer nodo ffsico que corresponde a cada primer valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster.
En la realizacion de la presente invencion, para facilitar la descripcion, a un nodo ffsico correspondiente al primer valor de boceto identificado se lo denomina el primer nodo ffsico, y a un algoritmo para identificar el primer nodo ffsico se lo denomina el segundo algoritmo; y si un primer valor de boceto corresponde a un primer nodo ffsico, los n primeros valores de boceto pueden corresponder a n primeros nodos ffsicos, a lo cual la realizacion de la presente invencion definitivamente no esta limitada.
Tambien puede haber multiples segundos algoritmos. Por ejemplo, la extraccion de rafces y operaciones de redondeo se realizan sobre el primer valor de boceto hasta que el valor es menor que m, y se redondea un resultado final para obtener el correspondiente primer nodo ffsico.
En esta realizacion, el segundo algoritmo adoptado puede ademas ser: Se realiza una operacion de modulo sobre el total de nodos ffsicos en el sistema de cluster por el primer valor de boceto, y se obtiene el primer nodo ffsico que corresponde al primer valor de boceto y que esta en el sistema de cluster.
Etapa 13: Enviar cada primer valor de boceto al primer nodo ffsico correspondiente para realizar una consulta, recibir al menos un mensaje de respuesta de los primeros nodos ffsicos correspondientes a los n primeros valores de boceto, y obtener una primera direccion de almacenamiento a partir del mensaje de respuesta.
En la realizacion de la presente invencion, en el sistema de cluster, cada uno o la mayoffa de los nodos ffsicos almacenan una tabla de indices, donde la correspondencia entre un valor de boceto y una direccion de almacenamiento de un bloque de datos almacenado representada por el valor de boceto se almacena en la tabla de indices, y la tabla de indices se almacena en un nodo ffsico en el sistema de cluster segun una polftica pre- establecida, y un bloque de datos y la informacion de huella correspondiente al bloque de datos estan almacenados en una region de almacenamiento a la que apunta una direccion de almacenamiento diferente.
Cabe destacar que una tabla de indices en cada nodo ffsico puede ser una tabla de indices completa e incluye correspondencia entre todos los valores de boceto de datos almacenados y direcciones de almacenamiento de bloques de datos almacenados representados por los valores de boceto en el sistema de cluster, y una parte de una tabla de indices completa tambien puede almacenarse en cada nodo ffsico de acuerdo con una polftica pre- establecida, con el fin de reducir una cantidad de calculo para consultar a un bloque duplicado en un nodo ffsico. Es posible adoptar esta ultima manera en esta realizacion. A continuacion se describe en detalle como almacenar, en un nodo ffsico, cada entrada de mdice en la tabla de indices.
En la realizacion de la presente invencion, la tabla de indices se almacena en un nodo ffsico segun una polftica establecida, no hay una relacion directa entre los datos en una tabla de indices de un nodo ffsico espedfico y datos en el nodo ffsico, y la tabla de indices esta solo almacenada en el nodo ffsico espedfico segun una polftica de asignacion pre-establecida.
En una implementacion espedfica, puesto que una region de almacenamiento correspondiente a una direccion de almacenamiento puede tener datos de multiples grupos, y si se selecciona un valor de boceto de cada grupo, se puede dar un caso en el cual una direccion de almacenamiento corresponda a multiples valores de boceto diferentes; por lo tanto, una misma direccion de almacenamiento en la tabla de indices puede corresponder a multiples valores de boceto diferentes; no obstante, un mismo valor de boceto corresponde a una direccion de almacenamiento. Cuando se consultan multiples primeros valores de boceto en la tabla de indices, se pueden obtener multiples direcciones de almacenamiento correspondientes, y cuando se selecciona la primera direccion de almacenamiento a partir de una direccion de almacenamiento correspondiente al primer valor de boceto, se puede pre-establecer una regla para seleccionar la primera direccion de almacenamiento o esta puede ser establecida por un usuario de acuerdo con una situacion real, lo cual no esta limitado en esta realizacion.
Por ejemplo, es posible obtener la direccion de almacenamiento correspondiente al primer valor de boceto a partir del mensaje de respuesta, se recogen estadfsticas sobre la cantidad de accesos de cada direccion de almacenamiento que lleva el mensaje de respuesta, y se seleccionan s direcciones de almacenamiento que tienen la mayor cantidad de accesos como la primera direccion de almacenamiento, donde s es mayor o igual que 1.
En una implementacion espedfica, cuando se recibe una solicitud de consulta que lleva el primer valor de boceto, el primer nodo ffsico coincide con un valor de boceto igual que el primer valor de boceto de acuerdo con una tabla de indices almacenada localmente, y transmite como respuesta, a traves de un mensaje de respuesta, una direccion de almacenamiento correspondiente al valor de boceto coincidente a un nodo ffsico que envfa la solicitud de consulta. Cada primer valor de boceto corresponde a un primer nodo ffsico; por lo tanto, multiples primeros nodos ffsicos reciben una solicitud de consulta, y realizan localmente una consulta de acuerdo con la solicitud de consulta. Si se encuentra la direccion de almacenamiento mediante la consulta, la direccion de almacenamiento se devuelve a un
5
10
15
20
25
30
35
40
45
50
55
nodo que envfa la solicitud de consulta, y el nodo que env^a la solicitud de consulta puede recibir multiples direcciones de almacenamiento devueltas por primeros nodos ffsicos diferentes, y si la direccion de almacenamiento no se encuentra mediante la consulta, se transmite como respuesta un valor nulo, por ejemplo, 0 o no se transmite ninguna respuesta, y un usuario puede establecer como representar espedficamente que la direccion de almacenamiento no se ha encontrado mediante la consulta.
En un caso en el que la direccion de almacenamiento transmitida como respuesta por el primer nodo ffsico no se recibe despues de que se envfa cada primer valor de boceto al correspondiente primer nodo ffsico para realizar una consulta, un bloque de datos obtenido mediante la division del flujo de datos se utiliza como un bloque de datos no duplicados, y entonces se lleva a cabo la etapa 15.
Etapa 14: Comparar una huella de un bloque de datos en una region de almacenamiento a la que apunta la primera direccion de almacenamiento con la huella de cada bloque de datos obtenida dividiendo el flujo de datos recibido, y realizar una consulta a un bloque de datos duplicados, donde un bloque de datos no duplicados obtenido se utiliza como un nuevo bloque de datos.
En una implementacion espedfica, el nodo ffsico actual almacena bloques de datos e informacion de huellas despues de procesar el flujo de datos recibidos en una memoria cache, y puede adoptar multiples metodos para comparar las huellas de los bloques de datos. Por ejemplo, en el metodo 1, un bloque de datos en la region de almacenamiento correspondiente a la primera direccion de almacenamiento se carga en la memoria cache del nodo ffsico actual, y se realiza una comparacion con la huella de cada bloque de datos correspondiente al flujo de datos recibidos para realizar una consulta de bloque duplicado; en el metodo 2, se envfa una instruccion de consulta al nodo ffsico al que apunta la primera direccion de almacenamiento, donde las huellas de los m datos obtenidos mediante la division del flujo de datos se llevan en la instruccion de consulta, y se recibe un resultado de consulta devuelto por el nodo ffsico al que apunta la primera direccion de almacenamiento. En el metodo 1, la informacion de huellas almacenada en la memoria cache del nodo actual puede utilizarse en una consulta de datos duplicados, lo cual puede mejorar aun mas una velocidad de desduplicacion.
Cuando se inicializa una entrada de mdice en la tabla de indices, un usuario puede tambien pre-almacenar, en la tabla de indices y de acuerdo con datos almacenados en el sistema, la correspondencia entre un valor de boceto conocido y una direccion de almacenamiento de un bloque de datos representada por el valor de boceto conocido, y no se limita una manera espedfica en la realizacion de la presente invencion. La tabla de indices puede tambien ser nula durante la inicializacion, y durante la consulta de datos duplicados, cuando un nuevo bloque de datos obtenido se almacena en un sistema de almacenamiento, se insertan en la tabla de indices un valor de boceto obtenido y una direccion de almacenamiento del nuevo bloque de datos representada por el valor de boceto, con el fin de que la tabla de indices se actualice constantemente; por lo tanto, la realizacion de la presente invencion ademas incluye:
Etapa 15: Obtener al menos un segundo valor de boceto que representa el nuevo bloque de datos, identificar, de acuerdo con el segundo algoritmo, un segundo nodo ffsico correspondiente a cada segundo valor de boceto en el segundo valor de boceto, y almacenar la correspondencia entre cada segundo valor de boceto y una direccion de almacenamiento de un bloque de datos representada por cada segundo valor de boceto en el correspondiente segundo nodo ffsico.
En la realizacion de la presente invencion, el bloque de datos no duplicados encontrado mediante la consulta se utiliza como el nuevo bloque de datos, y cuando el nuevo bloque de datos que se encuentra mediante la consulta alcanza cierto tamano y precisa ser almacenado, es necesario indicar en la tabla de indices una ubicacion de almacenamiento del nuevo bloque de datos en el sistema; por lo tanto, la tabla de indices necesita ser constantemente actualizada. Cuando se obtiene la direccion de almacenamiento para el nuevo bloque de datos, se obtiene un valor de boceto que representa el nuevo bloque de datos, y se denomina segundo valor de boceto para facilitar la descripcion, el segundo nodo ffsico se identifica de acuerdo con el segundo algoritmo, y la correspondencia entre cada segundo valor de boceto y una direccion de almacenamiento de un bloque de datos representada por cada segundo valor de boceto se almacena en el correspondiente segundo nodo ffsico, de este modo implementandose una actualizacion constante de una entrada de mdice en el sistema de cluster.
Un metodo para obtener el segundo valor de boceto puede ser el mismo que un algoritmo para obtener el primer valor de boceto. Por ejemplo, puede adoptarse el primer algoritmo, y en un caso en el que se asegura que un conjunto de primeros valores de boceto es un subconjunto de un conjunto de segundos valores de boceto, o un conjunto de segundos valores de boceto es un conjunto de primeros valores de boceto, tambien se pueden adoptar otros algoritmos.
La solucion en esta realizacion se describe en detalle a continuacion con referencia a un ejemplo de una manera de implementacion espedfica. La Fig. 2 es un diagrama esquematico de muestreo y division de bloques realizado por un nodo ffsico actual despues de que se ha recibido un flujo de datos. En esta realizacion, multiples bloques de datos pueden considerarse como un super bloque de datos (super fragmento); por lo tanto, en una implementacion espedfica, para una agrupacion mas precisa, se agrupan huellas correspondientes a bloques de datos, un bloque de datos correspondiente a huellas en un grupo es un super bloque de datos, y se obtiene un primer valor de boceto a partir de cada grupo de huellas, y el primer valor de boceto tambien puede denominarse un valor de boceto de super
5
10
15
20
25
30
35
40
45
50
55
60
bloque de datos (ID de super fragmento, SID), y seguramente, tambien se pueden agrupar directamente bloques de datos obtenidos mediante division de flujo de datos. Con referencia a la Figura 2, despues de recibir el flujo de datos, el nodo ffsico actual divide los datos recibidos en bloques de datos, diversos bloques de datos consecutivos se agrupan en un grupo, es decir, un super fragmento en el dibujo que acompana la presente invencion, y una manera de agrupacion incluye una manera como, por ejemplo, dividir bloques de longitud variable o dividir bloques de longitud fija, lo cual no esta limitado en esta realizacion. Un bloque de datos se obtiene a partir de cada super fragmento, y una huella correspondiente al bloque de datos obtenido se utiliza como un SID que representa a cada super fragmento.
Al tomar un nodo ffsico en un sistema de cluster como ejemplo, se puede hacer referencia a la Fig. 3 en la que se representa un diagrama esquematico de ejemplo de una estructura interna del nodo ffsico. Se pueden incluir una memoria cache y una region de almacenamiento en cada nodo ffsico, y en una implementacion espedfica, con el fin de mejorar el rendimiento de la consulta, se almacena una tabla de indices en la memoria cache del nodo ffsico, donde la correspondencia entre un segundo valor de boceto y una direccion de almacenamiento de un bloque de datos almacenado representada por el segundo valor de boceto se almacena en la tabla de indices. Tal y como se describe mas arriba, una tabla de indices en cada nodo ffsico puede ser una tabla de indices completa e incluye la correspondencia entre todos los segundos valores de boceto y direcciones de almacenamiento de huellas de bloques de datos almacenados representadas por los segundos valores de boceto en el sistema de cluster, y una parte de una tabla de indices completa tambien puede almacenarse en cada nodo ffsico de acuerdo con una polffica pre-establecida. En una implementacion espedfica, con el fin de reducir el uso de una memoria, es posible adoptar esta ultima manera, y una parte de una tabla de indices completa se almacena en cada nodo ffsico de acuerdo con una polffica pre-establecida. Por ejemplo, tomando un valor de boceto A como ejemplo, un nodo ffsico se identifica realizando una operacion de modulo sobre el total de nodos ffsicos en el sistema de cluster por A, y la correspondencia entre A y una direccion de almacenamiento de un bloque de datos almacenado representada por A se almacena en el nodo ffsico identificado; y durante una consulta de datos duplicados, se realiza una operacion de modulo sobre el total de nodos ffsicos en el sistema de cluster por un primer valor de boceto obtenido con el fin de obtener un primer nodo ffsico correspondiente al primer valor de boceto.
Cada nodo ffsico incluye un aparato de almacenamiento, que permite que cada nodo ffsico tenga una funcion de almacenamiento de datos durante un largo plazo, el aparato de almacenamiento puede ser un disco magnetico y tambien puede ser otro aparato de almacenamiento, por ejemplo, una tarjeta SSD, y el aparato de almacenamiento en cada nodo ffsico se denomina un repositorio de instancia unica (SIR, repositorio de instancia unica, por su sigla en ingles), y en la Figura FIG. 3, se toma como ejemplo un disco magnetico. Puede haber diversas regiones de almacenamiento en un aparato de almacenamiento en un nodo ffsico, y en una implementacion espedfica, cada region de almacenamiento puede considerarse de manera figurada como un contenedor (contenedor) para almacenar datos, cada contenedor de almacenamiento tiene un unico numero de serie en el sistema de cluster, que puede denominarse un numero de serie de contenedor de almacenamiento (ID de contenedor, CID), y el numero de serie de contenedor indica una ubicacion del contenedor de almacenamiento en el sistema de cluster, por ejemplo, una region de almacenamiento en un nodo ffsico en el sistema de cluster. Por lo tanto, en una implementacion espedfica, la direccion de almacenamiento precedente del bloque de datos almacenados se expresa como un CID, que indica en que region de almacenamiento y nodo ffsico se almacena el bloque de datos, y en una implementacion espedfica, la correspondencia entre un valor de boceto y una direccion de almacenamiento de un bloque de datos almacenados representada por el valor de boceto en la tabla de indices precedente puede indicarse como correspondencia entre un SID y un CID, y ademas de un bloque de datos de almacenamiento, es posible almacenar adicionalmente en cada region de almacenamiento informacion de huellas correspondiente a un bloque de datos. Adicionalmente es posible incluir una region de almacenamiento en bufer (bufer de contenedor) en una memoria cache de cada nodo ffsico y se configura para almacenar temporalmente un nuevo bloque de datos obtenido mediante identificacion.
En la tecnica anterior, se envfa informacion de huellas muestreada a la totalidad de los nodos para realizar una consulta, y, de esta forma, en un caso en el cual aumenta el numero de nodos en el sistema de cluster, la cantidad de calculo se incrementa cada vez mas. Un experimento muestra que, cuando la cantidad de nodos en un sistema de cluster excede 16, el rendimiento de la desduplicacion del sistema se degrada en gran medida. En la realizacion de la presente invencion, a diferencia de la tecnica anterior en la que un valor de boceto muestreado se envfa a la totalidad de los nodos para realizar una consulta, cuando se realiza una consulta de datos duplicados en un flujo de datos recibidos, el primer nodo ffsico que corresponde a cada primer valor de boceto y que esta en el sistema de cluster se identifica de acuerdo con el primer valor de boceto que representa el flujo de datos y, a continuacion, el primer valor de boceto que representa el flujo de datos se envfa al nodo ffsico identificado para realizar la consulta de datos duplicados, y un procedimiento de la consulta de datos duplicados no vaffa con un incremento del numero de nodos en el sistema de cluster; por lo tanto, la cantidad de calculo de cada nodo no aumenta con un incremento del numero de nodos en el sistema de cluster.
Con referencia a la Figura 4, la presente invencion tambien ofrece una realizacion de otro metodo de procesamiento de datos de cluster, y difiere respecto del metodo de procesamiento de datos en un sistema de cluster correspondiente a la Figura 1 en que, despues de finalizada una consulta de datos duplicados en el sistema de cluster, se requiere determinar si existe un nuevo bloque de datos en un flujo de datos recibidos y almacenar el
5
10
15
20
25
30
35
40
45
50
nuevo bloque de datos, y otras etapas coinciden con las de la realizacion correspondiente a la Figura 1; por lo tanto, segun la realizacion correspondiente a la Figura 1, el metodo puede asimismo incluir:
Etapa 46: De acuerdo con una polftica de almacenamiento pre-establecida, seleccionar una direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y una huella del nuevo bloque de datos.
La polftica de almacenamiento del nuevo bloque de datos puede estar pre-establecida por un usuario, y puede haber multiples polfticas. Por ejemplo, en la Polftica 1, primero se obtiene informacion de carga de cada nodo ffsico en el sistema de cluster, se selecciona un nodo ffsico al cual se migran datos de acuerdo con la informacion de carga, se obtienen la direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos a partir del nodo ffsico seleccionado al cual se migran datos, y de esta forma, es posible conseguir un equilibrio de carga entre todos los nodos ffsicos; en la Polftica 2, es posible que no se determine la informacion de carga, se obtiene la direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos a partir del nodo ffsico actual, y de esta forma, es posible reducir el intercambio entre nodos. Por lo tanto, un usuario puede establecer una polftica de almacenamiento espedfica de acuerdo con una situacion real, la cual no esta limitada en la realizacion de la presente invencion.
Si se adopta la Polftica 1, puede haber multiples maneras para escribir datos de acuerdo con la informacion de carga. Por ejemplo, es posible pre-establecer un umbral y puede denominarse un primer umbral pre-establecido, y cuando un valor de carga promedio de todos los nodos ffsicos en el sistema de cluster supera el primer umbral pre- establecido, un nodo en el que se escriben datos se selecciona a partir de un nodo ffsico cuyo valor de carga es menor que el valor de carga promedio, la direccion de almacenamiento en la que se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos se obtiene del nodo en el que se escriben los datos, y cuando el valor de carga promedio de todos los nodos ffsicos del sistema de cluster es menor que o igual al primer umbral pre- establecido, la direccion de almacenamiento en la que se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos se obtiene del nodo ffsico actual.
Otro metodo para realizar la migracion de datos de acuerdo con un valor de carga puede incluir:
A1: Obtener informacion de carga de los nodos ffsicos en el sistema de cluster, y cuando una diferencia de carga entre cualesquiera dos nodos ffsicos del sistema de cluster es mayor que el primer umbral, un nodo al cual se migran datos se selecciona a partir de un nodo ffsico cuya carga es menor, y obtener la direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos a partir del nodo al cual se migran datos.
A2: Cuando una diferencia de carga entre cualesquiera dos nodos ffsicos del sistema de cluster es menor o igual que el primer umbral, obtener, a partir del nodo ffsico actual, la direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos.
Es posible obtener la informacion de carga mediante el nodo ffsico actual, y tambien es posible obtener directamente la informacion de carga mediante el nodo ffsico actual a partir de un tercero despues de que el tercero obtiene la informacion de carga.
Etapa 47: Cuando se cumple una condicion de almacenamiento pre-establecida, escribir el nuevo bloque de datos y la huella del nuevo bloque de datos en una region de almacenamiento correspondiente a la direccion de almacenamiento seleccionada.
Opcionalmente, que se cumpla la condicion de almacenamiento pre-establecida puede implicar que: El nuevo bloque de datos se almacena en una memoria cache del nodo ffsico actual, y cuando los datos en la memoria cache del nodo ffsico actual alcanzan un segundo umbral pre-establecido, se cumple la condicion de almacenamiento pre- establecida.
Tal y como se describe en el ejemplo de la Figura 3, se puede incluir un bufer de contenedor en cada nodo ffsico y configurar para almacenar temporalmente un nuevo bloque de datos obtenido mediante identificacion, y cuando un tamano de datos almacenados en el bufer de contenedor supera un segundo umbral, se puede considerar que se cumple la condicion de almacenamiento pre-establecida, y el usuario puede establecer el segundo umbral segun una situacion real, que no esta limitada en esta realizacion.
En la realizacion de la presente invencion, despues de obtener la direccion de almacenamiento del nuevo bloque de datos, no se limita en la presente invencion una ocasion espedfica para almacenar la correspondencia entre el segundo valor de boceto y la direccion de almacenamiento del bloque de datos representada por el segundo valor de boceto en el correspondiente segundo nodo ffsico.
En el metodo de procesamiento de datos en un sistema de cluster ofrecido por la realizacion correspondiente a la Figura 4, se implementa el equilibrio de carga y mejora el rendimiento del sistema cuando se almacena el nuevo bloque de datos.
5
10
15
20
25
30
35
40
45
50
55
De acuerdo con el metodo de procesamiento de datos correspondiente a la Figura 1, con referencia a la Figura 5, para un caso en que un nodo virtual se incluye en el sistema de cluster, la presente invencion ofrece otra realizacion, al menos un nodo virtual se obtiene logicamente mediante la division de un nodo ffsico en el sistema de cluster, y la correspondencia (VPT) entre todos los nodos virtuales y todos los nodos ffsicos en el sistema de cluster se incluye en cada nodo ffsico, y en la realizacion de la presente invencion, se supone que al menos un nodo virtual se obtiene logicamente mediante la division de cada nodo ffsico, y un metodo de consulta de datos duplicados incluye:
Etapa 50: Procesar un flujo de datos recibidos mediante un nodo ffsico actual para obtener m bloques de datos, y obtener una huella de cada bloque de datos.
Etapa 51: Obtener, de acuerdo con un primer algoritmo, n primeros valores de boceto que representan el flujo de datos, donde n es un numero entero mayor o igual que 1 y menor o igual que m.
Una forma de procesar el flujo de datos y una forma de obtener los primeros valores de boceto en las etapas 50 y 51 son iguales que las de la realizacion correspondiente a la Figura 1, y no se vuelven a describir en esta etapa.
Etapa 52: Identificar, segun un segundo algoritmo, un primer nodo virtual que corresponde a cada valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster, y consultando la correspondencia entre un nodo virtual en el nodo ffsico actual y un nodo ffsico, obtener un primer nodo ffsico correspondiente al primer nodo virtual, donde cada primer valor de boceto corresponde a un primer nodo virtual, y un primer nodo virtual puede corresponder a distintos primeros valores de boceto al mismo tiempo.
Para facilitar la descripcion, un nodo virtual correspondiente identificado segun el primer valor de boceto se denomina el primer nodo virtual, es posible obtener al menos un nodo virtual mediante la division de cada nodo ffsico en un sistema de almacenamiento de cluster, y en una solucion de implementacion espedfica, se pueden obtener dos o mas nodos virtuales mediante la division de cada nodo ffsico, cada nodo virtual tiene un unico numero de serie, y la correspondencia entre un nodo virtual y un nodo ffsico en un sistema de cluster puede almacenarse en cada nodo ffsico, que indica en que nodo ffsico se ubica el nodo virtual.
Etapa 53: Enviar cada primer valor de boceto al primer nodo virtual en el primer nodo ffsico correspondiente para realizar una consulta, recibir un mensaje de respuesta del primer nodo ffsico, obtener una direccion de almacenamiento correspondiente al primer valor de boceto a partir del mensaje de respuesta, y seleccionar una primera direccion de almacenamiento a partir de la direccion de almacenamiento correspondiente al primer valor de boceto.
En la realizacion de la presente invencion, cada uno o la mayona de los nodos ffsicos en el sistema de cluster almacena una tabla de indices, donde la correspondencia entre un valor de boceto obtenido de antemano y una direccion de almacenamiento de un bloque de datos almacenados representada por el valor de boceto se almacena en la tabla de indices, y la tabla de indices se almacena en el nodo ffsico en el sistema de cluster segun una pofftica pre-establecida, y despues de que se obtiene un nodo virtual mediante la division de un nodo ffsico, la tabla de indices puede almacenarse en el nodo virtual obtenido mediante la division del nodo ffsico. A continuacion se describe en detalle como almacenar, en el nodo virtual, cada entrada de mdice en la tabla de indices.
En un caso en el cual no hay nodo virtual en el sistema de cluster de bloques de datos, una direccion de almacenamiento en la tabla de indices indica espedficamente que region de almacenamiento en que nodo ffsico, y en un caso en el cual hay un nodo virtual en el sistema de cluster, una direccion de almacenamiento indica espedficamente que region de almacenamiento en que nodo virtual.
De manera similar, una tabla de indices en cada nodo virtual puede ser una tabla de indices completa e incluye la correspondencia entre todos los valores de boceto y direcciones de almacenamiento de huellas de bloques de datos almacenados representadas por los valores de boceto en el sistema de cluster; y una parte de una tabla de indices completa tambien puede almacenarse en cada nodo virtual de acuerdo con una pofftica establecida, con el fin de reducir el uso de una memoria.
El primer nodo virtual que corresponde a cada valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster se identifica segun el segundo algoritmo, de manera similar, hay tambien multiples segundos algoritmos siempre y cuando se habilite un primer valor de boceto para que corresponda a un unico nodo virtual en el sistema de cluster. Por ejemplo, tomando un primer valor de boceto A como ejemplo, cuando se realiza una consulta de datos duplicados en un bloque de datos, se realiza una operacion de modulo en la totalidad de nodos virtuales en el sistema de cluster por el primer valor de boceto obtenido para obtener un primer nodo virtual correspondiente al primer valor de boceto y a continuacion se identifica un primer nodo ffsico correspondiente al primer nodo virtual segun la correspondencia entre un nodo virtual y un nodo ffsico. Cuando se encuentra el primer nodo ffsico, se encuentra el primer nodo virtual en el primer nodo ffsico.
En cada nodo virtual se incluyen muchas regiones de almacenamiento, y en una implementacion espedfica, cada region de almacenamiento puede considerarse, de manera figurada, como un contenedor para almacenar datos, teniendo cada contenedor un unico numero de serie CID en el sistema de cluster, y el numero indica en que region de almacenamiento en que nodo virtual en el sistema de cluster se ubica la region de almacenamiento. Ademas de
5
10
15
20
25
30
35
40
45
50
55
un bloque de datos, tambien se puede almacenar en cada region de almacenamiento informacion de huellas correspondiente al bloque de datos.
Adicionalmente es posible incluir una region de almacenamiento en bufer (bufer de contenedor) en una memoria cache de cada nodo ffsico y se configura para almacenar temporalmente un nuevo bloque de datos obtenido mediante identificacion.
De manera similar a la realizacion correspondiente a la Figura 1, en una implementacion espedfica, una misma direccion de almacenamiento en la tabla de indices puede corresponder a multiples valores de boceto diferentes; no obstante, un valor de boceto corresponde a una direccion de almacenamiento. Cuando se consultan multiples primeros valores de boceto en la tabla de indices, se pueden obtener multiples direcciones de almacenamiento correspondientes, y cuando se selecciona la primera direccion de almacenamiento a partir de la direccion de almacenamiento correspondiente al primer valor de boceto, se puede pre-establecer una regla para seleccionar la primera direccion de almacenamiento o esta puede ser establecida por un usuario de acuerdo con una situacion real, y se puede hacer referencia a la descripcion de seleccionar la primera direccion de almacenamiento en el metodo correspondiente a la Figura 1, lo cual no esta limitado en esta realizacion.
En la realizacion de la presente invencion, despues de recibir una solicitud de consulta, un nodo ffsico realiza una consulta en un nodo virtual local, y si se encuentra la direccion de almacenamiento mediante la consulta, el nodo ffsico transmite como respuesta un resultado de consulta a un nodo que envfa la solicitud de consulta. En una implementacion espedfica, despues de recibir la solicitud de consulta, el nodo ffsico realiza la consulta en el nodo virtual local, y transmite como respuesta, colocando el resultado de consulta en un mensaje de respuesta, el resultado de consulta al nodo ffsico que envfa la solicitud de consulta, si se encuentra la direccion de almacenamiento mediante la consulta, la direccion de almacenamiento encontrada mediante la consulta se coloca en el mensaje de respuesta, y si no se encuentra la direccion de almacenamiento mediante la consulta, se transmite como respuesta un valor nulo en el mensaje de respuesta, o en una implementacion espedfica, no se devuelve ninguna respuesta en un caso en el cual no se encuentra la direccion de almacenamiento mediante la consulta. Un usuario puede establecer una manera de implementacion espedfica segun una situacion real.
Si el nodo ffsico actual no recibe la direccion de almacenamiento devuelta por los primeros nodos ffsicos correspondientes a los n primeros valores de boceto, un bloque de datos obtenido mediante la division del flujo de datos se utiliza como un bloque de datos no duplicados.
Etapa 54: Comparar una huella de un bloque de datos almacenado en una region de almacenamiento a la que apunta la primera direccion de almacenamiento con la huella de cada bloque de datos obtenida dividiendo el flujo de datos recibidos, y realizar una consulta a un bloque de datos duplicados, donde un bloque de datos no duplicados obtenido se utiliza como un nuevo bloque de datos.
En una implementacion espedfica, el nodo ffsico actual almacena el bloque de datos y la informacion de huellas despues de procesar el flujo de datos recibidos en la memoria cache, se pueden adoptar multiples metodos para comparar las huellas de los bloques de datos, y se puede hacer referencia a la descripcion en el metodo correspondiente a la Figura 1.
Etapa 55: Obtener al menos un segundo valor de boceto que representa el nuevo bloque de datos, identificar, de acuerdo con el segundo algoritmo, un segundo nodo virtual correspondiente a cada segundo valor de boceto en el segundo valor de boceto, identificar, de acuerdo con la correspondencia entre un nodo virtual y un nodo ffsico, un segundo nodo ffsico donde se ubica el segundo nodo virtual, y almacenar la correspondencia entre cada segundo valor de boceto y una direccion de almacenamiento de un bloque de datos representada por el segundo valor de boceto en el segundo nodo virtual del correspondiente segundo nodo ffsico.
Al tomar como ejemplo que dos nodos virtuales se obtienen mediante la division de un nodo ffsico en un sistema de cluster, se puede hacer referencia a la Figura 6 en la que se representa un diagrama esquematico de ejemplo de una estructura interna del nodo ffsico. En la Figura 6, dos nodos virtuales (nodo virtual, VN) se obtienen mediante la division de un nodo ffsico (nodo ffsico, PN), y en un nodo virtual se incluyen una tabla de indices y un aparato de almacenamiento que tiene capacidad para almacenar datos durante un largo penodo. Una tabla de correspondencia (VPT) entre un nodo virtual y un nodo ffsico se almacena en cada nodo ffsico al mismo tiempo.
En la tecnica anterior, la informacion de huellas muestreadas se envfa a todos los nodos para realizar una consulta. Se entiende que una cantidad de calculo de realizar una consulta en un nodo es z, y cuando hay m nodos ffsicos, una cantidad de calculo es z multiplicada por m. En el metodo de desduplicacion en un sistema de cluster que tiene un nodo virtual provisto por esta realizacion, cuando se realiza una consulta de datos duplicados en el flujo de datos recibidos, el primer nodo ffsico que corresponde a cada primer valor de boceto y que esta en el sistema de cluster se identifica segun el primer valor de boceto que representa el flujo de datos, a continuacion el primer valor de boceto que representa el flujo de datos se envfa al nodo virtual identificado para realizar la consulta de datos duplicados, el numero de nodos virtuales identificados no aumenta con un incremento del numero de nodos ffsicos en el sistema de cluster, y un procedimiento de la consulta de datos duplicados no vana con un incremento del numero de nodos
5
10
15
20
25
30
35
40
45
50
55
en el sistema de cluster, con el fin de mejorar de forma eficaz el rendimiento de desduplicacion del sistema de cluster.
Con referencia a la Figura 7, la presente invencion ademas ofrece una realizacion de un metodo de procesamiento de datos en un sistema de cluster, y difiere del metodo de procesamiento de datos en un sistema de cluster correspondiente a la Figura 5 en que, despues finalizar una consulta de datos duplicados en el sistema de cluster, se requiere determinar si existe un nuevo bloque de datos en un flujo de datos recibidos y almacenar el nuevo bloque de datos, y otras etapas coinciden con las de la realizacion correspondiente a la Figura 5; por lo tanto, segun la realizacion correspondiente a la Figura 5, el metodo puede ademas incluir:
Etapa 76: De acuerdo con una pofftica de almacenamiento pre-establecida, seleccionar una direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y una huella del nuevo bloque de datos.
La polftica de almacenamiento del nuevo bloque de datos puede estar pre-establecida por un usuario, y puede haber multiples poffticas de almacenamiento. Se puede hacer referencia a la descripcion sobre como seleccionar la direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y la huella correspondiente al nuevo bloque de datos en la realizacion correspondiente a la Figura 4, y la diferencia radica en que, despues de que se determina un nodo ffsico al cual se migran datos, se considera una carga de un nodo virtual dentro del nodo ffsico, y la direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos se obtiene a partir de un nodo virtual cuya carga es menor en el nodo ffsico seleccionado al cual se migran datos.
Etapa 77: Cuando se cumple una condicion de almacenamiento pre-establecida, escribir el nuevo bloque de datos y la huella del nuevo bloque de datos en una region de almacenamiento correspondiente a la direccion de almacenamiento seleccionada.
Tal y como se describe en el ejemplo de la Figura 6, se puede incluir un bufer de contenedor en cada nodo ffsico y configurar para almacenar temporalmente un nuevo bloque de datos obtenido a mediante identificacion, y cuando un tamano de los datos almacenados en el bufer de contenedor supera un segundo umbral, se puede considerar que se cumple la condicion de almacenamiento pre-establecida, y el usuario puede establecer el segundo umbral segun una situacion real, que no esta limitada en esta realizacion.
Despues de obtener la direccion de almacenamiento del nuevo bloque de datos, no se limita en la presente invencion una ocasion espedfica para almacenar la correspondencia entre el segundo valor de boceto y la direccion de almacenamiento del bloque de datos representada por el segundo valor de boceto en el correspondiente segundo nodo ffsico.
En el metodo de procesamiento de datos en un sistema de cluster provisto por la realizacion correspondiente a la Figura 7, se actualiza constantemente una tabla de indices en un nodo virtual, para aumentar aun mas una probabilidad de encontrar datos duplicados.
Con referencia a la Figura 8, sobre la base de que se incluye un nodo virtual en un sistema de cluster, se ofrece una solucion para la migracion de datos en un nodo ffsico en el sistema de cluster. Por ejemplo, en la Figura 8, se describe un diagrama esquematico de migracion de datos en un caso en que un nodo ffsico se extiende en dos nodos ffsicos.
Cuando se cumple una condicion de migracion de datos, uno de los nodos virtuales en un nodo ffsico PN1 se mueve mtegramente hacia otro nodo ffsico PN2, que incluye: mover una tabla de indices en un nodo virtual VN1 y datos en un repositorio de instancia unica que pertenece al VN1 del PN2; actualizar correspondencia entre un nodo virtual migrado y un nodo ffsico en el sistema de cluster, y notificar a otro nodo ffsico en el sistema de cluster de la actualizacion de la correspondencia entre un nodo migrado y un nodo ffsico. La correspondencia actualizada entre todos los nodos virtuales y todos los nodos ffsicos en el sistema de cluster se almacena en un PN2 recien agregado.
La condicion de migracion de datos puede ser que los datos necesitan migrarse a un nodo ffsico recien agregado durante la expansion de capacidad de un nodo ffsico en el sistema de cluster; y tambien puede ser que, para equilibrar cargas, los datos en un nodo ffsico cuya carga es alta se migran a un nodo ffsico cuya carga es baja, y la condicion de migracion de datos no esta limitada en la realizacion de la presente invencion.
Cuando no se obtiene un nodo virtual mediante la division en un sistema de cluster y se migran datos en un nodo ffsico, debido a que se cambian un bloque de datos y una direccion de almacenamiento de una huella del bloque de datos, se debe modificar la correspondencia entre una direccion logica del bloque de datos y un CID, y los datos de un CID involucrado pueden almacenarse en varios nodos ffsicos, de manera que la cantidad de calculos es bastante amplia; sin embargo, al utilizar el sistema de cluster provisto en la realizacion de la presente invencion, durante la migracion de datos, debido a que los datos en un nodo virtual se mueven mtegramente, un CID en la tabla de indices indica una ubicacion donde los datos estan almacenados en el nodo virtual; por lo tanto, mientras que no cambie una identidad del nodo virtual, no es necesario que se modifique el CID, y solo se modifica la correspondencia entre un nodo virtual involucrado y un nodo ffsico, lo que simplifica un procedimiento de trabajo durante la extension de nodo y reduce la cantidad de calculos en gran medida.
5
10
15
20
25
30
35
40
45
50
La realizacion de la presente invencion se aplica a un sistema de cluster para almacenamiento y, en el sistema de cluster, se incluyen multiples nodos de almacenamiento. Un aparato de procesamiento de datos en un sistema de cluster provisto en una realizacion de la presente invencion esta configurado para llevar a cabo el metodo de procesamiento de datos precedente en un sistema de cluster, y el aparato se puede situar en un nodo ffsico en un sistema de cluster o en un administrador en un sistema de cluster, o tambien se puede situar como un nodo separado en el sistema de cluster. La realizacion de la presente invencion no limita una ubicacion espedfica donde se situa el aparato de procesamiento de datos.
Con referencia a la Figura 9, una realizacion de la presente invencion ofrece un aparato de procesamiento de datos 900 en un sistema de cluster, donde el aparato incluye:
Una unidad divisora 90 esta configurada para dividir un flujo de datos recibido por un nodo ffsico actual en m bloques de datos, y obtener una huella de cada bloque de datos, donde m es un numero entero mayor o igual que 1.
Una unidad de obtencion de valor de boceto 91 esta configurada para obtener, de acuerdo con un primer algoritmo, n primeros valores de boceto que representan el flujo de datos, donde n es un numero entero mayor o igual que 1 y menor o igual que m.
Se puede hacer referencia a la descripcion en el metodo anterior sobre el primer algoritmo para obtener el primer valor de boceto, que no se vuelve a describir en la presente descripcion.
Una unidad de identificacion 92 esta configurada para identificar, de acuerdo con un segundo algoritmo, un primer nodo ffsico que corresponde a cada valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster.
La unidad de identificacion 92 puede identificar el primer nodo ffsico de diversas maneras. Por ejemplo, la extraccion de rafces y operaciones de redondeo se realizan sobre el primer valor de boceto hasta que el valor sea menor a m, y se redondea un resultado final para obtener el correspondiente primer nodo ffsico; y tambien se puede realizar una operacion de modulo sobre la cantidad de todos los nodos ffsicos en el sistema de cluster por cada primer valor de boceto para obtener el primer nodo ffsico que corresponde a cada primer valor de boceto y que esta en el sistema de cluster; y en la realizacion de la presente invencion, el ultimo puede adoptarse para que:
la unidad de identificacion 92 este espedficamente configurada para realizar una operacion de modulo sobre la cantidad total de nodos ffsicos en el sistema de cluster por cada primer valor de boceto para obtener el primer nodo ffsico que corresponde a cada primer valor de boceto y que esta en el sistema de cluster.
Una unidad de envfo 93 esta configurada para enviar cada primer valor de boceto al correspondiente primer nodo ffsico para realizar una consulta.
Despues de recibir una solicitud de consulta enviada por la unidad de envfo 93, otro nodo en el sistema de cluster consulta, segun una tabla de indices almacenada de forma local, si hay una direccion de almacenamiento que corresponda al primer valor de boceto. En la realizacion de la presente invencion, cada uno o la mayona de los nodos ffsicos en el sistema de cluster almacena una tabla de indices, donde la correspondencia entre un valor de boceto y una direccion de almacenamiento de un bloque de datos almacenado representada por el valor de boceto se almacena en la tabla de indices; la tabla de indices se almacena en un nodo ffsico en el sistema de cluster segun una pofftica pre-establecida, y un bloque de datos y la informacion de huella correspondiente al bloque de datos estan almacenados en una region de almacenamiento a la que apunta una direccion de almacenamiento diferente.
Una unidad de recepcion 94 esta configurada para recibir al menos un mensaje de respuesta del primer nodo ffsico correspondiente a los n primeros valores de boceto, y obtener una primera direccion de almacenamiento a partir del mensaje de respuesta.
La unidad de recepcion 94 puede incluir: una subunidad de recogida de estadfsticas 941, configurada para obtener una direccion de almacenamiento correspondiente al primer valor de boceto a partir del mensaje de respuesta, y recoger estadfsticas sobre el numero de accesos de cada direccion de almacenamiento que lleva el mensaje de respuesta; y una subunidad de obtencion de direccion 942, configurada para seleccionar, de acuerdo con un resultado estadfstico de la subunidad de recogida de estadfsticas 941, s direcciones de almacenamiento que tienen el mayor numero de accesos como la primera direccion de almacenamiento, donde s es mayor o igual que 1.
Una unidad de consulta 95 esta configurada para comparar una huella de un bloque de datos almacenada en una region de almacenamiento a la que apunta la primera direccion de almacenamiento con la huella de cada bloque de datos obtenida dividiendo el flujo de datos recibido, y realizar una consulta a un bloque de datos duplicados, donde un bloque de datos no duplicados obtenido mediante la unidad de consulta 95 se utiliza como un nuevo bloque de datos.
Una unidad de actualizacion 96 esta configurada para obtener al menos un segundo valor de boceto que representa el nuevo bloque de datos, identificar, de acuerdo con el segundo algoritmo, un segundo nodo ffsico correspondiente
5
10
15
20
25
30
35
40
45
50
a cada segundo valor de boceto en el segundo valor de boceto, y almacenar la correspondencia entre cada segundo valor de boceto y una direccion de almacenamiento de un bloque de datos representada por cada segundo valor de boceto en el correspondiente segundo nodo ffsico.
Un algoritmo para obtener el segundo valor de boceto que presenta el nuevo bloque de datos de la unidad de actualizacion 96 puede ser el mismo que el primer algoritmo para obtener el primer valor de boceto, que no esta limitado en la presente descripcion.
La correspondencia entre cada segundo valor de boceto y una direccion de almacenamiento de un bloque de datos representada por cada segundo valor de boceto se utiliza como una entrada de mdice en la tabla de indices. En la realizacion de la presente invencion, la unidad de actualizacion 96 almacena la tabla de indices en un nodo ffsico segun una pofftica establecida, no hay una relacion directa entre los datos en una tabla de indices de un nodo ffsico espedfico y datos en el nodo ffsico, y la tabla de indices solo esta almacenada en el nodo ffsico particular segun una pofftica de asignacion establecida. Se puede hacer referencia a la descripcion en el metodo anterior sobre la descripcion de la tabla de indices, y los detalles no se vuelven a describir en la presente memoria.
Con referencia a la descripcion del metodo precedente, en una implementacion espedfica, pude haber multiples maneras de que la unidad de obtencion de valor de boceto 91 obtenga, de acuerdo con el primer algoritmo, los n primeros valores de boceto que representan el flujo de datos. Por ejemplo, la unidad de obtencion de valor de boceto 91 puede incluir: una subunidad de agrupamiento de huellas 911 y una subunidad de obtencion 912, donde:
la subunidad de agrupamiento 911 esta configurada para agrupar huellas de los m bloques de datos del flujo de datos en n primeros grupos de huellas, donde cada primer grupo de huellas incluye huellas de al menos dos bloques de datos; y
la subunidad de obtencion 912 esta configurada para obtener un primer valor de boceto que representa cada grupo de huellas, con el fin de obtener los n primeros valores de boceto.
La subunidad de obtencion 912 puede estar espedficamente configurada para seleccionar una huella mas pequena de cada grupo de huellas como un primer valor de boceto que representa un grupo de huellas al que pertenece la huella mas pequena.
La unidad de recepcion 94 del aparato de procesamiento de datos en un sistema de cluster puede ademas estar configurada para: por ejemplo, en un caso en que la direccion de almacenamiento transmitida como respuesta por el primer nodo ffsico no se recibe despues de que el primer valor de boceto se envfa al correspondiente primer nodo ffsico para realizar una consulta, utilizar un bloque de datos obtenido mediante la division del flujo de datos como un bloque de datos no duplicados, y luego activar la unidad de actualizacion 96.
El aparato provisto por la realizacion de la presente invencion puede estar situado en un controlador de un nodo de almacenamiento en el sistema de cluster, y esta configurado para realizar el metodo de procesamiento de datos precedente. Se puede hacer referencia a la descripcion en la realizacion de metodo para la descripcion detallada de las funciones de todas las unidades, y los detalles no se vuelven a describir en la presente memoria.
Mediante el aparato de procesamiento de datos en un sistema de cluster provisto por la realizacion de la presente invencion, cuando se realiza una consulta de datos duplicados en el flujo de datos recibidos, el primer nodo ffsico que corresponde a cada primer valor de boceto y que esta en el sistema de cluster se identifica de acuerdo con el primer valor de boceto que representa el flujo de datos y, a continuacion, el primer valor de boceto que representa el flujo de datos se envfa al nodo ffsico identificado para la consulta de datos duplicados, y un procedimiento de la consulta de datos duplicados no cambia con un incremento de la cantidad de nodos en el sistema de cluster; por lo tanto, una cantidad de calculos de cada nodo no aumenta con un incremento de la cantidad de nodos en el sistema de cluster.
Cuando se encuentran, mediante la consulta, datos no duplicados, la unidad de consulta 95 puede considerar los datos no duplicados como un nuevo bloque de datos y almacenar el nuevo bloque de datos en un repositorio de instancia unica; por lo tanto, la realizacion de la presente invencion puede ademas incluir:
Una unidad de obtencion de direccion de escritura 97, configurada para: de acuerdo con una pofftica de almacenamiento pre-establecida, seleccionar una direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y una huella del nuevo bloque de datos.
Una unidad de escritura 98 configurada para: cuando se cumple una condicion de almacenamiento pre-establecida, escribir el nuevo bloque de datos y la huella del nuevo bloque de datos en una region de almacenamiento correspondiente a la direccion de almacenamiento seleccionada.
Puede haber multiples poffticas de almacenamiento del nuevo bloque de datos de la unidad de obtencion de direccion de escritura 97. Por ejemplo, la unidad de obtencion de direccion de escritura 97 incluye:
5
10
15
20
25
30
35
40
45
50
55
una subunidad de obtencion de informacion de carga 971, configurada para obtener informacion de carga de cada nodo ffsico en el sistema de cluster; y
una subunidad de seleccion de direccion 972, configurada para seleccionar, segun la informacion de carga, un nodo ffsico al cual se migran los datos, y obtener, del nodo ffsico seleccionado al cual se migran los datos, la direccion de almacenamiento en la que se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos.
Hay multiples metodos mediante los cuales la subunidad de seleccion de direccion 972 selecciona, segun la informacion de carga, la direccion de almacenamiento en la que se escriben los nuevos datos. Por ejemplo, cuando se identifica, segun la informacion de carga obtenida por la subunidad de obtencion de informacion de carga 971, que un valor de carga promedio de todos los nodos ffsicos en el sistema de cluster supera un primer umbral pre- establecido, un nodo en el que se escriben los datos se selecciona de un nodo ffsico cuyo valor de carga es menor que el valor de carga promedio, y la direccion de almacenamiento en la que se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos se obtiene del nodo en el que los datos se escriben, y cuando el valor de carga promedio de todos los nodos ffsicos del sistema de cluster es menor o igual que el primer umbral pre-establecido, la direccion de almacenamiento en la que se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos se obtiene del nodo ffsico actual.
Ciertamente, en la polffica de almacenamiento del nuevo bloque de datos de la unidad de obtencion de direccion de escritura 97, puede que la informacion de carga tampoco sea identificada, y la direccion se selecciona directamente del nodo ffsico actual; por lo tanto, la unidad de obtencion de direccion de escritura 97 puede configurarse espedficamente para obtener, del nodo ffsico actual, la direccion de almacenamiento en la que se escriben el nuevo bloque de datos y la huella del nuevo bloque datos.
La unidad de escritura 98 puede estar configurada para, por ejemplo, almacenar el nuevo bloque de datos en una memoria cache del nodo ffsico actual, y cuando los datos en la memoria cache del nodo ffsico actual alcanzan un segundo umbral pre-establecido, y se cumple la condicion de almacenamiento pre-establecida, escribir el nuevo bloque de datos y la huella del nuevo bloque de datos en una region de almacenamiento correspondiente a la direccion de almacenamiento seleccionada.
Para un caso en el que un nodo virtual esta incluido en el sistema de cluster, al menos un nodo virtual se obtiene de forma logica mediante la division de un nodo ffsico en el sistema de cluster, y la correspondencia (VPT) entre todos los nodos virtuales y todos los nodos ffsicos en el sistema de cluster se incluye en cada nodo ffsico, y en la realizacion de la presente invencion, se supone que al menos un nodo virtual se obtiene de forma logica mediante la division de cada nodo ffsico, de manera que:
la unidad de identificacion 92 pueda estar espedficamente configurada para identificar, de acuerdo con el segundo algoritmo, un primer nodo virtual que corresponde a cada valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster, y obtener, al consultar correspondencia entre un nodo virtual en el nodo ffsico actual y un nodo ffsico, un primer nodo ffsico correspondiente al primer nodo virtual, donde se utiliza un bloque de datos no duplicados obtenido como un nuevo bloque de datos; y
la unidad de actualizacion 96 este espedficamente configurada para obtener al menos un segundo valor de boceto que representa el nuevo bloque de datos, identificar, de acuerdo con el segundo algoritmo, un segundo nodo virtual correspondiente a cada segundo valor de boceto en el segundo valor de boceto, identificar, de acuerdo con la correspondencia entre un nodo virtual y un nodo ffsico, un segundo nodo ffsico donde se ubica el segundo nodo virtual, y, despues de obtener una direccion de almacenamiento del nuevo bloque de datos, almacenar la correspondencia entre cada segundo valor de boceto y una direccion de almacenamiento de un bloque de datos representada por el segundo valor de boceto en el segundo nodo virtual del correspondiente segundo nodo ffsico.
Cuando se implemente la funcion de identificacion, segun el segundo algoritmo, un primer nodo virtual que corresponde a cada valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster, la unidad de identificacion 92 puede realizar una operacion de modulo sobre la cantidad de todos los nodos virtuales en el sistema de cluster por cada primer valor de boceto para obtener el primer nodo virtual que corresponde a cada primer valor de boceto y que esta en el sistema de cluster.
En un caso en que un nodo virtual esta incluido en el sistema de cluster, cuando se realiza una solucion de migracion de datos en un nodo ffsico en el sistema de cluster, la unidad de escritura 98 esta ademas configurada para: cuando se cumple una condicion de migracion de datos, migrar mtegramente al menos un nodo virtual en un nodo ffsico cuyos datos necesitan ser migrados a un nodo ffsico objetivo; y la unidad de actualizacion 96 esta ademas configurada para actualizar la correspondencia entre un nodo virtual migrado en el nodo ffsico actual y el nodo ffsico, y notificar a otro nodo ffsico en el sistema de cluster de la actualizacion de la correspondencia entre el nodo migrado y el nodo ffsico.
La condicion de migracion de datos puede estar pre-establecida por un usuario, puede ser que los datos necesitan migrarse a un nodo ffsico recien agregado durante la expansion de capacidad de un nodo ffsico en el sistema de
5
10
15
20
25
30
35
40
45
50
cluster; y tambien puede ser que, para equilibrar la carga, los datos de un nodo ffsico cuya carga es alta son migrados a un nodo ffsico cuya carga es baja, y la condicion de migracion de datos no esta limitada en la realizacion de la presente invencion.
El aparato de procesamiento de datos en un sistema de cluster puede implementar una migracion integral de un nodo virtual en un nodo ffsico, mientras que un numero de serie de un nodo virtual migrado hacia un nuevo nodo ffsico no cambia, donde una direccion de almacenamiento de datos correspondiente a un valor de boceto en la tabla de indices representa una ubicacion donde se almacenan los datos en el nodo virtual; por lo tanto, mientras que no cambie una identidad del nodo virtual, no es necesario modificar la direccion de almacenamiento de datos, y solo se modifica la correspondencia entre un nodo virtual involucrado y un nodo ffsico, lo que simplifica un procedimiento de trabajo durante la extension de nodo y reduce en gran medida la cantidad de calculos.
Con referencia a la Figura 10, una realizacion de la presente invencion ademas ofrece un aparato de procesamiento de datos 100 en un sistema de cluster, donde el aparato puede estar situado en un nodo de almacenamiento en el sistema de cluster e incluye un procesador 101, una memoria 102, un controlador de red 103, y un controlador de disco magnetico 104, donde el procesador 101, la memoria primaria 102, el controlador de red 103, y el controlador de disco magnetico 104 estan conectados a traves de un bus 105.
El controlador de almacenamiento 102 esta configurado para almacenar un programa 1021.
El procesador 101 esta configurado para llevar a cabo el programa 1021 en la memoria primaria 102.
El procesador 101 se comunica con otro nodo en el sistema de cluster a traves del controlador de red 103, y se comunica, a traves del controlador de disco magnetico 104, con un aparato de almacenamiento que tiene una capacidad de almacenamiento de datos a largo plazo en un nodo local, por ejemplo, un disco magnetico en la Figura 10. Un aparato de almacenamiento controlado por el controlador de disco magnetico 104 no se limita a un disco magnetico, y puede ser tambien un aparato formado por otro medio de almacenamiento.
En una implementacion espedfica, la memoria 102 puede ser una memoria primaria, por ejemplo, una memoria, y una forma de implementacion espedfica no esta limitada en la realizacion de la presente invencion.
Espedficamente, el programa 1021 puede incluir un codigo de programa, donde el codigo de programa incluye una instruccion informatica operativa.
El procesador 102 puede ser una unidad de procesamiento central CPU o un circuito integrado de aplicaciones espedficas ASIC (circuito integrado de aplicaciones espedficas), o estar configurado con uno o mas circuitos integrados para implementar las realizaciones de la presente invencion.
Con referencia a la Figura 9, el programa 1021 puede incluir:
Una unidad divisora 90 esta configurada para dividir un flujo de datos recibido por un nodo ffsico actual en m bloques de datos, y obtener una huella de cada bloque de datos, donde m es un numero entero mayor o igual que 1.
Una unidad de obtencion de valor de boceto 91 esta configurada para obtener, de acuerdo con un primer algoritmo, n primeros valores de boceto que representan el flujo de datos, donde n es un numero entero mayor o igual que 1 y menor o igual que m.
Se puede hacer referencia a la descripcion en el metodo precedente para el primer algoritmo para obtener el primer valor de boceto, y los detalles no se vuelven a describir en la presente memoria.
Una unidad de identificacion 92 esta configurada para identificar, de acuerdo con un segundo algoritmo, un primer nodo ffsico que corresponde a cada valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster.
La unidad de identificacion 92 puede identificar el primer nodo ffsico de diversas maneras. Por ejemplo, la extraccion de rafces y operaciones de redondeo se realizan sobre el primer valor de boceto hasta que el valor sea menor a m, y se redondea un resultado final para obtener el correspondiente primer nodo ffsico; y tambien se puede realizar una operacion de modulo sobre la cantidad de todos los nodos ffsicos en el sistema de cluster por cada primer valor de boceto para obtener el primer nodo ffsico que corresponde a cada primer valor boceto y que esta en el sistema de cluster; y en la realizacion de la presente invencion, se adopta el ultimo, de tal manera que:
la unidad de identificacion 92 este espedficamente configurada para realizar una operacion de modulo sobre la cantidad total de nodos ffsicos en el sistema de cluster por cada primer valor de boceto para obtener el primer nodo ffsico que corresponde a cada primer valor de boceto y que esta en el sistema de cluster.
Una unidad de envfo 93 esta configurada para enviar cada primer valor de boceto al correspondiente primer nodo ffsico para realizar una consulta.
5
10
15
20
25
30
35
40
45
50
55
Despues de recibir una solicitud de consulta enviada por la unidad de envffo 93, otro nodo en el sistema de cluster consulta, segun una tabla de indices almacenada de forma local, si hay una direccion de almacenamiento correspondiente al primer valor de boceto. En la realizacion de la presente invencion, cada uno o la mayona de los nodos ffsicos en el sistema de cluster almacena una tabla de indices, donde la correspondencia entre un valor de boceto y una direccion de almacenamiento de un bloque de datos almacenado representada por el valor de boceto se almacena en la tabla de indices, la tabla de indices se almacena en un nodo ffsico en el sistema de cluster segun una pofftica pre-establecida, y un bloque de datos y la informacion de huella correspondiente al bloque de datos estan almacenados en una region de almacenamiento a la que apunta una direccion de almacenamiento diferente.
Una unidad de recepcion 94 esta configurada para recibir al menos un mensaje de respuesta de los primeros nodos ffsicos correspondientes a los n primeros valores de boceto, y obtener una primera direccion de almacenamiento a partir del mensaje de respuesta, y
la unidad de recepcion 94 puede incluir: una subunidad de recogida de estadfsticas 941, configurada para obtener la direccion de almacenamiento correspondiente al primer valor de boceto a partir del mensaje de respuesta, y recoger estadfsticas sobre el numero de accesos de cada direccion de almacenamiento que lleva el mensaje de respuesta; y una subunidad de obtencion de direccion 942, configurada para seleccionar, de acuerdo con un resultado estadfstico de la subunidad de recogida de estadfsticas 941, s direcciones de almacenamiento que tienen el mayor numero de accesos como la primera direccion de almacenamiento, donde s es mayor o igual que 1.
Una unidad de consulta 95 esta configurada para comparar una huella de un bloque de datos almacenada en una region de almacenamiento a la que apunta la primera direccion de almacenamiento con la huella de cada bloque de datos obtenida dividiendo el flujo de datos recibido, y consultar un bloque de datos duplicados, donde un bloque de datos no duplicados obtenido se utiliza como un nuevo bloque de datos.
Una unidad de actualizacion 96 esta configurada para obtener al menos un segundo valor de boceto que representa el nuevo bloque de datos, identificar, de acuerdo con el segundo algoritmo, un segundo nodo ffsico correspondiente a cada segundo valor de boceto en el segundo valor de boceto, y almacenar la correspondencia entre cada segundo valor de boceto y una direccion de almacenamiento de un bloque de datos representada por cada segundo valor de boceto en el correspondiente segundo nodo ffsico.
Un algoritmo para obtener el segundo valor de boceto que presenta el nuevo bloque de datos de la unidad de actualizacion 96 puede ser igual al primer algoritmo para obtener el primer valor de boceto, el cual no esta limitado en la presente descripcion.
La correspondencia entre cada segundo valor de boceto y una direccion de almacenamiento de un bloque de datos representada por cada segundo valor de boceto se utiliza como una entrada de mdice en la tabla de indices. En la realizacion de la presente invencion, la unidad de actualizacion 96 almacena la tabla de indices en un nodo ffsico segun una pofftica establecida, no hay una relacion directa entre los datos en una tabla de indices de un nodo ffsico espedfico y los datos en el nodo ffsico, y la tabla de indices solo esta almacenada en el nodo ffsico espedfico segun una pofftica de asignacion establecida. Se puede hacer referencia a la descripcion en el metodo precedente sobre la descripcion de la tabla de indices, y los detalles no se vuelven a describir en la presente memoria.
Con referencia a la descripcion en el metodo precedente, en una implementacion espedfica, puede haber multiples maneras de que la unidad de obtencion de valor de boceto 91 obtenga, segun el primer algoritmo, los n primeros valores de boceto que representan el flujo de datos. Por ejemplo, la unidad de obtencion de valor de boceto 91 puede incluir: una subunidad de agrupamiento de huellas 911 y una subunidad de obtencion 912, donde:
la subunidad de agrupamiento 911 esta configurada para agrupar huellas de los m bloques de datos del flujo de datos en n primeros grupos de huellas, donde cada primer grupo de huellas incluye huellas de al menos dos bloques de datos; y
la subunidad de obtencion 912 esta configurada para obtener un primer valor de boceto que representa cada grupo de huellas, con el fin de obtener los n primeros valores de boceto.
La subunidad de obtencion 912 puede estar espedficamente configurada para seleccionar una huella mas pequena de cada grupo de huellas como un primer valor de boceto que representa un grupo de huellas al que pertenece la huella mas pequena.
La unidad de recepcion 94 del aparato de procesamiento de datos en un sistema de cluster puede ademas estar configurada para: por ejemplo, en un caso en que la direccion de almacenamiento transmitida como respuesta por el primer nodo ffsico no se recibe despues de que el primer valor de boceto se envfa al correspondiente primer nodo ffsico para realizar una consulta, utilizar un bloque de datos obtenido mediante la division del flujo de datos como un bloque de datos no duplicados, y luego activar la unidad de actualizacion 96.
El aparato provisto por la realizacion de la presente invencion puede estar situado en un controlador de un nodo de almacenamiento en el sistema de cluster, y esta configurado para realizar el metodo de procesamiento de datos
5
10
15
20
25
30
35
40
45
50
precedente. Se puede hacer referencia a la descripcion en la realizacion de metodo para la descripcion detallada de las funciones de todas las unidades, y los detalles no se vuelven a describir en la presente memoria.
Mediante el aparato de procesamiento de datos en un sistema de cluster provisto por la realizacion de la presente invencion, cuando se realiza una consulta de datos duplicados en el flujo de datos recibidos, un valor de boceto muestreado se envfa a un nodo ffsico identificado para la consulta de datos duplicados, y un procedimiento de la consulta de datos duplicados no cambia con un incremento de la cantidad de nodos en el sistema de cluster; por lo tanto, una cantidad de calculos de cada nodo no aumenta con un incremento de la cantidad de nodos en el sistema de cluster.
Cuando se encuentran, mediante la consulta, datos no duplicados, la unidad de consulta 95 puede considerar los datos no duplicados como un nuevo bloque de datos y almacenar el nuevo bloque de datos en un repositorio de instancia unica; por lo tanto, la realizacion de la presente invencion puede ademas incluir:
Una unidad de obtencion de direccion de escritura 97, configurada para: de acuerdo con una pofftica de almacenamiento pre-establecida, seleccionar una direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y una huella del nuevo bloque de datos.
Una unidad de escritura 98, configurada para: cuando se cumple una condicion de almacenamiento pre-establecida, escribir el nuevo bloque de datos y la huella del nuevo bloque de datos en una region de almacenamiento correspondiente a la direccion de almacenamiento seleccionada.
Puede haber multiples poffticas de almacenamiento del nuevo bloque de datos de la unidad de obtencion de direccion de escritura 97. Por ejemplo, la unidad de obtencion de direccion de escritura 97 incluye:
una subunidad de obtencion de informacion de carga 971, configurada para obtener informacion de carga de cada nodo ffsico en el sistema de cluster; y
una subunidad de seleccion de direccion 972, configurada para seleccionar, segun la informacion de carga, un nodo ffsico al cual se migran los datos, y obtener, del nodo ffsico seleccionado al cual se migran los datos, la direccion de almacenamiento en la que se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos.
Hay multiples metodos mediante los cuales la subunidad de seleccion de direccion 972 selecciona, segun la informacion de carga, la direccion de almacenamiento en la que se escriben los nuevos datos. Por ejemplo, cuando se identifica, segun la informacion de carga obtenida por la subunidad de obtencion de informacion de carga 971, que un valor de carga promedio de todos los nodos ffsicos en el sistema de cluster supera un primer umbral pre- establecido, un nodo en el que se escriben los datos se selecciona de un nodo ffsico cuyo valor de carga es menor que el valor de carga promedio, y la direccion de almacenamiento en la que se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos se obtiene del nodo en el que los datos se escriben, y cuando el valor de carga promedio de todos los nodos ffsicos del sistema de cluster es menor o igual que el primer umbral pre-establecido, la direccion de almacenamiento en la que se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos se obtiene del nodo ffsico actual.
Ciertamente, en la pofftica de almacenamiento del nuevo bloque de datos de la unidad de obtencion de direccion de escritura 97, puede que la informacion de carga tampoco sea identificada, y la direccion se selecciona directamente del nodo ffsico actual; por lo tanto, la unidad de obtencion de direccion de escritura 97 puede estar espedficamente configurada para obtener, del nodo ffsico actual, la direccion de almacenamiento en la que se escriben el nuevo bloque de datos y la huella del nuevo bloque datos.
La unidad de escritura 98 puede estar configurada para, por ejemplo, almacenar el nuevo bloque de datos en una memoria cache del nodo ffsico actual, y cuando los datos en la memoria cache del nodo ffsico actual alcanzan un segundo umbral pre-establecido, y se cumple la condicion de almacenamiento pre-establecida, escribir el nuevo bloque de datos y la huella del nuevo bloque de datos en una region de almacenamiento correspondiente a la direccion de almacenamiento seleccionada.
Para un caso en que un nodo virtual esta incluido en el sistema de cluster, al menos un nodo virtual se obtiene de forma logica mediante la division de un nodo ffsico en el sistema de cluster, y la correspondencia (VPT) entre todos los nodos virtuales y los nodos ffsicos en el sistema de cluster esta incluida en cada nodo ffsico, y en la realizacion de la presente invencion, se entiende que al menos un nodo virtual se obtiene de forma logica mediante la division de cada nodo ffsico, de manera que:
la unidad de identificacion 92 pueda estar espedficamente configurada para identificar, de acuerdo con el segundo algoritmo, un primer nodo virtual que corresponde a cada valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster, y obtener, al consultar correspondencia entre un nodo virtual en el nodo ffsico actual y un nodo ffsico, un primer nodo ffsico correspondiente al primer nodo virtual, donde se utiliza un bloque de datos no duplicados obtenido como un nuevo bloque de datos; y
5
10
15
20
25
30
35
40
45
50
la unidad de actualizacion 96 este espedficamente configurada para obtener al menos un segundo valor de boceto que representa el nuevo bloque de datos, identificar, de acuerdo con el segundo algoritmo, un segundo nodo virtual correspondiente a cada segundo valor de boceto en el segundo valor de boceto, identificar, de acuerdo con la correspondencia entre un nodo virtual y un nodo ffsico, un segundo nodo ffsico donde se ubica el segundo nodo virtual, y, despues de obtener una direccion de almacenamiento del nuevo bloque de datos, almacenar la correspondencia entre cada segundo valor de boceto y una direccion de almacenamiento de un bloque de datos representada por el segundo valor de boceto en el segundo nodo virtual del correspondiente segundo nodo ffsico.
Cuando se implemente la funcion de identificacion, segun el segundo algoritmo, un primer nodo virtual que corresponde a cada valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster, la unidad de identificacion 92 puede realizar una operacion de modulo sobre el numero de todos los nodos virtuales en el sistema de cluster por cada primer valor de boceto para obtener el primer nodo virtual que corresponde a cada primer valor de boceto y que esta en el sistema de cluster.
En un caso en el que un nodo virtual esta incluido en el sistema de cluster, cuando se realiza una solucion de migracion de datos en un nodo ffsico en el sistema de cluster, la unidad de escritura 98 esta ademas configurada para: cuando se cumple una condicion de migracion de datos, migrar mtegramente al menos un nodo virtual en un nodo ffsico cuyos datos necesitan ser migrados a un nodo ffsico objetivo; y la unidad de actualizacion 96 esta ademas configurada para actualizar la correspondencia entre un nodo virtual migrado en el nodo ffsico actual y el nodo ffsico, y notificar a otro nodo ffsico en el sistema de cluster de la actualizacion de la correspondencia entre el nodo migrado y el nodo ffsico.
La condicion de migracion de datos puede estar pre-establecida por un usuario, puede ser que los datos necesitan migrarse hacia un nodo ffsico recien agregado durante la expansion de capacidad de un nodo ffsico en el sistema de cluster; y tambien puede ser que, para equilibrar la carga, los datos de un nodo ffsico cuya carga es alta son migrados a un nodo ffsico cuya carga es baja, y la condicion de migracion de datos no esta limitada en la realizacion de la presente invencion.
El aparato de procesamiento de datos en un sistema de cluster puede implementar una migracion integral de un nodo virtual en un nodo ffsico, mientras que un numero de serie de un nodo virtual migrado hacia un nuevo nodo ffsico no cambia, donde una direccion de almacenamiento de datos correspondiente a un valor de boceto en la tabla de indices representa una ubicacion donde se almacenan datos en el nodo virtual; por lo tanto, mientras que no cambie una identidad del nodo virtual, no es necesario modificar la direccion de almacenamiento de datos, y solo se modifica la correspondencia entre un nodo virtual involucrado y un nodo ffsico, lo que simplifica un procedimiento de trabajo durante la extension de nodo y reduce, en gran medida, la cantidad de calculos.
Una realizacion de la presente invencion ademas ofrece un producto de programa informatico para procesamiento de datos, donde el producto de programa informatico incluye un medio de almacenamiento legible por ordenador que almacena un codigo de programa, donde una instruccion incluida en el codigo de programa se utiliza para:
dividir un flujo de datos recibido por un nodo ffsico actual en m bloques de datos, obtener una huella de cada bloque de datos, y obtener, de acuerdo con un primer algoritmo, n primeros valores de boceto que representan el flujo de datos, donde m es un numero entero mayor o igual que 1, y n es un numero entero mayor o igual que 1 y menor o igual que m.
identificar, de acuerdo con un segundo algoritmo, un primer nodo ffsico que corresponde a cada primer valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster, y enviar cada primer valor de boceto al correspondiente primer nodo ffsico para realizar una consulta;
recibir al menos un mensaje de respuesta de primeros nodos ffsicos correspondientes a los n primeros valores de boceto, y obtener una primera direccion de almacenamiento a partir del mensaje de respuesta; comparar una huella de un bloque de datos almacenado en una region de almacenamiento a la que apunta la primera direccion de almacenamiento con la huella de cada bloque de datos obtenida mediante la division del flujo de datos, y consultar un bloque de datos duplicados, donde se utiliza un bloque de datos no duplicados obtenido como un nuevo bloque de datos; y
obtener al menos un segundo valor de boceto que representa el nuevo bloque de datos, identificar, de acuerdo con el segundo algoritmo, un segundo nodo ffsico correspondiente a cada segundo valor de boceto en el segundo valor de boceto, y almacenar la correspondencia entre cada segundo valor de boceto y una direccion de almacenamiento de un bloque de datos representada por cada segundo valor de boceto en un correspondiente segundo nodo ffsico.
El producto de programa informatico para procesamiento de datos provisto por la realizacion de la presente invencion incluye el medio de almacenamiento legible por ordenador que almacena el codigo de programa, donde la instruccion incluida en el codigo de programa puede utilizarse para llevar a cabo el metodo en las realizaciones de
5
10
15
20
25
30
35
metodo precedentes, pudiendose hacer referencia a las realizaciones de metodo para implementaciones espedficas, y los detalles no se vuelven a describir en la presente memoria.
Los expertos en la tecnica han de comprender claramente que, en aras de una descripcion conveniente y breve, se puede hacer referencia a los procesos correspondientes en las realizaciones de metodo para procesos de trabajo espedficos de los sistemas, aparatos, y unidades precedentes, y los detalles no se vuelven a describir en la presente memoria.
En las diversas realizaciones proporcionadas en la presente solicitud, se ha de comprender que el sistema, aparato y metodo descritos pueden implementarse de otras maneras. Por ejemplo, las realizaciones de aparato descritas son meramente ejemplos. Por ejemplo, la division de las unidades es simplemente un tipo de funcion logica de division, y en la implementacion real puede haber otras formas de division. Por ejemplo, se pueden combinar o integrar en otro sistema multiples unidades o componentes, o algunas caractensticas se pueden ignorar o no llevar a cabo. Ademas, los acoplamientos mutuos mostrados o descritos o los acoplamientos directos o conexiones de comunicacion se pueden implementar a traves de algunas interfaces de comunicacion. Los acoplamientos indirectos o conexiones de comunicacion entre los aparatos o unidades se pueden implementar de forma electronica, mecanica o de otra forma.
Las unidades descritas como partes separadas pueden o no estar ffsicamente separadas, y las partes mostradas como unidades pueden o no ser unidades ffsicas, pueden estar ubicadas en una posicion, o tambien pueden estar distribuidas en una pluralidad de unidades de red. Algunas o todas las unidades se pueden seleccionar segun las necesidades reales para lograr los objetivos de las soluciones de las realizaciones.
Ademas, las unidades funcionales en las realizaciones de la presente invencion pueden estar integradas en una unidad de procesamiento, cada una de las unidades tambien puede existir ffsicamente por sf sola, y dos o mas unidades tambien estan integradas en una unidad.
Cuando las funciones se implementan en una forma de una unidad funcional de software y se venden o usan como un producto independiente, las funciones se pueden almacenar en un medio de almacenamiento legible por ordenador. Partiendo de esta premisa, las soluciones tecnicas de la presente invencion, en esencia, o la parte que contribuye a la tecnica anterior, o parte de las soluciones tecnicas, se pueden realizar en la forma de un producto de software. El producto de software informatico esta almacenado en un medio de almacenamiento, e incluye diversas instrucciones para indicar a un dispositivo informatico (que puede ser un ordenador personal, un servidor o un dispositivo de red, y asf sucesivamente) que realice parte o todas las etapas del metodo descrito en la realizacion de la presente invencion. El medio de almacenamiento anterior incluye: cualquier medio capaz de almacenar un codigo de programa, tal y como una disco flash USB, un disco duro retirable, una memoria de solo lectura (ROM, memoria de solo lectura), una memoria de acceso aleatorio (RAM, memoria de acceso aleatorio), un disco magnetico, o un disco optico.
La descripcion anterior meramente se refiere a realizaciones espedficas de la presente invencion, pero no esta concebida para limitar la presente invencion.
Claims (19)
- 51015202530354045REIVINDICACIONES1. Un metodo de procesamiento de datos un sistema de cluster, que comprende:dividir (10) un flujo de datos recibido por un nodo ffsico actual en m bloques de datos, obtener una huella de cada bloque de datos, y obtener n primeros valores de boceto que representan el flujo de datos de acuerdo con un primer algoritmo, en donde m es un numero entero mayor o igual que 1, y n es un numero entero mayor o igual que 1 y menor o igual que m;identificar (12), de acuerdo con un segundo algoritmo, un primer nodo ffsico que corresponde a cada primer valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster, y enviar cada primer valor de boceto al correspondiente primer nodo ffsico para realizar una consulta;recibir (13) al menos un mensaje de respuesta de los primeros nodos ffsicos correspondientes a los n primeros valores de boceto, y obtener una primera direccion de almacenamiento a partir del mensaje de respuesta;comparar (14) una huella de un bloque de datos almacenado en una region de almacenamiento a la que apunta la primera direccion de almacenamiento con la huella de cada bloque de datos obtenida mediante la division del flujo de datos para obtener un bloque de datos no duplicados como un nuevo bloque de datos; yobtener (15) un segundo valor de boceto que representa el nuevo bloque de datos, identificar, de acuerdo con el segundo algoritmo, un segundo nodo ffsico correspondiente al segundo valor de boceto, y almacenar la correspondencia entre el segundo valor de boceto y una direccion de almacenamiento del nuevo bloque de datos representada por el segundo valor de boceto en el segundo nodo ffsico.
- 2. El metodo de acuerdo con la reivindicacion 1, en donde al menos un nodo virtual se obtiene de forma logica mediante la division de cada nodo ffsico en el sistema de cluster, y la correspondencia entre un nodo virtual y un nodo ffsico en el sistema de cluster se comprende en cada nodo ffsico;la etapa de identificar, de acuerdo con un segundo algoritmo, un primer nodo ffsico que corresponde a cada primer valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster comprende:identificar, de acuerdo con el segundo algoritmo, un primer nodo virtual que corresponde a cada primer valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster, y obtener, al consultar correspondencia entre un nodo virtual y un nodo ffsico, un primer nodo ffsico correspondiente al primer nodo virtual; yla etapa de identificar, de acuerdo con el segundo algoritmo, un segundo nodo ffsico correspondiente al segundo valor de boceto, y almacenar la correspondencia entre el segundo valor de boceto y una direccion de almacenamiento del nuevo bloque de datos representada por el segundo valor de boceto en el segundo nodo ffsico comprende:identificar, de acuerdo con el segundo algoritmo, un segundo nodo virtual correspondiente al segundo valor de boceto, identificar, de acuerdo con la correspondencia entre un nodo virtual y un nodo ffsico, un segundo nodo ffsico donde se ubica el segundo nodo virtual, y almacenar la correspondencia entre el segundo valor de boceto y una direccion de almacenamiento del nuevo bloque de datos representada por el segundo valor de boceto en el segundo nodo virtual del segundo nodo ffsico.
- 3. El metodo segun la reivindicacion 2, en donde la etapa de identificar, de acuerdo con el segundo algoritmo, un primer nodo virtual que corresponde a cada primer valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster comprende:realizar una operacion de modulo sobre la cantidad total de nodos virtuales en el sistema de cluster por cada primer valor de boceto para obtener el primer nodo virtual que corresponde a cada primer valor de boceto y que esta en el sistema de cluster.
- 4. El metodo segun la reivindicacion 2 o 3, que ademas comprende:cuando una condicion de migracion de datos se cumple, migrar mtegramente al menos un nodo virtual en un nodo ffsico cuyos datos necesitan migrarse a un nodo ffsico objetivo; yactualizar la correspondencia entre un nodo virtual migrado en el nodo ffsico actual y un nodo ffsico, y notificar a otro nodo ffsico en el sistema de cluster de la actualizacion de la correspondencia entre un nodo migrado y un nodo ffsico.51015202530354045
- 5. El metodo segun la reivindicacion 1, en donde la etapa de identificar, de acuerdo con un segundo algoritmo, un primer nodo ffsico que corresponde a cada primer valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster comprende:realizar una operacion de modulo sobre la cantidad total de nodos ffsicos en el sistema de cluster por cada primer valor de boceto para obtener el primer nodo ffsico que corresponde a cada primer valor de boceto y que esta en el sistema de cluster.
- 6. El metodo segun cualquiera de las reivindicaciones 1 a 5, en donde la etapa de obtener un segundo valor de boceto que representa el nuevo bloque de datos comprende: obtener, de acuerdo con el primer algoritmo, el segundo valor de boceto que representa el nuevo bloque de datos.
- 7. El metodo segun cualquiera de las reivindicaciones 1 a 6, en donde la obtencion, de acuerdo con un primer algoritmo, de n primeros valores de boceto que representan el flujo de datos comprende:agrupar huellas de los m bloques de datos del flujo de datos en n primeros grupos de huellas, en donde cada primer grupo de huellas comprende huellas de al menos dos bloques de datos; yobtener un primer valor de boceto que representa cada grupo de huellas, con el fin de obtener los n primeros valores de boceto.
- 8. El metodo segun cualquiera de las reivindicaciones 1 a 5, que ademas comprende:seleccionar (46), de acuerdo con una polffica de almacenamiento pre-establecida, una direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y una huella del nuevo bloque de datos, cuando se cumple una condicion de almacenamiento pre-establecida, escribir (47) el nuevo bloque de datos y la huella del nuevo bloque de datos en una region de almacenamiento a la que apunta la direccion de almacenamiento seleccionada.
- 9. El metodo segun la reivindicacion 8, en donde la etapa de seleccionar, de acuerdo con una polffica de almacenamiento pre-establecida, una direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y una huella del nuevo bloque de datos comprende:obtener informacion de carga de un nodo ffsico en el sistema de cluster, seleccionar, de acuerdo con la informacion de carga, un nodo ffsico al cual se migran los datos, y obtener, del nodo ffsico al cual se migran los datos, la direccion de almacenamiento en la que se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos.
- 10. El metodo segun la reivindicacion 8, en donde la etapa de seleccionar, de acuerdo con una polffica de almacenamiento pre-establecida, una direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y una huella del nuevo bloque de datos comprende:obtener, del nodo ffsico actual, la direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos.
- 11. El metodo segun la reivindicacion 7, en donde la etapa de obtener un primer valor de boceto que representa cada grupo de huellas comprende: seleccionar, de cada grupo de huellas, una huella mas pequena como un primer valor de boceto que representa un grupo de huellas al que pertenece la huella mas pequena.
- 12. Un aparato de procesamiento de datos en un sistema de cluster, que comprende:una unidad divisora (90), configurada para dividir un flujo de datos recibido por un nodo ffsico actual en m bloques de datos, y obtener una huella de cada bloque de datos, donde m es un numero entero mayor o igual que 1;una unidad de obtencion de valor de boceto (91), configurada para obtener n primeros valores de boceto que representan el flujo de datos de acuerdo con un primer algoritmo, en donde n es un numero entero mayor o igual que 1 y menor o igual que m;una unidad de identificacion, configurada para identificar, de acuerdo con un segundo algoritmo, un primer nodo ffsico que corresponde a cada primer valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster;una unidad de envfo (93), configurada para enviar cada primer valor de boceto al correspondiente primer nodo ffsico para realizar una consulta;5101520253035404550una unidad de recepcion (94), configurada para recibir al menos un mensaje de respuesta de los primeros nodos ffsicos correspondientes a los n primeros valores de boceto, y obtener una primera direccion de almacenamiento a partir del mensaje de respuesta;una unidad de consulta (95), configurada para comparar una huella de un bloque de datos almacenado en una region de almacenamiento a la que apunta la primera direccion de almacenamiento con la huella de cada bloque de datos obtenida mediante la division del flujo de datos para obtener un bloque de datos no duplicados como un nuevo bloque de datos; yuna unidad de actualizacion (96), configurada para obtener un segundo valor de boceto que representa el nuevo bloque de datos, identificar, de acuerdo con el segundo algoritmo, un segundo nodo ffsico correspondiente al segundo valor de boceto, y almacenar la correspondencia entre el segundo valor de boceto y una direccion de almacenamiento del nuevo bloque de datos representada por el segundo valor de boceto en el segundo nodo ffsico.
- 13. El aparato segun la reivindicacion 12, que ademas comprende:una unidad de obtencion de direccion de escritura (97), configurada para: de acuerdo con una pofftica de almacenamiento pre-establecida, seleccionar una direccion de almacenamiento en la cual se escriben el nuevo bloque de datos y una huella del nuevo bloque de datos; yuna unidad de escritura (98), configurada para: cuando se cumple una condicion de almacenamiento pre- establecida, escribir el nuevo bloque de datos y la huella del nuevo bloque de datos en una region de almacenamiento correspondiente a la direccion de almacenamiento seleccionada.
- 14. El aparato segun la reivindicacion 13, en donde al menos un nodo virtual se obtiene de forma logica mediante la division de cada nodo ffsico en el sistema de cluster, y la correspondencia entre un nodo virtual y un nodo ffsico en el sistema de cluster se comprende en cada nodo ffsico;la unidad de identificacion esta espedficamente configurada para identificar, de acuerdo con el segundo algoritmo, un primer nodo virtual que corresponde a cada valor de boceto en los n primeros valores de boceto y que esta en el sistema de cluster, y obtener, al consultar correspondencia entre un nodo virtual y un nodo ffsico, un primer nodo ffsico correspondiente al primer nodo virtual, en donde el bloque de datos no duplicados obtenido por la unidad de consulta se utiliza como un nuevo bloque de datos; yla unidad de actualizacion (96) esta espedficamente configurada para obtener el segundo valor de boceto que representa el nuevo bloque de datos, identificar, de acuerdo con el segundo algoritmo, un segundo nodo virtual correspondiente al segundo valor de boceto, identificar, de acuerdo con la correspondencia entre un nodo virtual y un nodo ffsico, un segundo nodo ffsico donde se ubica el segundo nodo virtual, y, almacenar la correspondencia el segundo valor de boceto y una direccion de almacenamiento del bloque de datos representada por el segundo valor de boceto en el segundo nodo virtual del segundo nodo ffsico.
- 15. El aparato segun la reivindicacion 14, en donde la unidad de escritura (98) esta ademas configurada para: cuando se cumple una condicion de migracion de datos, migrar mtegramente al menos un nodo virtual en un nodo ffsico cuyos datos necesitan ser migrados a un nodo ffsico objetivo; yla unidad de actualizacion (96) esta ademas configurada para actualizar la correspondencia entre un nodo virtual migrado en el nodo ffsico actual y un nodo ffsico, y notificar a otro nodo ffsico en el sistema de cluster de la actualizacion de la correspondencia entre un nodo migrado y un nodo ffsico.
- 16. El aparato segun la reivindicacion 12, en donde la unidad de identificacion esta espedficamente configurada para realizar una operacion de modulo sobre la cantidad total de nodos ffsicos en el sistema de cluster por cada primer valor de boceto para obtener el primer nodo ffsico que corresponde a cada primer valor de boceto y que esta en el sistema de cluster.
- 17. El aparato segun cualquiera de las reivindicaciones 12 a 15, en donde la unidad de obtencion de valor de boceto (91) comprende:una subunidad de agrupamiento de huellas (911), configurada para agrupar huellas de los m bloques de datos del flujo de datos en n primeros grupos de huellas, en donde cada primer grupo de huellas comprende huellas de al menos dos bloques de datos; yuna subunidad de obtencion (912), configurada para obtener un primer valor de boceto que representa cada grupo de huellas, con el fin de obtener los n primeros valores de boceto.
- 18. El aparato segun cualquiera de las reivindicaciones 13 a 15, en donde la unidad de obtencion de direccion de escritura (97) comprende:una subunidad de obtencion de informacion de carga (971), configurada para obtener una informacion de carga del nodo ffsico en el sistema de cluster; y5 una subunidad de seleccion de direccion (972), configurada para seleccionar, segun la informacion de carga obtenida por la subunidad de obtencion de informacion de carga, un nodo ffsico al cual se migran los datos, y obtener, del nodo ffsico al cual se migran los datos, la direccion de almacenamiento en la que se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos.
- 19. El aparato segun cualquiera de las reivindicaciones 13 a 15, en donde la unidad de obtencion de direccion 10 de escritura (97) esta espedficamente configurada para obtener, del nodo ffsico actual, la direccion dealmacenamiento en la que se escriben el nuevo bloque de datos y la huella del nuevo bloque de datos.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/086413 WO2014089767A1 (zh) | 2012-12-12 | 2012-12-12 | 集群***中数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2625690T3 true ES2625690T3 (es) | 2017-07-20 |
Family
ID=49970062
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES16191349T Active ES2700431T3 (es) | 2012-12-12 | 2012-12-12 | Método y dispositivo de procesamiento de datos en un sistema de clúster |
ES12878640.7T Active ES2625690T3 (es) | 2012-12-12 | 2012-12-12 | Método y dispositivo de procesamiento de datos en un sistema de clúster |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES16191349T Active ES2700431T3 (es) | 2012-12-12 | 2012-12-12 | Método y dispositivo de procesamiento de datos en un sistema de clúster |
Country Status (12)
Country | Link |
---|---|
US (1) | US8892529B2 (es) |
EP (3) | EP2765524B1 (es) |
JP (1) | JP5824167B2 (es) |
KR (2) | KR101575062B1 (es) |
CN (2) | CN106445413B (es) |
AU (1) | AU2012389110B2 (es) |
BR (1) | BR112014009477B1 (es) |
CA (1) | CA2843922C (es) |
DK (2) | DK3217298T3 (es) |
ES (2) | ES2700431T3 (es) |
WO (1) | WO2014089767A1 (es) |
ZA (1) | ZA201401528B (es) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016035194A1 (ja) * | 2014-09-04 | 2016-03-10 | 富士通株式会社 | 情報処理システム、情報処理装置、情報処理方法、及び情報処理プログラム |
CN104239518B (zh) | 2014-09-17 | 2017-09-29 | 华为技术有限公司 | 重复数据删除方法和装置 |
CN105490903B (zh) * | 2014-09-19 | 2019-07-19 | ***股份有限公司 | 一种基于总线模式的集群架构 |
US10346075B2 (en) | 2015-03-16 | 2019-07-09 | Hitachi, Ltd. | Distributed storage system and control method for distributed storage system |
CN106294357B (zh) * | 2015-05-14 | 2019-07-09 | 阿里巴巴集团控股有限公司 | 数据处理方法和流计算*** |
US10657274B2 (en) * | 2015-06-29 | 2020-05-19 | Samsng Electronics Co., Ltd. | Semiconductor device including memory protector |
WO2017042978A1 (ja) * | 2015-09-11 | 2017-03-16 | 株式会社日立製作所 | 計算機システム、ストレージ装置、及びデータの管理方法 |
US10359942B2 (en) * | 2016-10-31 | 2019-07-23 | Pure Storage, Inc. | Deduplication aware scalable content placement |
US9946486B1 (en) | 2016-11-29 | 2018-04-17 | Veritas Technologies Llc | Duplication between disparate deduplication systems |
US10795860B1 (en) * | 2017-04-13 | 2020-10-06 | EMC IP Holding Company LLC | WAN optimized micro-service based deduplication |
CN107193503B (zh) * | 2017-05-27 | 2020-05-29 | 杭州宏杉科技股份有限公司 | 一种数据重删方法及存储设备 |
US11416447B2 (en) | 2017-06-08 | 2022-08-16 | Hitachi Vantara Llc | Deduplicating distributed erasure coded objects |
US10055198B1 (en) * | 2017-06-13 | 2018-08-21 | Sap Se | Systems and methods for probably approximate intent matching of procurement rules |
CN107291396B (zh) * | 2017-06-27 | 2018-04-13 | 北京华云网际科技有限公司 | 分布式块存储***中的io数据的写入方法和装置 |
US10936543B1 (en) | 2017-07-21 | 2021-03-02 | EMC IP Holding Company LLC | Metadata protected sparse block set for SSD cache space management |
US11461269B2 (en) | 2017-07-21 | 2022-10-04 | EMC IP Holding Company | Metadata separated container format |
US11113153B2 (en) | 2017-07-27 | 2021-09-07 | EMC IP Holding Company LLC | Method and system for sharing pre-calculated fingerprints and data chunks amongst storage systems on a cloud local area network |
US11093453B1 (en) | 2017-08-31 | 2021-08-17 | EMC IP Holding Company LLC | System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication |
CN108664217B (zh) * | 2018-04-04 | 2021-07-13 | 安徽大学 | 一种降低固态盘存储***写性能抖动的缓存方法及*** |
CN110134331B (zh) * | 2019-04-26 | 2020-06-05 | 重庆大学 | 路由路径规划方法、***及可读存储介质 |
CN110837515A (zh) * | 2019-11-06 | 2020-02-25 | 北京天融信网络安全技术有限公司 | 一种基于数据库的数据处理方法及电子设备 |
CN113220214A (zh) | 2020-02-06 | 2021-08-06 | 伊姆西Ip控股有限责任公司 | 多节点存储***及其数据去重方法 |
CN114185485B (zh) * | 2021-11-04 | 2024-06-14 | 浙江华忆芯科技有限公司 | 静态电压表的节点处理方法、装置、计算机设备和存储介质 |
CN114265551B (zh) * | 2021-12-02 | 2023-10-20 | 阿里巴巴(中国)有限公司 | 存储集群中的数据处理方法、存储集群、存储节点及设备 |
CN115604358A (zh) * | 2022-09-21 | 2023-01-13 | 网易(杭州)网络有限公司(Cn) | 业务处理方法、***、装置、管理服务器及存储介质 |
US20240103976A1 (en) * | 2022-09-23 | 2024-03-28 | Dell Products L.P. | Distributed and deduplicating file system for storing backup data to object storage |
CN115904738B (zh) * | 2023-01-05 | 2023-06-06 | 摩尔线程智能科技(北京)有限责任公司 | 数据处理装置集群的管理***和控制方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996025801A1 (en) * | 1995-02-17 | 1996-08-22 | Trustus Pty. Ltd. | Method for partitioning a block of data into subblocks and for storing and communicating such subblocks |
JP4068473B2 (ja) * | 2003-02-19 | 2008-03-26 | 株式会社東芝 | ストレージ装置、分担範囲決定方法及びプログラム |
US8412682B2 (en) * | 2006-06-29 | 2013-04-02 | Netapp, Inc. | System and method for retrieving and using block fingerprints for data deduplication |
US8166012B2 (en) * | 2007-04-11 | 2012-04-24 | Emc Corporation | Cluster storage using subsegmenting |
US8195636B2 (en) * | 2009-04-29 | 2012-06-05 | Netapp, Inc. | Predicting space reclamation in deduplicated datasets |
US9058298B2 (en) * | 2009-07-16 | 2015-06-16 | International Business Machines Corporation | Integrated approach for deduplicating data in a distributed environment that involves a source and a target |
US8321648B2 (en) * | 2009-10-26 | 2012-11-27 | Netapp, Inc | Use of similarity hash to route data for improved deduplication in a storage server cluster |
US8244992B2 (en) * | 2010-05-24 | 2012-08-14 | Spackman Stephen P | Policy based data retrieval performance for deduplicated data |
US8370315B1 (en) * | 2010-05-28 | 2013-02-05 | Symantec Corporation | System and method for high performance deduplication indexing |
CN201804331U (zh) * | 2010-09-21 | 2011-04-20 | 北京同有飞骥科技股份有限公司 | 一种基于协处理器的重复数据删除*** |
CN102456059A (zh) * | 2010-10-21 | 2012-05-16 | 英业达股份有限公司 | 重复数据删除的处理*** |
CN102479245B (zh) * | 2010-11-30 | 2013-07-17 | 英业达集团(天津)电子技术有限公司 | 数据区块的切分方法 |
US8898119B2 (en) * | 2010-12-15 | 2014-11-25 | Netapp, Inc. | Fingerprints datastore and stale fingerprint removal in de-duplication environments |
US8442941B2 (en) * | 2011-01-19 | 2013-05-14 | Microsoft Corporation | Scalable database workload replay with mode selections |
CN102323958A (zh) * | 2011-10-27 | 2012-01-18 | 上海文广互动电视有限公司 | 重复数据删除方法 |
US9047304B2 (en) * | 2011-11-28 | 2015-06-02 | International Business Machines Corporation | Optimization of fingerprint-based deduplication |
CN102495894A (zh) * | 2011-12-12 | 2012-06-13 | 成都市华为赛门铁克科技有限公司 | 重复数据查找方法、装置及*** |
US8712978B1 (en) * | 2012-06-13 | 2014-04-29 | Emc Corporation | Preferential selection of candidates for delta compression |
-
2012
- 2012-12-12 EP EP12878640.7A patent/EP2765524B1/en active Active
- 2012-12-12 WO PCT/CN2012/086413 patent/WO2014089767A1/zh active Application Filing
- 2012-12-12 ES ES16191349T patent/ES2700431T3/es active Active
- 2012-12-12 KR KR1020147006220A patent/KR101575062B1/ko active IP Right Grant
- 2012-12-12 JP JP2014551502A patent/JP5824167B2/ja not_active Expired - Fee Related
- 2012-12-12 DK DK16191349.6T patent/DK3217298T3/da active
- 2012-12-12 AU AU2012389110A patent/AU2012389110B2/en active Active
- 2012-12-12 EP EP16191349.6A patent/EP3217298B1/en active Active
- 2012-12-12 CN CN201610827845.7A patent/CN106445413B/zh active Active
- 2012-12-12 CN CN201280003372.9A patent/CN103547329B/zh active Active
- 2012-12-12 EP EP18174218.0A patent/EP3460683B1/en active Active
- 2012-12-12 CA CA2843922A patent/CA2843922C/en active Active
- 2012-12-12 DK DK12878640.7T patent/DK2765524T3/en active
- 2012-12-12 KR KR1020157034080A patent/KR101657561B1/ko active IP Right Grant
- 2012-12-12 ES ES12878640.7T patent/ES2625690T3/es active Active
- 2012-12-12 BR BR112014009477A patent/BR112014009477B1/pt active IP Right Grant
-
2013
- 2013-12-24 US US14/140,403 patent/US8892529B2/en active Active
-
2014
- 2014-02-27 ZA ZA2014/01528A patent/ZA201401528B/en unknown
Also Published As
Publication number | Publication date |
---|---|
CN103547329B (zh) | 2016-11-02 |
EP3460683A1 (en) | 2019-03-27 |
CA2843922C (en) | 2016-11-15 |
KR101657561B1 (ko) | 2016-09-19 |
US8892529B2 (en) | 2014-11-18 |
AU2012389110A1 (en) | 2014-06-26 |
JP2015503174A (ja) | 2015-01-29 |
WO2014089767A1 (zh) | 2014-06-19 |
EP3217298A1 (en) | 2017-09-13 |
CN106445413B (zh) | 2019-10-25 |
DK3217298T3 (da) | 2019-01-02 |
KR101575062B1 (ko) | 2015-12-07 |
EP2765524A4 (en) | 2015-06-03 |
DK2765524T3 (en) | 2017-05-22 |
KR20150140863A (ko) | 2015-12-16 |
EP2765524A1 (en) | 2014-08-13 |
AU2012389110B2 (en) | 2016-03-17 |
JP5824167B2 (ja) | 2015-11-25 |
ZA201401528B (en) | 2015-09-30 |
EP3217298B1 (en) | 2018-08-29 |
ES2700431T3 (es) | 2019-02-15 |
EP2765524B1 (en) | 2017-02-22 |
CA2843922A1 (en) | 2014-06-12 |
EP3460683B1 (en) | 2021-08-11 |
BR112014009477B1 (pt) | 2018-10-16 |
CN103547329A (zh) | 2014-01-29 |
BR112014009477A2 (pt) | 2017-05-09 |
CN106445413A (zh) | 2017-02-22 |
KR20140101720A (ko) | 2014-08-20 |
US20140201169A1 (en) | 2014-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2625690T3 (es) | Método y dispositivo de procesamiento de datos en un sistema de clúster | |
US10983860B2 (en) | Automatic prefill of a storage system with conditioning of raid stripes | |
US10691355B2 (en) | Apparatus, method and computer program product for controlled ordering of data pages for migration from source storage system into target storage system | |
CN103530310B (zh) | 为基于散列的消重进行子块分割的方法和*** | |
Rahman et al. | HOMR: A hybrid approach to exploit maximum overlapping in MapReduce over high performance interconnects | |
US10853365B2 (en) | Database management system, computer, and database management method | |
US20150066877A1 (en) | Segment combining for deduplication | |
WO2017020668A1 (zh) | 一种物理磁盘的共享方法及装置 | |
US10929239B2 (en) | Storage system with snapshot group merge functionality | |
US11151048B2 (en) | Host-based read performance optimization of a content addressable storage system | |
US10642514B2 (en) | Device and method for configuring expander configuration file of a storage system | |
CN107193686A (zh) | 用于数据备份的方法及设备 | |
CN104391915A (zh) | 一种数据重删方法 | |
JP6163187B2 (ja) | クラスタシステムデータ処理方法及び装置 | |
CN110489515B (zh) | 通讯录检索的方法、服务器及存储介质 | |
US20240086095A1 (en) | Data layout optimization for object-oriented storage engine |