Shared storage I/O elimination through mapping client integration into a hypervisor
First Claim
1. A system for performing an I/O in a storage virtualization environment, the system comprising:
- a storage server in the storage virtualization environment, including a mapping service, wherein the storage server in communication with the mapping service organizes one or more storage objects as a set of related objects indicating a portion of data that is shared among the one or more storage objects;
a data storage system in the storage virtualization environment, wherein the data storage system in communication with the storage server provides a pool of storage resources to the storage server for storing the one or more storage objects as a set of virtual devices that share from the pool of storage resources; and
a client of the storage server including a mapping client for the mapping service and a data cache, wherein the client of the storage server in communication with the storage server and the data storage system presents a storage object of the one or more storage objects as a logical addressable storage object to one or more applications running on the client of the storage server and the mapping client provides the one or more application a mapping between a logical addressable storage object to its physical location on the data storage system and uses the data cache to store the physical location and contents of the one or more storage objects;
wherein the one or more storage objects is represented by one or more files;
wherein the storage server is represented by a file server in communication with the data storage system;
wherein the data storage system provides the logical disk storage to the file server for storing the one or more files;
wherein the one or more files are organized as a version set by the file server indicating a set of physical blocks that are shared among the one or more files;
wherein the one or more files organized as the version set represents the logical disk storage for respective virtual machines of a group of one or more virtual machines in the storage virtualization environment; and
wherein the version set is a sparse snapshot of the file of the one or more files.
9 Assignments
0 Petitions
Accused Products
Abstract
This invention is a system and a method for performing an I/O in a virtual data storage environment using a new architecture. The system of performing an I/O includes a mapping client integrated into a client of the storage server which in communication with the mapping server included in the storage server retrieves the mapping of the special data sharing storage objects and caches the shared objects in the data cache include in the client environment. The method of accessing the data sharing storage objects by one or more applications running on a client reduces the number of I/O on the storage objects by caching the storage objects in the data cache and bringing the knowledge of data sharing into the client environment.
-
Citations
18 Claims
-
1. A system for performing an I/O in a storage virtualization environment, the system comprising:
-
a storage server in the storage virtualization environment, including a mapping service, wherein the storage server in communication with the mapping service organizes one or more storage objects as a set of related objects indicating a portion of data that is shared among the one or more storage objects; a data storage system in the storage virtualization environment, wherein the data storage system in communication with the storage server provides a pool of storage resources to the storage server for storing the one or more storage objects as a set of virtual devices that share from the pool of storage resources; and a client of the storage server including a mapping client for the mapping service and a data cache, wherein the client of the storage server in communication with the storage server and the data storage system presents a storage object of the one or more storage objects as a logical addressable storage object to one or more applications running on the client of the storage server and the mapping client provides the one or more application a mapping between a logical addressable storage object to its physical location on the data storage system and uses the data cache to store the physical location and contents of the one or more storage objects; wherein the one or more storage objects is represented by one or more files; wherein the storage server is represented by a file server in communication with the data storage system; wherein the data storage system provides the logical disk storage to the file server for storing the one or more files; wherein the one or more files are organized as a version set by the file server indicating a set of physical blocks that are shared among the one or more files; wherein the one or more files organized as the version set represents the logical disk storage for respective virtual machines of a group of one or more virtual machines in the storage virtualization environment; and wherein the version set is a sparse snapshot of the file of the one or more files. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for performing an I/O on a storage object of one or more storage objects in a storage virtualization environment, the environment including a storage server, a data storage system and a client of a storage server, wherein the data storage system in communication with the storage server provides a pool of storage resources to the storage server for storing the one or more storage objects as a set of virtual devices that share from the pool of storage resources organized as a set of related objects indicating a portion of data that is shared among the one or more storage objects, wherein the storage object of the one or more storage object is presented by the client of the storage server as a logical addressable object to one or more applications running on the client, the method comprising the steps of:
-
retrieving from a mapping client a physical address for a logical addressable storage object on which I/O is generated by an application, wherein the mapping client resides in the client of the storage server and provides the application a mapping of the logical addressable storage object to its physical location on the data storage system; examining a data cache included in the client of the storage server to determine the availability of the storage object in the data cache, wherein the data cache contains the physical address and content of the one or more storage objects accessed by previous I/O operations; and completing the I/O on finding the storage object in the data cache; wherein the one or more storage objects is represented by one or more files; wherein the storage server is represented by a file server in communication with the data storage system; wherein the data storage system provides the logical disk storage to the file server for storing the one or more files; wherein the one or more files are organized as a version set by the file server indicating a set of physical blocks that are shared among the one or more files; wherein the one or more files organized as the version set represents the logical disk storage for respective virtual machines of a group of one or more virtual machines in the storage virtualization environment; and wherein the version set is a sparse snapshot of the file of the one or more files. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A system for performing an I/O in a storage virtualization environment, the system comprising:
-
a storage server in the storage virtualization environment, including a mapping service, wherein the storage server in communication with the mapping service organizes one or more storage objects as a set of related objects indicating a portion of data that is shared among the one or more storage objects; a data storage system in the storage virtualization environment, wherein the data storage system in communication with the storage server provides a pool of storage resources to the storage server for storing the one or more storage objects as a set of virtual devices that share from the pool of storage resources; a client of the storage server including a mapping client for the mapping service and a data cache, wherein the client of the storage server in communication with the storage server and the data storage system presents a storage object of the one or more storage objects as a logical addressable storage object to one or more applications running on the client of the storage server and the mapping client provides the one or more application a mapping between a logical addressable storage object to its physical location on the data storage system and uses the data cache to store the physical location and contents of the one or more storage objects; and a program logic in communication with the data storage system and the file server for carrying out the steps of; retrieving from the mapping client a physical address for a logical addressable storage object on which I/O is generated by an application, wherein the mapping client resides in the client of the storage server and provides the application a mapping of the logical addressable storage object to its physical location on the data storage system; examining the data cache included in the client of the storage server to determine the availability of the storage object in the data cache, wherein the data cache contains the physical address and content of the one or more storage objects accessed by previous I/O operations; and completing the I/O on finding the storage object in the data cache wherein the one or more storage objects is represented by one or more files; wherein the storage server is represented by a file server in communication with the data storage system; wherein the data storage system provides the logical disk storage to the file server for storing the one or more files; wherein the one or more files are organized as a version set by the file server indicating a set of physical blocks that are shared among the one or more files; wherein the one or more files organized as the version set represents the logical disk storage for respective virtual machines of a group of one or more virtual machines in the storage virtualization environment; and wherein the version set is a sparse snapshot of the file of the one or more files.
-
-
18. A computer program product for performing an I/O on a storage object of one or more storage objects, the computer program product operating in a storage virtualization environment that includes a storage server, a data storage system and a client of the storage server, wherein the data storage system in communication with the storage server provides a pool of storage resources to the storage server for storing the one or more storage objects as a set of virtual devices that share from the pool of storage resources organized as a set of related objects indicating a portion of data that is shared among the one or more storage objects, wherein the storage object of the one or more storage objects is presented to an application running in the client as a logically addressable storage object, wherein the computer program product includes computer-executable logic encoded on a non-transitory computer-readable medium for executing the following steps:
-
retrieving from a mapping client a physical address for a logical addressable storage object on which I/O is generated by an application, wherein the mapping client resides in the client of the storage server and provides the application a mapping of the logical addressable storage object to its physical location on the data storage system; examining a data cache included in the client of the storage server to determine the availability of the storage object in the data cache, wherein the data cache contains the physical address and content of the one or more storage objects accessed by previous I/O operations; and completing the I/O on finding the storage object in the data cache; wherein the one or more storage objects is represented by one or more files; wherein the storage server is represented by a file server in communication with the data storage system; wherein the data storage system provides the logical disk storage to the file server for storing the one or more files; wherein the one or more files are organized as a version set by the file server indicating a set of physical blocks that are shared among the one or more files; wherein the one or more files organized as the version set represents the logical disk storage for respective virtual machines of a group of one or more virtual machines in the storage virtualization environment; and wherein the version set is a sparse snapshot of the file of the one or more files.
-
Specification