Methods and apparatus for interfacing to a data storage system
First Claim
1. A method of providing an interface to a data storage system, the method comprising the steps of:
- defining parameters of a volume within the data storage system, having a plurality of storage devices;
creating, in the data storage system, the volume from the parameters when there are storage devices of the plurality of storage devices associated with the volume, and when there are no storage devices associated with the volume; and
providing the volume as an area of available data storage space in the data storage system to a computing device which is external to the data storage system, the volume of storage accessible with an associated identifier.
8 Assignments
0 Petitions
Accused Products
Abstract
A data storage system includes methods and apparatus that provide volumes for access by host computing devices. The volumes can have a storage size that is independently configurable from an actual amount of data storage that may or may not be associated with the volume. The volumes also have a persistent identifier. The volumes can have any amount of associated storage space allocated to the volume, including none, within the data storage system. Since the storage size and associated storage space are each independently configurable from each other, host that interface with the data storage system can perceive the volumes as being larger than they really are. A dynamic volume configuration technique is provided which allows storage space within storage devices in the data storage system to be dynamically associated and disassociated (i.e., added and removed) from the volumes on an as-needed basis, without requiring disruption of host activities with respect to the volumes. The persistent identifier of a volume allows all hosts and other data storage systems to “see” the volume. This allows a volume in one data storage system to have associated storage space from another volume in another data storage system. Using these techniques, the invention allows software applications and operating systems on hosts that interface to the data storage system to perceive that a volume is always present on the data storage system, even if storage space understood to be associated with the volume from the host'"'"'s perspective is allocated elsewhere or is non-existent.
-
Citations
43 Claims
-
1. A method of providing an interface to a data storage system, the method comprising the steps of:
-
defining parameters of a volume within the data storage system, having a plurality of storage devices;
creating, in the data storage system, the volume from the parameters when there are storage devices of the plurality of storage devices associated with the volume, and when there are no storage devices associated with the volume; and
providing the volume as an area of available data storage space in the data storage system to a computing device which is external to the data storage system, the volume of storage accessible with an associated identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
identifying a number of storage devices of the plurality of storage devices and associating the identified number of storage devices with the volume;
selecting a storage size for the volume, the selected storage size being dependent on an amount of data storage associated with the identified number of storage devices associated with the volume.
-
-
3. The method of claim 1 wherein the step of defining parameters includes the steps of:
selecting a storage size for the volume independent of storage devices associated with the volume.
-
4. The method of claim 1 wherein the step of defining parameters includes the steps of:
selecting a storage size for the volume, the selected storage size being dependent but different from of an amount of data storage associated with storage devices associated with the volume.
-
5. The method of claim 1 wherein the step of defining parameters includes the steps of:
-
identifying a number of storage devices of the plurality of storage devices and associating the identified number of storage devices with the volume;
selecting a storage size for the volume independent of the identified number of storage devices associated with the volume.
-
-
6. The method of claim 1 wherein there are no storage devices associated with the volume and the volume indicates a storage size that is greater than zero.
-
7. The method of claim 1 wherein there are no storage devices associated with the volume and the volume indicates a storage size that is zero.
-
8. The method of claim 1 wherein:
-
the associated identifier of the volume is a persistent identification; and
the step of providing the volume as an area of available data storage space provides access to the volume to a plurality of networked computing devices, each of which perceives the volume with the persistent identification.
-
-
9. The method of claim 1 further comprising the steps of:
-
detecting a requirement for a storage device to be associated with the volume in the data storage system;
determining if the volume contains an association to an identity of the storage device, and if not, dynamically creating, in the volume, an association to the identity of the storage device thus causing the storage device to be allocated to the volume; and
providing access to the storage device through the volume.
-
-
10. The method of claim 1 further comprising the steps of:
-
detecting a requirement, for a non-required storage device that has an existing association with the volume, to no longer be associated with the volume in the data storage system; and
dynamically removing, from the volume, the association to the identity of the non-required storage device in the data storage system, thus de-allocating the non-required storage device from the volume while continually providing the volume as a volume of available data storage in the data storage device.
-
-
11. The method of claim 10 wherein the step of dynamically removing maintains a storage size associated with the volume that is the same before and after removal of the association of the identity of the non-required storage device from the volume.
-
12. In a data storage system, a method allowing access to data by multiple computing devices through a volume of data, the method comprising the steps of:
-
receiving an access request to the volume by a computing device;
retrieving access information within the volume from a plurality of sets of access information, wherein the access information retrieved is specific to the computing device requesting access to the volume; and
providing, to the computing device, the access information retrieved to allow the computing device to properly access the volume. - View Dependent Claims (13, 14, 15, 16, 17, 18)
determining if the volume contains volume information that is different from volume information contained within the access information, and if so, replacing, within the access information, the volume information that is different with the volume information maintained in the volume.
-
-
14. The method of claim 13, wherein:
-
the volume information that is different is storage size information in the volume to which access is requested; and
wherein the storage size information contained within the access information provided to the computing device is storage size information obtained from the volume instead of actual storage size information related to storage devices associated with the volume.
-
-
15. The method of claim 12 wherein certain of the multiple computing devices operate using different architecture and wherein the step of retrieving access information further includes the step of:
-
determining an identity of the computing device attempting to access the volume; and
retrieving architecture specific access information for the volume for that computing device from the volume based on the identity of the computing device.
-
-
16. The method of claim 15 wherein the different architectures are different operating systems which execute on the multiple computing devices and wherein the step of providing includes the step of:
providing to the computing device the architecture specific access information including operating system block organization information relating to how the operating system of the computing device stores blocks of data in storage devices associated with the volume.
-
17. The method of claim 12 further including the steps of:
storing, in the volume, access information related to storage devices, wherein the access information is specific for each of the plurality of computing devices.
-
18. The method of claim 12 further including the steps of:
-
determining if the volume to which access is requested contains an association to an identity of a required storage device that is associated with the access information provided to the computing device, and if not, dynamically creating, in the volume to which access is requested, an association to the identity of the required storage device, thus causing the required storage device to be allocated to the volume; and
providing, to the computing devices, access to the required storage device through the volume.
-
-
19. A data storage system comprising:
-
a host interface capable of coupling to at least one computing device;
a storage device interface capable of coupling to one or more storage devices maintained within the data storage system; and
a memory coupled to the host interface and the storage device interface, the memory containing a volume having an associated identifier, the volume existing in the memory as an accessible volume of data storage for access by computing devices via the host interface when there are storage devices associated with the volume, and when there are no storage devices associated with the volume. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
a storage size indicating an available amount of data storage associated with the volume, the storage size containing a value that is programmable independently of any storage devices associated with the volume.
-
-
21. The data storage system of claim 20 wherein the storage size contains a value of zero.
-
22. The data storage system of claim 20 wherein
the storage size contains a value greater than zero; - and
wherein the storage device interface references no storage devices within the data storage system such that there are no storage devices associated with the volume.
- and
-
23. The data storage system of claim 21 wherein the volume in the memory further comprises:
a storage size indicating an available amount of data storage associated with the volume, the storage size containing a value that is programmable and is dependant, but different than a size of any storage devices associated with the volume via the storage device interface.
-
24. The data storage system of claim 19 further comprising:
-
at least one storage device-coupled to the storage device interface, the at least one storage device having a portion associated with the volume and the portion having an actual size; and
wherein the volume in the memory further includes;
a storage size indicating an available amount of data storage associated with the volume, the storage size containing a value that is not equal to the actual size of the portion of the at least one storage device associated with the volume.
-
-
25. The data storage system of claim 19 wherein the associated identifier of the volume is a persistent identification containing a value unique to the volume, and wherein the host interface includes:
means for providing the volume as an area of available data storage space to a plurality of networked computing devices, wherein each of the plurality of networked computing devices perceives the volume with the persistent identification that is the same.
-
26. The data storage system of claim 19 further comprising:
-
means for detecting a requirement for a required storage device to be associated with the volume in the data storage system;
means for determining if the volume contains an association to an identity of the required storage device through the storage device interface, and if not, means for dynamically creating, in the volume, an association to the identity of the required storage device through the storage device interface, thus causing the required storage device to be allocated to the volume; and
means for providing access to the required storage device through the volume using the host interface.
-
-
27. The data storage system of claim 19 further comprising:
-
means for detecting a requirement, of a non-required storage device that has an existing association with the volume through the storage device interface, to no longer be associated with the volume in the data storage system;
means for dynamically removing, from the volume, the association to the identity of the non-required storage device through the storage device interface in the data storage system, thus de-allocating the non-required storage device from the volume while the volume continually appears, via the host interface, as an area of available data storage space having an unchanging storage size in the data storage system.
-
-
28. A data storage system comprising:
-
a host interface capable of coupling to at least one computing device;
at least one storage device storing data according to at least one particular arrangement;
a storage device interface capable of coupling to the at least one storage device;
a memory coupled to the host interface and the storage device interface, the memory containing a volume, the volume containing a plurality of sets of access information allowing a plurality of specific computing devices to access data stored on the at least one storage device according to the a particular arrangement associated to each of the plurality of computing devices. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35)
means for storing access information for at least one storage device, wherein the access information is specific for each of a plurality of computing devices that can access the at least one storage device.
-
-
30. The data storage system of claim 28, further comprising:
-
a specific computing device interfacing, via the host interface, with the data storage system; and
a label manager coupled to the host interface and to the memory, the label manager receiving, via the host interface, an access request from the specific computing device to the volume in the memory, the label manager retrieving one of the plurality of sets of access information within the volume that is associated with the specific computing device requesting access to the volume; and
the label manager providing, to the specific computing device, the one of the plurality of sets of access information to allow the specific computing device to properly access the volume.
-
-
31. The data storage system of claim 30 wherein the label manager further comprises:
means for determining if the volume contains volume information that is different from volume information contained within the retrieved one of the plurality of sets of access information, and if so, replacing, within the retrieved one of the plurality of sets of access information that is provided to the specific computing device, the volume information that is different with the volume information from the volume.
-
32. The data storage system of claim 31, wherein the volume information in the volume that is different from the volume information in the retrieved one of the plurality of sets of access information is storage size information;
- and
wherein the storage size information contained within the one of the plurality of sets of access information provided to the specific computing device is storage size information obtained from the volume, instead of actual storage size information related to storage devices associated with the volume.
- and
-
33. The data storage system of claim 30 wherein the specific computing device operates using one of a plurality of different architectures and wherein the label manager further includes:
-
means for determining an identity of the specific computing device attempting to access the volume; and
means for retrieving, from the volume, architecture specific access information associated with a storage device having an association with the volume for that specific computing device based on the identity of the specific computing device.
-
-
34. The data storage system of claim 33 wherein the different architectures are different operating systems and wherein the label manager further comprises:
means for providing, to the specific computing device, the architecture specific access information including operating system block organization information relating to how an operating system of the specific computing device stores blocks of data associated with the storage device having an association with the volume for that specific computing device.
-
35. The data storage system of claim 30 further comprising:
-
means for determining if the volume to which access is requested contains an association to an, identity of a required storage device that is associated with the access information provided to the specific computing device, and if not, dynamically creating, in the volume to which access is requested, an association to the identity of the required storage device thus causing the required storage device to be allocated to the volume; and
means for providing access to the required storage device through the volume to the specific computing device.
-
-
36. A method providing a volume interface to a data storage system including a plurality of storage devices, the method comprising the steps of:
-
receiving a request from a computing device for a volume in the data storage system;
providing, from the data storage system to the computing device, in response to the request, the volume that satisfies the request when there are storage devices of the plurality associated with the volume, and when there are no storage devices associated with the volume. - View Dependent Claims (37)
-
-
38. A computer program product having a computer-readable medium including computer program logic encoded thereon providing an interface to a data storage system including a plurality of storage devices, such that the computer program logic, when executed on at least one processing unit with the data storage system, causes the at least one processing unit to perform the steps of:
-
defining parameters of a volume within the data storage system;
creating, in the data storage system, the volume from the parameters when there are storage devices of the plurality of storage devices associated with the volume, and when there are no storage devices associated with the volume; and
providing the volume as a volume of available data storage to a computing device which is external to the data storage system, the volume of storage accessible with the associated identifier. - View Dependent Claims (39, 40, 41)
identifying a number of storage devices of the plurality of storage devices and associating the identified number of storage devices with the volume; and
selecting a storage size for the volume, the selected storage size being dependent on an amount of data storage associated with the identified number of storage devices associated with the volume.
-
-
40. The computer program product of claim 38 wherein the computer program logic that executes the step of defining parameters of a volume further causes the at least one processing unit to perform the step of:
selecting a storage size for the volume independent of storage devices associated with the volume.
-
41. The computer program product of claim 38 wherein the computer program logic that executes the step of defining parameters of a volume further causes the at least one processing unit to perform the step of:
selecting a storage size for the volume, the selected storage size being dependent but different from of an amount of data storage associated with storage devices associated with the volume.
-
42. A computer program product having a computer-readable medium including computer program logic encoded thereon providing access to a volume by multiple computing devices, such that the computer program logic, when executed on at least one processing unit with the data storage system, causes the at least one processing unit to perform the steps of:
-
receiving an access request to the volume by a computing device;
retrieving access information within the volume from a plurality of sets of access information, wherein the access information retrieved is specific to the computing device requesting access to the volume; and
providing, to the computing device, the access information to allow the computing device to properly access the volume. - View Dependent Claims (43)
determining if the volume to which access is requested contains an association to an identity of a required storage device that is associated with the access information provided to the computing device, and if not, dynamically creating, in the volume to which access is requested, an association to the identity of the required storage device, thus causing the required storage device to be allocated to the volume; and
providing, to the computing devices, access to the required storage device through the volume.
-
Specification