Compression and secure, end-to-end encrypted, zfs cloud storage
US-2018198765-A1 · Jul 12, 2018 · US
US10642878B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10642878-B2 |
| Application number | US-201715610349-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 31, 2017 |
| Priority date | Jan 6, 2017 |
| Publication date | May 5, 2020 |
| Grant date | May 5, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Techniques described herein relate to systems and methods of data storage, and more particularly to providing layering of file system functionality on an object interface. In certain embodiments, file system functionality may be layered on cloud object interfaces to provide cloud-based storage while allowing for functionality expected from a legacy applications. For instance, POSIX interfaces and semantics may be layered on cloud-based storage, while providing access to data in a manner consistent with file-based access with data organization in name hierarchies. Various embodiments also may provide for memory mapping of data so that memory map changes are reflected in persistent storage while ensuring consistency between memory map changes and writes. For example, by transforming a ZFS file system disk-based storage into ZFS cloud-based storage, the ZFS file system gains the elastic nature of cloud storage.
Opening claim text (preview).
What is claimed: 1. A method of layering functionality of a Z File System (ZFS) system on a cloud object store that is remote from the ZFS system, the method comprising: receiving, from an application layer of the ZFS system and through a system call interface of an interface layer of the ZFS system, a first set of one or more requests to perform a first transaction with respect to a file; storing, via one or more virtual devices of a plurality of virtual devices at a virtual device layer of the ZFS system, data blocks and corresponding metadata in a storage pool of storage devices of the ZFS system, wherein: the data blocks correspond to the file, and the data blocks and the corresponding metadata are stored separately as logical blocks according to a tree hierarchy; causing storage, in the cloud object store, of a set of cloud storage objects, the set of cloud storage objects comprising data of the data blocks and the corresponding metadata of the tree hierarchy; the causing storage comprising: creating, with at least one cloud interface device of the plurality of virtual devices, a mapping of each logical block in the tree hierarchy to a respective cloud storage object of the set of cloud storage objects in the cloud object store; and causing, by the at least one cloud interface device, communication of a second set of one or more requests to the cloud object store to specify storage of the set of cloud storage objects in the cloud object store so that the set of cloud storage objects preserves the data of the data blocks, the corresponding metadata, and relationships of the data blocks and the corresponding metadata according to the tree hierarchy; receiving, through the system call interface, a third set of one or more requests to perform a second transaction with respect to the file; converting, by the at least one cloud interface device, at least one I/O request, corresponding to the third set of one or more requests, into an object interface request; and transferring, by the at least one cloud interface device, the object interface request to cause communication with the cloud object store to perform at least one I/O operation with respect to at least a subset of the set of cloud storage objects. 2. The method of claim 1 , wherein the causing, by the at least one cloud interface device, the communication of the second set of one or more requests to the cloud object store comprises: transferring, by the at least one cloud interface device, a fourth set of one or more requests through the interface layer to a cloud daemon of the ZFS system; wherein, responsive to the fourth set of one or more requests, the cloud daemon communicates, via an object protocol over one or more networks, with the cloud object store to specify storage of the set of cloud storage objects. 3. The method of claim 1 , wherein the set of cloud storage objects is stored in the cloud object store to correspond to a cloud-based instantiation of the tree hierarchy. 4. The method of claim 3 , further comprising: converting requests compliant with Portable Operating System Interface (POSIX), from the application layer, into object interface requests to perform operations with respect to the cloud-based instantiation of the tree hierarchy stored in the cloud object store. 5. The method of claim 4 , further comprising: translating, by a data management unit of a transactional object layer of the ZFS system, the third set of one or more requests into the at least one I/O request to perform the at least one I/O operation; receiving, by the at least one cloud interface device, the at least one I/Of request; and the transferring the object interface request comprising: transferring, by the at least one cloud interface device, the object interface request through the interface layer to a cloud daemon; and responsive to the object interface request, communicating, by the cloud daemon via an object protocol over one or more networks, with the cloud object store to perform the at least one I/O operation with respect to at least the subset of the set of cloud storage objects. 6. The method of claim 5 , wherein the I/O operation corresponds to a write operation and is performed according to a copy-on-write process with respect to at least the subset of the set of cloud storage objects in the cloud object store. 7. The method of claim 6 , wherein the specifying the storage of the set of cloud storage objects in the cloud object store comprises: specifying a first object size to store a first subset of the set of cloud storage objects that are identified as being of a first data type; and specifying a second object size to store a second subset of the set of cloud storage objects that are identified as being of a second data type; wherein the first object size is different from the second object size, and the first data type is different from the second data type. 8. A system comprising: one or more processors communicatively coupled to memory, the one or more processors to facilitate: processing a first set of one or more requests to perform a first transaction with respect to a file, the first set of one or more requests received from an application layer of a Z File System (ZFS) system and through a system call interface of an interface layer of the ZFS system; storing, via one or more virtual devices of a plurality of virtual devices at a virtual device layer of the ZFS system, data blocks and corresponding metadata in a storage pool of storage devices of the ZFS system, wherein: the data blocks correspond to the file, and the data blocks and the corresponding metadata are stored separately as logical blocks according to a tree hierarchy; causing storage, in a cloud object store, of a set of cloud storage objects, the set of cloud storage objects comprising data of the data blocks and the corresponding metadata of the tree hierarchy; the causing storage comprising: creating, with at least one cloud interface device of the plurality of virtual devices, a mapping of each logical block in the tree hierarchy to a respective cloud storage object of the set of cloud storage objects in the cloud object store; and causing, by the at least one cloud interface device, communication of a second set of one or more requests to a cloud object store to specify storage of the set of cloud storage objects in the cloud object store so that the set of cloud storage objects preserves the data of the data blocks, the corresponding metadata, and relationships of the data blocks and the corresponding metadata according to the tree hierarchy; receiving, through the system call interface, a third set of one or more requests to perform a second transaction with respect to the file; converting, by the at least one cloud interface device, at least one I/O request, corresponding to the second set of one or more requests, into an object interface request; and transferring, by the at least one cloud interface device, the object interface request to cause communication with the cloud object store to perform at least one I/O operation with respect to at least a subset of the set of cloud storage objects. 9. The system of claim 8 , wherein the causing, by the at least one cloud interface device, the communication of the second set of one or more requests to the cloud object store comprises: transferring, by the at least one cloud interface device, a fourth set of one or more requests through the interface layer to a cloud daemon of the ZFS system; wherein, responsive to the fourth set of one or more requests, the cloud daemon communicates, via an object protocol over one or more networks, with the cloud object store to specify storage of the set of cloud storag
Trees · CPC title
implemented as replicated file system · CPC title
with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list · CPC title
Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM] · CPC title
for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.