IP Library › Granted Patent US 10,852,954
Granted Patent B1
US 10,852,954 · App. 14/862,491 · Granted Dec 1, 2020

Running an enterprise storage subsystem as a virtual machine

Inventors: Jonathan Krasner (Coventry, RI); Chakib Ouarraoui (Watertown, MA); Matt Fredette (Belmont, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0619G06F3/0665G06F3/0689G06F9/45545G06F13/28G06F13/4022
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,852,954
App. No.
14/862,491
Filed
Sep 23, 2015
Granted
Dec 1, 2020
Kind
B1
Examiner
OTTO, ALAN
Art Unit
2132
USPC
711/114
Abstract

A storage array is implemented as a virtual machine on a server. The virtual storage array includes a virtual engine with virtual directors and virtualized processor and memory resources. Embedded storage software converts Input/Output requests into Input/Output requests that can be serviced by the virtual machine. A virtual backend driver enables the virtual storage directors to access a set of virtual drives. A virtualized shared memory driver provides emulated input/output, XOR, direct memory access and copy services for send and receive threads.

Claims (34)

1. An apparatus comprising:

a computing node comprising at least one processor and a non-transitory computer-readable memory on which is stored program code configured to be run by the at least one processor to generate a first virtual machine comprising:

a virtual storage array that accesses host application data stored on one or more non-volatile drives responsive to commands from a host application, the virtual storage array comprising:

a plurality of virtual storage engines, each virtual storage engine comprising:

a pair of virtual storage directors interconnected in a failover relationship, each virtual storage director receiving the commands from the host application and configured to communicate with the host application via a virtual front end adapter, each virtual storage director comprising:

 a virtual processor;

 a virtualized shared memory;

 a virtual backend adapter configured to interface with some of the non-volatile drives; and

 a virtual channel adapter that interfaces with other virtual storage directors of other virtual storage engines,

the pair of virtual storage directors being interconnected via a virtual switch, the virtual processor and the virtualized shared memory implemented as a second virtual machine nested within the first virtual machine;

whereby host application data requested by a host application from a first virtual storage director of a first virtual storage engine and managed by a second virtual storage director of a second virtual storage engine is provided by the second virtual storage director copying the requested host application from the non-volatile drives to the virtualized shared memory and the first virtual storage director accessing the requested host application data from the virtualized shared memory to provide the requested host application data to the host application that generated the request.

2. The apparatus of claim 1 wherein each virtual storage director further comprises a virtual channel adapter with virtual ports which interface with other virtual storage directors via the virtual switch using Ethernet protocol.

3. The apparatus of claim 1 wherein the virtual front end adapter is configured to interface the virtual storage directors with a guest operating system hosted by the virtual storage array.

4. The apparatus of claim 3 wherein the virtual front end adapter implements internet small computer system interface protocol.

5. The apparatus of claim 1 wherein the computing node processor comprises a central processing unit and a graphics processing unit.

6. The apparatus of claim 1 wherein the virtual storage array further comprises a backend driver configured to enable the virtual storage directors to access a set of virtual drives.

7. The apparatus of claim 6 wherein the virtual drives are mounted on paravirtualized small computer system interface devices.

8. The apparatus of claim 7 wherein the virtual drives are an abstraction layer between the virtual storage directors and a set of physical data storage devices.

9. The apparatus of claim 1 wherein the virtual storage array further comprises a virtualized shared memory driver which provides direct memory access functionality between the virtualized shared memory allocated to the virtual storage directors.

10. The apparatus of claim 1 wherein the virtualized shared memory driver provides emulated input/output, XOR, direct memory access and copy services for send and receive threads.

11. A method comprising:

using a computing node comprising at least one processor and a non-transitory computer-readable memory on which is stored program code configured to be run by the at least one processor:

generating a first virtual machine comprising a virtual storage array that accesses host application data stored on one or more non-volatile drives responsive to commands from a host application, the virtual storage array comprising virtual storage engines, each virtual storage engine comprising a pair of virtual storage directors, interconnected in a failover relationship, that each receive the commands from the host application and is configured to communicate with the host application via a virtual front end adapter, each virtual storage director comprising a virtual processor, a virtualized shared memory, a virtual backend adapter configured to interface with some of the non-volatile drives, and a virtual channel adapter that interfaces with other virtual storage directors of other virtual storage engines, the virtual processor and the virtualized shared memory implemented as a second virtual machine nested within the first virtual machine;

interconnecting the pair of virtual storage directors via a virtual switch; and

providing host application data requested by a host application from a first virtual storage director of a first virtual storage engine and managed by a second virtual storage director of a second virtual storage engine by causing the second virtual storage director to copy the requested host application from the non-volatile drives to the virtualized shared memory and the first virtual storage director accessing the requested host application data from the virtualized shared memory for providing the requested host application data to the host application that generated the request.

12. The method of claim 11 wherein each virtual storage director further comprises a virtual channel adapter with virtual ports, and comprising interfacing the virtual storage directors with other virtual storage directors via the virtual switch via the virtual ports using Ethernet protocol.

13. The method of claim 11 comprising interfacing the virtual storage directors with a guest operating system hosted by the virtual storage array via the virtual front end adapter.

14. The method of claim 13 comprising the virtual front end adapter implementing internet small computer system interface protocol.

15. The method of claim 11 wherein the computing node processor comprises a central processing unit and a graphics processing unit.

16. The method of claim 11 wherein the virtual storage array further comprises a backend driver, and comprising the backend driver enabling the virtual storage directors to access a set of virtual drives.

17. The method of claim 16 comprising mounting the virtual drives on paravirtualized small computer system interface devices.

18. The method of claim 17 comprising implementing the virtual drives as an abstraction layer between the virtual storage directors and a set of physical data storage devices.

19. The method of claim 11 wherein the virtual storage array further comprises a virtualized shared memory driver, and comprising the virtualized shared memory driver providing direct memory access functionality between the virtualized shared memory allocated to the virtual storage directors.

20. The method of claim 11 comprising the virtualized shared memory driver providing emulated input/output, XOR, direct memory access and copy services for send and receive threads.

Assignments (10)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
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 →
SECURITY AGREEMENT Recorded Mar 21, 2019
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 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2015
From: KRASNER, JONATHAN; OUARRAOUI, CHAKIB; FREDETTE, MATT
To: EMC CORPORATION
Reel/Frame 036634/0358 →
Cited By (1)
US 12,223,210