Gateway for cloud-based secure storage
First Claim
Patent Images
1. A method for providing improved scalable cloud-based storage to a client computer system, the method comprising:
- receiving, using a programmed hardware processor of a gateway, 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, using the programmed hardware processor, a storage volume for the client computer system as a virtual disk, wherein locations that comprise the provisioned storage volume are hidden from 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 remote storage devices in one or more clouds, and (2) is dynamically or configurably adjustable by transparently including or excluding a subset of the remote storage devices and one or more local storage devices;
including, using the programmed hardware processor, the data file in one or more cluster blocks, each cluster block of the one or more cluster blocks (1) comprising a plurality of data blocks that are to be written simultaneously to the cloud library over a plurality of channels and (2) has a predetermined size determined based on one or more criteria selected from the group consisting of cloud-access latency, a total size of the data file, a file type of the data file, and a total capacity of the local cache memory;
causing, using the programmed hardware processor, the one or more cluster blocks to be stored in the local cache memory;
controlling, using the programmed hardware processor, a data transfer rate to the local cache memory in response to detecting that a file size of the data file exceeds an available storage capacity of the local cache memory, thereby avoiding storage overflow of the local cache memory; and
in response to detecting a change in the one or more cluster blocks, causing, using the programmed hardware processor, the one or more cluster blocks to be transparently stored to the remote storage devices using the plurality of channels.
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.
180 Citations
57 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 of a gateway, 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, using the programmed hardware processor, a storage volume for the client computer system as a virtual disk, wherein locations that comprise the provisioned storage volume are hidden from 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 remote storage devices in one or more clouds, and (2) is dynamically or configurably adjustable by transparently including or excluding a subset of the remote storage devices and one or more local storage devices; including, using the programmed hardware processor, the data file in one or more cluster blocks, each cluster block of the one or more cluster blocks (1) comprising a plurality of data blocks that are to be written simultaneously to the cloud library over a plurality of channels and (2) has a predetermined size determined based on one or more criteria selected from the group consisting of cloud-access latency, a total size of the data file, a file type of the data file, and a total capacity of the local cache memory; causing, using the programmed hardware processor, the one or more cluster blocks to be stored in the local cache memory; controlling, using the programmed hardware processor, a data transfer rate to the local cache memory in response to detecting that a file size of the data file exceeds an available storage capacity of the local cache memory, thereby avoiding storage overflow of the local cache memory; and in response to detecting a change in the one or more cluster blocks, causing, using the programmed hardware processor, the one or more cluster blocks to be transparently stored to the remote storage devices using the plurality of channels. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A gateway system for providing improved scalable cloud-based storage to a client computer system, the gateway system comprising:
a programmed hardware processor configured to execute a program that causes; 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 as a virtual disk, wherein locations that comprise the provisioned storage volume are hidden from 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 remote storage devices in one or more clouds, and (2) is dynamically or configurably adjustable by transparently including or excluding a subset of the 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 of the one or more cluster blocks (1) comprising a plurality of data blocks that are grouped to be written simultaneously to the cloud library over a plurality of channels and (2) has a predetermined size determined based on one or more criteria selected from the group consisting of cloud-access latency, a total size of the data file, a file type of the data file, and a total capacity of the local cache memory, and cause the one or more cluster blocks to be stored in the local cache memory; control a data transfer rate to the local cache memory in response to detecting that a file size of the data file exceeds an available storage capacity of the local cache memory, thereby avoiding storage overflow of the local cache memory; and a cloud interface module configured to cause the one or more cluster blocks to be transparently stored to the remote storage devices using the plurality of channels based on an upload status indicator associated with each cluster block of the one or more cluster blocks, in response to detecting a change in the one or more cluster blocks. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
39. 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 of a gateway 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; provision a storage volume for the client computer system as a virtual disk, wherein locations that comprise the provisioned storage volume are hidden from 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 remote storage devices in one or more clouds, and (2) is dynamically or configurably adjustable by transparently including or excluding a subset of the remote storage devices and one or more local storage devices; include the data file in one or more cluster blocks, each cluster block of the one or more cluster blocks (1) comprising a plurality of data blocks that are grouped to be written simultaneously to the cloud library over a plurality of channels and (2) has a predetermined size determined based on one or more criteria selected from the group consisting of cloud-access latency, a total size of the data file, a file type of the data file, and a total capacity of the local cache memory; cause the one or more cluster blocks to be stored in the local cache memory; control a data transfer rate to the local cache memory in response to detecting that a file size of the data file exceeds an available storage capacity of the local cache memory, thereby avoiding storage overflow of 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 remote storage devices using the plurality of channels. - View Dependent Claims (40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57)
-
Specification