U.S. patent application number 13/404129 was filed with the patent office on 2013-01-10 for methods and apparatus for providing hypervisor level data services for server virtualization.
This patent application is currently assigned to EMC Corporation. Invention is credited to Shlomo Ahal, Christos Karamanolis, Oded Kedem, Ziv Kedem, Assaf Natanzon, Tzach Schechner.
Application Number | 20130014104 13/404129 |
Document ID | / |
Family ID | 44648248 |
Filed Date | 2013-01-10 |
United States Patent
Application |
20130014104 |
Kind Code |
A1 |
Natanzon; Assaf ; et
al. |
January 10, 2013 |
METHODS AND APPARATUS FOR PROVIDING HYPERVISOR LEVEL DATA SERVICES
FOR SERVER VIRTUALIZATION
Abstract
A hypervisor virtual server system, including a plurality of
virtual servers, a plurality of virtual disks that are read from
and written to by the plurality of virtual servers, a physical
disk, an I/O backend coupled with the physical disk and in
communication with the plurality of virtual disks, which reads from
and writes to the physical disk, a tapping driver in communication
with the plurality of virtual servers, which intercepts I/O
requests made by any one of said plurality of virtual servers to
any one of said plurality of virtual disks, and a virtual data
services appliance, in communication with the tapping driver, which
receives the intercepted I/O write requests from the tapping
driver, and that provides data services based thereon.
Inventors: |
Natanzon; Assaf; (Tel Aviv,
IL) ; Schechner; Tzach; (Herzylia, IL) ;
Kedem; Oded; (Tel Aviv, IL) ; Kedem; Ziv; (Tel
Aviv, IL) ; Ahal; Shlomo; (Tel Aviv, IL) ;
Karamanolis; Christos; (Los Gatos, CA) |
Assignee: |
EMC Corporation
Hopkinton
MA
|
Family ID: |
44648248 |
Appl. No.: |
13/404129 |
Filed: |
February 24, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13039446 |
Mar 3, 2011 |
|
|
|
13404129 |
|
|
|
|
61314589 |
Mar 17, 2010 |
|
|
|
Current U.S.
Class: |
718/1 |
Current CPC
Class: |
G06F 3/0689 20130101;
G06F 9/45558 20130101; G06F 2009/45579 20130101; G06F 3/0653
20130101; G06F 11/1471 20130101; G06F 2209/542 20130101; G06F 9/545
20130101; G06F 3/0665 20130101; G06F 3/067 20130101; G06F 2009/4557
20130101; G06F 3/0619 20130101; G06F 9/45533 20130101; G06F
2009/45595 20130101 |
Class at
Publication: |
718/1 |
International
Class: |
G06F 9/455 20060101
G06F009/455 |
Claims
1. A hypervisor virtual server system, comprising: a plurality of
virtual servers; a plurality of virtual disks that are read from
and written to by said plurality of virtual servers; a physical
disk; an I/O backend coupled with said physical disk and in
communication with said plurality of virtual disks, which reads
from and writes to said physical disk; a tapping driver in
communication with said plurality of virtual servers, which
intercepts I/O requests made by any one of said plurality of
virtual servers to any one of said plurality of virtual disks; and
a virtual data services appliance, in communication with said
tapping driver, which receives the intercepted I/O requests from
said tapping driver, and which provides data services based
thereon.
2. The hypervisor virtual server system of claim 1, further
comprising a journal manager in communication with said virtual
data services appliance, which stores intercepted I/O write
requests as journal entries in a virtual disk.
3. The hypervisor virtual server system of claim 2, further
comprising a hash generator in communication with said virtual data
services appliance and with said journal manager, for generating
hash values of the intercepted I/O write requests, and wherein said
journal manager stores the generated hash values.
4. The hypervisor virtual server system of claim 1, further
comprising a TCP transmitter in communication with said virtual
data services appliance, which transmits the intercepted I/O
requests to a remote virtual data services appliance.
5. The hypervisor virtual system of claim 1, further comprising a
data analyzer in communication with said virtual data services
appliance, which analyzes an intercepted I/O request and infers
therefrom the data state of the virtual server that made the I/O
request.
6. A method for providing data services within a hypervisor virtual
server system, comprising: intercepting I/O requests from any one
of a plurality of virtual servers to one of a plurality of virtual
disks; and sending intercepted I/O write requests to a virtual data
services appliance that provides hypervisor data services.
7. The method of claim 6 further comprising journaling the
intercepted I/O requests.
8. The method of claim 7 further comprising generating a hash value
for the intercepted I/O requests, and wherein said journaling
comprises journaling the generated hash values.
9. The method of claim 6 further comprising analyzing an
intercepted I/O request inferring therefrom the data state of the
virtual server that made the I/O request.
10. The method of claim 6 further comprising sending the
intercepted I/O requests to a remote computer, thereby providing
replication for said plurality of virtual servers.
Description
CROSS REFERENCES TO RELATED APPLICATIONS
[0001] This application claims priority benefit of U.S. Provisional
Application No. 61/314,589, entitled METHODS AND APPARATUS FOR
PROVIDING HYPERVISOR LEVEL DATA SERVICES FOR SERVER VIRTUALIZATION,
filed on Mar. 17, 2010 by inventor Ziv Kedem.
FIELD OF THE INVENTION
[0002] The present invention relates to virtual server environments
and data services.
BACKGROUND OF THE INVENTION
[0003] Virtual servers are logical entities that run as software in
a server virtualization infrastructure, referred to as a
"hypervisor". Examples of hypervisors are VMWARE.RTM. ESX
manufactured by VMware, Inc. of Palo Alto, Calif., HyperV
manufactured by Microsoft Corporation of Redmond, Wash.,
XENSERVER.RTM. manufactured by Citrix Systems, Inc. of Fort
Lauderdale, Fla., Redhat KVM manufactured by Redhat, Inc. of
Raleigh, N.C., and Oracle VM manufactured by Oracle Corporation of
Redwood Shores, Calif. A hypervisor provides storage device
emulation, referred to as "virtual disks", to virtual servers.
Hypervisor implements virtual disks using back-end technologies
such as files on a dedicated file system, or raw mapping to
physical devices.
[0004] As distinct from physical servers that run on hardware,
virtual servers run their operating systems within an emulation
layer that is provided by a hypervisor. Although virtual servers
are software, nevertheless they perform the same tasks as physical
servers, including running server applications such as database
applications, customer relation management applications and
MICROSOFT EXCHANGE SERVER.RTM.. Most applications that run on
physical servers are portable to run on virtual servers. As
distinct from virtual desktops that run client side applications
and service individual users, virtual servers run applications that
service a large number of clients.
[0005] As such, virtual servers depend critically on data services
for their availability, security, mobility and compliance
requirements, the data services including inter alia continuous
data protection, disaster recovery, remote replication, data
security, mobility, and data retention and archiving policies.
SUMMARY OF THE DESCRIPTION
[0006] Aspects of the present invention relate to a dedicated
virtual data service appliance (VDSA) within a hypervisor that can
provide a variety of data services. Data services provided by a
VDSA include inter alia replication, monitoring and quality of
service.
[0007] In an embodiment of the present invention, a tapping filter
driver is installed within the hypervisor kernel. The tapping
driver has visibility to I/O requests made by virtual servers
running on the hypervisor.
[0008] A VDSA runs on each physical hypervisor. The VDSA is a
dedicated virtual server that provides data services; however, the
VDSA does not necessarily reside in the actual I/O data path. When
a data service processes I/O asynchronously, the VDSA receives the
data outside the data path.
[0009] Whenever a virtual server performs I/O to a virtual disk,
the tapping driver identifies the I/O requests to the virtual disk.
The tapping driver copies the I/O requests, forwards one copy to
the hypervisor's backend, and forwards another copy to the
VDSA.
[0010] Upon receiving an I/O request, the VDSA performs a set of
actions to enable various data services. A first action is data
analysis, to analyze the data content of the I/O request and to
infer information regarding the virtual server's data state. E.g.,
the VDSA may infer the operating system level and the status of the
virtual server. This information is subsequently used for reporting
and policy purposes.
[0011] A second action, optionally performed by the VDSA, is to
store each I/O write request in a dedicated virtual disk for
journaling. Since all I/O write requests are journaled on this
virtual disk, the virtual disk enables recovery data services for
the virtual server, such as restoring the virtual server to an
historical image.
[0012] A third action, optionally performed by the VDSA, is to send
I/O write requests to different VDSAs, residing on hypervisors
located at different locations, thus enabling disaster recovery
data services.
[0013] There is thus provided in accordance with an embodiment of
the present invention a hypervisor virtual server system, including
a plurality of virtual servers, a plurality of virtual disks that
are read from and written to by the plurality of virtual servers, a
physical disk, an I/O backend coupled with the physical disk and in
communication with the plurality of virtual disks, which reads from
and writes to the physical disk, a tapping driver in communication
with the plurality of virtual servers, which intercepts I/O
requests made by any one of said plurality of virtual servers to
any one of said plurality of virtual disks, and a virtual data
services appliance, in communication with the tapping driver, which
receives the intercepted I/O write requests from the tapping
driver, and which provides data services based thereon.
[0014] There is additionally provided in accordance with an
embodiment of the present invention a method for providing data
services within a hypervisor virtual server system, including
intercepting I/O requests from any one of a plurality of virtual
servers to one of a plurality of virtual disks, and sending
intercepted I/O write requests to a virtual data services appliance
that provides hypervisor data services.
BRIEF DESCRIPTION OF THE DRAWINGS
[0015] The present invention will be more fully understood and
appreciated from the following detailed description, taken in
conjunction with the drawings in which:
[0016] FIG. 1 is a simplified block diagram of a hypervisor
architecture that includes a tapping driver and a virtual data
services appliance, in accordance with an embodiment of the present
invention; and
[0017] FIG. 2 is a simplified data flow chart for a virtual data
services appliance, in accordance with an embodiment of the present
invention.
DETAILED DESCRIPTION
[0018] Aspects of the present invention relate to a dedicated
virtual data services appliance (VDSA) within a hypervisor, which
is used to provide a variety of hypervisor data services. Data
services provided by a VDSA include inter alia replication,
monitoring and quality of service.
[0019] Reference is made to FIG. 1, which is a simplified block
diagram of a hypervisor architecture that includes a tapping driver
and a VDSA, in accordance with an embodiment of the present
invention. Shown in FIG. 1 is a hypervisor 100 with three virtual
servers 110, three virtual disks 120, an I/O backend 130 and a
physical storage array 140. Hypervisor 100 uses a single physical
server, but runs multiple virtual servers 110. Virtual disks 120
are a storage emulation layer that provide storage for virtual
servers 110. Virtual disks 120 are implemented by hypervisor 100
via I/O backend 130, which connects to physical disk 140.
[0020] Hypervisor 100 also includes a tapping driver 150 installed
within the hypervisor kernel. As shown in FIG. 1, tapping driver
150 resides in a software layer between virtual servers 110 and
virtual disks 120. As such, tapping driver 150 is able to access
I/O requests performed by virtual servers 110 on virtual disks 120.
Tapping driver 150 has visibility to I/O requests made by virtual
servers 110.
[0021] Hypervisor 100 also includes a VDSA 160. In accordance with
an embodiment of the present invention, a VDSA 160 runs on a
separate virtual server within each physical hypervisor. VDSA 160
is a dedicated virtual server that provides data services via one
or more data services engines 170. However, VDSA 160 does not
reside in the actual I/O data path between I/O backend 130 and
physical disk 140. Instead, VDSA 160 resides in a virtual I/O data
path.
[0022] Whenever a virtual server 110 performs I/O on a virtual disk
120, tapping driver 150 identifies the I/O requests that the
virtual server makes. Tapping driver 150 copies the I/O requests,
forwards one copy via the conventional path to I/O backend 130, and
forwards another copy to VDSA 160. In turn, VDSA 160 enables the
one or more data services engines 170 to provide data services
based on these I/O requests.
[0023] Reference is made to FIG. 2, which is a simplified data flow
chart for a VDSA, in accordance with an embodiment of the present
invention. Shown in FIG. 2 are an I/O receiver 210, a hash
generator 220, a TCP transmitter 230, a data analyzer and reporter
240, a journal manager 250 and a remote VDSA 260. Remote VDSA 260
resides on different physical hardware, at a possibly different
location.
[0024] As shown in FIG. 2, I/O receiver 210 receives an intercepted
I/O request from tapping driver 150. VDSA 160 makes up to three
copies of the received I/O requests, in order to perform a set of
actions which enable the one or more data services engines 170 to
provide various services.
[0025] A first copy is stored in persistent storage, and used to
provide continuous data protection. Specifically, VDSA 160 sends
the first copy to journal manager 250, for storage in a dedicated
virtual disk 270. Since all I/O requests are journaled on virtual
disk 270, journal manager 250 provides recovery data services for
virtual servers 110, such as restoring virtual servers 110 to an
historical image. In order to conserve disk space, hash generator
220 derives a one-way hash from the I/O requests. Use of a hash
ensures that only a single copy of any I/O request data is stored
on disk.
[0026] An optional second copy is used for disaster recovery. It is
sent via TCP transmitter 230 to remote VDSA 260. As such, access to
all data is ensured even when the production hardware is not
available, thus enabling disaster recovery data services.
[0027] An optional third copy is sent to data analyzer and reporter
240, which generates a report with information about the content of
the data. Data analyzer and reporter 240 analyzes data content of
the I/O requests and infers information regarding the data state of
virtual servers 110. E.g., data analyzer and reporter 240 may infer
the operating system level and the status of a virtual server
110.
[0028] In the foregoing specification, the invention has been
described with reference to specific exemplary embodiments thereof.
It will, however, be evident that various modifications and changes
may be made to the specific exemplary embodiments without departing
from the broader spirit and scope of the invention as set forth in
the appended claims. Accordingly, the specification and drawings
are to be regarded in an illustrative rather than a restrictive
sense.
* * * * *