IP Library Granted Patent US 9,176,676
Granted Patent B2
US 9,176,676 · App. 13/953,782 · Granted Nov 3, 2015

Efficiency of virtual machines that use de-duplication as primary data storage

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,176,676
App. No.
13/953,782
Granted
Nov 3, 2015
Kind
B2
Abstract

Example apparatus and methods provide two types of storage for a virtual machine running on a hypervisor. The first storage is de-duplication based and the second storage is not de-duplication based. Example apparatus and methods may acquire data from the first storage to instantiate the virtual machine, to instantiate an operating system on the virtual machine, or to instantiate an application on the virtual machine from the first storage. Example apparatus and methods may write a snapshot to the second storage and then support random input/output for the virtual machine, for the operating system, or for the application from the second storage. The snapshot may selectively be collapsed or the second storage may selectively be retired and thus example systems may selectively update the first storage from the second storage. Having dual devices facilitates using de-duplication storage for de-duplication-centric I/O while non-de-duplication storage is used for random I/O.

Claims (32)

1. An apparatus, comprising:

a processor configured to detect an input/output operation associated with a virtual machine running on a hypervisor;

a first interface to a de-duplication storage device that stores de-duplicated data associated with the virtual machine;

a second interface to a first non-de-duplication storage device that stores a first snapshot associated with the virtual machine;

an identification logic configured to select a target device from which the input/output operation should be satisfied, the target device being selected from the de-duplication storage device and the first non-de-duplication storage device, the target device being selected as a function of an efficiency condition; and

an operation logic configured to satisfy the input/output operation from the target device.

2. The apparatus of claim 1 , the input/output operation originating in an operating system running on the virtual machine or in an application running on the virtual machine.

3. The apparatus of claim 2 , the identification logic being configured to select the de-duplication storage device when the input/output operation is associated with instantiating the virtual machine, instantiating the operating system, or instantiating the application.

4. The apparatus of claim 1 , where the de-duplication storage device is part of the apparatus or the first non-de-duplication storage device is part of the apparatus.

5. The apparatus of claim 1 , comprising a transfer logic configured to control selectively transferring data from the first non-de-duplication storage device to the de-duplication storage device upon occurrence of a transfer event.

6. The apparatus of claim 5 , the transfer event being the first snapshot reaching a fullness threshold, the first non-de-duplication storage device reaching a fullness threshold, the first non-de-duplication storage device reaching an idleness threshold, detecting termination of the virtual machine, detecting termination of an operating system running on the virtual machine, or detecting termination of an application running on the virtual machine.

7. The apparatus of claim 5 , the transfer logic being configured:

to establish a second, different snapshot on a second different non-de-duplication storage device before updating the de-duplication storage device from the first non-de-duplication storage device;

to reconfigure the identification logic to select the target device from the de-duplication storage device and the second non-de-duplication storage device before updating the de-duplication storage device from the first non-de-duplication storage device; and

removing the first snapshot from the first non-de-duplication storage device after updating the de-duplication device from the first non-de-duplication storage device.

8. The apparatus of claim 1 , the efficiency condition being identifying the input/output operation as being associated with booting the virtual machine, identifying the input/output operation as being associated with instantiating an operating system on the virtual machine, identifying the input/output operation as being associated with instantiating an application on the virtual machine, a capacity of the first non-de-duplication storage device, a capacity of the first snapshot, a predicted time to complete the input/output operation from the de-duplication storage device, a predicted time to complete the input/output operation from the first non-de-duplication storage device, a measure of how busy the de-duplication storage device is, or a measure of how busy the first non-de-duplication storage device is.

9. The apparatus of claim 1 , the efficiency condition being identifying which of the de-duplication storage device and the non-de-duplication storage device can serve the input/output operation more efficiently.

10. The apparatus of claim 1 , the identification logic being configured to select the first non-de-duplication storage device when the input/output operation is associated with a non-instantiating operation performed on the virtual machine.

11. A non-transitory computer-readable medium storing computer-executable instructions that when executed by a computer cause the computer to perform a method, the method comprising:

upon detecting an input/output operation associated with a virtual machine running on a hypervisor:

instantiating the virtual machine with data read from a first storage apparatus, the first storage apparatus being configured to store data using data de-duplication;

selecting a second storage apparatus from which a data storage operation using data de-duplication should be satisfied, the second storage apparatus being selected from the first storage apparatus and a non-de-duplication storage device, the second storage apparatus being selected as a function of an efficiency condition;

producing a first snapshot of the virtual machine in the second storage apparatus, the second storage apparatus being configured to store data without using data de-duplication;

upon detecting another input/output operation that can be satisfied from the second storage apparatus, the other input/output operation being associated with the virtual machine, satisfying the other input/output operation from the second storage apparatus;

upon detecting that a transfer condition exists for the second storage apparatus, updating the first storage apparatus from the second storage apparatus, where the transfer condition is a fullness level of the first snapshot, a fullness level of the second storage apparatus, termination of the virtual machine, termination of an operating system running on the virtual machine, termination of an application running on the virtual machine, or an idleness level of the second storage apparatus;

where updating the first storage apparatus from the second storage apparatus includes producing a second snapshot before updating the first storage apparatus from the second storage apparatus, where producing the second snapshot includes writing at least a portion of virtual memory associated with the virtual machine to a third storage apparatus, the third storage apparatus being configured to store data without using data de-duplication; and

where updating the first storage apparatus from the second storage apparatus includes transferring segments of data from the second storage apparatus to the first storage apparatus, where the segments are larger than segments associated with a file system associated with the virtual machine, and where the segments are transferred using sparse-aware sequential input/output.

12. The non-transitory computer-readable medium of claim 11 , where instantiating the virtual machine includes reading blocks of de-duplicated data from the first storage apparatus using sequential input/output.

13. The non-transitory computer-readable medium of claim 11 , including instantiating an operating system or an application to run on the virtual machine by reading blocks of de-duplicated data from the first storage apparatus using sequential input/output.

14. The non-transitory computer-readable medium of claim 11 , where producing the first snapshot includes writing at least a portion of virtual memory associated with the virtual machine to the second storage apparatus.

15. The non-transitory computer-readable medium of claim 11 , where detecting the input/output operation that can be satisfied includes identifying a write that will fit in the second storage apparatus, identifying a read for which data is present in the first snapshot or in the second storage apparatus, or identifying a write that will overwrite data already written to the second storage apparatus.

16. The non-transitory computer-readable medium of claim 11 , where satisfying the other input/output operation from the second storage apparatus includes reading data from the first snapshot.

Assignments (12)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 18, 2025
From: QUANTUM CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 074024/0084 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT AT REEL/FRAME NO. 40473/0378 Recorded Oct 8, 2025
From: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 073061/0454 →
TERMINATION AND RELEASE OF AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT AT REEL/FRAME NO. 48029/0525 Recorded Aug 19, 2025
From: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 072542/0594 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2025
From: BLUE TORCH FINANCE LLC, AS AGENT FOR THE SECURED PARTIES
To: ALTER DOMUS (US) LLC, AS AGENT FOR THE SECURED PARTIES
Reel/Frame 071019/0850 →
RELEASE OF SECURITY INTEREST Recorded Aug 10, 2021
From: U.S. BANK NATIONAL ASSOCIATION
To: QUANTUM CORPORATION; QUANTUM LTO HOLDINGS, LLC
Reel/Frame 057142/0252 →
SECURITY INTEREST Recorded Aug 5, 2021
From: QUANTUM CORPORATION; QUANTUM LTO HOLDINGS, LLC
To: BLUE TORCH FINANCE LLC, AS AGENT
Reel/Frame 057107/0001 →
SECURITY INTEREST Recorded Jan 8, 2019
From: QUANTUM CORPORATION
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 048029/0525 →
RELEASE OF SECURITY INTEREST Recorded Dec 27, 2018
From: TCW ASSET MANAGEMENT COMPANY LLC, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 047988/0642 →
SECURITY INTEREST Recorded Dec 27, 2018
From: QUANTUM CORPORATION, AS GRANTOR; QUANTUM LTO HOLDINGS, LLC, AS GRANTOR
To: U.S. BANK NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 049153/0518 →
SECURITY INTEREST Recorded Oct 25, 2016
From: QUANTUM CORPORATION
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 040473/0378 →
SECURITY INTEREST Recorded Oct 21, 2016
From: QUANTUM CORPORATION
To: TCW ASSET MANAGEMENT COMPANY LLC, AS AGENT
Reel/Frame 040451/0183 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2013
From: SIMON, GERALD; HERMAN, BARRY; WADE, GREG
To: QUANTUM CORPORATION
Reel/Frame 030900/0578 →