EP1588360B1

System and method for distributed block level storage

Abstract

This record has no abstract on file.

EP1588360B1, drawing sheet 1
Sheet 1 of 17

Term

Term ended

Expired 20 January 2024, 2.7 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

12 claims: 9 independent, 3 dependent

  1. 1
    A system for block level data storage, comprising:a plurality of servers (161, 162, 163, 32A, 32B-32N, 22) constituting a server group (16) on a data network (14) to which one or more clients (12) are connected, each server (161, 162, 163, 32A, 32B-32N, 22) being responsible for a portion of stored blocks and characterized by : a means for detecting a request (34) from a client (12) for access to data in a stored block and for establishing a communication connection with the client(12), wherein the client (12) sees the server group (16) as a single server;a data mover means (22A, 22B, 22C, 54) capable of communicating directly with a data mover means (22A, 22B, 22C, 54) on another of said servers (161, 162, 163, 32A, 32B-32N, 22) for coordinating movement of blocks between the servers (161, 162, 163, 32A, 32B-32N, 22);a request monitor means (24A, 24B, 24C, 58) capable of monitoring requests (34) from the client (12), capable of communicating directly with a request monitor means (24A, 24B, 24C, 58) on another of said servers (161, 162, 163, 32A, 32B-32N, 22), and capable of generating a coordinated analysis of said client requests (34) for stored blocks;and a routing table means capable of maintaining and tracking a location of different stored blocks and the server (161, 162, 163, 32A, 32B-32N, 22) that is responsible therefor using a routing table (165, 20A, 20B, 20C), communicating with the routing table means on another of said servers (161, 162, 163, 32A, 32B-32N, 22) for maintaining a coordinated global list of servers (161, 162, 163, 32A, 32B-32N, 22) and stored blocks associated therewith, determine which server (161, 162, 163, 32A, 32B-32N, 22) is responsible for the stored blocks requested by the client (12), and forwarding the request (34) to the determined server so that the requested data in the stored block is returned to the client via the established communication connection.
  2. 4
    The system according to one of the preceding claims, wherein the request monitor means (24A, 24B, 24C, 58) identifies whether a group of blocks are accessed together at a frequency above a criterion.
  3. 5
    The system according to one of the preceding claims, wherein the data mover means operates (22A, 22B, 22C, 58) on data generated by the request monitor means (24A, 24B, 24C, 58) to determine a data block to move to a selected server (161, 162, 163, 32A, 32B-32N, 22) for improving performance.
  4. 6
    The system according to one of the preceding claims, wherein the data mover means (22A, 22B, 22C, 58) applies an adaptive block distribution algorithm to data generated by the request monitor means (24A, 24B, 24C, 58).
  5. 7
    The system according to one of the preceding claims, wherein the data mover means (22A, 22B, 22C, 58) includes a data striping algorithm for striping selected data blocks across a plurality of servers (161, 162, 163, 32A, 32B-32N, 22).
  6. 8
    The system according to one of the preceding claims, wherein the data mover means (22A, 22B, 22C, 58) includes a transaction means for monitoring a transfer of data blocks between servers.
  7. 10
    The system according to one of the preceding claims, wherein the request monitor means (24A, 24B, 24C, 58) monitors requests (34) made of two or more data volumes.
  8. 11
    The system according to one of the preceding claims, wherein the data mover means (22A, 22B, 22C, 58) moves data blocks associated with two or more data volumes.
  9. 12
    A method for providing block level data storage on a plurality of servers constituting a server group on a data network to which one or more clients are connected, each server being responsible for a portion of stored blocks and characterized by :the step of detecting a request from a client for access to data in a stored block and for establishing a communication connection with the client, wherein the client sees the server group as a single server;the step of coordinating movements of blocks between the servers by a data mover means capable of communicating directly with a data mover means on another of said servers;the step of monitoring requests from the client by a request monitor means (24A, 24B, 24C, 58), the request monitor means (24A, 24B, 24C, 58) capable of communicating directly with a request monitor means (24A, 24B, 24C, 58) on another of said servers (161, 162, 163, 32A, 32B-32N, 22), and capable of generating a coordinated analysis of said client requests (34) for stored blocks;and the step of maintaining and tracking a location of different stored blocks by a a routing table means and the server (161, 162, 163, 32A, 32B-32N, 22) that is responsible therefor using a routing table (165, 20A, 20B, 20C), communicating with the routing table means on another of said servers (161, 162, 163, 32A, 32B-32N, 22) for maintaining a coordinated global list of servers (161, 162, 163, 32A, 32B-32N, 22) and stored blocks associated therewith, determine which server (161, 162, 163, 32A, 32B-32N, 22) is responsible for the stored blocks requested by the client (12), and forwarding the request (34) to the determined server so that the requested data in the stored block is returned to the client via the established communication connection.