GATEWAY FOR CLOUD-BASED SECURE STORAGE
First Claim
1. A method for providing improved scalable cloud-based storage to a client computer system, the method comprising:
- receiving, using a programmed hardware processor, a data storage request associated with a data file, wherein the data storage request is generated by an application running on the client computer system;
provisioning a storage volume for the client computer system, wherein the provisioned storage volume (1) comprises a local cache memory communicatively coupled to the client computer system and a cloud library comprising one or more remote storage devices in one or more clouds, and (2) is dynamically or configurably adjustable by transparently including or excluding a subset of the one or more remote storage devices and one or more local storage devices;
including the data file in one or more cluster blocks, each cluster block comprising a plurality of data blocks that are to be written simultaneously to the cloud library;
causing the one or more cluster blocks to be stored in the local cache memory; and
in response to detecting a change in the one or more cluster blocks, causing the one or more cluster blocks to be transparently stored to the one or more remote storage devices.
4 Assignments
0 Petitions
Accused Products
Abstract
The systems and methods disclosed herein transparently provide an improved scalable cloud-based dynamically adjustable or configurable storage volume. In one aspect, a gateway provides a dynamically or configurably adjustable storage volume, including a local cache. The storage volume may be transparently adjusted for the amount of data that needs to be stored using available local or cloud-based storage. The gateway may use caching techniques and block clustering to provide gains in access latency compared to existing gateway systems, while providing scalable off-premises storage.
-
Citations
87 Claims
-
1. A method for providing improved scalable cloud-based storage to a client computer system, the method comprising:
-
receiving, using a programmed hardware processor, a data storage request associated with a data file, wherein the data storage request is generated by an application running on the client computer system; provisioning a storage volume for the client computer system, wherein the provisioned storage volume (1) comprises a local cache memory communicatively coupled to the client computer system and a cloud library comprising one or more remote storage devices in one or more clouds, and (2) is dynamically or configurably adjustable by transparently including or excluding a subset of the one or more remote storage devices and one or more local storage devices; including the data file in one or more cluster blocks, each cluster block comprising a plurality of data blocks that are to be written simultaneously to the cloud library; causing the one or more cluster blocks to be stored in the local cache memory; and in response to detecting a change in the one or more cluster blocks, causing the one or more cluster blocks to be transparently stored to the one or more remote storage devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for providing improved scalable cloud-based storage to a client computer system, the method comprising:
-
presenting to the client computer system a virtual disk associated with a provisioned storage volume that stores one or more data files, wherein the provisioned storage volume (1) comprises a local cache memory communicatively coupled to the client computer system and a cloud library comprising one or more remote storage devices in one or more clouds, and (2) is dynamically or configurably adjustable by transparently including or excluding a subset of the one or more remote storage devices and one or more local storage devices; receiving, from the client computer system, a request to access a selected data file from the one or more data files; identifying one or more cluster blocks associated with the selected data file based at least in part on a cluster block map that relates information associated with the selected data file to information maintained by the cluster block map for the cluster blocks; in response to determining that the one or more cluster blocks are stored in the local cache memory, transparently retrieving the selected data file from the one or more cluster blocks; in response to determining that at least one of the one or more cluster blocks is missing from the local cache memory, transparently retrieving the at least one cluster block from a storage location in the cloud library, wherein the storage location of the at least one cluster block is hidden from the client computer system; and providing the selected data file to the client computer system. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29)
-
-
30. A system for providing improved scalable cloud-based storage to a client computer system, the system comprising:
-
a user communication interface to receive a data storage request associated with a data file, wherein the data storage request is generated by an application running on the client computer system; a storage volume manager, communicatively coupled to the user communication interface, to provision a storage volume for the client computer system, wherein the provisioned storage volume (1) comprises a local cache memory communicatively coupled to the client computer system and a cloud library comprising one or more remote storage devices in one or more clouds, and (2) is dynamically or configurably adjustable by transparently including or excluding a subset of the one or more remote storage devices and one or more local storage devices; a transparent data storage layer coupled to the storage volume manager and configured to; include the data file in one or more cluster blocks, each cluster block comprising a plurality of data blocks that are grouped to be written simultaneously to the cloud library, and cause the one or more cluster blocks to be stored in the local cache memory; and a cloud interface module configured to cause the one or more cluster blocks to be transparently stored to the one or more remote storage devices based on the upload status indicator associated with each cluster block, in response to detecting a change in the one or more cluster blocks. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50)
-
-
51. A non-transitory computer-readable medium storing processor-executable instructions for providing improved scalable cloud-based storage to a client computer system, comprising instructions executable by one or more computer processors to:
-
receive a data storage request associated with a data file, wherein the data storage request is generated by an application running on the client computer system; receive provision a storage volume for the client computer system, wherein the provisioned storage volume (1) comprises a local cache memory communicatively coupled to the client computer system and a cloud library comprising one or more remote storage devices in one or more clouds, and (2) is dynamically or configurably adjustable by transparently including or excluding a subset of the one or more remote storage devices and one or more local storage devices; include the data file in one or more cluster blocks, each cluster block comprising a plurality of data blocks that are grouped to be written simultaneously to the cloud library; cause the one or more cluster blocks to be stored in the local cache memory; and in response to detecting a change in the one or more cluster blocks, cause the one or more cluster blocks to be transparently stored to the one or more remote storage devices. - View Dependent Claims (52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71)
-
-
72. A system for providing improved scalable cloud-based storage to a client computer system, the system comprising:
-
a storage volume manager to present to the client computer system a virtual disk associated with a provisioned storage volume that stores one or more data files, wherein the provisioned storage volume (1) comprises a local cache memory communicatively coupled to the client computer system and a cloud library comprising one or more remote storage devices in one or more clouds, and (2) is dynamically or configurably adjustable by transparently including or excluding a subset of the one or more remote storage devices and one or more local storage devices; a user communication interface, communicatively coupled to the storage volume manager, to receive, from the client computer system, a request to access a selected data file from the one or more data files; a transparent data storage layer, communicatively coupled to the storage volume manager and configured to; identify one or more cluster blocks associated with the selected data file based at least in part on a cluster block map that relates information associated with the selected data file to information maintained by the cluster block map for the cluster blocks, and in response to determining that the one or more cluster blocks are stored in the local cache memory, transparently retrieve the selected data file from the one or more cluster blocks; a cloud interface communicatively coupled to the transparent data storage layer, and configured to; in response to determining that at least one of the one or more cluster blocks is missing from the local cache memory, transparently retrieve the at least one cluster block from a storage location in the cloud library, wherein the storage location of the at least one cluster block is hidden from the client computer system, wherein the selected data file is provided to the client computer system via the user communication interface. - View Dependent Claims (73, 74, 75, 76, 77, 78, 79)
-
-
80. A non-transitory computer-readable medium storing processor-executable instructions for providing improved scalable cloud-based storage to a client computer system, comprising instructions executable by one or more computer processors to:
-
present to the client computer system a virtual disk associated with a provisioned storage volume that stores one or more data files, wherein the provisioned storage volume (1) comprises a local cache memory communicatively coupled to the client computer system and a cloud library comprising one or more remote storage devices in one or more clouds, and (2) is dynamically or configurably adjustable by transparently including or excluding a subset of the one or more remote storage devices and one or more local storage devices; receive, from the client computer system, a request to access a selected data file from the one or more data files; identify one or more cluster blocks associated with the selected data file based at least in part on a cluster block map that relates information associated with the selected data file to information maintained by the cluster block map for the cluster blocks; in response to determining that the one or more cluster blocks are stored in the local cache memory, transparently retrieve the selected data file from the one or more cluster blocks; in response to determining that at least one of the one or more cluster blocks is missing from the local cache memory, transparently retrieve the at least one cluster block from a storage location in the cloud library, wherein the storage location of the at least one cluster block is hidden from the client computer system; and provide the selected data file to the client computer system. - View Dependent Claims (81, 82, 83, 84, 85, 86, 87)
-
Specification