# US 10,120,617 B2 · Using deterministic logical unit numbers to dynamically map data volumes

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

- Number: US 10,120,617 B2
- Document ID: US10120617B2
- Status: Granted
- Kind: B2
- Application number: 14/077,997
- Filed: 2013-11-12
- Published: 2015-05-14
- Granted: 2018-11-06
- Earliest claimed: 2013-11-12
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Daniel I. Goodman; Ran Harel; Oren S. Li-On; Rivka M. Matosevich; Orit Nissan-Messing; Yossi Siles; Eliyahu Weissbrem
- Web page: https://patentgrep.com/patent/US10120617B2

## CPC

- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0605: {by facilitating the interaction with a user or administrator}
- G06F 3/0611: {in relation to response time}
- G06F 3/0632: {by initialisation or re-initialisation of storage systems}
- G06F 3/0638: {Organizing or formatting or addressing of data}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, apparatus and computer program products implement embodiments of the present invention that include storing one or more data volumes to a small computer system interface storage device, and receiving a request to map a given data volume to a host computer. One or more attributes of the given data volume are identified, and using the identified one or more attributes, a unique logical unit number (LUN) for the given data volume is generated. The given data volume is mapped to the host computer via the unique LUN. In some embodiments, the generated LUN includes one of the one or more attributes. In additional embodiments, the generated LUN includes a result of a hash function using the one or more attributes. In storage virtualization environments, the data volume may include secondary logical units, and mapping the given data volume to the host may include binding the SLU to the host.

## Claims

### Claim 1

A storage system, comprising:
a storage device configured to store one or more data volumes; and
a processor configured:
to receive a request to map a given data volume stored on the storage device to a host computer networked to the storage system,
to identify one or more attributes of the given data volume,
to generate, using the identified one or more attributes, a unique logical unit number (LUN) for the data volume, and
to map the given data volume to the host computer via the unique LUN such that the unique LUN is consistently mapped across the host computer in addition to multiple other host computers using the unique LUN, thereby handling concurrent mapping requests from the host computer and the multiple other host computers using the unique LUN to mitigate LUN collisions associated with the concurrent mapping requests,
wherein the processor is configured to generate the LUN by calculating a hash function in lieu of abbreviating the one or more attributes, the hash function calculated using the one or more attributes; wherein each one of at least a creation date of the given volume, a size of the given volume, an identifier assigned externally by an administrator for the given volume, and an internally generated unique volume identifier are used as an input to the hash function.

### Claim 2 (depends on 1)

The storage system according to claim 1, wherein the processor is configured to receive the request in response to the host computer conveying the request to the storage system.

### Claim 3 (depends on 1)

The storage system according to claim 1, wherein the given data volume comprises a secondary logical unit (SLU), and wherein the processor is configured to map the given data volume to the host computer by binding the SLU to the host computer.

### Claim 4 (depends on 1)

The storage system according to claim 1, wherein the generated LUN comprises one of the one or more attributes.

### Claim 5 (depends on 1)

The storage system according to claim 1, wherein each of the storage devices is selected from a list consisting of a hard disk drive and a solid state drive.

### Claim 6

A method, comprising:
storing one or more data volumes to a storage device;
receiving, by a processor, a request to map a given data volume to a host computer;
identifying one or more attributes of the given data volume;
generating, using the identified one or more attributes, a unique logical unit number (LUN) for the given data volume; and
mapping the given data volume to the host computer via the unique LUN such that the unique LUN is consistently mapped across the host computer in addition to multiple other host computers using the unique LUN, thereby handling concurrent mapping requests from the host computer and the multiple other host computers using the unique LUN to mitigate LUN collisions associated with the concurrent mapping requests;
wherein generating the LUN comprises calculating a hash function in lieu of abbreviating the one or more attributes, the hash function calculated using the one or more attributes; wherein each one of at least a creation date of the given volume, a size of the given volume, an identifier assigned externally by an administrator for the given volume, and an internally generated unique volume identifier are used as an input to the hash function.

### Claim 7 (depends on 6)

The method according to claim 6, wherein receiving the request comprises receiving the request from the host computer.

### Claim 8 (depends on 6)

The method according to claim 6, wherein the given data volume comprises a secondary logical unit (SLU), and wherein mapping the given data volume to the host computer comprises binding the SLU to the host computer.

### Claim 9 (depends on 6)

The method according to claim 6, wherein the generated LUN comprises one of the one or more attributes.

### Claim 10 (depends on 6)

The method according to claim 6, wherein each of the storage devices is selected from a list consisting of a hard disk drive and a solid state drive.

### Claim 11

A computer program product, the computer program product comprising:
a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising:
computer readable program code configured to store one or more data volumes to a storage device;
computer readable program code configured to receive a request to map a given data volume to a host computer;
computer readable program code configured to identify one or more attributes of the given data volume;
computer readable program code configured to generate, using the identified one or more attributes, a unique logical unit number (LUN) for the given data volume; and
computer readable program code configured to map the given data volume to the host computer via the unique LUN such that the unique LUN is consistently mapped across the host computer in addition to multiple other host computers using the unique LUN, thereby handling concurrent mapping requests from the host computer and the multiple other host computers using the unique LUN to mitigate LUN collisions associated with the concurrent mapping requests;
wherein the computer readable program code is configured to generate the LUN by calculating a hash function in lieu of abbreviating the one or more attributes, the hash function calculated using the one or more attributes; wherein each one of at least a creation date of the given volume, a size of the given volume, an identifier assigned externally by an administrator for the given volume, and an internally generated unique volume identifier are used as an input to the hash function.

### Claim 12 (depends on 11)

The computer program product according to claim 11, wherein the computer readable program code is configured to receive the request by receiving the request from the host computer.

### Claim 13 (depends on 11)

The computer program product according to claim 11, wherein the given data volume comprises a secondary logical unit (SLU), and wherein mapping the given data volume to the host computer comprises binding the SLU to the host computer.

### Claim 14 (depends on 11)

The computer program product according to claim 11, wherein the generated LUN comprises one of the one or more attributes.
