# US 2014/0156928 A1 · Media Aware Distributed Data Layout

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0156928 A1
- Document ID: US20140156928A1
- Status: Published application
- Kind: A1
- Application number: 14/175,801
- Filed: 2014-02-07
- Published: 2014-06-05
- Earliest claimed: 2008-07-11
- Assignees: Avere Systems, Inc.
- Inventors: Michael L. Kazar
- Web page: https://patentgrep.com/patent/US20140156928A1

## CPC

- G06F 3/0667: {at data level, e.g. file, record or object virtualisation}
- G06F 3/0605: {by facilitating the interaction with a user or administrator}
- G06F 3/0611: {in relation to response time}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0643: {Management of files}
- G06F 3/0644: {Management of space entities, e.g. partitions, extents, pools}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0673: {Single storage device}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 12/1036: for multiple virtual address spaces, e.g. segmentation (G06F12/1045 takes precedence)
- G06F 13/37: using a physical-position-dependent priority, e.g. daisy chain, round robin or token passing
- G06F 16/13: File access structures, e.g. distributed indices (arrangements of input from, or output to, record carriers G06F3/06)
- G06F 16/1774: {Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files}
- G06F 16/18: File system types
- G06F 12/109: for multiple virtual address spaces, e.g. segmentation (G06F12/1036 takes precedence)
- G06F 12/145: {the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism}
- Y10S 707/956: Hierarchical
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## 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

### Claim 1

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 file's meta data including a search tree indexed by logical block number, each file described by a single inode.

### Claim 2 (depends on 1)

A storage system as described in claim 1, wherein a first portion of a file's data is stored in a first segment, and a second portion of the file is stored in either the first segment or a second segment.

### Claim 3 (depends on 2)

A storage system as described in claim 2 wherein 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.

### Claim 4 (depends on 3)

A storage system as described in claim 3, where the predetermined mapping is a round robin assignment algorithm.

### Claim 5 (depends on 3)

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

### Claim 6 (depends on 3)

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

### Claim 7 (depends on 2)

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

### Claim 8 (depends on 2)

A storage system as described in claim 2, wherein each vdisk contains meta data disk block pointers only to blocks within a same vdisk.

### Claim 9 (depends on 8)

A storage system as described in claim 8, 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.

### Claim 10 (depends on 1)

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.

### Claim 11 (depends on 10)

A storage system as described in claim 10, including a plurality of vdisks, and where 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.

### Claim 12 (depends on 11)

A storage system as described in claim 11, where the predetermined mapping is a round robin assignment algorithm.

### Claim 13 (depends on 11)

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

### Claim 14 (depends on 11)

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

### Claim 15 (depends on 2)

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

### Claim 16 (depends on 10)

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

### Claim 17 (depends on 10)

A storage system as described in claim 10, wherein each vdisk contains meta data disk block pointers only to blocks within the same vdisk.

### Claim 18 (depends on 17)

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.

### Claim 19 (depends on 3)

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

### Claim 20

A method for storing a file comprising the steps of:
receiving the file at an interface;
storing a first portion of the file in a first segment of a 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 the file by reading the first portion and the second portion from the first and second segment, respectively, each file's meta data including a search tree indexed by logical block number.

### Claim 21

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 and a persistent operations table that implements directory modifying operations atomically, the meta data in at least one segment describes file data stored in any other segment.

### Claim 22

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.
