# US 11,907,161 B2 · Upgrading the file system of objects in a distributed storage system

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

- Number: US 11,907,161 B2
- Document ID: US11907161B2
- Status: Granted
- Kind: B2
- Application number: 17/367,233
- Filed: 2021-07-02
- Published: 2023-01-05
- Granted: 2024-02-20
- Earliest claimed: 2021-07-02
- Assignees: VMware, Inc.
- Applicants: VMware, Inc.
- Inventors: Asit Desai; Abhay Kumar Jain; Wenguang Wang; Eric Knauft; Enning Xiang
- Web page: https://patentgrep.com/patent/US11907161B2

## CPC

- G06F 16/116: {Details of conversion of file system types or formats}
- G06F 16/122: {using management policies (point-in-time backing up or restoration of persistent data G06F11/1446; file migration policies for HSM systems G06F16/185)}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0607: {by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0661: {Format or protocol conversion arrangements}
- G06F 3/0664: {at device level, e.g. emulation of a storage device or system}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 12/10: Address translation
- G06F 16/148: {File search processing}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An example method of upgrading a distributed storage object from a first version to a second version includes: querying metadata of a first component configured according to the first version of the distributed storage object, the metadata defining extents of data on a disk group of the first component; populating, for a second component configured according to the second version of the distributed storage object, logical and middle maps based on the metadata such that initial entries in the logical map point to initial entries in the middle map, and the initial entries in the middle map point to physical addresses of the disk group of the first component; and reading the data from the disk group of the first component and writing the data to a disk group of the second component while updating the initial entries in the middle map.

## Claims

### Claim 1

A method of upgrading a distributed storage object from a first version to a second version, comprising:
querying metadata of a first component, the first component configured according to the first version of the distributed storage object, the metadata defining extents of data on a disk group of the first component;
populating, for a second component configured according to the second version of the distributed storage object, a logical map and a middle map based on the metadata, initial entries in the logical map point to initial entries in the middle map, and the initial entries in the middle map point to physical addresses of the disk group of the first component; and
reading the data from the disk group of the first component and writing the data to a disk group of the second component while updating the initial entries in the middle map.

### Claim 2 (depends on 1)

The method of claim 1, wherein the second component uses a log-structured file system.

### Claim 3 (depends on 1)

The method of claim 1, wherein the distributed storage object is stored on local storage devices of virtualized hosts in a cluster.

### Claim 4 (depends on 1)

The method of claim 1, wherein, after all the data is read from the disk group of the first component and written to the disk group of the second component, all entries in the middle map point only to physical addresses of the disk group of the second component.

### Claim 5 (depends on 1)

The method of claim 1, wherein, during the step of reading the data from the disk group of the first component and writing the data to the disk group of the second component, the method comprises:
writing new data to the disk group of the second component; and
updating new entries in the logical map to point to new entries in the middle map, the new entries in the middle map pointing to physical addresses of the disk group in the second component.

### Claim 6 (depends on 1)

The method of claim 1, wherein, during the step of reading the data from the disk group of the first component and writing the data to the disk group of the second component, the method comprises:
generating a copy-on-write (COW) snapshot of the distributed storage object by capturing a state of the logical map.

### Claim 7 (depends on 1)

The method of claim 1, wherein, prior to the step of querying, the method comprises:
concatenating the first component and the second component as part of the distributed storage object; and
creating empty versions of the logical map and the middle map in the second component.

### Claim 8

A non-transitory computer readable medium comprising instructions to be executed in a computing device to cause the computing device to carry out a method of upgrading a distributed storage object from a first version to a second version, comprising:
querying metadata of a first component, the first component configured according to the first version of the distributed storage object, the metadata defining extents of data on a disk group of the first component;
populating, for a second component configured according to the second version of the distributed storage object, a logical map and a middle map based on the metadata, initial entries in the logical map point to initial entries in the middle map, and the initial entries in the middle map point to physical addresses of the disk group of the first component; and
reading the data from the disk group of the first component and writing the data to a disk group of the second component while updating the initial entries in the middle map.

### Claim 9 (depends on 8)

The non-transitory computer readable medium of claim 8, wherein the second component uses a log-structured file system.

### Claim 10 (depends on 8)

The non-transitory computer readable medium of claim 8, wherein the distributed storage object is stored on local storage devices of virtualized hosts in a cluster.

### Claim 11 (depends on 8)

The non-transitory computer readable medium of claim 8, wherein, after all the data is read from the disk group of the first component and written to the disk group of the second component, all entries in the middle map point only to physical addresses of the disk group of the second component.

### Claim 12 (depends on 8)

The non-transitory computer readable medium of claim 8, wherein, during the step of reading the data from the disk group of the first component and writing the data to the disk group of the second component, the method comprises:
writing new data to the disk group of the second component; and
updating new entries in the logical map to point to new entries in the middle map, the new entries in the middle map pointing to physical addresses of the disk group in the second component.

### Claim 13 (depends on 8)

The non-transitory computer readable medium of claim 8, wherein, during the step of reading the data from the disk group of the first component and writing the data to the disk group of the second component, the method comprises:
generating a copy-on-write (COW) snapshot of the distributed storage object by capturing a state of the logical map.

### Claim 14 (depends on 8)

The non-transitory computer readable medium of claim 8, wherein, prior to the step of querying, the method comprises:
concatenating the first component and the second component as part of the distributed storage object; and
creating empty versions of the logical map and the middle map in the second component.

### Claim 15

A virtualized computing system having a cluster comprising hosts connected to a network, the virtualized computing system comprising:
hardware platforms of the hosts configured to execute software platforms including distributed storage software;
shared storage comprising local storage devices of the hardware platforms, the shared storage storing a distributed storage object managed by the distributed storage software;
an upgrade manager of the distributed storage software configured to upgrade the distributed storage object from a first version to a second version by:
querying metadata of a first component, the first component configured according to the first version of the distributed storage object, the metadata defining extents of data on a disk group of the first component;
populating, for a second component configured according to the second version of the distributed storage object, a logical map and a middle map based on the metadata, initial entries in the logical map point to initial entries in the middle map, and the initial entries in the middle map point to physical addresses of the disk group of the first component; and
reading the data from the disk group of the first component and writing the data to a disk group of the second component while updating the initial entries in the middle map.

### Claim 16 (depends on 15)

The virtualized computing system of claim 15, wherein the second component uses a log-structured file system.

### Claim 17 (depends on 15)

The virtualized computing system of claim 15, wherein, after all the data is read from the disk group of the first component and written to the disk group of the second component, all entries in the middle map point only to physical addresses of the disk group of the second component.

### Claim 18 (depends on 15)

The virtualized computing system of claim 15, wherein, during the reading of the data from the disk group of the first component and the writing of the data to the disk group of the second component, the upgrade manager is configured to:
write new data to the disk group of the second component; and
update new entries in the logical map to point to new entries in the middle map, the new entries in the middle map pointing to physical addresses of the disk group in the second component.

### Claim 19 (depends on 15)

The virtualized computing system of claim 15, wherein, during the reading of the data from the disk group of the first component and the writing of the data to the disk group of the second component, the upgrade manager is configured to:
generate a copy-on-write (COW) snapshot of the distributed storage object by capturing a state of the logical map.

### Claim 20 (depends on 15)

The virtualized computing system of claim 15, wherein prior to querying the metadata, the upgrade manager is configured to:
concatenate the first component and the second component as part of the distributed storage object; and
create empty versions of the logical map and the middle map in the second component.
