# US 10,310,925 B2 · Method of preventing metadata corruption by using a namespace and a method of verifying changes to the namespace

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

- Number: US 10,310,925 B2
- Document ID: US10310925B2
- Status: Granted
- Kind: B2
- Application number: 15/058,538
- Filed: 2016-03-02
- Published: 2017-09-07
- Granted: 2019-06-04
- Earliest claimed: 2016-03-02
- Assignees: Western Digital Technologies, Inc.
- Applicants: HGST Netherlands B.V.
- Inventors: Viacheslav Dubeyko; Adam Manzanares
- Web page: https://patentgrep.com/patent/US10310925B2

## CPC

- G06F 11/0772: {Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0644: {Management of space entities, e.g. partitions, extents, pools}
- G06F 3/0673: {Single storage device}
- G06F 11/0727: {in a storage system, e.g. in a DASD or network based storage system (drivers for digital recording or reproducing units G06F3/06; circuits for error detection or correction within digital recording or reproducing units G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- G06F 11/0751: {Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06)}
- G06F 11/079: {Root cause analysis, i.e. error or fault diagnosis (in a hardware test environment G06F11/22; in a software test environment G06F11/36)}
- 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: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Metadata area legends are stored at a first location, such as a dedicated partition of a persistent data storage device (PDSD). The metadata area legends have a number of descriptors that describe a number of reserved metadata areas that lie at a second location that is logically separate from the first location, such as a regular partition of the PDSD. Requests to delete the metadata area legends, as well as requests to add new metadata area legends, can be verified to prevent the metadata area legends from being accidentally or maliciously changed.

## Claims

### Claim 1

A method of creating a namespace, the method comprising:
determining whether a namespace already exists before creating a number of metadata area legends;
when a namespace is determined to already exist:
deleting existing metadata area legends and existing namespace, and
determining whether namespace verification has been enabled;
reserving a number of areas as a number of reserved metadata areas on a persistent data storage device (PDSD) when a namespace is determined not to already exist;
creating a number of metadata area legends at a location that is logically separate from the reserved metadata areas on the PDSD based on the number of areas reserved for metadata, the number of metadata area legends having a number of existing descriptors that describe the number of reserved metadata areas;
preparing a number of legends as a number of prepared area legends when namespace verification has been enabled, each prepared area legend including a number of prepared descriptors; and
signaling an error when the prepared descriptors in the prepared area legend differ from the existing descriptors in the metadata area legend based on a comparison between the prepared descriptors and the existing descriptors.

### Claim 2 (depends on 1)

The method of claim 1, wherein:
the location where the metadata area legends are created is a dedicated partition on the PDSD; and
the reserved metadata areas are located in a regular partition on the PDSD that is logically separate from the dedicated partition.

### Claim 3 (depends on 1)

The method of claim 1, wherein the number of metadata area legends are created on a second PDSD.

### Claim 4 (depends on 1)

The method of claim 1, wherein the number of existing descriptors in the metadata area legends includes a magic signature that uniquely identifies a metadata structure in a reserved metadata area.

### Claim 5 (depends on 1)

The method of claim 1, wherein:
a reserved metadata area has a number of nodes, the number of nodes in the reserved metadata area having a single metadata node size; and
the number of existing descriptors in the metadata area legends includes the single metadata node size.

### Claim 6 (depends on 1)

The method of claim 1, wherein:
the number of reserved metadata areas has a number of extents, each of the extents describing a location of a reserved metadata area; and
the number of existing descriptors in the metadata area legends includes at least one of the extents.

### Claim 7 (depends on 1)

The method of claim 1, wherein the number of existing descriptors in the metadata area legends includes a minimum, default, or maximum clump size value of new reservations of metadata areas.

### Claim 8 (depends on 1)

The method of claim 1, wherein the number of prepared descriptors in a prepared area legend include a magic signature, a single metadata node size, and an extent.

### Claim 9 (depends on 1)

The method of claim 1, wherein each of the number of metadata area legends corresponds to one of the number of reserved metadata areas.

### Claim 10

A non-transitory computer-readable medium containing computer executable instructions which when executed by a computer perform a method of adding a metadata area legend to a namespace, the method comprising:
creating a new metadata area legend that represents a new reserved metadata area, the new metadata area legend including a magic signature of a metadata structure in the new reserved metadata area, a node size in the new reserved metadata area, and an extent of the new reserved metadata area;
determining if the magic signature in the new metadata area legend matches an existing magic signature in an existing metadata area legend;
when the magic signature in the new metadata area legend matches an existing magic signature, determining if the node size in the new metadata area legend matches an existing node size in the existing metadata area legend;
when the node size in the new metadata area legend matches the existing node size, determining if a size of the extent in the new metadata area legend matches a minimum, default, or maximum clump size in the existing metadata area legend; and
when the size of the extent matches the minimum, default, or maximum clump size, adding the new metadata area legend to the namespace.

### Claim 11 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein the method further comprises:
adding the new metadata area legend to the namespace when the magic signature in the new metadata area legend does not match any existing magic signature in the namespace.

### Claim 12 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein the method further comprises:
signaling an error when the node size in the new metadata area legend does not match the existing node size in the existing metadata area legend.

### Claim 13 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein the method further comprises:
signaling an error when the size of the extent does not match the minimum, default, or maximum clump size.

### Claim 14

A computer system, comprising:
a first persistent data storage device (PDSD) that stores a number of byte streams at a first location, the number of byte streams representing a number of metadata area legends that have a number of first descriptors, the number of first descriptors describing a number of reserved metadata areas at a second location that is logically separate from the first location where the number of byte streams are stored, the number of metadata area legends created based on the number of reserved metadata areas reserved;
a processor coupled to the first PDSD, the processor configured to:
determine whether a namespace already exists;
determine whether namespace verification has been enabled when an existing namespace is determined to already exist, the existing namespace having the number of first descriptors;
prepare a number of legends as a number of prepared area legends that includes a number of second descriptors that correspond with the number of first descriptors when namespace verification has been enabled;
determine whether the second descriptors from the prepared area legends differ from the first descriptors; and
signal an error when the second descriptors differ from the first descriptors.

### Claim 15 (depends on 14)

The computer system of claim 14, wherein:
the number of byte streams are stored in a dedicated partition on the first PDSD; and
the number of reserved metadata areas are located in a regular partition on the first PDSD that is logically separate from the dedicated partition.

### Claim 16 (depends on 14)

The computer system of claim 14, further comprising:
a second PDSD coupled to the first PDSD, wherein the number of reserved metadata areas are located on the second PDSD.

### Claim 17 (depends on 14)

The computer system of claim 14, wherein the first and second descriptors both include magic signatures.

### Claim 18 (depends on 14)

The computer system of claim 14, wherein the first and second descriptors both include node sizes.

### Claim 19 (depends on 14)

The computer system of claim 14, wherein:
the number of reserved metadata areas are described by a number of extents; and
the first and second descriptors both include the extents.
