# US 2020/0401546 A1 · Lightweight proxy for handling scsi commands in an active array -standby array configuration

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

- Number: US 2020/0401546 A1
- Document ID: US20200401546A1
- Status: Published application
- Kind: A1
- Application number: 16/538,112
- Filed: 2019-08-12
- Published: 2020-12-24
- Earliest claimed: 2019-06-24
- Assignees: Western Digital Technologies, Inc.
- Applicants: Western Digital Technologies, Inc.
- Inventors: Vikash Mehta
- Web page: https://patentgrep.com/patent/US20200401546A1

## CPC

- G06F 13/4221: {being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus}
- G06F 11/2038: {with a single idle spare processing component}
- G06F 11/2048: {where the redundant components share neither address space nor persistent storage}
- G06F 11/2069: {Management of state, configuration or failover}
- G06F 11/2074: {Asynchronous techniques}
- G06F 11/2097: {maintaining the standby controller/processing unit updated (initialisation or re-synchronisation thereof G06F11/1658 and subgroups)}
- 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 13/124: {where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine}
- G06F 2213/0036: Small computer system interface [SCSI]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An apparatus, system, and method are disclosed that service SCSI commands, including SCSI PGR commands in the standby node of a storage system that operates in an Asymmetric Logic Unit Access (ALUA) mode. The apparatus, system, and method service SCSI PGR commands without maintaining peer/proxy port information. The apparatus, system, and method service SCSI commands by forwarding/proxying commands between the active node and standby node, in both directions and use a modified command descriptor block (MCDB) message to conduct the communications between the nodes.

## Claims

### Claim 1

An apparatus comprising:
an active controller configured to:
operate in an Asymmetric Logic Unit Access (ALUA) mode; and
service Persistent Group Reservation (PGR) Small Computer System Interface (SCSI) commands over an optimized access (OA) path to a host;
a standby controller configured to:
operate in the ALUA mode; and
service SCSI PGR commands over a non-optimized access (NOA) path to the host; and
a communication channel between the active controller and the standby controller, the communication channel configured to communicatively couple the active controller and the standby controller such that the standby controller services SCSI PGR commands over the NOA path.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the standby controller comprises:
a standby command handler comprising a SCSI PGR command handler configured to validate SCSI PGR commands; and
a SCSI command handler configured to service SCSI commands within the standby controller.

### Claim 3 (depends on 2)

The apparatus of claim 2, wherein the standby command handler is configured to selectively service SCSI commands locally and with the assistance of the active controller based on where data associated with the SCSI command resides during a live data migration operation.

### Claim 4 (depends on 2)

The apparatus of claim 2, wherein the SCSI PGR command handler is configured to request PGR reservation data from the active controller by way of the communication channel to validate a SCSI PGR command at the standby controller.

### Claim 5 (depends on 4)

The apparatus of claim 4, wherein:
the SCSI PGR command handler is configured to request PGR reservation data by sending a command descriptor block (CDB) message to the active controller;
the CDB message is configured to request the PGR reservation data; and
the active controller is configured to respond to the CDB message by sending the PGR reservation data to the standby controller.

### Claim 6 (depends on 2)

The apparatus of claim 2, wherein the standby command handler is configured to exchange one or more command descriptor block (CDB) messages with the active controller over the communication channel to manage changes to PGR reservation data and service SCSI commands received from the host.

### Claim 7 (depends on 6)

The apparatus of claim 6, wherein:
the SCSI command handler is configured to service SCSI commands by modifying a CDB message received from the host to form a modified command descriptor block (MCDB) message that includes content of the CDB message and proxy the MCDB message to the active controller; and
the active controller is configured to service the SCSI command of the CDB message defined within the MCDB message at the active controller and send results to the standby controller.

### Claim 8 (depends on 7)

The apparatus of claim 7, wherein the SCSI command handler is configured to form the MCDB message by changing an opcode of the CDB message to a vendor defined opcode that the active controller is configured to understand and to service.

### Claim 9 (depends on 1)

The apparatus of claim 1, wherein the active controller is configured to proxy SCSI commands to the standby controller by way of the communication channel in response to the active controller and standby controller engaging in a live data migration operation.

### Claim 10 (depends on 1)

The apparatus of claim 1, wherein the active controller comprises an active command handler configured to selectively service SCSI commands at the active controller locally and proxy SCSI commands to the standby controller to engage the assistance of the standby controller based on where data associated with the SCSI command resides during a live data migration operation.

### Claim 11

A system comprising:
a source node configured to:
service Small Computer System Interface (SCSI) commands from a host; and
be coupled to a first storage device that includes a logical partition;
a destination node configured to:
be coupled to a second storage device; and
service SCSI commands from the host;
a communication channel between the source node and the destination node; and
a migrator configured to migrate the logical partition from the source node to the destination node such that the host maintains storage operations with both the source node and the destination node during migration of the logical partition.

### Claim 12 (depends on 11)

The system of claim 11, wherein:
the SCSI commands comprise SCSI Persistent Group Reservation (PGR) commands; and
the migrator is further configured to direct the source node to service SCSI PGR commands received on the optimized access OA path at the source node and direct the destination node to service SCSI PGR command received on the non-optimized access (NOA) path at the destination node by communicating directly with the source node to retrieve PGR reservation data for PGR validation on the destination node.

### Claim 13 (depends on 11)

The system of claim 11, wherein the migrator is further configured to:
direct the source node and the destination node to each operate in an Asymmetric Logic Unit Access (ALUA) mode;
convert an access path from the source node to the host into an optimized access (OA) path;
convert an access path from the destination node to the host into a non-optimized access (NOA) path; and
migrate the logical partition from the source node to the destination node while the source node and destination node each service SCSI commands received from the host.

### Claim 14 (depends on 13)

The system of claim 13, wherein the migrator is further configured to:
direct the source node to operate as an active node during a transition phase that migrates the logical partition to the destination node; and
direct the destination node to operate as a standby node during the transition phase.

### Claim 15 (depends on 13)

The system of claim 13, wherein the migrator is further configured to:
direct the source node to operate as a standby node during a completion phase; and
direct the destination node to operate as an active node during the completion phase, the completion phase comprising successful migration of the logical partition to the destination node.

### Claim 16 (depends on 13)

The system of claim 13, wherein:
the migrator is further configured to migrate the logical partition by configuring the source node as a SCSI initiator and configuring the destination node as a SCSI target for SCSI write commands for data from the logical partition coupled to the source node to a logical target partition coupled to the destination node; and
the source node and the destination node are each further configured to exchange SCSI commands over the communication channel to migrate the logical partition to the destination node.

### Claim 17 (depends on 13)

The system of claim 13, wherein the migrator is further configured to maintain a migration status configured to track which logical block addresses of the logical partition reside on the source node and which logical block addresses of the logical partition reside on the destination node.

### Claim 18

A system comprising:
a means for directing a source node to operate in an Asymmetric Logic Unit Access (ALUA) mode as an active node, in response to a request to perform a live data migration operation, the source node comprising a first storage device having a logical partition designated as a source logical partition for the live data migration operation;
a means for directing the source node to service storage commands targeted for the logical partition during the live data migration operation, the storage commands received at the source node, based on where data referenced by the storage command resides during the live data migration operation;
a means for directing a destination node to operate in ALUA mode as a standby node during the live data migration operation, the destination node comprising a second storage device configured to receive a copy of the logical partition;
a means for directing the destination node to service storage commands targeted for the logical partition during the live data migration operation, the storage commands received at the destination node, based on where data referenced by the storage command resides during the live data migration operation;
a means for directing a migrator to initiate the live data migration operation and move data of the logical partition from the first storage device to the second storage device; and
in response to completing migration of data of the logical partition to the second storage device, the means for directing the source node directs the active node to operate in ALUA mode as a standby node and directs the standby node to operate in ALUA mode as an active node.

### Claim 19 (depends on 18)

The system of claim 18, wherein the source node and the destination node are each configured to:
service SCSI PGR commands received during the live data migration operation;
service SCSI commands received during the live data migration operation; and
access data for received SCSI commands on one of the source node and the destination node.

### Claim 20 (depends on 18)

The system of claim 18, wherein the logical partition comprises:
a portion of the logical partition accessible exclusively to the source node; and
a portion of the logical partition accessible exclusively to the destination node.
