# US 12,602,160 B2 · Target discovery extension using log page storage tags

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

- Number: US 12,602,160 B2
- Document ID: US12602160B2
- Status: Granted
- Kind: B2
- Application number: 18/819,772
- Filed: 2024-08-29
- Published: 2026-03-05
- Granted: 2026-04-14
- Earliest claimed: 2024-08-29
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Igor Achkinazi; Lev Knopov; Vinay Rao Gudla
- Web page: https://patentgrep.com/patent/US12602160B2

## CPC

- G06F 3/061: {Improving I/O performance}
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/0655: {Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An apparatus comprises at least one processing device that includes a processor coupled to a memory. The processing device is configured to receive in a host device, for a plurality of targets of a storage system, corresponding discovery log pages, to extract from the received discovery log pages respective storage tags for respective ones of the targets, and to control path selection for delivery of input-output operations from the host device to the targets based at least in part on the extracted storage tags. The targets illustratively comprise NVMe targets configured to store data of a plurality of logical storage volumes comprising respective NVMe namespaces of the storage system. In some embodiments, each of the storage tags indicates a failure domain of the corresponding target, such as a particular storage node, physical server or subnetwork of a storage system.

## Claims

### Claim 1

An apparatus comprising:
at least one processing device comprising a processor coupled to a memory;
the at least one processing device being configured:
to receive in a host device, for a plurality of targets of a storage system, corresponding discovery log pages;
to extract from the received discovery log pages respective storage tags for respective ones of the targets; and
to control path selection for delivery of input-output operations from the host device to the targets based at least in part on the extracted storage tags;
wherein the extracted storage tags are utilized by the host device to match at least portions of respective multiple discovery log pages received for respective different targets to a same failure domain of the storage system.

### Claim 2 (depends on 1)

The apparatus of claim 1 wherein the storage system comprises a distributed storage system that includes a plurality of storage nodes, and wherein different ones of the targets are implemented on respective different ones of the storage nodes.

### Claim 3 (depends on 2)

The apparatus of claim 2 wherein the distributed storage system comprises a software-defined storage system and the storage nodes comprise respective software-defined storage server nodes of the software-defined storage system.

### Claim 4 (depends on 1)

The apparatus of claim 1 wherein a given one of the targets comprises at least one Non-Volatile Memory Express (NVMe) controller of the storage system.

### Claim 5 (depends on 1)

The apparatus of claim 1 wherein the storage system implements a plurality of logical storage volumes as respective NVMe namespaces.

### Claim 6 (depends on 1)

The apparatus of claim 1 wherein a given one of the storage tags is extracted from a storage tag field comprising a designated set of multiple bytes of the corresponding discovery log page.

### Claim 7 (depends on 1)

The apparatus of claim 1 wherein at least one of the storage tags contains information identifying a failure domain of a corresponding one of the targets.

### Claim 8 (depends on 7)

The apparatus of claim 7 wherein the failure domain comprises a particular storage node of a plurality of storage nodes of the storage system and further wherein the storage tag comprises an identifier of the particular storage node.

### Claim 9 (depends on 7)

The apparatus of claim 7 wherein the failure domain comprises a particular physical server of a plurality of physical servers of the storage system and further wherein the storage tag comprises an identifier of the particular physical server.

### Claim 10 (depends on 7)

The apparatus of claim 7 wherein the failure domain comprises a particular subnetwork of a plurality of subnetworks of the storage system and further wherein the storage tag comprises an identifier of the particular subnetwork.

### Claim 11 (depends on 1)

The apparatus of claim 1 wherein controlling path selection for delivery of input-output operations from the host device to the targets based at least in part on the extracted storage tags comprises avoiding selection of multiple paths to respective targets that have the same storage tag.

### Claim 12 (depends on 1)

The apparatus of claim 1 wherein controlling path selection for delivery of input-output operations from the host device to the targets based at least in part on the extracted storage tags comprises configuring a path selection algorithm to prevent selection of multiple paths to respective targets that have the same storage tag.

### Claim 13 (depends on 1)

The apparatus of claim 1 wherein controlling path selection for delivery of input-output operations from the host device to the targets based at least in part on the extracted storage tags comprises load balancing delivery of a plurality of input-output operations over respective ones of a plurality of paths to respective ones of multiple targets each having a different storage tag in a manner that ensures that each of the plurality of input-output operations is delivered over a path to a target having a different storage tag.

### Claim 14

A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device comprising a processor coupled to a memory, causes the at least one processing device:
to receive in a host device, for a plurality of targets of a storage system, corresponding discovery log pages;
to extract from the received discovery log pages respective storage tags for respective ones of the targets; and
to control path selection for delivery of input-output operations from the host device to the targets based at least in part on the extracted storage tags;
wherein the extracted storage tags are utilized by the host device to match at least portions of respective multiple discovery log pages received for respective different targets to a same failure domain of the storage system.

### Claim 15 (depends on 14)

The computer program product of claim 14 wherein at least one of the storage tags contains information identifying a failure domain of a corresponding one of the targets.

### Claim 16 (depends on 14)

The computer program product of claim 14 wherein controlling path selection for delivery of input-output operations from the host device to the targets based at least in part on the extracted storage tags comprises load balancing delivery of a plurality of input-output operations over respective ones of a plurality of paths to respective ones of multiple targets each having a different storage tag in a manner that ensures that each of the plurality of input-output operations is delivered over a path to a target having a different storage tag.

### Claim 17

A method comprising:
receiving in a host device, for a plurality of targets of a storage system, corresponding discovery log pages;
extracting from the received discovery log pages respective storage tags for respective ones of the targets; and
controlling path selection for delivery of input-output operations from the host device to the targets based at least in part on the extracted storage tags;
wherein the extracted storage tags are utilized by the host device to match at least portions of respective multiple discovery log pages received for respective different targets to a same failure domain of the storage system; and
wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

### Claim 18 (depends on 17)

The method of claim 17 wherein at least one of the storage tags contains information identifying a failure domain of a corresponding one of the targets.

### Claim 19 (depends on 17)

The method of claim 17 wherein controlling path selection for delivery of input-output operations from the host device to the targets based at least in part on the extracted storage tags comprises load balancing delivery of a plurality of input-output operations over respective ones of a plurality of paths to respective ones of multiple targets each having a different storage tag in a manner that ensures that each of the plurality of input-output operations is delivered over a path to a target having a different storage tag.

### Claim 20 (depends on 17)

The method of claim 17 wherein controlling path selection for delivery of input-output operations from the host device to the targets based at least in part on the extracted storage tags comprises avoiding selection of multiple paths to respective targets that have the same storage tag.
