# US 7,610,295 B2 · Method and apparatus for generating persistent path identifiers

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

- Number: US 7,610,295 B2
- Document ID: US7610295B2
- Status: Granted
- Kind: B2
- Application number: 10/260,411
- Filed: 2002-10-01
- Published: 2004-04-01
- Granted: 2009-10-27
- Earliest claimed: 2002-10-01
- Assignees: Hewlett-Packard Development Company, L.P.
- Inventors: Subramaniyam Pooni; Vijay Srinath; Vikram Krishnamurthy; Rajkumar Mangalore
- Web page: https://patentgrep.com/patent/US7610295B2

## CPC

- G06F 3/0661: {Format or protocol conversion arrangements}
- G06F 3/0607: {by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device}
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 13/102: {where the program performs an interfacing function, e.g. device driver (G06F13/105 takes precedence; contention policies within device drivers G06F9/4881; scheduling within device drivers G06F9/52)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The method and apparatus is utilized in order to generate a persistent path to a SCSI device for a host. In an embodiment, a SCSI device is queried for path information related thereto, and if path information is returned, a SCSI command requesting identifier data is issued to the SCSI device. The identifier data is used to determine a unique identifier (UID), from which is generated a UID-based device file for the SCSI device that is independent from the path information.

## Claims

### Claim 1

A method for generating a persistent path identifier of a SCSI device for a host, comprising the steps of:
opening a non-UID-based device file for the SCSI device;
obtaining identifier data regarding the SCSI device;
determining a unique identifier (UID) based on the identifier data; and
generating a UID-based device file according to the UID and the non-UID-based device file.

### Claim 2 (depends on 1)

The method of claim 1, wherein the step of obtaining includes:
querying the SCSI device for path information related thereto; and
issuing a SCSI command to the SCSI device requesting identifier data from the SCSI device, if path information to the SCSI device is returned from the querying step.

### Claim 3 (depends on 2)

The method of claim 2, wherein the path information includes a <host, bus, target, LUN> address of a particular path from the host to the SCSI device.

### Claim 4 (depends on 2)

The method of claim 2, wherein the issuing step includes issuing one or more SCSI inquiry commands.

### Claim 5 (depends on 2)

The method of claim 2, wherein the querying step further comprises:
issuing a command, via the non-UID-based device file, requesting path information of the SCSI device.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
mapping characteristics of said non-UID-based device file to said UID-based device file.

### Claim 7 (depends on 6)

The method of claim 6, wherein said mapping step further comprises
transferring at least one or more of a major number, minor number, access permissions, file ownership data and device file type of said opened device file to said UID-based device file.

### Claim 8 (depends on 1)

The method of claim 1, wherein the UID-based device file is independent from the path information.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
creating a name for the UID-based device file founded upon the UID.

### Claim 10 (depends on 9)

The method of claim 9, wherein the step of creating includes:
compressing the UID.

### Claim 11 (depends on 9)

The method of claim 9, wherein:
the non-UID-based device file is a given one of a plurality of such device files that map to the UID;
the method further includes enumerating the plurality of non-UID-based device files mapping to the UID; and
wherein the name for the given UID-based device file also is founded upon the enumeration assigned to the given non-UID-based device file.

### Claim 12 (depends on 1)

The method of claim 1, wherein at least some characteristics of the SCSI device stored in the non-UID-based device file are copied into the UID-based device file.

### Claim 13 (depends on 12)

The method of claim 12, wherein the UID-based device file enables mounting of one or more file systems on the host so that device file persistence is ensured across reboots of an operating system being run on the host.

### Claim 14 (depends on 12)

The method of claim 12, wherein a UID-based device file name remains the same for the SCSI device, even after a reboot of an operating system being run by the host.

### Claim 15

An apparatus for generating a persistent path identifier of a SCSI device for a host, comprising:
means for opening a non-UID-based device file for the SCSI device;
means for obtaining identifier data regarding the SCSI device;
means for determining a unique identifier (UID) based on the identifier data; and
means for generating a UID-based device file.

### Claim 16 (depends on 15)

The apparatus of claim 15, wherein the means for obtaining includes:
means for querying the SCSI device for path information related thereto; and
means for issuing a SCSI command to the SCSI device requesting identifier data from the SCSI device, if path information to the SCSI device is returned from the query.

### Claim 17 (depends on 16)

The apparatus of claim 16, wherein the path information is path information having a <host, bus, target, LUN> encoded-address of a particular path from the host to the SCSI device.

### Claim 18 (depends on 16)

The apparatus of claim 16, wherein said means for querying further is operative for
issuing a command, via the non-UID-based device file, requesting path information of the SCSI device.

### Claim 19 (depends on 15)

The apparatus of claim 15, further comprising:
means for mapping characteristics of said non-UID-based device file to said UID-based device file.

### Claim 20 (depends on 19)

The apparatus of claim 19, wherein said means for mapping transfers at least one or more of a major number, minor number, access permissions, file ownership data and device file type of said opened device file to said UID-based device file.

### Claim 21 (depends on 15)

The apparatus of claim 15, further comprising
means for storing the UID-based device file.

### Claim 22 (depends on 21)

The apparatus of claim 21, wherein the means for storing further includes a plurality of directories containing device file names for different types of SCSI devices.

### Claim 23 (depends on 22)

The apparatus of claim 22,
wherein the SCSI device is a SCSI disk device, and
wherein one of the directories stores generated device files for disk drivers, the device file name being in a format <COMPRESSED_UID>-<PATH_NO>-<PARTITION_NO>, where COMPRESSED_UID represents a UID-based SCSI device name, PATH_NO differentiates between multiple paths to the SCSI disk device, and PARTITION_NO is a specific partition on the disk.

### Claim 24 (depends on 22)

The apparatus of claim 22,
wherein the SCSI device is a SCSI tape device, and
wherein one of the directories stores generated device files for tape drivers, the device file name being in a format [n]<COMPRESSED_UID>-<PATH_NO>-<SCSI DEVICE_CHARACTERISTICS>, where COMPRESSED_UID represents a UID-based SCSI device name, PATH_NO differentiates between multiple paths to the SCSI tape device, and SCSI DEVICE_CHARACTERISTICS pertains to characteristics of a tape logical unit number (LUN).

### Claim 25 (depends on 22)

The apparatus of claim 22, wherein one of the directories stores generated device files for generic drivers, the device file name being in a format <COMPRESSED_UID>-<PATH_NO>, where COMPRESSED_UID represents a UID-based SCSI device name, and PATH_NO differentiates between multiple paths to the SCSI device.

### Claim 26 (depends on 15)

The apparatus of claim 15, wherein the SCSI device is a logical unit of a SCSI device.

### Claim 27 (depends on 15)

The apparatus of claim 15, wherein the UID-based device file enables mounting of one or more file systems on the host so that device file persistence is ensured across reboots of an operating system being run on the host.

### Claim 28 (depends on 15)

The apparatus of claim 15, wherein a UID-based device file name remains the same for the SCSI device, even after a reboot of an operating system being run by the host.

### Claim 29 (depends on 15)

The apparatus of claim 15, wherein the UID-based device file is independent from the path information.

### Claim 30 (depends on 15)

The apparatus of claim 15, further comprising:
means for creating a name for the UID-based device file founded upon the UID.

### Claim 31 (depends on 30)

The apparatus of claim 30, wherein the means for creating further is operative for compressing the UID.

### Claim 32 (depends on 30)

The apparatus of claim 30, wherein:
the non-UID-based device file is a given one of a plurality of such device files that map to the UID; and
the means for creating further is operative
for enumerating the plurality of non-UID-based device files mapping to the UID, and
for founding the name for the given UID-based device file also upon the enumeration assigned to the given non-UID-based device file.

### Claim 33 (depends on 15)

The apparatus of claim 15, wherein at least some characteristics of the SCSI device stored in the non-UID-based device file are copied into the UID-based device file.

### Claim 34

A computer program product, the computer program product comprising a computer-readable medium having computer program logic stored thereon for enabling a processor of the product to generate a persistent path identifier of one or more of SCSI devices for a host, the computer program logic causing the processor to:
open a non-UID-based device file for the SCSI device;
obtain identifier data regarding the SCSI device;
determine a unique identifier (UID) based on the identifier data; and
generate a UID-based device file according to the UID and the non-UID-based device file.

### Claim 35 (depends on 34)

The computer program product of claim 34, wherein the computer program logic further causes the processor to:
query a SCSI device for path information related thereto; and
issue a SCSI command to the SCSI device requesting identifier data from the SCSI device, if path information to the SCSI device is returned from the querying step.

### Claim 36 (depends on 34)

The computer program product of claim 34, wherein the UID-based device file enables mounting of one or more file systems on the host so that device file persistence is ensured across reboots of an operating system being run on the host.

### Claim 37 (depends on 34)

The computer program product of claim 34, wherein a UID-based device file name remains the same for the SCSI device, even after a reboot of an operating system being run by the host.

### Claim 38

A method of generating a persistent path identifier, for a system having a first plurality of SCSI devices to which a second plurality of non-UID-based device files correspond, respectively, included within the second plurality there being a third plurality of non-UID-based device files corresponding to a given one of the first plurality of SCSI devices, the method comprising the steps of:
computing unique identifiers (UIDs) for the second plurality of non-UID-based device files;
enumerating which among the plurality of non-UID-based device files map to the same UID, respectively;
generating, relative to a given one of the third plurality of non-UID-based device files, a UID-based device file; and
creating a name for the UID-based file founded upon the corresponding UID and upon the enumeration assigned to the given non-UID-based device file.

### Claim 39 (depends on 38)

The method of claim 38, wherein the step of creating includes:
compressing the UID.
