File: drvhyperv.html.in

package info (click to toggle)
libvirt 7.0.0-3%2Bdeb11u3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 145,532 kB
  • sloc: ansic: 502,645; xml: 180,512; python: 8,627; sh: 3,992; perl: 2,768; makefile: 509; javascript: 116; cpp: 22
file content (150 lines) | stat: -rw-r--r-- 4,804 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <body>
    <h1>Microsoft Hyper-V hypervisor driver</h1>
    <ul id="toc"></ul>
    <p>
        The libvirt Microsoft Hyper-V driver can manage Hyper-V 2012 R2 and newer.
    </p>


    <h2><a id="project">Project Links</a></h2>
    <ul>
      <li>
        The <a href="http://www.microsoft.com/hyper-v-server/">Microsoft Hyper-V</a>
        hypervisor
      </li>
    </ul>


    <h2><a id="uri">Connections to the Microsoft Hyper-V driver</a></h2>
    <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>


    <h3><a id="uriformat">URI Format</a></h3>
    <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>


    <h4><a id="extraparams">Extra parameters</a></h4>
    <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>&amp;</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>


    <h3><a id="auth">Authentication</a></h3>
    <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>


    <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>


</body></html>