ES2575155T3

Providing executing programs with reliable access to non-local block data storage

Abstract

A computerized method for managing, through running programs, access to data storage functionality at the block level, said method comprising: receiving one or more indications of a first group of access data requests initiated by a first copy of a first program (375) running on a first computer system (180, 300, 370, 390) to access block level data stored in a data storage volume at the non-local block level (155), the volume of data storage at the block level (155) being provided by a second different data storage system (165, 360) by means of one or more networks (170, 185, 385) and being connected to a first computer system (180, 300, 370, 390) so that the first copy of the running program (375) initiates the requests for data access for the volume of data storage at the block level (155) through interactions with a first storage device at the local logical block level to the first computer system (180, 300, 370, 390) representing the volume of data storage at block level (155); automatically respond to the indications received from the first group of data access requests by interacting with the second data storage system (165, 360) on behalf of the first copy of the program being executed (375) to start the realization of the request for data access of the first group in the volume of data storage at block level (155) provided by the second data storage system (165, 360); After determining that the first copy of the program (375) is no longer available, identify a third computer system (180, 300, 370, 390) in which a second copy of the first program (375) is running, the third computer system other than the first computer system and the second data storage system, the second copy of the first program already being executed before the first copy of the program becomes unavailable, and connecting the data storage volume at the block level (155) to the third computer system (180, 300, 370, 390) so that the second program copy (375) has access to the second storage device at the block level local logic to the third computer system (180, 300, 370, 390) representing the volume of data storage at block level (155), in which to identify the third computer system (180, 300, 370, 390) in which the second copy of the first program (375) is running and the connection of the data storage volume at block level (155) to the third computer system (180, 300, 370, 390) is automatically made to maintain the access of the first program (375) to the volume of data storage at block level (155), automatic maintenance of the access being carried out in response to the automatic definition that the first program copy (375) is no longer available; receive one or more indications from a second group of other data access requests initiated by the second copy of the program being executed (375) for the volume of data storage at block level (155) by means of interactions with the second device storage storage at the local and logical block level in the third computer system (180, 300, 370, 390); and automatically respond to the indications received from the second group of data access requests by interacting with the second data storage system (165, 360) on behalf of the second copy of the running program (375) to initiate the realization of the data access requests of the second group in the block-level data storage volume (155) in the second data storage system (165, 360).

ES2575155T3, drawing sheet 1
Sheet 1 of 13

Term

2.9 yearsto projected expiry

Projected expiry 7 August 2029, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

15 claims: 4 independent, 11 dependent

  1. 1
    ES 2 575 155 T3 REIVINDICACIONES 1. Un método computarizado para gestionar mediante programas en ejecución el acceso a la funcionalidad de almacenamiento de datos a nivel de bloque, dicho método comprendiendo:recibir una o más indicaciones de un primer grupo de peticiones de datos de acceso iniciadas por una primera copia de un primer programa (375) ejecutándose en un primer sistema informático (180, 300, 370, 390) para acceder a datos a nivel de bloque almacenados en un volumen de almacenamiento de datos a nivel de bloque no local (155), el volumen de almacenamiento de datos a nivel de bloque (155) siendo provisto por un segundo sistema de almacenamiento de datos distinto (165, 360) por medio de una o más redes (170, 185, 385) y estando conectado a un primer sistema informático (180, 300, 370, 390) de manera que la primera copia de programa en ejecución (375) inicie las peticiones de acceso a datos para el volumen de almacenamiento de datos a nivel de bloque (155) por medio de interacciones con un primer dispositivo de almacenamiento a nivel de bloque lógico local al primer sistema informático (180, 300, 370, 390) que representa el volumen de almacenamiento de datos a nivel de bloque (155);responder automáticamente a las indicaciones recibidas del primer grupo de peticiones de acceso a datos por medio de la interacción con el segundo sistema de almacenamiento de datos (165, 360) en nombre de la primera copia de programa en ejecución (375) como para iniciar la realización de la petición de acceso a datos del primer grupo en el volumen de almacenamiento de datos a nivel de bloque (155) provisto por el segundo sistema de almacenamiento de datos (165, 360);después de determinar que la primera copia de programa (375) ha dejado de estar disponible, identificar un tercer sistema informático (180, 300, 370, 390) en el que se está ejecutando una segunda copia del primer programa (375), siendo el tercer sistema informático distinto del primer sistema informático y del segundo sistema de almacenamiento de datos, la segunda copia del primer programa ya siendo ejecutada antes de que la primera copia del programa deje de estar disponible, y conectar el volumen de almacenamiento de datos a nivel de bloque (155) al tercer sistema informático (180, 300, 370, 390) de manera que la segunda copia de programa (375) tenga acceso al segundo dispositivo de almacenamiento a nivel de bloque lógico local al tercer sistema informático (180, 300, 370, 390) que representa el volumen de almacenamiento de datos a nivel de bloque (155), en el que identificar el tercer sistema informático (180, 300, 370, 390) en el que la segunda copia del primer programa (375) se está ejecutando y la conexión del volumen de almacenamiento de datos a nivel de bloque (155) al tercer sistema informático (180, 300, 370, 390) se realiza automáticamente para mantener el acceso del primer programa (375) al volumen de almacenamiento de datos a nivel de bloque (155), el mantenimiento automático del acceso siendo realizado en respuesta a la definición automática de que la primera copia de programa (375) ha dejado de estar disponible;recibir una o más indicaciones de un segundo grupo de otras peticiones de acceso a datos iniciadas por la segunda copia de programa en ejecución (375) para el volumen de almacenamiento de datos a nivel de bloque (155) por medio de interacciones con el segundo dispositivo de almacenamiento de almacenamiento a nivel de bloque local y lógico en el tercer sistema informático (180, 300, 370, 390);y responder automáticamente a las indicaciones recibidas del segundo grupo de peticiones de acceso a datos mediante la interacción con el segundo sistema de almacenamiento de datos (165, 360) en nombre de la segunda copia de programa en ejecución (375) para iniciar la realización de las peticiones de acceso a datos del segundo grupo en el volumen de almacenamiento de datos a nivel de bloque (155) en el segundo sistema de almacenamiento de datos (165, 360).
  2. 2
    El método de la reivindicación 1 que además comprende definir automáticamente que la primera copia de programa (375) ha dejado de estar disponible, estando la no disponibilidad de la primera copia de programa (375) basada en al menos un fallo del primer sistema informático (180, 300, 370, 390), en un fallo en la conectividad con el primer sistema informático (180, 300, 370, 390), y en una incapacidad del primer sistema informático (180, 300, 370, 390) de continuar con la ejecución de la primera copia de programa (375).
  3. 3
    El método de la reivindicación 1 en el que al menos una de las acciones de determinar que la primera copia de programa (375) ha dejado de estar disponible, identificar el tercer sistema informático (180, 300, 370, 390) en el cual se está ejecutando la segunda copia del primer programa (375), y conectar el volumen de almacenamiento de datos a nivel de bloque (155) al tercer sistema informático (180, 300, 370, 390) se lleva a cabo en respuesta a una o más indicaciones recibidas de un usuario asociado al primer programa (375) y al volumen de almacenamiento de datos a nivel de bloque (155).
  4. 4
    El método de la cláusula 1 en el que la primera copia del primer programa (375) es una de las múltiples copias del primer programa (375) que se ejecutan en múltiples sistemas informáticos distintos (180, 300, 370, 390), en el que al menos una de las múltiples copias (375) es una copia alternativa para una o más de las otras múltiples copias (375), y en el que la identificación del tercer sistema informático en el que se está ejecutando la segunda copia del primer programa incluye seleccionar la segunda copia del primer programa basada en la segunda copia siendo al menos una de las copias alternativas.
  5. 5
    El método de la reivindicación 1 que además comprende, antes de conectar el volumen de almacenamiento de ES 2 575 155 T3 datos a nivel de bloque (155) al primer sistema informático (180, 300, 370, 390), crear el volumen de almacenamiento de datos a nivel de bloque (155) en el segundo sistema de almacenamiento de datos (165, 360) y crear una copia espejo del volumen de almacenamiento de datos a nivel de bloque (155) en un cuarto sistema de almacenamiento de datos a nivel de bloque (165, 360) distinto.
  6. 6
    El método de la reivindicación 1 que además comprende, antes de recibir las indicaciones del primer grupo de una o más peticiones de acceso a datos, conectar (420) el volumen de almacenamiento de datos a nivel de bloque (155) al primer sistema informático (180, 300, 370, 390) para que lo utilice la primera copia de programa en ejecución (375), incluyendo la conexión del volumen de almacenamiento de datos a nivel de bloque (155) la asociación del primer dispositivo de almacenamiento a nivel de bloque lógico al volumen de almacenamiento de datos a nivel de bloque (155) provisto por el segundo sistema de almacenamiento de datos (165, 360).
  7. 7
    El método de la reivindicación 1 en el que el primer y tercer sistema informático (180, 300, 370, 390) y el segundo sistema de almacenamiento de datos (165, 360) son un subconjunto de una pluralidad de sistemas informáticos (180, 300, 370, 390) co-localizados en una primera ubicación geográfica, en donde la pluralidad de sistemas informáticos (180, 300, 370, 390) incluye múltiples sistemas de almacenamiento de datos a nivel de bloque (165, 360) que están provistos por un servicio de almacenamiento de datos a nivel de bloque, en el que el segundo y tercer sistema de almacenamiento de datos (165, 360) son cada uno distintos de los múltiples sistemas de almacenamientos de datos a nivel de bloque (165, 360), y la primera ubicación geográfica es un centro de datos.
  8. 8
    Un medio legible por ordenador cuyos contenidos permiten a uno o más sistemas informáticos gestionar el acceso a la funcionalidad de almacenamiento de datos a nivel de bloque mediante programas en ejecución, al llevar a cabo un método que comprende:recibir una o más indicaciones de un primer grupo de peticiones de acceso a datos iniciadas por una primera copia de un primer programa (375) ejecutándose en un primer sistema informático (180, 300, 370, 390) para acceder a datos a nivel de bloque almacenados en un volumen de almacenamiento de datos a nivel de bloque no local (155), el volumen de almacenamiento de datos a nivel de bloque (155) estando provisto por un segundo sistema de almacenamiento de datos distinto (165, 360) por medio de una o más redes (170, 185, 385) y estando conectado al primer sistema informático (180, 300, 370, 390) de manera que la primera copia de programa en ejecución (375) inicie las peticiones de acceso a datos para el volumen de almacenamiento de datos (155) por medio de interacciones con un primer dispositivo de almacenamiento a nivel de bloque lógico local al primer sistema informático (180, 300, 370, 390) que representa el volumen de almacenamiento de datos a nivel de bloque (155);responder automáticamente a una o más de las indicaciones recibidas del primer grupo de peticiones de acceso a datos por medio de la interacción con el segundo sistema de almacenamiento de datos (165, 360) en nombre de la primera copia de programa en ejecución (375), incluyendo la respuesta iniciar la realización de las peticiones de acceso a datos en el volumen de almacenamiento de datos a nivel de bloque (155) en el segundo sistema de almacenamiento de datos a nivel de bloque (165, 360);después de determinar que la primera copia de programa (155) ha dejado de estar disponible, identificar un tercer sistema informático (180, 300, 370, 390) en el que se está ejecutando una segunda copia del primer programa (375), siendo el tercer sistema informático distinto del primer sistema informático y del segundo sistema de almacenamiento de datos, la segunda copia del primer programa ya siendo ejecutada antes de que la primera copia del programa deje de estar disponible, y conectar el volumen de almacenamiento de datos a nivel de bloque (155) al tercer sistema informático (180, 300, 370, 390) de manera que la segunda copia de programa (375) tenga acceso al segundo dispositivo de almacenamiento a nivel de bloque lógico local al tercer sistema informático (180, 300, 370, 390) que representa el volumen de almacenamiento de datos a nivel de bloque (165, 360), en el que la identificación del tercer sistema informático (180, 300, 370, 390) en el que la segunda copia del primer programa (375) se está ejecutando y en el que la conexión del volumen de almacenamiento de datos a nivel de bloque (155) al tercer sistema informático (180, 300, 370, 390) se realiza automáticamente para mantener el acceso del primer programa (375) al volumen de almacenamiento de datos a nivel de bloque (165, 360), llevándose a cabo el mantenimiento automático del acceso en respuesta a la determinación automática de que la primera copia de programa (155) ha dejado de estar disponible;recibir una o más indicaciones de un segundo grupo de otras peticiones de acceso a datos iniciadas por la segunda copia de programa en ejecución (155) para el volumen de almacenamiento de datos a nivel de bloque (155) por medio de interacciones con el segundo dispositivo de almacenamiento a nivel de bloque local y lógico en el tercer sistema informático (180, 300, 370, 390);y responder automáticamente a las indicaciones recibidas del segundo grupo de peticiones de acceso a datos mediante la interacción con el segundo sistema de almacenamiento de datos (165, 360) en nombre de la segunda copia de programa en ejecución (375) para iniciar la realización de las peticiones de acceso a datos del segundo grupo en el volumen de almacenamiento de datos a nivel de bloque (155) en el segundo sistema de almacenamiento de datos (165, 360).
  9. 9
    El medio legible por ordenador de la reivindicación 8 en el que la primera copia de programa (375) y la segunda ES 2 575 155 T3 copia de programa (375) son copias en ejecución de un único programa (375), las peticiones de acceso a datos para el volumen de datos a nivel de bloque (155) mediante la primera y segunda copia de programa (375) son para acceder a los datos a nivel de bloque almacenados en el volumen de almacenamiento de datos a nivel de bloque (155), el primer y tercer sistema informático (180, 300, 370, 390) y el segundo sistema de almacenamiento de datos a nivel de bloque (165, 360) están ubicados en una única ubicación geográfica, el primer y segundo sistema informático (180, 300, 370, 390) y el segundo sistema de almacenamiento de datos a nivel de bloque (165, 360) están separados por una o más redes (170, 185, 385), la realización de las peticiones de acceso a datos y las otras peticiones de acceso a datos en el volumen de almacenamiento de datos a nivel de bloque (155) en el segundo sistema de almacenamiento de datos a nivel de bloque (165, 360) se realizan automáticamente mediante un módulo de administrador de sistema (340) de un servicio de almacenamiento de datos a nivel de bloque, un módulo de administrador de nodo (380) del servicio de almacenamiento de datos a nivel de bloque está asociado al primer sistema informático (180, 300, 370, 390) y gestiona el acceso de la primera copia de programa en ejecución (375) a una o más redes (170, 185, 385), y la respuesta automática a las indicaciones recibidas del primer grupo de peticiones de acceso a datos se realiza en parte bajo el control del módulo de administrador de nodo (380) al iniciar el envío de las peticiones de acceso a datos recibidas por medio de una o más redes (170, 185, 385) hacia el segundo sistema de almacenamiento de datos a nivel de bloque (165, 360).
  10. 10
    El medio legible por ordenador de la reivindicación 9 en el que el módulo de administrador de nodo (380) además gestiona el acceso de la segunda copia de programa en ejecución (375) a una o más de las redes (170, 185, 385), el tercer y primer sistema informático (180, 300, 370, 390) son parte de un único sistema informático físico, y la respuesta automática a las indicaciones recibidas del segundo grupo de otras peticiones de acceso a datos se realiza en parte bajo el control del módulo de administrador de nodo (380) al iniciar el envío de las otras peticiones de acceso a datos por medio de una o más redes (170, 185, 385) hacia el sistema de almacenamiento de datos a nivel de bloque (165, 360).
  11. 11
    El medio legible por ordenador de la reivindicación 8 en el que el medio legible por ordenador es al menos una de las memorias (330, 354, 374) de un sistema informático (180, 300, 370, 390) que almacena los contenidos y un medio de transmisión de datos que incluye una señal de datos almacenada y generada que contiene los contenidos, o en el que los contenidos son instrucciones que al ejecutarse hacen que uno o más sistemas informáticos (180, 300, 370, 390) lleven a cabo el método.
  12. 12
    Un sistema configurado para gestionar el acceso a la funcionalidad de almacenamiento de datos a nivel de bloque mediante programas en ejecución, que comprende:una o más memorias (330, 354, 374);y un sistema de almacenamiento de datos a nivel de bloque (340) configurado para proveer un servicio de almacenamiento de datos a nivel de bloque que utiliza múltiples sistemas de almacenamiento de datos a nivel de bloque (165, 360) para almacenar volúmenes de almacenamiento de datos a nivel de bloque (155) creados por usuarios del servicio de almacenamiento de datos a nivel de bloque y a los que se accede en nombre de uno o más programas en ejecución (375) asociados a los usuarios, el suministro del servicio de almacenamiento de datos a nivel de bloque incluyendo: crear uno o más volúmenes de almacenamiento de datos a nivel de bloque (155) para ser utilizados por uno o más programas en ejecución (375), estando cada uno de los volúmenes de almacenamiento de datos a nivel de bloque (155) almacenados en uno de los múltiples sistemas de almacenamiento de datos a nivel de bloque (165, 360);recibir una o más indicaciones de un primer grupo de peticiones de acceso a datos iniciadas por una primera copia de un primer programa (375) ejecutándose en un primer sistema informático (180, 300, 370, 390) para acceder a datos a nivel de bloque almacenados en un volumen de almacenamiento de datos a nivel de bloque no local (155) creado de uno o más de los volúmenes de almacenamiento de datos a nivel de bloque, estando el primer volumen de almacenamiento de datos a nivel de bloque (155) creado provisto por un segundo sistema de almacenamiento de datos distinto (165, 360) por medio de una o más redes (170, 185, 385) y estando conectado a un primer sistema informático (180, 300, 370, 390) de manera que la primera copia de programa en ejecución (375) inicie las peticiones de acceso a datos para el primer volumen de almacenamiento de datos a nivel de bloque (155) creado por medio de interacciones con un primer dispositivo de almacenamiento a nivel de bloque lógico local al primer sistema informático (180, 300, 370, 390) que representa al primer volumen de almacenamiento de datos a nivel de bloque (155) creado;responder automáticamente a las indicaciones recibidas del primer grupo de peticiones de acceso a datos mediante la interacción con el segundo sistema de almacenamiento de datos (165, 360) en nombre de la segunda copia de programa en ejecución (375) para iniciar la realización de las peticiones de acceso a datos del primer grupo en el primer volumen de almacenamiento de datos a nivel de bloque (155) creado provisto por el segundo sistema de almacenamiento de datos (165, 360);después de determinar que la primera copia de programa (375) ha dejado de estar disponible, identificar un tercer sistema informático (180, 300, 370, 390) en el que se está ejecutando una segunda copia del primer programa (375), siendo el tercer sistema informático distinto del primer sistema ES 2 575 155 T3 informático y del segundo sistema de almacenamiento de datos, la segunda copia del primer programa ya siendo ejecutada antes de que la primera copia del programa deje de estar disponible, y conectar el primer volumen de almacenamiento de datos a nivel de bloque creado (155) al tercer sistema informático (180, 300, 370, 390) de manera que la segunda copia de programa (375) tenga acceso a un segundo dispositivo de almacenamiento a nivel de bloque lógico local al tercer sistema informático (180, 300, 370, 390) que representa el primer volumen de almacenamiento de datos a nivel de bloque (155) creado, en el la identificación del tercer sistema informático (180, 300, 370, 390) en el que la segunda copia del primer programa (375) se está ejecutando y la conexión del primer volumen de almacenamiento de datos a nivel de bloque (155) creado para el tercer sistema informático (180, 300, 370, 390) se realizan automáticamente para mantener el acceso del primer programa (375) al primer volumen de almacenamiento de datos a nivel de bloque creado (155), llevándose a cabo el mantenimiento automático del acceso en respuesta a la determinación automática de que la primera copia de programa (375) ha dejado de estar disponible;recibir una o más indicaciones de un segundo grupo de otras peticiones de acceso a datos iniciadas por la segunda copia de programa en ejecución (375) para el primer volumen de almacenamiento de datos a nivel de bloque (155) creado por medio de interacciones con el segundo dispositivo de almacenamiento de almacenamiento a nivel de bloque local y lógico en el tercer sistema informático (180, 300, 370, 390);y responder automáticamente a las indicaciones recibidas del segundo grupo de peticiones de acceso a datos mediante la interacción con el segundo sistema de almacenamiento de datos (165, 360) en nombre de la segunda copia de programa en ejecución (375) para iniciar la realización de las peticiones de acceso a datos del segundo grupo en el primer volumen de almacenamiento de datos a nivel de bloque (155) creado en un segundo sistema de almacenamiento de datos (165, 360).
  13. 13
    El sistema de la reivindicación 12 en el que la primera copia de programa (375) y la segunda copia de programa (375) son copias en ejecución de un único programa (375), las peticiones de acceso a datos para el primer volumen de almacenamiento de datos a nivel de bloque (155) creado por la primera y segunda copia de programa (375) son para acceder a los datos a nivel de bloque almacenados en el primer volumen de almacenamiento de datos a nivel de bloque (155) creado, el primer volumen de almacenamiento de datos a nivel de bloque (155) creado está almacenado en un primero de los sistemas de almacenamiento de datos (165, 360), el primer y tercer sistema informático (180, 300, 370, 390) y el primer sistema de almacenamiento de datos a nivel de bloque (165, 360) están ubicados en una única ubicación geográfica y separados por una o más redes (170, 185, 385), y el sistema además comprende uno o más módulos de administradores de nodo (380) del servicio de almacenamiento de datos a nivel de bloque asociado a la primera y segunda copia de programa (375), estando uno o más de los módulos de administrador de nodo (380) configurados para gestionar el acceso de la primera y segunda copia de programa (375) a una o más redes (170, 185, 385), de manera que la respuesta a las peticiones de acceso a datos y a otras peticiones de acceso a datos se lleven a cabo en parte bajo el control de uno o más de los módulos de administrador de nodo (380) al iniciar el envío de las peticiones de acceso a datos y de las otras peticiones de acceso a datos por medio de una o más redes (170, 185, 385) hacia el primer sistema de almacenamiento de datos a nivel de bloque (165, 360).
  14. 14
    El sistema de la reivindicación 12 en el que una primera copia del primer volumen de almacenamiento de datos a nivel de bloque (155) creado está almacenado en un primer sistema de almacenamiento de datos a nivel de bloque (165, 360), y el primer sistema informático (180, 300, 370, 390) está co-localizado con el primer sistema de almacenamiento de datos a nivel de bloque (165, 360) en una primera ubicación geográfica.
  15. 15
    El sistema de la reivindicación 12 en el que el primer sistema informático (180, 300, 370, 390) incluye al menos una de una o más memorias (330, 354, 374), y el módulo de administrador de sistema de almacenamiento de datos a nivel de bloque (340) incluye instrucciones de software para su ejecución mediante el primer sistema informático (180, 300, 370, 390) que utiliza al menos una de una o más de las memorias (330, 354, 374).
Independent claims15