Method and apparatus for resource allocation in a raid system
First Claim
1. A method for managing allocation of resources to I/O tasks in a RAID system, the method comprising:
- generating configuration information about said RAID system;
defining a plurality of I/O tasks;
defining a plurality of resource pools;
determining for each resource pool a respective set of resources associated with that resource pool, the set of resources based at least in part on said configuration information and said plurality of I/O tasks, each set of resources comprising one or more resource types;
associating a first I/O task from said plurality of I/O tasks with a respective first resource pool from said plurality of resource pools; and
allocating to said first I/O task a requested resource from said associated respective first resource pool if said requested resource is available from said respective set of resources associated with said associated respective first resource pool.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention implements an I/O task architecture in which an I/O task requested by the storage manager, for example a stripe write, is decomposed into a number of lower-level asynchronous I/O tasks that can be scheduled independently. Resources needed by these lower-level I/O tasks are dynamically assigned, on an as-needed basis, to balance the load and use resources efficiently, achieving higher scalability. A hierarchical order is assigned to the I/O tasks to ensure that there is a forward progression of the higher-level I/O task and to ensure that resources do not become deadlocked.
156 Citations
35 Claims
-
1. A method for managing allocation of resources to I/O tasks in a RAID system, the method comprising:
-
generating configuration information about said RAID system;
defining a plurality of I/O tasks;
defining a plurality of resource pools;
determining for each resource pool a respective set of resources associated with that resource pool, the set of resources based at least in part on said configuration information and said plurality of I/O tasks, each set of resources comprising one or more resource types;
associating a first I/O task from said plurality of I/O tasks with a respective first resource pool from said plurality of resource pools; and
allocating to said first I/O task a requested resource from said associated respective first resource pool if said requested resource is available from said respective set of resources associated with said associated respective first resource pool. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A storage system for managing allocation of resources to I/O tasks in a RAID system, said storage system comprising:
-
an instantiator module configured to generate configuration information about said RAID system and to define a plurality of I/O tasks; and
a resource manager configured to define a plurality of resource pools, to determine for each resource pool a respective set of resources associated with that resource pool, the set of resources based at least in part on said configuration information and said plurality of I/O tasks, each set of resources comprising one or more resource types, to associate a first I/O task from said plurality of I/O tasks with a respective first resource pool from said plurality of resource pools and to allocate to said first I/O task a requested resource from said associated respective first resource pool if said requested resource is available from said respective set of resources associated with said associated respective first resource pool. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. An article of manufacture having computer-readable program portions embodied therein for managing allocation of resources to I/O tasks in a RAID system, said article comprising:
-
a computer-readable program portion for defining a plurality of I/O tasks;
a computer-readable program portion for defining a plurality of resource pools;
a computer-readable program portion for determining for each resource pool a respective set of resources associated with that resource pool, the set of resources based at least in part on said configuration information and said plurality of I/O tasks, each set of resources comprising one or more resource types a computer-readable program portion for associating a first I/O task from said plurality of I/O tasks with a respective first resource pool from said plurality of resource pools; and
a computer-readable program portion for allocating to said first I/O task a requested resource from said associated respective first resource pool if said requested resource is available from said associated respective first resource pool. - View Dependent Claims (33, 34, 35)
-
Specification