IP Library Granted Patent US 10,423,332
Granted Patent B2
US 10,423,332 · App. 14/853,626 · Granted Sep 24, 2019

Fibre channel storage array having standby controller with ALUA standby mode for forwarding SCSI commands

Inventors: Naveen Bali (Durham, NC); Tao Jin (Durham, NC)
Assignee: Hewlett Packard Enterprise Development LP
G06F3/061G06F3/067G06F3/0611G06F3/0617G06F3/0619G06F3/0631G06F3/0635G06F3/0659G06F3/0665G06F3/0685G06F3/0689G06F11/00G06F11/20G06F13/4027G06F13/426G06F13/4282
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 10,423,332
App. No.
14/853,626
Granted
Sep 24, 2019
Kind
B2
Abstract

Storage arrays, systems and methods for processing commands to enable SCSI-level forwarding between an active controller and a standby controller are provided. In one example, the standby controller has ports that operate in an asymmetric logical unit access (ALUA) standby (SB) mode. One such method includes receiving a command by a port of the standby controller, wherein the port operates in the ALUA SB mode. The method includes identifying that the command is of a type that is predefined for forwarding, and forwarding the command from a SCSI layer of the standby controller to a SCSI layer of the active controller. The method further includes processing the command in a user space of the active controller to generate return data and forwarding the return data from the active controller to the standby controller. The method additionally includes sending the return data to the initiator, over the port of the standby controller.

Claims (46)

1. A method for processing commands by a storage array having an active controller and a standby controller, the standby controller having ports that operate in an asymmetric logical unit access (ALUA) standby (SB) mode, the method comprising:

receiving a command by a port of the standby controller, the port operating in the ALUA SB mode, and the command received via a stack that includes a Fibre Channel driver and a Fibre Channel transport;

identifying that the command is of a type that is predefined for forwarding to the active controller;

processing the command received at the port that is operating in the ALUA SB mode in a user space of the standby controller before forwarding the command to the active controller;

forwarding the command from a SCSI layer of the standby controller to a SCSI layer of the active controller without transmitting the command through a Fibre Channel fabric;

processing the command in a user space of the active controller to generate return data;

forwarding the return data from the active controller to the standby controller; and

sending the return data to an initiator of the command over the port of the standby controller.

2. The method of claim 1 , wherein a SCSI forwarding (SFW) module is executed in the user space of the active controller and a user space of the standby controller, wherein the SFW module, the SCSI layer of the active controller, and the SCSI layer of the standby controller that has ports that operate in the ALUA SB mode, operate to define a SCSI-level nexus connection for forwarding the command to the active controller and for forwarding the return data to the standby controller.

3. The method of claim 1 , wherein the type of the command that is predefined for forwarding is one of a persistent reserve-in command, a persistent reserve-out command, and a log sense command.

4. The method of claim 1 , wherein the type of command that is predefined for forwarding is not a read or a write command.

5. The method of claim 1 , wherein types of commands that are not predefined for forwarding to the active controller are processed locally by the standby controller and a return is provided to the initiator.

6. The method of claim 1 , wherein the forwarding of the command from the SCSI layer of the standby controller to the SCSI layer of the active controller is defined as a data transfer over a SCSI-level nexus connection.

7. The method of claim 1 , wherein the forwarding of the return data is not transmitted over the Fibre Channel fabric.

8. A non-transitory computer readable storage medium storing instructions that are executable by a processor to cause the processor to:

receive a command by a port of a standby controller in a storage array that includes an active controller and the standby controller, wherein the port of the standby controller is set to operate in an asymmetric logical unit access (ALUA) standby (SB) mode, and the command is received via a stack that includes a Fibre Channel driver and a Fibre Channel transport;

identify that the command is of a type that is predefined for forwarding to the active controller;

process the command received at the port that is operating in the ALUA SB mode in a user space of the standby controller before forwarding the command to the active controller;

forward the command from a SCSI layer of the standby controller to a SCSI layer of the active controller without transmitting the command through a Fibre Channel fabric, wherein the command is processed in a user space of the active controller to generate return data;

receive the return data from the active controller; and

send the return data to an initiator of the command over the port of the standby controller.

9. The non-transitory computer readable storage medium of claim 8 , further storing SCSI forwarding (SFW) instructions that are executable in the user space of the active controller and a user space of the standby controller, wherein the SFW instructions, the SCSI layer of the active controller, and the SCSI layer of the standby controller that has ports that operate in the ALUA SB mode, operate to define a SCSI-level nexus connection for forwarding the command to the active controller and for receiving the return data to the standby controller.

10. The non-transitory computer readable storage medium of claim 8 , wherein the type of the command that is predefined for forwarding is one of a persistent reserve-in command, a persistent reserve-out command, and a log sense command.

11. The non-transitory computer readable storage medium of claim 8 , wherein the type of command that is predefined for forwarding is not a read or a write command.

12. The non-transitory computer readable storage medium of claim 8 , further storing instructions executable to cause the processor to:

identify that the command is a type that is not predefined for forwarding to the active controller;

process the command locally at the standby controller; and

provide a return of the processed command to the initiator.

13. The non-transitory computer readable storage medium of claim 8 , wherein the return data received from the active controller is not transmitted over the Fibre Channel fabric.

14. A storage array comprising:

an active controller; and

a standby controller, wherein the standby controller comprises a processor and a memory storing instructions that are executable to cause the processor to:

receive a command by a port of the standby controller, wherein the port is set to operate in an asymmetric logical unit access (ALUA) standby (SB) mode, and the command received via a stack that includes a Fibre Channel driver and a Fibre Channel transport;

identify that the command is of a type that is predefined for forwarding to the active controller;

process the command received at the port that is operating in the ALUA SB mode in a user space of the standby controller before forwarding the command to the active controller;

forward the command from a SCSI layer of the standby controller to a SCSI layer of the active controller without transmitting the command through a Fibre Channel fabric, wherein the command is processed in a user space of the active controller to generate return data;

receive the return data from the active controller; and

send the return data to an initiator of the command over the port of the standby controller.

15. The storage array of claim 14 , wherein the memory of the standby controller further stores SCSI forwarding (SFW) instructions that are executable in the user space of the active controller and a user space of the standby controller, wherein the SFW instructions, the SCSI layer of the active controller, and the SCSI layer of the standby controller operate to define a SCSI-level nexus connection for forwarding the command to the active controller and for receiving the return data to the standby controller.

16. The storage array of claim 14 , wherein the type of the command that is predefined for forwarding is one of a persistent reserve-in command, a persistent reserve-out command, and a log sense command.

17. The storage array of claim 14 , wherein the type of command that is predefined for forwarding is not a read or a write command.

18. The storage array of claim 14 , wherein the memory of the standby controller further stores instructions that are executable to cause the processor to:

identify that the command is a type that is not predefined for forwarding to the active controller;

process the command locally at the standby controller; and

provide a return of the processed command to the initiator.

19. The storage array of claim 14 , wherein the return data received from the active controller is not transmitted over a Fiber Channel fabric.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2017
From: NIMBLE STORAGE, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 042810/0906 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2015
From: BALI, NAVEEN; JIN, TAO
To: NIMBLE STORAGE, INC.
Reel/Frame 036560/0644 →
Continuity (2)
Provisional Application 62050680 · Sep 15, 2014
Related Publication 20160077996A1 · Mar 17, 2016