IP Library › Granted Patent US 10,949,125
Granted Patent B2
US 10,949,125 · App. 16/457,856 · Granted Mar 16, 2021

Virtualized block storage servers in cloud provider substrate extension

Inventors: Anthony Nicholas Liguori (Bainbridge Island, WA); Marc Stephen Olson (Bellevue, WA)
Assignee: Amazon Technologies, Inc.
G06F3/0659G06F3/0604G06F3/064G06F3/067G06F3/0644G06F3/0664G06F3/0665G06F9/4416G06F9/45558H04L9/0819G06F2009/45579G06F2009/45583
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,949,125
App. No.
16/457,856
Granted
Mar 16, 2021
Kind
B2
Abstract

A first request to launch a first virtual machine to host a block storage server application is received. At least a portion of a storage capacity of one or more storage devices of a host computer system is provisioned to the first virtual machine as a provisioned storage device. The block storage server application is executed with the first virtual machine. As part of executing the block storage server application, a logical volume is created on the provisioned storage device in response to a second request from a block storage service of a provider network to create the logical volume, a third request to perform an input/output operation is received and performed with the logical volume.

Claims (60)

1. A computer-implemented method comprising:

receiving, by a computer system of an extension of a provider network, from the provider network, a first request to launch a first virtual machine to host a block storage server application, wherein the extension of the provider network is in communication with the provider network via at least an intermediate network;

provisioning at least a portion of a storage capacity of one or more storage devices of a host computer system to the first virtual machine as a provisioned storage device; and

executing the block storage server application with the first virtual machine, wherein the executing the block storage server application includes:

creating a logical volume on the provisioned storage device in response to a second request from a block storage service of the provider network to create the logical volume;

receiving a third request to perform an input/output operation with the logical volume; and

performing the requested input/output operation with the logical volume.

2. The computer-implemented method of claim 1 , wherein, prior to executing the block storage server application with the first virtual machine, the method further comprises:

executing another application with the first virtual machine to load a boot volume from a machine image obtained from a data store of the provider network, wherein the boot volume is another logical volume of the provisioned storage device;

modifying the first virtual machine to boot from the boot volume; and

restarting the first virtual machine.

3. The computer-implemented method of claim 2 , further comprising clearing a memory of the first virtual machine prior to executing the block storage server application.

4. The computer-implemented method of claim 1 , wherein, prior to executing the block storage server application with the first virtual machine, the method further comprises loading a boot volume of the first virtual machine from a machine image stored by a first block storage device, wherein the boot volume is another logical volume of the provisioned storage device, and wherein the first block storage device is a virtual block storage device.

5. The computer-implemented method of claim 4 , wherein the loading is performed by at least one of a basic input/output system of the first virtual machine and a unified extensible firmware interface of the first virtual machine.

6. The computer-implemented method of claim 1 :

wherein the third request is received from a block storage client application via a virtual network; and

wherein traffic sent over the virtual network is encrypted using a key associated with the virtual network.

7. The computer-implemented method of claim 1 , wherein the first virtual machine is one of a plurality of virtual machines, each of the plurality of virtual machines executing a block storage server application, and the method further comprises:

determining that a resource utilization associated with one or more of the plurality of virtual machines has exceeded a threshold;

provisioning at least a portion of a storage capacity of one or more storage devices of another host computer system to a second virtual machine; and

executing another block storage server application with the second virtual machine.

8. The computer-implemented method of claim 1 , further comprising:

provisioning at least another portion of the storage capacity of the one or more storage devices of the host computer system to a second virtual machine as another provisioned storage device; and

executing another block storage server application with the second virtual machine, wherein the first virtual machine executes using a first physical component of the computer system and the second virtual machine executes using a second physical component of the computer system that is different than the first physical component.

9. The computer-implemented method of claim 8 , wherein the input/output operation is a write operation to write a block of data to a block address of the logical volume, wherein performing the requested input/output operation with the logical volume includes writing the block of data to the block address of the logical volume, wherein the first physical component is a first memory device and the second physical component is a second memory device, and wherein the extension of the provider network includes one or more physical computing devices located outside of a data center of the provider network and on a premises of a customer of the provider network.

10. A system comprising:

one or more storage devices of a host computer system of an extension of a provider network, wherein the extension of the provider network is in communication with the provider network via at least an intermediate network; and

one or more processors of the host computer system to execute a host manager application, the host manager application including instructions that upon execution cause the host manager application to:

receive, from the provider network, a first request to launch a first virtual machine to host a block storage server application;

provision at least a portion of a storage capacity of the one or more storage devices to the first virtual machine as a provisioned storage device; and

execute the block storage server application with the first virtual machine, the block storage server application including instructions that upon execution cause the block storage server application to:

create a logical volume on the provisioned storage device in response to a second request from a block storage service of the provider network to create the logical volume;

receive a third request to perform an input/output operation with the logical volume; and

performing the requested input/output operation with the logical volume.

11. The system of claim 10 , wherein the host manager application includes further instructions that upon execution cause, prior to executing the block storage server application with the first virtual machine, the host manager application to:

execute another application with the first virtual machine to load a boot volume from a machine image obtained from a data store of the provider network, wherein the boot volume is another logical volume of the provisioned storage device;

modify the first virtual machine to boot from the boot volume; and

restart the first virtual machine.

12. The system of claim 11 , wherein the host manager application includes further instructions that upon execution cause, prior to executing the block storage server application, the host manager application to clearing a memory of the first virtual machine.

13. The system of claim 10 , wherein a component of the first virtual machine include instructions that upon execution cause, prior to executing the block storage server application with the first virtual machine, the component to load a boot volume of the first virtual machine from a machine image stored by a first block storage device, wherein the boot volume is another logical volume of the provisioned storage device, and wherein the first block storage device is a virtual block storage device.

14. The system of claim 13 , wherein the component is at least one of a basic input/output system of the first virtual machine and a unified extensible firmware interface of the first virtual machine.

15. The system of claim 10 :

wherein the third request is received from a block storage client application via a virtual network; and

wherein traffic sent over the virtual network is encrypted using a key associated with the virtual network.

16. The system of claim 10 , wherein the host manager application includes further instructions that upon execution cause the host manager application to:

provision at least another portion of the storage capacity of the one or more storage devices of the host computer system to a second virtual machine as another provisioned storage device; and

execute another block storage server application with the second virtual machine, wherein the first virtual machine executes using a first physical component of the computer system and the second virtual machine executes using a second physical component of the computer system that is different than the first physical component.

17. The system of claim 16 , wherein the input/output operation is a write operation to write a block of data to a block address of the logical volume, wherein performing the requested input/output operation with the logical volume includes writing the block of data to the block address of the logical volume, wherein the first physical component is a first memory device and the second physical component is a second memory device, and wherein the extension of the provider network includes one or more physical computing devices located outside of a data center of the provider network and on a premises of a customer of the provider network.

18. A computer-implemented method comprising:

receiving, at a host computer system of an extension of a provider network, from the provider network, a first request to launch a first virtual machine to host a block storage server application, wherein the extension of the provider network is in communication with the provider network via at least an intermediate network;

provisioning at least a portion of a storage capacity of one or more physical storage devices of the host computer system to the first virtual machine as a provisioned storage device; and

executing the block storage server application with the first virtual machine, wherein the executing the block storage server application includes:

creating a logical volume on the provisioned storage device in response to a second request from a block storage service of the provider network to create the logical volume;

receiving, from a block storage client application via a virtual network, a third request to perform an input/output operation with the logical volume; and

performing the requested input/output operation with the logical volume.

19. The computer-implemented method of claim 18 , wherein, prior to executing the block storage server application with the first virtual machine, the method further comprises:

executing another application with the first virtual machine to load a boot volume from a machine image obtained from a data store of the provider network to a boot volume, wherein the boot volume is another logical volume of the provisioned storage device;

modifying the first virtual machine to boot from the boot volume; and

restarting the first virtual machine.

20. The computer-implemented method of claim 18 , wherein, prior to executing the block storage server application with the first virtual machine, the method further comprises loading a boot volume of the first virtual machine from a machine image stored by a first block storage device, wherein the boot volume is another logical volume of the provisioned storage device, and wherein the first block storage device is a virtual block storage device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2020
From: LIGUORI, ANTHONY NICHOLAS; OLSON, MARC STEPHEN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 052803/0571 →
Continuity (1)
Related Publication 20200409600A1 · Dec 31, 2020
Cited By (2)
US 12,197,759 US 12,236,122