# US 10,503,703 B1 · Method for parallel file system upgrade in virtual storage environment

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

- Number: US 10,503,703 B1
- Document ID: US10503703B1
- Status: Granted
- Kind: B1
- Application number: 15/191,236
- Filed: 2016-06-23
- Granted: 2019-12-10
- Earliest claimed: 2016-06-23
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC Corporation
- Inventors: Jayasekhar Konduru; Shuang Liang; Mahesh Kamat; Akshay Narayan Muramatti; Arun Keshavamurthy
- Web page: https://patentgrep.com/patent/US10503703B1

## CPC

- G06F 16/1858: {Parallel file systems, i.e. file systems supporting multiple processors}
- G06F 3/0607: {by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device}
- G06F 3/064: {Management of blocks}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 16/11: File system administration, e.g. details of archiving or snapshots (error detection or correction of the data by redundancy in operations G06F11/14)
- G06F 16/13: File access structures, e.g. distributed indices (arrangements of input from, or output to, record carriers G06F3/06)
- G06F 16/1827: {Management specifically adapted to NAS (management of storage area networks [SAN] G06F3/067)}
- G06F 16/188: Virtual file systems
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for upgrading a file system in a data storage environment is provided. A storage system identifies a set of boundaries of one or more sets of hard disks based on a first block management data structure (BMDS), where the first BMDS includes information describing a storage volume representing the one or more sets of hard disks. For each identified boundary, the storage system identifies a data block range of a set of data blocks, where the data block range includes metadata of one set of hard disks that is stored on the set of data blocks. Further, the storage system concurrently generates a plurality of second BMDSs, each of the second BMDS corresponding to one of the sets of hard disks, including simultaneously retrieving metadata of the sets of hard disks, where the second BMDSs are constructed based on the retrieved metadata, representing an upgraded file system.

## Claims

### Claim 1

A computer-implemented method for upgrading a file system in a data storage environment, the method comprising:
identifying a set of boundaries of a plurality of sets of hard disks based in a first block management data structure (BIMDS) based on information retrieved from a volume layer, wherein the first BMDS comprises a header and a descriptor table, and includes information describing a storage volume representing the plurality of sets of hard disks, wherein each boundary in the set of boundaries divides continuous offsets in a linear address space of the first BMDS that correspond to different sets of hard disks;
based on the identified boundaries, identifying a plurality of non-overlapping data block ranges that in aggregate cover the whole storage volume, each data block range corresponding to one of the plurality of sets of hard disks, and comprising set of data blocks stored on the corresponding set of hard disks, wherein each data block range includes metadata of the corresponding set of hard disks that is stored on the set of data blocks; and
concurrently generating a plurality of second BMDSs, each of the second BMDSs comprising a respective header and a respective descriptor table, and corresponding to one of the data block ranges and its corresponding set of hard disks, including simultaneously retrieving or operating on metadata of different data block ranges in parallel, including reading from or writing to different sets of hard disks in parallel, wherein the plurality of second BMDSs are constructed based on the retrieved metadata, representing an upgraded file system.

### Claim 2 (depends on 1)

The method of claim 1, wherein each data block range further comprises a first offset identifier and second offset identifier that are used to identify the boundaries of the data block range for that set of hard disks.

### Claim 3 (depends on 1)

The method of claim 1, wherein the set of data blocks further comprises:
a data header that includes metadata information of each stored metadata within each data block; and
a descriptor index table that includes a plurality of descriptors, wherein each descriptor is associated with a data block from the set of data blocks.

### Claim 4 (depends on 3)

The method of claim 3, wherein each descriptor further comprises information that includes at least one of a state of allocation, a file identifier, and an offset identifier.

### Claim 5 (depends on 3)

The method of claim 3, wherein the metadata of each data block includes at least one of a file version, an allocation state, a data block identifier, an offset identifier, a file identifier, a file offset, an old data block identifier, and an old data block number.

### Claim 6 (depends on 1)

The method of claim 1, wherein concurrently generating the plurality of second BMDSs further comprises:
generating specified metadata of one set of hard disks to be stored in each data block;
reading in parallel actions one or more specified metadata of one or more data blocks in each set of hard disks;
upgrading in parallel actions the one or more specified metadata of the one or more read data blocks to a memory; and
writing in parallel actions the one or more specified metadata of the one or more data blocks in each set of hard disks.

### Claim 7 (depends on 1)

The method of claim 1, wherein each of the second BMDS includes an upgraded data header and an upgraded descriptor index table.

### Claim 8 (depends on 1)

The method of claim 1, wherein the upgraded metadata of each of the second BMDS includes a new offset identifier and a new data block identifier that are both associated with the old offset identifier and the old data block identifier of the first BMDS.

### Claim 9

A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations for upgrading a file system in a data storage environment, the operations comprising:
identifying a set of boundaries of a plurality of sets of hard disks in a first block management data structure (BMDS) based on information retrieved from a volume layer, wherein the first BMDS comprises a header and a descriptor table, and includes information describing a storage volume representing the plurality of sets of hard disks, wherein each boundary in the set of boundaries divides continuous offsets in a linear address space of the first BMDS that correspond to different sets of hard disks;
based on the identified boundaries, identifying a plurality of non-overlapping data black ranges that in aggregate cover the whole storage volume, each data block range corresponding to one of the plurality of sets of hard disks, and comprising a set of data blocks stored on the corresponding set of hard disks, wherein each data block range includes metadata of the corresponding set of hard disks that is stored on the set of data blocks; and
concurrently generating a plurality of second BMDSs, each of the second BMDSs comprising a respective header and a respective descriptor table, and corresponding to one of the data block ranges and its corresponding set of hard disks, including simultaneously retrieving or operating on metadata of different data block ranges in parallel, including reading from or writing to different sets of hard disks in parallel, wherein the plurality of second BMDSs are constructed based on the retrieved metadata, representing an upgraded file system.

### Claim 10 (depends on 9)

The medium of claim 9, wherein each data block range further comprises a first offset identifier and second offset identifier that are used to identify the boundaries of the data block range for that set of hard disks.

### Claim 11 (depends on 9)

The medium of claim 9, wherein the set of data blocks further comprises:
a data header that includes metadata information of each stored metadata within each data block; and
a descriptor index table that includes a plurality of descriptors, wherein each descriptor is associated with a data block from the set of data blocks.

### Claim 12 (depends on 11)

The medium of claim 11, wherein each descriptor further comprises information that includes at least one of a state of allocation, a file identifier, and an offset identifier.

### Claim 13 (depends on 11)

The medium of claim 11, wherein the metadata of each data block includes at least one of a file version, an allocation state, a data block identifier, an offset identifier, a file identifier, a file offset, an old data block identifier, and an old data block number.

### Claim 14 (depends on 9)

The medium of claim 9, wherein concurrently generating the plurality of second BMDSs further comprises:
generating specified metadata of one set of hard disks to be stored in each data block;
reading in parallel actions one or more specified metadata of one or more data blocks in each set of hard disks;
upgrading in parallel actions the one or more specified metadata of the one or more read data blocks to a memory; and
writing in parallel actions the one or more specified metadata of the one or more data blocks in each set of hard disks.

### Claim 15 (depends on 9)

The medium of claim 9, wherein each of the second BMDS includes an upgraded data header and an upgraded descriptor index table.

### Claim 16 (depends on 9)

The medium of claim 9, wherein the upgraded metadata of each of the second BMDS includes a new offset identifier and a new data block identifier that are both associated with the old offset identifier and the old data block identifier of the first BMDS.

### Claim 17

A system, comprising:
a processor; and
a memory coupled to the processor for storing instructions, which when executed from the memory, cause the processor to perform operations for upgrading a file system in a data storage environment, the operations including:
identifying a set of boundaries of a plurality of sets of hard disks in a first block management data structure (BMDS) based on information retrieved from a volume layer, wherein the first BMDS comprises a header and a descriptor table, and includes information describing a storage volume representing the plurality of sets of hard disks, wherein each boundary in the set of boundaries divides continuous offsets in a linear address space of the first BMDS that correspond to different sets of hard disks;
based on the identified boundaries, identifying a plurality of non-overlapping data block ranges that in aggregate cover the whole storage volume, each data block range corresponding to one of the plurality of sets of hard disks, and comprising a set of data blocks stored on the corresponding set of hard disks, wherein each data block range includes metadata of the corresponding set of hard disks that is stored on the set of data blocks; and
concurrently generating a plurality of second BMDSs, each of the second BMDs comprising a respective header and a respective descriptor table, and corresponding to one of the data block ranges and its corresponding set of hard disks, including simultaneously retrieving or operating on metadata of different data block ranges in parallel, including reading from or writing to different sets of hard disks in parallel, wherein the plurality of second BMDSs are constructed based on the retrieved metadata, representing an upgraded file system.

### Claim 18 (depends on 17)

The system of claim 17, wherein each data block range further comprises a first offset identifier and second offset identifier that are used to identify the boundaries of the data block range for that set of hard disks.

### Claim 19 (depends on 17)

The system of claim 17, wherein the set of data blocks further comprises:
a data header that includes metadata information of each stored metadata within each data block; and
a descriptor index table that includes a plurality of descriptors, wherein each descriptor is associated with a data block from the set of data blocks.

### Claim 20 (depends on 19)

The system of claim 19, wherein each descriptor further comprises information that includes at least one of a state of allocation, a file identifier, and an offset identifier.

### Claim 21 (depends on 19)

The system of claim 19, wherein the metadata of each data block includes at least one of a file version, an allocation state, a data block identifier, an offset identifier, a file identifier, a file offset, an old data block identifier, and an old data block number.

### Claim 22 (depends on 17)

The system of claim 17, wherein concurrently generating the plurality of second BMDSs further comprises:
generating specified metadata of one set of hard disks to be stored in each data block;
reading in parallel actions one or more specified metadata of one or more data blocks in each set of hard disks;
upgrading in parallel actions the one or more specified metadata of the one or more read data blocks to a memory; and
writing in parallel actions the one or more specified metadata of the one or more data blocks in each set of hard disks.

### Claim 23 (depends on 17)

The system of claim 17, wherein each of the second BMDS includes an upgraded data header and an upgraded descriptor index table.

### Claim 24 (depends on 17)

The system of claim 17, wherein the upgraded metadata of each of the second BMDS includes a new offset identifier and a new data block identifier that are both associated with the old offset identifier and the old data block identifier of the first BMDS.
