2013-05-03 18:25:37 +04:00
<?xml version="1.0" encoding="UTF-8"?>
2017-07-26 20:01:25 +03:00
<!DOCTYPE html>
2013-05-03 18:25:37 +04:00
< html xmlns = "http://www.w3.org/1999/xhtml" >
< body >
2011-07-13 19:13:42 +04:00
< h1 > Microsoft Hyper-V hypervisor driver< / h1 >
< ul id = "toc" > < / ul >
< p >
2020-11-09 11:43:12 +03:00
The libvirt Microsoft Hyper-V driver can manage Hyper-V 2012 R2 and newer.
2011-07-13 19:13:42 +04:00
< / p >
2017-07-26 17:52:42 +03:00
< h2 > < a id = "project" > Project Links< / a > < / h2 >
2011-07-13 19:13:42 +04:00
< ul >
< li >
The < a href = "http://www.microsoft.com/hyper-v-server/" > Microsoft Hyper-V< / a >
hypervisor
< / li >
< / ul >
2017-07-26 17:52:42 +03:00
< h2 > < a id = "uri" > Connections to the Microsoft Hyper-V driver< / a > < / h2 >
2011-07-13 19:13:42 +04:00
< p >
Some example remote connection URIs for the driver are:
< / p >
< pre >
hyperv://example-hyperv.com (over HTTPS)
hyperv://example-hyperv.com/?transport=http (over HTTP)
< / pre >
< p >
< strong > Note< / strong > : In contrast to other drivers, the Hyper-V driver
is a client-side-only driver. It connects to the Hyper-V server using
WS-Management over HTTP(S). Therefore, the
< a href = "remote.html" > remote transport mechanism< / a > provided by the
remote driver and libvirtd will not work, and you cannot use URIs like
< code > hyperv+ssh://example.com< / code > .
< / p >
2017-07-26 17:52:42 +03:00
< h3 > < a id = "uriformat" > URI Format< / a > < / h3 >
2011-07-13 19:13:42 +04:00
< p >
URIs have this general form (< code > [...]< / code > marks an optional part).
< / p >
< pre >
hyperv://[username@]hostname[:port]/[?extraparameters]
< / pre >
< p >
The default HTTPS ports is 5986. If the port parameter is given, it
overrides the default port.
< / p >
2017-07-26 17:52:42 +03:00
< h4 > < a id = "extraparams" > Extra parameters< / a > < / h4 >
2011-07-13 19:13:42 +04:00
< p >
Extra parameters can be added to a URI as part of the query string
(the part following < code > ?< / code > ). A single parameter is formed by a
< code > name=value< / code > pair. Multiple parameters are separated by
< code > & < / code > .
< / p >
< pre >
?transport=http
< / pre >
< p >
The driver understands the extra parameters shown below.
< / p >
< table class = "top_table" >
< tr >
< th > Name< / th >
< th > Values< / th >
< th > Meaning< / th >
< / tr >
< tr >
< td >
< code > transport< / code >
< / td >
< td >
< code > http< / code > or < code > https< / code >
< / td >
< td >
Overrides the default HTTPS transport. The default HTTP port
is 5985.
< / td >
< / tr >
< / table >
2017-07-26 17:52:42 +03:00
< h3 > < a id = "auth" > Authentication< / a > < / h3 >
2011-07-13 19:13:42 +04:00
< p >
In order to perform any useful operation the driver needs to log into
the Hyper-V server. Therefore, only < code > virConnectOpenAuth< / code > can
be used to connect to an Hyper-V server, < code > virConnectOpen< / code > and
< code > virConnectOpenReadOnly< / code > don't work.
To log into an Hyper-V server the driver will request credentials using
the callback passed to the < code > virConnectOpenAuth< / code > function.
The driver passes the hostname as challenge parameter to the callback.
< / p >
< p >
< strong > Note< / strong > : Currently only < code > Basic< / code > authentication
is supported by libvirt. This method is disabled by default on the
Hyper-V server and can be enabled via the WinRM commandline tool.
< / p >
< pre >
winrm set winrm/config/service/auth @{Basic="true"}
< / pre >
< p >
To allow < code > Basic< / code > authentication with HTTP transport WinRM
needs to allow unencrypted communication. This can be enabled via the
WinRM commandline tool. However, this is not the recommended
communication mode.
< / p >
< pre >
winrm set winrm/config/service @{AllowUnencrypted="true"}
< / pre >
2020-10-05 19:20:13 +03:00
< h2 > < a id = "versions" > Version Numbers< / a > < / h2 >
< p >
Since Microsoft's build numbers are almost always over 1000, this driver
needs to pack the value differently compared to the format defined by
< code > virConnectGetVersion< / code > .
To preserve all of the digits, the following format is used:
< / p >
< pre > major * 100000000 + minor * 1000000 + micro< / pre >
< p >
This results in < code > virsh version< / code > producing unexpected output.
< / p >
< table class = "top_table" >
< thead >
< th > Windows Release< / th >
< th > Kernel Version< / th >
< th > libvirt Representation< / th >
< / thead >
< tr >
< td > Windows Server 2012 R2< / td >
< td > 6.3.9600< / td >
< td > 603.9.600< / td >
< / tr >
< tr >
< td > Windows Server 2016< / td >
< td > 10.0.14393< / td >
< td > 1000.14.393< / td >
< / tr >
< tr >
< td > Windows Server 2019< / td >
< td > 10.0.17763< / td >
< td > 1000.17.763< / td >
< / tr >
< / table >
2011-07-13 19:13:42 +04:00
< / body > < / html >