IP Library Granted Patent US 8,782,658
Granted Patent B2
US 8,782,658 · App. 13/112,446 · Granted Jul 15, 2014

System and apparatus for managing a storage array utilizing a plurality of virtual machines

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 8,782,658
App. No.
13/112,446
Granted
Jul 15, 2014
Kind
B2
Abstract

A system for managing a storage array having a set of storage components comprises a storage array controller, the storage array controller including: a first instance of a controller firmware on a virtual machine in a privileged domain, the privileged domain having access to hardware of the storage array; and a second instance of the controller firmware on a separate virtual machine in a first non-privileged array domain. The privileged domain is configured to inspect an I/O request and determine whether a target of the I/O request is an existing non-privileged array domain, to initiate launch of the first non-privileged array domain array when the I/O request does not relate to an existing non-privileged array domain, and to present available storage components to the first non-privileged array domain when the I/O request relates to the first non-privileged array domain.

Claims (45)

1. A system for managing a storage array having a set of storage components, comprising:

a storage array controller, the storage array controller including a computing device configured for hosting a plurality of virtual machines, wherein the plurality of virtual machines including:

a first virtual machine running a first instance of a controller firmware, the first virtual machine being configured to control storage components in a privileged domain, wherein the privileged domain includes all storage components of the storage array; and

a second virtual machine running a second instance of the controller firmware, the second virtual machine being configured to control storage components in a first non-privileged array domain, wherein the first non-privileged array domain includes a subset of the storage components of the storage array;

wherein each of the set of storage components is inserted into a corresponding storage component slot in the storage array, wherein only the storage components in the subset of the storage components in the first non-privileged array domain are presented to the first non-privileged array domain as being inserted, and wherein storage component slots for other storage components not in the subset of the storage components in the first non-privileged array domain are presented to the first non-privileged array domain as empty storage component slots; and

wherein the first virtual machine is further configured to:

handle a provision request and determine whether the provision request relates to the first non-privileged array domain, and

present at least one additional storage component to the first non-privileged array domain when the provision request relates to the first non-privileged array domain.

2. The system of claim 1 , wherein the first virtual machine is configured to discover the set of storage components upon start-up.

3. The system of claim 1 , wherein the first virtual machine is configured to maintain an inventory list of available storage components of the set of storage components.

4. The system of claim 1 , wherein the storage array controller further includes a virtual machine manager.

5. The system of claim 4 , wherein the first virtual machine is configured to control the virtual machine manager of the storage array controller.

6. The system of claim 1 , wherein the first virtual machine is further configured to: inspect a read/write input/output (I/O) request to identify a target of the I/O request, determine whether the target of the I/O request belongs to the storage components in the first non-privileged array domain, and forward the I/O request to the second virtual machine when the target of the I/O request belongs to the storage components in the first non-privileged array domain.

7. The system of claim 1 , wherein the plurality of virtual machines hosted on the computing device of the storage array controller further includes a third virtual machine running a third instance of the controller firmware, the third virtual machine being configured to control storage components in a second non-privileged array domain, wherein the second non-privileged array domain includes a subset of the storage components of the storage array that is different from the first mentioned subset of the storage components in the first non-privileged array domain.

8. A method for managing a storage array having a set of storage components, comprising:

hosting a plurality of virtual machines, wherein the plurality of virtual machines including:

a first virtual machine running a first instance of a storage controller firmware, the first virtual machine being configured to control storage components in a privileged domain, wherein the privileged domain includes all storage components of the storage array; and

a second virtual machine running a second instance of the storage controller firmware, the second virtual machine being configured to control storage components in a non-privileged array domain, wherein the non-privileged array domain includes a subset of the storage components of the storage array;

utilizing the first virtual machine to handle provision requests and determine whether the provision request relates to the non-privileged array domain;

presenting at least one additional storage component to the non-privileged array domain when the provision request relates to the non-privileged array domain;

wherein each of the set of storage components is inserted into a corresponding storage component slot in the storage array, wherein only the storage components in the subset of the storage components in the non-privileged array domain are presented to the non-privileged array domain as being inserted, and wherein storage component slots for other storage components not in the subset of the storage components in the non-privileged array domain are presented to the non-privileged array domain as empty storage component slots.

9. The method of claim 8 , further including:

controlling a virtual machine manager utilizing the first virtual machine.

10. The method of claim 8 , further comprising:

identifying, utilizing the first virtual machine, a target of an Input/Output (I/O) request received by the storage array.

11. The method of claim 10 , wherein the target of the Input/Output (I/O) request is identified based on at least one of: an N port ID virtualization technique, and a Logical Unit Number (LUN) comparison.

12. The method of claim 11 , wherein utilizing an N port ID virtualization technique includes:

creating a plurality of virtual N ports, each virtual N port identified by a unique World Wide Name (WWN);

mapping each of the plurality of virtual N ports to one of the plurality of array domains; and

identifying a WWN of the target array domain of the I/O request.

13. The method of claim 8 , further including:

restricting access by the non-privileged array domain to storage components that are not under control of the non-privileged array domain.

14. A method for managing a storage array having a set of storage components, comprising:

hosting a plurality of virtual machines, wherein the plurality of virtual machines including:

a first virtual machine running a first instance of a storage controller firmware, the first virtual machine being configured to control storage components in a privileged domain, wherein the privileged domain includes all storage components of the storage array; and

a second virtual machine running a second instance of the storage controller firmware, the second virtual machine being configured to control storage components in a non-privileged array domain, wherein the non-privileged array domain includes a subset of the storage components of the storage array;

receiving a provision request for storage within the storage array;

determining whether the provision request relates to the non-privileged array domain;

initiating a new array domain when the provision request is determined to not relate to the non-privileged array domain; and

presenting at least one additional storage component of the set of storage components to the non-privileged array domain when the provision request is determined to relate to the non-privileged array domain;

wherein each of the set of storage components is inserted into a corresponding storage component slot in the storage array, wherein only the storage components in the subset of the storage components in the non-privileged array domain are presented to the non-privileged array domain as being inserted, and wherein storage component slots for other storage components not in the subset of the storage components in the non-privileged array domain are presented to the non-privileged array domain as empty storage component slots.

15. The method of claim 14 , further including:

controlling a virtual machine manager utilizing the first virtual machine.

16. The method of claim 14 , further including:

restricting access by the non-privileged array domain to storage components that are not under control of the non-privileged array domain.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 049248/0558 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047351/0384 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0910 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2011
From: AMBAT, GOPAKUMAR; HAWARGI, VISHWANATH NAGALINGAPPA; SHARMA, YASK
To: LSI CORPORATION
Reel/Frame 026319/0492 →