diff --git a/docs/drvhyperv.html.in b/docs/drvhyperv.html.in deleted file mode 100644 index bce4e4128b..0000000000 --- a/docs/drvhyperv.html.in +++ /dev/null @@ -1,150 +0,0 @@ - - - - -

Microsoft Hyper-V hypervisor driver

- -

- The libvirt Microsoft Hyper-V driver can manage Hyper-V 2012 R2 and newer. -

- - -

Project Links

- - - -

Connections to the Microsoft Hyper-V driver

-

- Some example remote connection URIs for the driver are: -

-
-hyperv://example-hyperv.com                  (over HTTPS)
-hyperv://example-hyperv.com/?transport=http  (over HTTP)
-
-

- Note: 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 - remote transport mechanism provided by the - remote driver and libvirtd will not work, and you cannot use URIs like - hyperv+ssh://example.com. -

- - -

URI Format

-

- URIs have this general form ([...] marks an optional part). -

-
-hyperv://[username@]hostname[:port]/[?extraparameters]
-
-

- The default HTTPS ports is 5986. If the port parameter is given, it - overrides the default port. -

- - -

Extra parameters

-

- Extra parameters can be added to a URI as part of the query string - (the part following ?). A single parameter is formed by a - name=value pair. Multiple parameters are separated by - &. -

-
-?transport=http
-
-

- The driver understands the extra parameters shown below. -

- - - - - - - - - - - -
NameValuesMeaning
- transport - - http or https - - Overrides the default HTTPS transport. The default HTTP port - is 5985. -
- - -

Authentication

-

- In order to perform any useful operation the driver needs to log into - the Hyper-V server. Therefore, only virConnectOpenAuth can - be used to connect to an Hyper-V server, virConnectOpen and - virConnectOpenReadOnly don't work. - To log into an Hyper-V server the driver will request credentials using - the callback passed to the virConnectOpenAuth function. - The driver passes the hostname as challenge parameter to the callback. -

-

- Note: Currently only Basic 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. -

-
-winrm set winrm/config/service/auth @{Basic="true"}
-
-

- To allow Basic 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. -

-
-winrm set winrm/config/service @{AllowUnencrypted="true"}
-
- - -

Version Numbers

-

- Since Microsoft's build numbers are almost always over 1000, this driver - needs to pack the value differently compared to the format defined by - virConnectGetVersion. - To preserve all of the digits, the following format is used: -

-
major * 100000000 + minor * 1000000 + micro
-

- This results in virsh version producing unexpected output. -

- - - - - - - - - - - - - - - - - - - - - -
Windows ReleaseKernel Versionlibvirt Representation
Windows Server 2012 R26.3.9600603.9.600
Windows Server 201610.0.143931000.14.393
Windows Server 201910.0.177631000.17.763
- - - diff --git a/docs/drvhyperv.rst b/docs/drvhyperv.rst new file mode 100644 index 0000000000..17d620f29c --- /dev/null +++ b/docs/drvhyperv.rst @@ -0,0 +1,121 @@ +=================================== +Microsoft Hyper-V hypervisor driver +=================================== + +.. contents:: + +The libvirt Microsoft Hyper-V driver can manage Hyper-V 2012 R2 and newer. + +Project Links +------------- + +- The `Microsoft Hyper-V `__ + hypervisor + +Connections to the Microsoft Hyper-V driver +------------------------------------------- + +Some example remote connection URIs for the driver are: + +:: + + hyperv://example-hyperv.com (over HTTPS) + hyperv://example-hyperv.com/?transport=http (over HTTP) + +**Note**: 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 `remote transport mechanism `__ provided by the +remote driver and libvirtd will not work, and you cannot use URIs like +``hyperv+ssh://example.com``. + +URI Format +~~~~~~~~~~ + +URIs have this general form (``[...]`` marks an optional part). + +:: + + hyperv://[username@]hostname[:port]/[?extraparameters] + +The default HTTPS ports is 5986. If the port parameter is given, it overrides +the default port. + +Extra parameters +^^^^^^^^^^^^^^^^ + +Extra parameters can be added to a URI as part of the query string (the part +following ``?``). A single parameter is formed by a ``name=value`` pair. +Multiple parameters are separated by ``&``. + +:: + + ?transport=http + +The driver understands the extra parameters shown below. + ++---------------+-----------------------+-------------------------------------+ +| Name | Values | Meaning | ++===============+=======================+=====================================+ +| ``transport`` | ``http`` or ``https`` | Overrides the default HTTPS | +| | | transport. The default HTTP port is | +| | | 5985. | ++---------------+-----------------------+-------------------------------------+ + +Authentication +~~~~~~~~~~~~~~ + +In order to perform any useful operation the driver needs to log into the +Hyper-V server. Therefore, only ``virConnectOpenAuth`` can be used to connect to +an Hyper-V server, ``virConnectOpen`` and ``virConnectOpenReadOnly`` don't work. +To log into an Hyper-V server the driver will request credentials using the +callback passed to the ``virConnectOpenAuth`` function. The driver passes the +hostname as challenge parameter to the callback. + +**Note**: Currently only ``Basic`` 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. + +:: + + winrm set winrm/config/service/auth @{Basic="true"} + +To allow ``Basic`` 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. + +:: + + winrm set winrm/config/service @{AllowUnencrypted="true"} + +Version Numbers +--------------- + +Since Microsoft's build numbers are almost always over 1000, this driver needs +to pack the value differently compared to the format defined by +``virConnectGetVersion``. To preserve all of the digits, the following format is +used: + +:: + + major * 100000000 + minor * 1000000 + micro + +This results in ``virsh version`` producing unexpected output. + +.. list-table:: + :header-rows: 1 + + * - Windows Release + - Kernel Version + - libvirt Representation + + * - Windows Server 2012 R2 + - 6.3.9600 + - 603.9.600 + + * - Windows Server 2016 + - 10.0.14393 + - 1000.14.393 + + * - Windows Server 2019 + - 10.0.17763 + - 1000.17.763 diff --git a/docs/meson.build b/docs/meson.build index 0465c22274..cfbde2a58d 100644 --- a/docs/meson.build +++ b/docs/meson.build @@ -22,7 +22,6 @@ docs_html_in_files = [ 'csharp', 'dbus', 'docs', - 'drvhyperv', 'drvlxc', 'drvnodedev', 'drvopenvz', @@ -80,6 +79,7 @@ docs_rst_files = [ 'drvbhyve', 'drvch', 'drvesx', + 'drvhyperv', 'drvqemu', 'errors', 'formatbackup',