EP1588360A2

System and method for distributed block level storage

Abstract

This record has no abstract on file.

Term

Term ended

Projected expiry passed 20 January 2024, 2.7 years ago.

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

64 claims: 22 independent, 42 dependent

  1. 1
    Claims of equivalent WO 2004066277 A2 CLAIMS We claim:1. A system for block level data storage, comprising: a plurality of equivalent servers, each being responsible for a portion of stored blocks and each having a data mover process capable of communicating directly with a data mover process on another server for coordinating movement of blocks between the servers;a request monitor process capable of communicating directly with a request monitor process on another server and capable of generating a coordinated analysis of requests for blocks;and a routing table process capable of communicating with the routing tables processor for maintaining a coordinated list of equivalent servers and data blocks associated therewith.
  2. 4
    The system according to one of the preceding claims, wherein the request monitor process measures parameters selected from the group consisting of a number of clients accessing a data volume, a number of I/O requests, and a measure of available storage.
  3. 5
    The system according to one of the preceding claims, wherein the request monitor process identifies whether a group of blocks are accessed together at a frequency above a hot block criterion.
  4. 6
    The system according to one of the preceding claims, wherein the data mover process operates on data generated by the request monitor process to determine a data block to move to a selected server for improving performance.
  5. 7
    The system according to one of the preceding claims, wherein the data mover process applies an adaptive block distribution algorithm to data generated by the request monitor process.
  6. 8
    The system according to one of the preceding claims, wherein the data mover process includes a data striping algorithm for striping selected data blocks across a plurality of servers.
  7. 9
    The system according to one of the preceding claims, wherein the data mover process includes a transaction process for monitoring a transfer of data blocks between servers.
  8. 11
    The system according to one of the preceding claims, wherein the request monitor monitors requests made of two or more data volumes.
  9. 12
    The system according to one of the preceding claims, wherein the data mover process moves data blocks associated with two or more data volumes.
  10. 13
    A process for providing block level data storage, comprising:providing a plurality of equivalent servers each being responsible for a portion of stored data blocks and each monitoring client requests received by a respective equivalent server and communicating directly with a request monitor process on another server to generate a coordinated analysis of requests for blocks;moving data blocks between the servers;and maintaining a routing table representative of a coordinated list of equivalent servers and data blocks associated therewith and communicating with other routing tables to generate a global routing table processor for tracking data blocks stored across different servers on the system.
  11. 16
    The process according to one of the preceding claims, wherein monitoring requests includes measuring parameters selected from the group consisting of a number of clients accessing a data volume, a number of I/O requests, and a measure of available storage.
  12. 17
    The process according to one of the preceding claims, wherein request monitoring includes identifying whether a group of blocks are accessed together at a frequency above a hot block criterion.
  13. 18
    The process according to one of the preceding claims, wherein data moving includes striping selected data blocks across a plurality of servers.
  14. 19
    The process according to one of the preceding claims, wherein data moving includes monitoring a transfer of data blocks between servers.
  15. 21
    The process according to one of the preceding claims, wherein monitoring requests includes monitoring requests made of two or more data volumes.
  16. 22
    A process for providing services over a data network, comprising detecting a request from a client for access to a resource and establishing a connection for communicating with the client, identifying a server for servicing the detected request, determining whether state information is associated with the connection, granting the identified server access to the state information and allowing the identified server to create and transmit a response to the client, and allowing the identified server to update the state information.
  17. 30
    A system for providing services over a data network, comprising:a process for detecting a request from a client for access to a resource and for establishing a communication connection with the client, a server identification process for identifying a server associated with the requested resource, a request router for forwarding the detected request to an identified server, and a socket server for allowing distributed access to state information associated with the communication connection, whereby the identified server may access the state information for responding to the client.
  18. 38
    A server for access to a distributed service over a data network, comprising:a listening thread for detecting a request from a client for access to a service and for establishing a communication connection with the client, the communication connection having state information associated therewith, a resource management process for maintaining a list of available servers capable of servicing the detected request, a request router for forwarding the detected request to an identified server, and a connection data server for allowing distributed access to state information associated with the communication connection, whereby the identified server may access the state information for responding to the client.
  19. 39
    A socket server for allowing a plurality of servers supporting a partitioned resource to respond to a detected request from a client, comprising:a file process, responsive to the detected request, for creating a data file associated with a communication channel opened for communicating with the client and for maintaining state information, a control process for detecting requests from the plurality of servers to access the data file and for controlling access to the data file to grant at least one of the plurality of servers access to the state information, and a file write process for allowing one of the plurality of servers to update the state information stored in the created file.
  20. 44
    A system for providing differentiated classes of storage, comprising a storage device having a plurality of storage locations and a logical block name space for organizing the storage locations, a performance process for partitioning storage locations into a plurality of regions providing different levels of performance, and a mapping process for mapping the partitioned portions of the storage locations to a selected section of the logical block name space.
  21. 54
    A process for providing differentiated classes of storage, comprising the steps of providing a storage device having a plurality of storage locations and a logical block name space for organizing the storage locations, partitioning storage locations into a plurality of regions providing different levels of performance, and mapping the partitioned portions of the storage locations to a selected section of the logical block name space.
  22. 62
    A system for providing differentiated classes of storage, comprising a storage device having a plurality of storage locations, a logical block name space for organizing the storage locations, and performance parameters of the storage locations that vary across the storage device, and a partitioning process for partitiomng those storage locations into regions as a function variations in performance parameters.
Independent claims22