IP Library Granted Patent US 9,710,195
Granted Patent B2
US 9,710,195 · App. 15/222,449 · Granted Jul 18, 2017

Media aware distributed data layout

Inventor: Michael L. Kazar (Pittsburgh, PA)
Assignee: Avere Systems, Inc.
G06F3/0667G06F3/0605G06F3/065G06F3/067G06F3/0611G06F3/0619G06F3/0643G06F3/0644G06F3/0659G06F3/0665G06F3/0673G06F3/0689G06F12/1036G06F13/37G06F17/30091G06F17/30171G06F17/30182G06F12/109G06F12/145Y10S707/956
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,710,195
App. No.
15/222,449
Granted
Jul 18, 2017
Kind
B2
Abstract

A storage system includes a plurality of vdisks, with each vdisk containing a plurality of storage segments, and each segment providing a specific class of service (CoS) for storage. Each vdisk stores files with data and meta data distributed among its storage segments. A storage system includes a memory having multiple classes of service. The system includes an interface for storing a file as blocks of data associated with a class of service in the memory. The interface chooses the class of service for a block on a block by block basis for storage. A file system for storing a file. A file system for storing includes a plurality of vdisks. A method for storing a file.

Claims (37)

1. A storage system, comprising:

a computer;

a plurality of vdisks in communication with the computer, each vdisk containing a plurality of persistent storage segments, each segment providing a specific class of service (CoS) for storage different from the CoS for storage of the other segments; each vdisk storing one or more files with data and meta data distributed among its storage segments, a vdisk to hold a newly created file or directory is chosen from the plurality of vdisks based on a predetermined mapping into the plurality of vdisks; and

a policy module for vdisk and segment choice in communication with the computer, a first portion of a file's data is stored in a first segment, and a second portion of the file's data is stored in either the first segment or a second segment, the predetermined mapping is a round robin assignment algorithm.

2. A storage system as described in claim 1 , where the predetermined: mapping cheeses the vdisk with a largest available space, or a largest percentage of available space.

3. A storage system, as described in claim 1 , including a plurality of processors and wherein, the predetermined mapping chooses the vdisk served by a least loaded processor.

4. A storage system as described in claim 1 , wherein each vdisk contains an arbitrary collection of directories and files, and at least two vdisks hold at least one file.

5. A storage system as described in claim 1 , wherein at least one file's data is stored in one segment, and at least one other file's data is stored in a second segment.

6. A storage system as described in claim 5 , where the predetermined mapping chooses the vdisk with a largest available space, or a largest percentage of available space.

7. A storage system as described in claim 5 , including a plurality of processors and wherein the predetermined mapping chooses the vdisk served by a least loaded processor.

8. A storage system as described in claim 1 , wherein, each vdisk is an arbitrary collection of directories and files, and at least one file is stored in at least two segments.

9. A storage system as described in claim 5 , wherein each vdisk contains an arbitrary collection of directories and files, and at least two vdisks hold at least one file.

10. A system as described in claim 1 wherein each segment consists of a plurality of chunks.

11. A method for storing a file comprising the steps of:

receiving the file at a communication interface;

storing a first portion of the file in a first segment of a persistent memory in communication with the interface and a second portion of the file in a second segment of the memory having a different class of service for storage than the first segment's class of service; and

retrieving by a computer the file by reading the first portion and the second portion from the first and second segment, respectively, a vdisk to hold a newly created file or directory is chosen from the plurality of vdisks based on a predetermined mapping into the plurality of vdisks, a first portion of a file's data is stored in a first segment, and a second portion of the file's data is stored in either the first segment or a second segment, each vdisk contains meta data disk block pointers only to blocks within a same vdisk.

12. A storage system comprising:

a computer;

a plurality of vdisks in communication with the computer, each vdisk containing a plurality of persistent storage segments, each segment providing a specific class of service (CoS) for storage different from the CoS for storage of the other segments, each vdisk storing one or more files with data and meta data distributed among its storage segments and a persistent operations table that implements directory modifying operations atomically, each vdisk is an arbitrary collection of directories and files, and at least one file is stored in at least two segments, a first portion of a file's data is stored in a first segment, and a second portion of the file's data is stored in either the first segment or a second segment, each vdisk contains meta data disk block pointers only to blocks within a same vdisk.

13. A storage system comprising:

a plurality of vdisks, each vdisk containing a plurality of storage segments, each segment providing a specific class of service (CoS) for storage different from the CoS for storage of the other segments; each vdisk storing one or more files with data and meta data distributed among its storage segments, each segment having disk blocks, the disk blocks being allocated to files and being marked as in use by a corresponding bit being set in the bitmap allocation table, indexed by physical block address; and

a persistent operations table which tracks file system operations that affect a single vdisk, a first portion of a file's data is stored in a first segment, and a second portion of the file's data is stored in either the first segment or a second segment, each vdisk contains meta data disk block pointers only to blocks within a same vdisk.

14. A storage system, comprising:

a computer;

a plurality of vdisks in communication with the computer, each vdisk containing a plurality of persistent storage segments, each segment providing a specific class of service (CoS) for storage different from the CoS for storage of the other segments; each vdisk storing one or more files with data and meta data distributed among its storage segments, a vdisk to hold a newly created file or directory is chosen from the plurality of vdisks based on a predetermined mapping into the plurality of vdisks; and

a policy module for vdisk and segment choice in communication with the computer, a first portion of a file's data is stored in a first segment, and a second portion of the file's data is stored in either the first segment or a second segment, each vdisk contains meta data disk block pointers only to blocks within a same vdisk.

15. A storage system as described in claim 14 , including an interface to initiate a file system consistency check on an individual vdisk, triggered by an indication of an inconsistency in a specific vdisk.

16. A storage system comprising:

a computer;

a plurality of vdisks in communication with the computer, each vdisk containing a plurality of persistent storage segments, each segment providing a specific class of service (CoS) for storage different from the CoS for storage of the other segments; each vdisk storing one or more files with data and meta data distributed among its storage segments, a vdisk to hold a newly created file or directory is chosen from the plurality of vdisks based on a predetermined mapping into the plurality of vdisks; and

a policy module for vdisk and segment choice in communication with the computer, at least one file's data is stored in one segment, and at least one other file's data is stored in a second segment, the predetermined mapping is a round robin assignment algorithm.

17. A storage system comprising:

a computer;

a plurality of vdisks in communication with the computer, each vdisk containing a plurality of persistent storage segments, each segment providing a specific class of service (CoS) for storage different from the CoS for storage of the other segments; each vdisk storing one or more files with data and meta data distributed among its storage segments, a vdisk to hold a newly created file or directory is chosen from the plurality of vdisks based on a predetermined mapping into the plurality of vdisks; and

a policy module for vdisk and segment choice in communication with the computer, at least one file's data is stored in one segment, and at least one other file's data is stored in a second segment, each vdisk contains meta data disk block pointers only to blocks within the same vdisk.

18. A storage system as described in claim 17 , including an interface to initiate a file system consistency check on an individual vdisk, triggered by an indication of an inconsistency in a specific vdisk.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2020
From: AVERE SYSTEMS, INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 053373/0574 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2018
From: KAZAR, MICHAEL L.
To: ARRIAD, INC.
Reel/Frame 045143/0138 →
CHANGE OF NAME Recorded Mar 8, 2018
From: ARRIAD, INC.
To: AVERE SYSTEMS, INC.
Reel/Frame 045273/0761 →
Continuity (4)
Continuation 14175801 · Feb 7, 2014
Continuation 13493701 · Jun 11, 2012
Continuation 12218085 · Jul 11, 2008
Related Publication 20160335015A1 · Nov 17, 2016