IP Library Granted Patent US 12,346,717
Granted Patent B2
US 12,346,717 · App. 17/727,350 · Granted Jul 1, 2025

Virtual machine storage system for duplication avoidance

Inventors: Giuseppe Scrivano (Spezzano della Sila, IT); Michael Tsirkin (Yokneam Illit, IL)
Assignee: Red Hat, Inc.
G06F9/45558G06F16/137G06F16/152G06F2009/45583
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 12,346,717
App. No.
17/727,350
Granted
Jul 1, 2025
Kind
B2
Abstract

Systems and methods for duplication avoidance are disclosed. In one implementation, a VM can receive a request to perform a file access operation with respect to a file and determine a hash value corresponding to a content of the file. The VM can search the file identified by the hash value in in a host file system. Responsive to failing to find the hash value in the host file system, the VM can search the hash value in a guest file system of the VM and responsive to finding the file identified by the hash value in the guest file system, can perform the file access operation with respect to the file.

Claims (49)

1. A method, comprising:

receiving, by a virtual machine (VM), a request to perform a file access operation with respect to a file;

determining, by the VM, a hash value corresponding to a content of the file;

searching, in a host file system of a host computer system, the file identified by the hash value by searching for the hash value in a first hash-to-content (HTC) table stored in the host file system;

responsive to failing to find file identified by the hash value in the host file system, searching, in a guest file system of the VM, the file identified by the hash value by searching for the hash value in a second HTC table stored in the guest file system, wherein each HTC table comprises a plurality of records, and each of the plurality of records maps a particular hash value to a corresponding content location; and

responsive to finding the file identified by the hash value in the guest file system, performing the file access operation with respect to the file.

2. The method of claim 1 , further comprising:

responsive to finding the file identified by the hash value in the host file system, performing the file access operation with respect to the file.

3. The method of claim 1 , wherein determining, by the VM, the hash value corresponding to the content of the file includes referencing a guest identifier-to-hash (ITH) table stored in the guest file system of the VM, wherein the ITH table comprises a plurality of records, each record mapping an identifier of the file to a corresponding hash value.

4. The method of claim 1 , further comprising:

storing a plurality of files in the host file system on a physical storage device of the host computer system; and

indexing the plurality of files by a respective content hash of a content of each file of the plurality of files.

5. The method of claim 1 , further comprising:

providing, by a hypervisor, access for the VM to a portion of the host file system, wherein the portion of the host file system comprises at least one ITH table and at least one HTC table.

6. The method of claim 1 , further comprising:

adding an entry in an HTC table stored in the host file system for each new file to which more than one VM has access.

7. A system comprising:

a memory;

a processing device operatively coupled to the memory, the processing device configured to:

receive, via a virtual machine (VM), a request to perform a file access operation with respect to a file;

determine a hash value corresponding to a content of the file;

search, in a host file system of a host computer system, the file identified by the hash value by searching for the hash value in a first hash-to-content (HTC) table stored in the host file system;

responsive to failing to find file identified by the hash value in the host file system, search, in a guest file system of the VM, the file identified by the hash value by searching for the hash value in a second HTC table stored in the guest file system, wherein each HTC table comprises a plurality of records, and each of the plurality of records maps a particular hash value to a corresponding content location; and

responsive to finding the file identified by the hash value in the guest file system perform the file access operation with respect to the file.

8. The system of claim 7 , wherein the processing device is further to:

responsive to finding the file identified by the hash value in the host file system, perform the file access operation with respect to the file.

9. The system of claim 7 , wherein determining the hash value corresponding to the content of the file includes referencing a guest identifier-to-hash (ITH) table stored in the guest file system of the VM, wherein the ITH table comprises a plurality of records, each record mapping an identifier of the file to a corresponding hash value.

10. The system of claim 7 , wherein the processing device is further to:

store a plurality of files in the host file system on a physical storage device of the host computer system; and

index the plurality of files by a respective content hash of a content of each file of the plurality of files.

11. The system of claim 7 , wherein the processing device is further to:

provide, via a hypervisor, access for the VM to a portion of the host file system, wherein the portion of the host file system comprises at least one ITH table and at least one HTC table.

12. The system of claim 7 , wherein the processing device is further to:

add an entry in an first HTC table stored in the host file system for each new file to which more than one VM has access.

13. A non-transitory computer-readable media storing instructions that, when executed, cause a processing device to:

receive, via a virtual machine (VM), a request to perform a file access operation with respect to a file;

determine a hash value to a content of the file;

search, in a host file system of a host computer system, the file identified by the hash value by searching for the hash value in a first hash-to-content (HTC) table stored in the host file system;

responsive to failing to find the file identified by the hash value in the host file system, search, in a guest file system of the VM, the file identified by the hash value by searching for the hash value in a second HTC table stored in the guest file system, wherein each HTC table comprises a plurality of records, and each of the plurality of records maps a particular hash value to a corresponding content location; and

responsive to finding the file identified by the hash value in the guest file system perform the file access operation with respect to the file.

14. The non-transitory computer-readable media of claim 13 , wherein the instructions further cause the processing device to:

responsive to finding the file identified by the hash value in the host file system, perform the file access operation with respect to the file.

15. The non-transitory computer-readable media of claim 13 , wherein determining the hash value corresponding to the content of the file includes referencing a guest identifier-to-hash (ITH) table stored in the guest file system of the VM, wherein the ITH table comprises a plurality of records, each record mapping an identifier of the file to a corresponding hash value.

16. The non-transitory computer-readable media of claim 13 , wherein the instructions further cause the processing device to:

provide, via a hypervisor, access for the VM to a portion of the host file system, wherein the portion of the host file system comprises at least one ITH table and at least one HTC table.

17. The non-transitory computer-readable media of claim 13 , wherein the instructions further cause the processing device to:

store a plurality of files in the host file system on a physical storage device of the host computer system;

index the plurality of files by a respective content hash of a content of each file of the plurality of files; and

add an entry in a first HTC table stored in the host file system for each new file to which more than one VM has access.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2022
From: SCRIVANO, GIUSEPPE; TSIRKIN, MICHAEL
To: RED HAT, INC.
Reel/Frame 060232/0713 →
Continuity (1)
Related Publication 20230342173A1 · Oct 26, 2023
References Cited (9)
US 9424058B1 · Wasson et al. · 2016 [cited by applicant]
US 9501545B2 · Woodward et al. · 2016 [cited by applicant]
US 10073656B2 · Zhe Yang et al. · 2018 [cited by applicant]
US 10678448B2 · Jain et al. · 2020 [cited by applicant]
US 11055006B1 · Chen et al. · 2021 [cited by applicant]
US 11061711B2 · Tsirkin · 2021 [cited by applicant]
US 20060224816A1 · Yamada · 2006 [cited by examiner]
US 20070043929A1 · Safford · 2007 [cited by examiner]
Lee et al., “Live Deduplication Storage of Virtual Machine Images in an Open-Source Cloud”, Dept of Computer Science and Engineering, The Chinese University of Hong Kong, Hong Kong, Dec. 2011, 21 pages https://www.resea… [cited by applicant]