IP Library Patent Application 12978056
Patent Application
App. No. 12/978,056

Virtual Data Storage Devices and Applications Over Wide Area Networks

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 None
App. No.
12/978,056
Filed
Dec 23, 2010
Art Unit
2195
USPC
718/1
Abstract

A virtualization system provides virtualized servers at a branch network location. Virtualized servers are implemented using virtual machine applications within the virtualization system. Data storage for the virtualized servers, including storage of the virtual machine files, is consolidated at a data center network location. The virtual disks of the virtualized servers are mapped to physical data storage at the data center and accessed via a WAN using storage block-based protocols. The virtualization system accesses a storage block cache at the branch network location that includes storage blocks prefetched based on knowledge about the virtualized servers. The virtualization system can include a virtual LAN directing network traffic between the WAN, the virtualized servers, and branch location clients. The virtualized servers, virtual LAN, and virtual disk mapping can be configured remotely via a management application. The management application may use templates to create multiple instances of common branch location configurations.

Claims (51)

1 . A method of delivering a service to a client at a first network location, wherein a virtual machine application at the first network location provides the service and a data storage for the virtual machine application is located at a second network location accessible to the virtual machine application via a wide-area network, the method comprising:

configuring at least one virtual disk of the virtual machine application to correspond with at least one disk image stored at the second network location;

configuring a proxy process at the first network location to service I/O requests for storage blocks included in the disk image;

configuring a hypervisor to direct I/O requests for the virtual disk to the proxy process; and

servicing at least one of the I/O requests from a local cache of storage blocks at the first network location.

2 . The method of claim 1 , wherein the proxy process is implemented by a first device at the first network location.

3 . The method of claim 2 , wherein the hypervisor and virtual machine application are implemented by a second device at the first network location.

4 . The method of claim 2 , wherein the hypervisor and virtual machine application are implemented by the first device at the first network location.

5 . The method of claim 1 , wherein the virtual disk of the virtual machine application is a primary disk including a boot program adapted to load and initialize an operating system.

6 . The method of claim 1 , wherein the local cache of storage blocks includes copies of a portion of the storage blocks included in the disk image, wherein the portion of the storage blocks are prefetched from the second network location and communicated via the wide-area network to the first network location.

7 . The method of claim 1 , comprising:

receiving a virtualization template including a specification associating the virtual disk with the disk image.

8 . A method of delivering a service to a client at a first network location, the method comprising:

configuring a virtualization system at the first network location to implement at least a first server within a first virtual machine;

configuring a mapping between at least a first virtual disk of the first virtual machine to a first physical logical storage unit, wherein the first physical logical storage unit is stored in a storage system located at a second network location, wherein the second network location is connected with the first network location via a wide-area network;

receiving storage block requests for storage blocks in the first virtual disk from the first server within the first virtual machine; and

servicing at least a first one of the storage block requests from the first server from a storage block cache at the first network location, wherein the storage block cache includes a copy of at least a portion of the first physical logical storage unit.

9 . The method of claim 8 , comprising:

servicing at least a second one of the storage block requests from the first physical logical storage unit.

10 . The method of claim 8 , wherein configuring the mapping comprises:

associating the first virtual disk of the first virtual machine with a first virtual logical storage unit provided at the first network location.

11 . The method of claim 10 , wherein the first virtual logical storage unit is provided by a second virtual machine implemented by the virtualization system.

12 . The method of claim 10 , wherein the first virtual logical storage unit is provided by a hypervisor in the virtualization system.

13 . The method of claim 10 , wherein the first virtual logical storage unit is provided by a storage interface external to the virtualization system at the first network location.

14 . The method of claim 8 , wherein the storage block cache includes copies of storage blocks prefetched from the physical logical storage unit at the second network location and communicated via the wide-area network to the first network location in advance of the first storage block request.

15 . A method of delivering a service to a client at a first network location, the method comprising:

configuring a virtualization system at the first network location to implement at least a first server within a first virtual machine;

configuring a mapping between at least a first virtual disk of the first virtual machine to a first physical logical storage unit, wherein the first physical logical storage unit is stored in a storage system located at a second network location, wherein the second network location is connected with the first network location via a wide-area network;

initiating a boot process for the first virtual machine;

receiving storage block requests for storage blocks associated with the boot process in the first virtual disk from the first server within the first virtual machine; and

in response to the storage block requests, servicing at least a first one of the storage block requests from the physical logical storage unit via the wide-area network and at least a second one of the storage block requests from a storage block cache at the first network location.

16 . The method of claim 15 , wherein configuring the mapping comprises:

associating the first virtual disk of the first virtual machine with a first virtual logical storage unit provided at the first network location, wherein the first virtual logical storage unit corresponds with the first physical logical storage unit at the second network location.

17 . A method of delivering a service to a client at a first network location, the method comprising:

receiving a specification of virtualized servers to be implemented at a first network location;

receiving a specification of mappings between virtual disks of the virtualized servers and physical logical storage units stored in a storage system at a second network location, wherein the second network location is connected with the first network location via a wide-area network; and

providing a virtualization configuration including the specifications of the virtualized servers, the virtual LAN connections, and the mappings between virtual disks and the physical logical storage units to a virtualization system at the first network location.

18 . The method of claim 17 , comprising:

receiving a specification of virtual LAN connections between at least the virtualized servers; and

including the specification of virtual LAN connections in the virtualization configuration provided to the virtualization system at the first network location.

19 . The method of claim 18 , wherein receiving the specifications of the virtualized servers, the virtual LAN connections, and the mappings between virtual disks and the physical logical storage units comprises:

receiving a selection of a virtualization template, wherein the virtualization template includes a first portion of the virtualization configuration that is independent of the first network location; and

receiving a second portion of the virtualization configuration that is dependent on the first network location.

20 . The method of claim 17 , comprising:

creating at least one of the physical logical storage units in the storage system at the second network location in response to the specification of the mappings.

21 . The method of claim 17 , comprising:

creating a new instance of at least one virtual machine file in response to the specification of the virtualized servers, wherein the new instance of the virtual machine file is stored in a first one of the physical logical storage units in the storage system at the second network location.

22 . The method of claim 17 , comprising:

configuring the virtualization system at the first network location according to virtualization configuration, thereby implementing at least a first virtualized server and a first virtual disk by the virtualization system;

receiving storage block requests for storage blocks in the first virtual disk from the first virtualized server; and

servicing at least a first one of the storage block requests from the first virtualized server from a storage block cache at the first network location, wherein the storage block cache includes a copy of at least a portion of a first physical logical storage unit stored in the storage system at the second network location.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY NAME PREVIOUSLY RECORDED ON REEL 035521 FRAME 0069. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST IN PATENTS. Recorded Jun 2, 2015
From: JPMORGAN CHASE BANK, N.A.
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035807/0680 →
SECURITY INTEREST Recorded May 1, 2015
From: RIVERBED TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 035561/0363 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Apr 28, 2015
From: BARCLAYS BANK PLC
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035521/0069 →
PATENT SECURITY AGREEMENT Recorded Dec 27, 2013
From: RIVERBED TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 032421/0162 →
RELEASE OF PATENT SECURITY INTEREST Recorded Dec 26, 2013
From: MORGAN STANLEY & CO. LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 032113/0425 →
SECURITY AGREEMENT Recorded Dec 20, 2012
From: RIVERBED TECHNOLOGY, INC.; OPNET TECHNOLOGIES, INC.
To: MORGAN STANLEY & CO. LLC
Reel/Frame 029646/0060 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2011
From: WU, DAVID; MCCANNE, STEVEN; DEMMER, MICHAEL
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 026100/0310 →