IP Library Granted Patent US 11,269,802
Granted Patent B2
US 11,269,802 · App. 16/538,112 · Granted Mar 8, 2022

Lightweight proxy for handling SCSI commands in an active array-standby array configuration

Inventor: Vikash Mehta (Bangalore, IN)
G06F13/4221G06F11/2038G06F11/2048G06F11/2069G06F11/2074G06F11/2097G06F13/102G06F13/124G06F2213/0036
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,269,802
App. No.
16/538,112
Granted
Mar 8, 2022
Kind
B2
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 (66)

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, wherein the active controller is further configured to proxy SCSI commands to the standby controller by way of the communication channel in response to the active controller and the standby controller engaging in a live data migration operation.

2. 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.

3. 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.

4. The apparatus of claim 2 , wherein the SCSI PGR command handler is further 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.

5. The apparatus of claim 4 , wherein:

the SCSI PGR command handler is further 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 further configured to respond to the CDB message by sending the PGR reservation data to the standby controller.

6. 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.

7. The apparatus of claim 6 , wherein:

the SCSI command handler is further 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 further 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.

8. The apparatus of claim 7 , wherein the SCSI command handler is further 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.

9. 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.

10. A method comprising:

servicing, by a source node coupled to a first storage device that includes a logical partition, Small Computer System Interface (SCSI) commands from a host, wherein the SCSI commands comprise SCSI Persistent Group Reservation (PGR) commands;

servicing, by a destination node coupled to a second storage device, SCSI commands from the host, wherein a communication channel connects the source node and the destination node;

migrating, by a migrator, 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;

directing the source node to service SCSI PGR commands received on an optimized access (OA) path at the source node; and

directing the destination node to service SCSI PGR commands received on a non-optimized access (NOA) path at the destination node by communication directly with the source node to retrieve PGR reservation data for PGR validation on the destination node.

11. The method of claim 10 , further comprising:

directing the source node and the destination node to each operate in an Asymmetric Logic Unit Access (ALUA) mode;

converting an access path from the source node to the host into the OA path;

converting an access path from the destination node to the host into the NOA path; and

migrating 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.

12. The method of claim 11 , further comprising:

directing the source node to operate as an active node during a transition phase that migrates the logical partition to the destination node; and

directing the destination node to operate as a standby node during the transition phase.

13. The method of claim 11 , further comprising:

directing the source node to operate as a standby node during a completion phase; and

directing the destination node to operate as an active node during the completion phase, wherein the completion phase comprises successful migration of the logical partition to the destination node.

14. The method of claim 11 , further comprising:

configuring the source node as a SCSI initiator;

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

exchanging, between the source node and the destination node, SCSI commands over the communication channel to migrate the logical partition to the destination node.

15. The method of claim 11 , further comprising maintaining 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.

16. 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, wherein the source node comprises 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, wherein the source node is configured to selectively service the storage commands received at the source node locally, 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, wherein the destination node comprises 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, wherein:

the destination node is configured to selectively service the storage commands received at the destination node locally, based on where data referenced by the storage command resides during the live data migration operation; and

the source node is further configured to proxy storage commands to the destination node to engage assistance of the standby node to service the storage commands where data referenced by the storage command resides in the standby node; and

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, wherein, in response to completing migration of data of the logical partition to the second storage device:

the means for directing the source node to operate in ALUA mode directs the active node to operate in ALUA mode as a standby node; and

the means for directing the destination node to operate in ALUA mode directs the standby node to operate in ALUA mode as an active node.

17. The system of claim 16 , wherein the source node and the destination node are each configured to:

service Small Computer System Interface (SCSI) Persistent Group Reservation (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.

18. The system of claim 16 , 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.

19. The method of claim 10 , further comprising:

requesting PGR reservation data from the source node by way of the communication channel to validate a SCSI PGR command at the destination node.

20. The method of claim 12 , further comprising:

proxying, from the source node and over the communication channel, storage commands to the destination node to service the storage commands where data referenced by the storage command resides in the standby node.

Assignments (5)
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2019
From: MEHTA, VIKASH
To: WESTERN DIGITAL TECHNOLOGIES INC.
Reel/Frame 050352/0591 →
Continuity (2)
Provisional Application 62865735 · Jun 24, 2019
Related Publication 20200401546A1 · Dec 24, 2020