IP Library Granted Patent US 9,699,155
Granted Patent B2
US 9,699,155 · App. 14/711,673 · Granted Jul 4, 2017

Cloud aware file system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,699,155
App. No.
14/711,673
Granted
Jul 4, 2017
Kind
B2
Abstract

A virtual file system is described that is implemented in a virtualization platform as a stackable file system layer that intercepts file operations between a hypervisor and a physical file system. The virtual file system encrypts (at least in part) VM files to be stored, organizes the encrypted VM files into VM sets, and then maps and stores the encrypted VM sets into storage pools. Storage and access to files within the VM sets is controlled through the use of administrator-determined policies governing storage, security, access control, authentication, and auditing. The system and method described herein allow a seamless integration between a data center (e.g., a private cloud) and computing resources served across the internet and supported by cloud service providers (e.g., public clouds) while ensuring that the security needs of customers and cloud service providers are met.

Claims (28)

1. A method, comprising:

intercepting, by a virtual file system instantiated on a first computing system, a command to store one or more files which define one or more virtual machines, the command intercepted from a hypervisor instantiated on a second computing system, wherein the first computing system is separate from the second computing system;

for at least one of the one or more files, receiving by the virtual file system a policy associated with the file from a policy server and receiving by the virtual file system an encryption key associated with the file from a key server;

encrypting, by the virtual file system, a first portion of the at least one or more files using at least one of the one or more encryption keys, but not encrypting a second portion of the at least one or more files, wherein the encrypted first portion comprises application data and the non-encrypted second portion does not comprise application data; and

transmitting, by the virtual file system, the encrypted first portion and the non-encrypted second portion from the virtual file system to a physical file system instantiated on a third computing system and informing a file system driver how to store the encrypted first portion and the non-encrypted second portion based on the one or more policies, wherein the physical file system stores the encrypted first portion and the non-encrypted second portion in a storage system based on the one or more policies received from the policy server.

2. The method of claim 1 , wherein the one or more policies are selected based on a globally unique identifier (GUID) stored with each of the one or more files.

3. The method of claim 1 , wherein the one or more encryption keys are selected based on a globally unique identifier (GUID) stored with each of the one or more files.

4. The method of claim 1 , wherein the storage system comprises a plurality of storage pools, and further comprising determining which one of the storage pools to store a first one of the one or more files based on the one or more policies.

5. The method of claim 1 , wherein the storage system comprises a plurality of storage pools, and further comprising determining which one of the storage pools to store a first one of the one or more files based on the one or more policies and a characteristic of the first file.

6. The method of claim 1 , wherein the first computing system is a first physical host and the second computing system is a second physical host.

7. A first computing system, comprising:

a storage device;

a processor communicatively coupled to the storage device; and

software instructions on the storage device that, when executed by the processor, cause the processor to perform tasks of a virtual file system, the tasks including:

intercepting a command to store one or more files which define one or more virtual machines, the command intercepted from a hypervisor instantiated on a second computing system, wherein the first computing system is separate from the second computing system;

for at least one of the one or more files, receiving a policy associated with the file from a policy server and receiving an encryption key associated with the file from a key server;

encrypting a first portion of the at least one or more files using at least one of the one or more encryption keys, but not encrypting a second portion of the at least one or more files wherein the encrypted first portion comprises application data and the non-encrypted second portion does not comprise application data; and

transmitting the encrypted first portion and the non-encrypted second portion from the virtual file system to a physical file system instantiated on a third computing system and informing a file system driver how to store the encrypted first portion and the non-encrypted second portion based on the one or more policies, wherein the physical file system stores the encrypted first portion and the non-encrypted second portion in a storage system based on the one or more policies received from the policy server.

8. The first computing system of claim 7 , wherein the one or more policies are selected based on a globally unique identifier (GUID) stored with each of the one or more files.

9. The first computing system of claim 7 , wherein the one or more encryption keys are selected based on a globally unique identifier (GUID) stored with the one or more files.

10. The first computing system of claim 7 , wherein the first computing system is a first physical host and the second computing system is a second physical host.

11. A non-transitory machine-readable storage medium for a first computing system having (i) a storage device, and (iii) a processor communicatively coupled to the storage device, the non-transitory machine-readable storage medium comprising software instructions that, when executed by the processor, cause the processor to perform tasks of a virtual file system, the tasks including:

intercepting a command to store one or more files which define one or more virtual machines, the command intercepted from a hypervisor instantiated on a second computing system, wherein the first computing system is separate from the second computing system;

for at least one of the one or more files, receiving a policy associated with the file from a policy server and receiving an encryption key associated with the file from a key server;

encrypting a first portion of the at least one or more files using at least one of the one or more encryption keys, but not encrypting a second portion of the at least one or more files, wherein the encrypted first portion comprises application data and the non-encrypted second portion does not comprise application data; and

transmitting the encrypted first portion and the non-encrypted second portion from the virtual file system to a physical file system instantiated on a third computing system and informing a file system driver how to store the encrypted first portion and the non-encrypted second portion based on the one or more policies, wherein the physical file system stores the encrypted first portion and the non-encrypted second portion in a storage system based on the one or more policies received from the policy server.

12. The non-transitory machine-readable storage medium of claim 11 , wherein the one or more policies are selected based on a globally unique identifier (GUID) stored with each of the one or more files.

13. The non-transitory machine-readable storage medium of claim 11 , wherein the one or more encryption keys are selected based on a globally unique identifier (GUID) stored with the one or more files.

Assignments (6)
SECURITY INTEREST Recorded Mar 27, 2024
From: ENTRUST CORPORATION
To: BMO BANK N.A., AS COLLATERAL AGENT
Reel/Frame 066917/0024 →
MERGER Recorded Mar 18, 2024
From: HYTRUST, INC.
To: ENTRUST CORPORATION
Reel/Frame 066806/0262 →
SECURITY AGREEMENT Recorded Feb 1, 2021
From: HYTRUST, INC.
To: BMO HARRIS BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 055190/0660 →
TERMINATION OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 7, 2021
From: SILICON VALLEY BANK
To: HYTRUST, INC.
Reel/Frame 054925/0059 →
SECURITY INTEREST Recorded Sep 24, 2019
From: HYTRUST, INC.
To: SILICON VALLEY BANK
Reel/Frame 050474/0933 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2016
From: PATE, STEPHEN D.; TAMBAY, TUSHAR Y.; PRYSE, KELVIN J.; KERBY, LYNN F.; CUYKENDALL, BLAINE T.; SATTERLEE, THOMAS J.
To: HYTRUST, INC.
Reel/Frame 038037/0025 →