# US 8,751,741 B2 · Methods and structure for implementing logical device consistency in a clustered storage system

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

- Number: US 8,751,741 B2
- Document ID: US8751741B2
- Status: Granted
- Kind: B2
- Application number: 13/432,232
- Filed: 2012-03-28
- Published: 2013-03-14
- Granted: 2014-06-10
- Earliest claimed: 2011-09-09
- Assignees: LSI Corporation
- Applicants: Vinu Velayudhan; James A. Rizzo; Adam Weiner; Rakesh Chandra; Guolin Huang
- Inventors: Vinu Velayudhan; James A. Rizzo; Adam Weiner; Rakesh Chandra; Guolin Huang
- Web page: https://patentgrep.com/patent/US8751741B2

## CPC

- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/0613: {in relation to throughput}
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/065: {Replication mechanisms}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0683: {Plurality of storage devices}
- G06F 13/12: using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F 13/28: using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence)
- G06F 13/423: {with synchronous protocol}
- G06F 2206/1012: Load balancing
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

Methods and system are provided for exposing logical volumes to host systems and storage controllers in a consistent manner across a clustered storage system. One embodiment is a storage controller. The storage controller is operable to communicate with other storage controllers within the clustered storage system. The storage controller is further operable to generate a proposed Logical Unit Number (LUN) for a logical volume provisioned at the storage devices, and to communicate with each of the other storage controllers within the clustered storage system requesting that the other storage controllers determine if the proposed LUN is in use. If the proposed LUN is not in use, then storage controller assigns the proposed LUN to the logical volume. If the LUN is in use, then the storage controller generates a new proposed LUN and re-tries communication with the other storage controllers until a unique LUN is found.

## Claims

### Claim 1

A plurality of storage controllers within a clustered storage system, each of the storage controllers communicatively coupling host systems with storage devices, wherein each of the storages controllers comprises:
an interface operable to communicate with other storage controllers within the clustered storage system; and
a control unit operable to generate a proposed Logical Unit Number (LUN) for a logical volume provisioned at the storage devices, and to communicate with each of the other storage controllers within the clustered storage system requesting that the other storage controllers determine if the proposed LUN is in use,
responsive to determining that the proposed LUN is not in use by the other storage controllers, the control unit is further operable to:
assign the proposed LUN to the logical volume; and
responsive to determining that the proposed LUN is in use by at least one of the other storage controller, the control unit is further operable to:
generate a new proposed LUN;
re-try communication with each of the other storage controllers requesting that the other storage controllers determine if the new proposed LUN is in use; and
assign the new proposed LUN to the logical volume responsive to determining that the new proposed LUN is not in use by the other storage controllers.

### Claim 2 (depends on 1)

The plurality of storage controllers of claim 1 wherein:
the control unit is further operable to transmit the proposed LUN to each of the other storage controllers requesting that the other storage controllers determine if the proposed LUN is in use,
the control unit further operable to receive a response from each of the other storage controllers indicating whether the proposed LUN is in use by a corresponding storage controller,
the control unit further operable to process each response and to:
assign the proposed LUN to the logical volume if each response indicates that the LUN is not in use by a corresponding storage controller; and
generate a new proposed LUN and re-transmit the new proposed LUN to each of the other storage controllers if at least one response indicates that the LUN is in use by a corresponding storage controller.

### Claim 3 (depends on 2)

The plurality of storage controllers of claim 2 wherein:
the control unit is further operable to transmit the proposed LUN to each of the other storage controllers within a Serial Attached SCSI (SAS) message.

### Claim 4 (depends on 3)

The plurality of storage controllers of claim 3 wherein:
the control unit is further operable to receive the response from each of the other storage controllers within a SAS message indicating whether the proposed LUN is in use.

### Claim 5 (depends on 1)

The plurality storage controllers of claim 1 wherein:
the control unit is further operable to broadcast a message to each of the other storage controllers to register the proposed LUN responsive to the proposed LUN not being in use by the other storage controllers.

### Claim 6 (depends on 5)

The plurality storage controllers of claim 5 wherein:
the control unit is further operable to expose, to the host systems, the logical volume utilizing the proposed LUN in response to registering the proposed LUN with each of the other storage controllers.

### Claim 7

A method operable on a plurality of storage controllers within a clustered storage system, each of the storage controllers communicatively coupling host systems with storage devices, wherein the method comprises:
generating, by a storage controller, a proposed Logical Unit Number (LUN) for a logical volume provisioned at the storage devices;
communicating, by the storage controller, with each of other storage controllers within the clustered storage system requesting that the other storage controllers determine if the proposed LUN is in use;
determining, by the storage controller, if the proposed LUN is in use by the other storage controllers;
responsive to determining that that the proposed LUN is not in use by the other storage controllers:
assigning, by the storage controller, the proposed LUN to the logical volume; and
responsive to determining that the proposed LUN is in use by at least one of the other storage controllers;
generating, by the storage controller, a new proposed LUN;
re-trying communication with each of the other storage controllers requesting that the other storage controllers determine if the new proposed LUN is in use; and
assigning the new proposed LUN to the logical volume responsive to determining that the new proposed LUN is not in use by the other storage controllers.

### Claim 8 (depends on 7)

The method of claim 7 wherein:
the step of communicating further comprises:
transmitting the proposed LUN to each of the other storage controllers requesting that the other storage controllers determine if the proposed LUN is in use; and
receiving a response from each of the other storage controllers indicating whether the proposed LUN is in use by a corresponding storage controller;
the step of determining if the proposed LUN is in use further comprises:
processing each response received from each of the other storage controllers to determine whether the proposed LUN is in use by a corresponding storage controller.

### Claim 9 (depends on 8)

The method of claim 8 wherein the step of transmitting further comprises:
transmitting the proposed LUN to each of the other storage controllers within a Serial Attached SCSI (SAS) message.

### Claim 10 (depends on 8)

The method of claim 8 wherein the step of receiving further comprises:
receiving the response from each of the other storage controllers within a SAS message indicating whether the proposed LUN is in use.

### Claim 11 (depends on 7)

The method of claim 7 further comprising:
broadcasting a message to each of the other storage controllers to register the proposed LUN responsive to the proposed LUN not being in use by the other storage controllers.

### Claim 12 (depends on 11)

The method of claim 11 further comprising:
exposing, to the host systems, the logical volume utilizing the proposed LUN in response to registering the proposed LUN with each of the other storage controllers.

### Claim 13

A storage controller within a clustered storage system communicatively coupling a host system with storage devices, the storage controller comprising:
an interface operable to communicate with other storage controllers within the clustered storage system; and
a control unit operable to receive a proposed Logical Unit Number (LUN) for a logical volume provisioned by another storage controller within the clustered storage system, and to determine if the proposed LUN is in use by the storage controller,
the control unit further operable to:
transmit a message to the other storage controller indicating that the proposed LUN is not in use responsive to determining that the proposed LUN is not in use by the storage controller; and
transmit a message to the other storage controller indicating that the proposed LUN is in use responsive to determining that the proposed LUN is in use by the storage controller.

### Claim 14 (depends on 13)

The storage controller of claim 13 wherein:
the control unit is further operable to receive the proposed LUN from the other storage controllers within a Serial Attached SCSI (SAS) message.

### Claim 15 (depends on 13)

The storage controller of claim 13 wherein:
the control unit is further operable to transmit the message to the other storage controller within a SAS message.

### Claim 16 (depends on 13)

The storage controller of claim 13 wherein:
the control unit is further operable to receive a broadcast a message from the other storage controller to register the proposed LUN responsive to the proposed LUN not being in use by the other storage controllers within the clustered storage system, and to register the proposed LUN responsive to the broadcast message.

### Claim 17 (depends on 16)

The storage controller of claim 16 wherein:
the control unit is further operable to expose the logical volume utilizing the proposed LUN to a host system in response to registering the proposed LUN.

### Claim 18 (depends on 13)

The storage controller of claim 13 wherein:
the control unit is further operable to determine one or more LUNs for logical volumes provisioned by the storage controller, and to determine that the proposed LUN is in use if the one or more LUNs corresponds with the proposed LUN.
