Methods, systems, and computer program products for providing access to shared storage by computing grids and clusters with large numbers of nodes
First Claim
1. A method for providing access to shared storage by a plurality of nodes, the method comprising:
- at a client node of a plurality of nodes separate from and sharing access to a disk array;
(a) detecting a first application input/output (I/O) operation;
(b) detecting whether sufficient space in the disk array has been mapped at the node for the first application I/O operation;
(c) in response to detecting that sufficient space in the disk array has not been mapped at the client node for the first application I/O operation, requesting, from a server, and obtaining, from the server, a map including physical disk access information for the first application I/O operation, wherein the physical disk access information includes a physical address of a location within a disk of the disk array; and
(d) performing the first application I/O operation by accessing the disk array without intervention by the server using the physical disk access information included within the map for the application I/O operation obtained from the server, wherein the client node maintains the map and uses the map for subsequent application I/O operations including accessing physical disks of the disk array directly without interaction with the server.
9 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and computer program products for providing access to shared storage by a plurality of nodes are disclosed. According to one method, at a node of a plurality of nodes sharing access to a disk array, an application input/output (I/O) operation and whether sufficient space in the disk array has been mapped at the node for the I/O operation are detected. In response to detecting that sufficient space in the disk array has not been mapped at the node for the I/O operation, a map for the I/O operation including physical disk access information is requested and obtained from a server. The physical disk access information included within the map for the application I/O operation obtained from the server is used to perform the I/O operation by accessing the disk array without intervention by the server.
-
Citations
31 Claims
-
1. A method for providing access to shared storage by a plurality of nodes, the method comprising:
-
at a client node of a plurality of nodes separate from and sharing access to a disk array; (a) detecting a first application input/output (I/O) operation; (b) detecting whether sufficient space in the disk array has been mapped at the node for the first application I/O operation; (c) in response to detecting that sufficient space in the disk array has not been mapped at the client node for the first application I/O operation, requesting, from a server, and obtaining, from the server, a map including physical disk access information for the first application I/O operation, wherein the physical disk access information includes a physical address of a location within a disk of the disk array; and (d) performing the first application I/O operation by accessing the disk array without intervention by the server using the physical disk access information included within the map for the application I/O operation obtained from the server, wherein the client node maintains the map and uses the map for subsequent application I/O operations including accessing physical disks of the disk array directly without interaction with the server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system for providing access to shared storage by a plurality of nodes, the system comprising:
-
(a) a disk array; (b) a data storage extent pool representing at least a portion of the disk array and including at least one data storage block; (c) a server for tracking and providing physical disk access information associated with the at least one data storage block of the data storage extent pool to a plurality of client nodes sharing access to the disk array, the physical disk access information maintained within a file system with logical units (LUNS) associated with the disk array mapped to files; and (d) a plurality of client nodes separate from and sharing access to the disk array, wherein the plurality of client nodes includes a first client node adapted to, in response to a first application input/output (I/O) operation; (i) detect whether sufficient space in the disk array has been mapped at the node for the first application I/O operation; (ii) in response to detecting that sufficient space in the disk array has not been mapped at the first client node for the first application I/O operation, request, from the server, and obtain, from the server, a map including physical disk access information for the first application I/O operation, wherein the physical disk access information includes a physical address of a location within a disk of the disk array; and (iii) use the map for the first application I/O operation obtained from the server to perform the first application I/O operation by accessing the disk array using the physical disk access information without intervention by the server, wherein the first client node maintains the map and uses the map for subsequent application I/O operations including accessing physical disks of the disk array directly without interaction with the server. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A system for providing access to shared storage and shared services in a redundant array of inexpensive disks (RAID) environment by computing grids and clusters with large numbers of nodes, the system comprising:
-
(a) a disk array; (b) a data storage extent pool representing at least a portion of the disk array and including at least one data storage block; (c) a plurality of client nodes separate from and sharing access to the disk array, the plurality of client nodes including a first client node adapted to, in response to an application input/output (I/O) operation; (i) detect whether sufficient space in the disk array has been mapped at the node for the application I/O operation; (ii) in response to detecting that sufficient space in the disk array has not been mapped at the first client node for the application I/O operation, request, from a server, and obtain, from the server, a map for the application I/O operation, wherein the physical disk access information includes a physical address of a location within a disk of the disk array; and (iii) use the map for the application I/O operation obtained from the server to perform the application I/O operation by accessing the disk array without intervention by the server, wherein the first client node maintains the map and uses the map for subsequent application I/O operations including accessing physical disks of the disk array directly without interaction with the server.
-
-
30. A client node for accessing shared storage in a disk array using information provided by a server, the client node comprising:
-
(a) an application for performing an input/output (I/O) operation; (b) an extent map cache for storing mappings between logical identifiers and physical storage blocks within a disk array, wherein the mappings include a physical address of a location within a disk of the disk array; (c) a fragment mapping protocol client for, in response to the I/O operation and a determination that a mapping does not exist for the I/O operation in the extent map cache, requesting, from a server, and obtaining, from the server, a mapping for the I/O operation; (d) a fragment mapping protocol pseudo-device for obtaining a physical disk identifier for the I/O operation from the extent map cache; and (e) a disk interface for performing the I/O operation using the physical disk identifier, wherein the client node maintains the mapping and uses the mapping for subsequent I/O operations including accessing physical disks of the disk array directly without interaction with the server and wherein the client node is separate from the disk array.
-
-
31. A computer program product comprising computer-executable instructions embodied in a computer-readable medium for performing steps comprising:
-
at a client node of a plurality of client nodes separate from and sharing access to a disk array; (a) detecting an application input/output (I/O) operation; (b) detecting whether sufficient space in the disk array has been mapped at the client node for the application I/O operation; (c) in response to detecting that sufficient space in the disk array has not been mapped at the client node for the application I/O operation, requesting, from a server, and obtaining, from the server, a map for the application I/O operation, wherein the physical disk access information includes a physical address of a location within a disk of the disk array; and (d) using the map for the I/O operation obtained from the server to perform the I/O operation by accessing the disk array without intervention by the server, wherein the client node maintains the map and uses the map subsequent application I/O operations including accessing physical disks of the disk array directly without interaction with the server.
-
Specification