IP Library Granted Patent US 11,379,246
Granted Patent B2
US 11,379,246 · App. 16/521,146 · Granted Jul 5, 2022

Automatic configuration of multiple virtual storage processors

Inventors: Michael L. Burriss (Raleigh, NC); Wai C. Yim (Merrimack, NH); George Papadopoulos (Franklin, MA); David A. Parenti (Westborough, MA); Christopher R. Dion (Marlborough, MA); Jochen F. De Smet (Shrewsbury, MA)
Assignee: EMC IP Holding Company LLC
G06F9/44505G06F3/0604G06F3/065G06F3/0664G06F3/0673G06F9/45558H04L63/0272G06F2009/45579
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,379,246
App. No.
16/521,146
Granted
Jul 5, 2022
Kind
B2
Abstract

A virtual storage appliance having multiple storage processors is installed in a virtualized execution environment. Each one of the multiple virtual storage processors is a virtual machine that executes in the virtualized execution environment. At the time the virtual storage appliance is installed, properties of virtual resources provided by the virtualized execution environment to the virtual storage processors are obtained. The virtual resources provided by the virtualized execution environment to the virtual storage processors are consumed by the virtual storage processors while processing Input/Output (I/O) requests that are received by the virtual storage processors from at least one consumer application. The virtual storage processors are automatically configured in response to the properties of the virtual resources provided by the virtualized execution environment that are obtained at the time the virtual storage appliance is installed.

Claims (40)

1. A method comprising:

installing a virtual storage appliance having a plurality of virtual storage processors in a virtualized execution environment, wherein each one of the virtual storage processors comprises a virtual machine that executes in the virtualized execution environment;

at the time the virtual storage appliance is first booted up in the virtualized execution environment, obtaining, by at least one of the virtual storage processors issuing a query, properties of virtual resources provided by the virtualized execution environment to the virtual storage processors, wherein the virtual resources are consumed by the virtual storage processors while processing Input/Output (I/O) requests received from at least one application, wherein the virtual resources provided by the virtualized execution environment include virtual data storage resources allocated by the virtualized execution environment from one or more physical hardware non-volatile data storage devices, and wherein the properties of the virtual resources provided by the virtualized execution environment include indications of whether or not one or more data services are provided by the one or more physical hardware non-volatile data storage devices, including an indication of whether the one or more physical hardware non-volatile data storage devices from which the virtual data storage resources are allocated provide data redundancy protection; and

automatically configuring the virtual storage processors in response to the properties of the virtual resources provided by the virtualized execution environment.

2. The method of claim 1 , further comprising:

creating a virtual private network between the virtual storage processors within the virtualized execution environment, wherein the virtual private network enables the virtual storage processors to securely share data with each other; and

using the data shared between the virtual storage processors over the virtual private network, by one of the virtual storage processors that continues functioning after another one of the virtual storage processors fails, in order to continue processing I/O requests received from the at least one application on the one of the virtual storage processors that continues functioning after the failure.

3. The method of claim 2 , wherein the properties that are obtained at the time the virtual storage appliance is installed include an indication that the one or more physical hardware non-volatile data storage devices from which the virtual data storage resources are allocated do not provide data redundancy protection, and further comprising:

automatically configuring the virtual storage processors, in response to the indication that the one or more physical hardware non-volatile data storage devices from which the virtual data storage resources are allocated do not provide data redundancy protection, at least in part by configuring a software stack in each virtual storage processor that processes I/O requests received from the at least one application such that the software stack provides data redundancy protection for data received from the at least one application.

4. The method of claim 2 , wherein the properties that are obtained at the time the virtual storage appliance is installed include an indication that the one or more physical hardware non-volatile data storage devices from which the virtual data storage resources are allocated do provide data redundancy protection, and further comprising:

automatically configuring the virtual storage processors, in response to the indication that the one or more physical hardware non-volatile data storage devices from which the virtual data storage resources are allocated do provide data redundancy protection, at least in part by configuring a software stack in each virtual storage processor that processes I/O requests received from the at least one application such that the software stack does not provide data redundancy protection for data received from the at least one application.

5. The method of claim 2 , further comprising:

replicating a cache of data received from the at least one application on each one of the virtual storage processors; and

wherein the replication of the cache of data received from the at least one application on each one of the virtual storage processors is performed over the virtual private network created between the virtual storage processors.

6. The method of claim 1 , wherein the virtual resources provided by the virtualized execution environment to the virtual storage processors are consumed by the virtual storage processors at least in part while the virtual storage processors process both block I/O requests and file I/O requests received by the virtual storage processors from the at least one application.

7. The method of claim 6 , wherein the at least one application comprises a virtual machine that executes in the virtualized execution environment.

8. The method of claim 1 , wherein the virtual data storage resources allocated by the virtualized execution environment from the one or more physical hardware non-volatile data storage devices comprise one or more virtual disks allocated by the virtualized execution environment from the one or more physical hardware non-volatile data storage resources.

9. The method of claim 8 , wherein the indications of whether or not one or more data services are provided by the one or more physical hardware non-volatile data storage devices include an indication of whether or not data deduplication is provided by the one or more physical hardware non-volatile data storage devices.

10. A system, comprising:

processing circuitry and memory coupled to the processing circuitry, the memory storing instructions, wherein the instructions, when executed by the processing circuitry, cause the processing circuitry to:

install a virtual storage appliance having a plurality of virtual storage processors in a virtualized execution environment, wherein each one of the virtual storage processors comprises a virtual machine that executes in the virtualized execution environment;

at the time the virtual storage appliance is first booted up in the virtualized execution environment, obtain, by at least one of the virtual storage processors issuing a query, properties of virtual resources provided by the virtualized execution environment to the virtual storage processors, wherein the virtual resources are consumed by the virtual storage processors while processing Input/Output (I/O) requests received from at least one application, wherein the virtual resources provided by the virtualized execution environment include virtual data storage resources allocated by the virtualized execution environment from one or more physical hardware non-volatile data storage devices, and wherein the properties of the virtual resources provided by the virtualized execution environment include indications of whether or not one or more data services are provided by the one or more physical hardware non-volatile data storage devices, including an indication of whether the one or more physical hardware non-volatile data storage devices from which the virtual data storage resources are allocated provide data redundancy protection; and

automatically configure the virtual storage processors in response to the properties of the virtual resources provided by the virtualized execution environment.

11. The system of claim 10 , wherein the instructions, when executed by the processing circuitry, further cause the processing circuitry to:

create a virtual private network between the virtual storage processors within the virtualized execution environment, wherein the virtual private network enables the virtual storage processors to securely share data with each other; and

use the data shared between the virtual storage processors over the virtual private network, by one of the virtual storage processors that continues functioning after another one of the virtual storage processors fails, in order to continue processing I/O requests received from the at least one application on the one of the virtual storage processors that continues functioning after the failure.

12. The system of claim 11 , wherein the properties that are obtained at the time the virtual storage appliance is installed include an indication that the one or more physical hardware non-volatile data storage devices from which the virtual data storage resources are allocated do not provide data redundancy protection, and wherein the instructions, when executed by the processing circuitry, further cause the processing circuitry to:

automatically configure the virtual storage processors, in response to the indication that the one or more physical hardware non-volatile data storage devices from which the virtual data storage resources are allocated do not provide data redundancy protection, at least in part by configuring a software stack in each virtual storage processor that processes I/O requests received from the at least one application such that the software stack provides data redundancy protection for data received from the at least one application.

13. The system of claim 11 , wherein the properties that are obtained at the time the virtual storage appliance is installed include an indication that the one or more physical hardware non-volatile data storage devices from which the virtual data storage resources are allocated do provide data redundancy protection, and wherein the instructions, when executed by the processing circuitry, further cause the processing circuitry to:

automatically configure the virtual storage processors, in response to the indication that the one or more physical hardware non-volatile data storage devices from which the virtual data storage resources are allocated do provide data redundancy protection, at least in part by configuring a software stack in each virtual storage processor that processes I/O requests received from the at least one application such that the software stack does not provide data redundancy protection for data received from the at least one application.

14. The system of claim 11 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to:

replicate a cache of data received from the at least one application on each one of the virtual storage processors; and

wherein the replication of the cache of data received from the at least one application on each one of the virtual storage processors is performed over the virtual private network created between the virtual storage processors.

15. The system of claim 10 , wherein the virtual resources provided by the virtualized execution environment to the virtual storage processors are consumed by the virtual storage processors at least in part while the virtual storage processors process both block I/O requests and file I/O requests received by the virtual storage processors from the at least one application.

16. The system of claim 15 , wherein the at least one application comprises a virtual machine that executes in the virtualized execution environment.

17. A computer program product, comprising:

a non-transitory, computer-readable medium having instructions stored thereon that, when executed by processing circuitry, cause the processing circuitry to perform a method comprising the steps of:

installing a virtual storage appliance having a plurality of virtual storage processors in a virtualized execution environment, wherein each one of the virtual storage processors comprises a virtual machine that executes in the virtualized execution environment;

at the time the virtual storage appliance is first booted up in the virtualized execution environment, obtaining, by at least one of the virtual storage processors issuing a query, properties of virtual resources provided by the virtualized execution environment to the virtual storage processors, wherein the virtual resources are consumed by the virtual storage processors while processing Input/Output (I/O) requests received from at least one application, wherein the virtual resources provided by the virtualized execution environment include virtual data storage resources allocated by the virtualized execution environment from one or more physical hardware non-volatile data storage devices, and wherein the properties of the virtual resources provided by the virtualized execution environment include indications of whether or not one or more data services are provided by the one or more physical hardware non-volatile data storage devices, including an indication of whether the one or more physical hardware non-volatile data storage devices from which the virtual data storage resources are allocated provide data redundancy protection; and

automatically configuring the virtual storage processors in response to the properties of the virtual resources provided by the virtualized execution environment.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058213/0825 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2019
From: BURRISS, MICHAEL L.; YIM, WAI C.; PAPADOPOULOS, GEORGE; PARENTI, DAVID A.; DION, CHRISTOPHER R.; DE SMET, JOCHEN F.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050069/0291 →