IP Library Granted Patent US 9,785,647
Granted Patent B1
US 9,785,647 · App. 13/633,695 · Granted Oct 10, 2017

File system virtualization

Inventors: Robert Petri (Santa Clara, CA); Vito Caputo (San Mateo, CA)
Assignee: Axcient, Inc.
G06F17/30238
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,785,647
App. No.
13/633,695
Granted
Oct 10, 2017
Kind
B1
Abstract

Systems, methods, and media file system virtualization. Exemplary methods may include rendering a sparse file system and creating a block map for the sparse file system. The block map may include a map record for each file record included in the sparse file system. A map record may include extents for blocks associated with a file record, the map record providing a mapping between allocated block sectors for a file record in the sparse file system and corresponding blocks associated with one or more data sources.

Claims (45)

1. A method, comprising:

storing a backup of a file system in a backup data source;

receiving a request to render a portion of file records of the file system stored in the backup data source;

rendering a sparse file system by allocating block sectors for blocks of the portion of the file records in a formatted sparse file, without having to render the file system entirely; and

creating a block map for the sparse file system, the block map comprising mappings between allocated block sectors of file records of the sparse file system and corresponding disperse blocks stored in all the backup data source, wherein all block sectors for blocks in the formatted sparse file are allocated without writing data associated with the file records into the allocated block sectors.

2. The method according to claim 1 , wherein the allocated block sectors are placeholders that represent a location and size of actual block data.

3. The method according to claim 2 , wherein block sectors are allocated using metadata that comprises extents for blocks included in the portion of file records.

4. The method according to claim 1 , wherein the block map comprises a map record for each file record included in the sparse file system, the map record comprising extents for blocks associated with a file record.

5. The method according to claim 1 , further comprising:

receiving a request for blocks within a sector of the sparse file system; and

obtaining the requested blocks by:

reading the block map for the sparse file system to locate the requested blocks in any of a data source or the backup data source;

obtaining the requested blocks from the data source or the backup data source;

for blocks not included in the block map, obtaining blocks not included in the block map from the sparse file system; and

fulfilling the request with the obtained blocks.

6. The method according to claim 1 , further comprising fulfilling a request for blocks using a copy on write source if the requested blocks have been partially written.

7. The method according to claim 5 , wherein the backup data source comprises a distributed hash table provisioned within a cloud.

8. The method according to claim 5 , wherein the backup data source comprises one or more of a mirror, an incremental file, and combinations thereof.

9. The method according to claim 1 , further comprising mounting the sparse file system as a virtual disk.

10. The method according to claim 1 , wherein rendering a sparse file system comprises formatting a portion of a virtual disk into a sparse file.

11. The method according to claim 1 , wherein the sparse file system comprises a virtual sparse file system.

12. A system, the system comprising:

at least one server having a memory that includes executable instructions and a processor executing the instructions, the instructions comprising:

a rendering module that:

receives a request to render a portion of file records of a file system stored in a backup data source; and

renders a sparse file system by allocating block sectors for blocks of the portion of the file records in a formatted sparse file, without having to render the file system entirely;

an extent mapper that creates a block map for the sparse file system, the block map comprising a map record for each file record included in the sparse file system, the map record comprising extents for blocks associated with a file record, the map record providing a mapping between allocated block sectors for a file record and corresponding blocks associated with a data source, wherein all block sectors for blocks in the formatted sparse file are allocated without writing data associated with the file records into the allocated block sectors; and

a block retriever module that:

receives a request for blocks; and

obtains the requested blocks by:

reading the block map for the sparse file system to obtain the requested blocks from any of a data source and the backup data source;

for blocks not included in the block map, obtaining blocks not included in the block map from the sparse file system; and

fulfilling the request with the obtained blocks, wherein the block retriever module fulfills a request for blocks using copy on write source if the requested blocks have been partially written.

13. The system according to claim 12 , wherein the rendering module allocates block sectors for blocks of the portion of the file records in a formatted sparse file.

14. The system according to claim 13 , wherein the rendering module allocates block sectors using metadata that comprises extents for blocks included in the portion of the file records.

15. The system according to claim 12 , wherein the rendering module renders a sparse file system by formatting a portion of a virtual disk into a sparse file, wherein the sparse file system comprises a virtual sparse file system.

16. The system according to claim 12 , wherein the rendering module creates a sparse file system using metadata that includes extents for blocks included in the portion of the file records.

17. A method, comprising:

storing a backup of a file system in a backup data source;

receiving a request to render a file of the file system stored in the backup data source;

requesting blocks from a sparse file system by allocating block sectors for blocks of the file in a formatted sparse file, without having to render the file system entirely, the blocks corresponding to a file; and

assembling the file by:

evaluating a block map to obtain the requested blocks from a data source, the block map providing a mapping between allocated block sectors of the sparse file system and corresponding block data in a data source, wherein all block sectors for blocks in the formatted sparse file are allocated without writing data associated with the file into the allocated block sectors;

for blocks not included in the block map, obtaining blocks not included in the block map from the sparse file system; and

assembling the obtained blocks to assemble the file.

Assignments (14)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 19, 2025
From: SKYKICK, LLC; EFOLDER, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 070268/0489 →
RELEASE OF SECURITY INTEREST Recorded Sep 24, 2024
From: U.S. BANK NATIONAL ASSOCIATION FORMERLY MUFG UNION BANK, N.A.
To: EFOLDER, INC.
Reel/Frame 068680/0802 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: EFOLDER, INC.
Reel/Frame 061634/0623 →
SECURITY INTEREST Recorded Oct 27, 2022
From: EFOLDER, INC.
To: MUFG UNION BANK, N.A.
Reel/Frame 061559/0703 →
SECURITY INTEREST Recorded Jan 8, 2018
From: EFOLDER, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 044563/0633 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2017
From: AXCIENT HOLDINGS, LLC
To: EFOLDER, INC.
Reel/Frame 044370/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2017
From: AXCIENT, INC.
To: AXCI (AN ABC) LLC
Reel/Frame 044367/0507 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2017
From: AXCI (AN ABC) LLC
To: AXCIENT HOLDINGS, LLC
Reel/Frame 044368/0556 →
RELEASE OF SECURITY INTEREST Recorded Oct 11, 2017
From: STRUCTURED ALPHA LP
To: AXCIENT, INC.
Reel/Frame 043840/0227 →
RELEASE OF SECURITY INTEREST Recorded Jul 26, 2017
From: SILVER LAKE WATERMAN FUND, L.P.
To: AXCIENT, INC.
Reel/Frame 043106/0389 →
SECURITY INTEREST Recorded Jun 2, 2017
From: AXCIENT, INC.
To: SILVER LAKE WATERMAN FUND, L.P.
Reel/Frame 042577/0901 →
SECURITY INTEREST Recorded May 31, 2017
From: AXCIENT, INC.
To: STRUCTURED ALPHA LP
Reel/Frame 042542/0364 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2013
From: CAPUTO, VITO
To: AXCIENT, INC.
Reel/Frame 030831/0349 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2013
From: PETRI, ROBERT
To: AXCIENT, INC.
Reel/Frame 030273/0359 →