1 # Master configuration file for the QEMU driver.
2 # All settings described here are optional - if omitted, sensible
3 # defaults are used.
4
5 # Use of TLS requires that x509 certificates be issued. The default is
6 # to keep them in /etc/pki/qemu. This directory must contain
7 #
8 # ca-cert.pem - the CA master certificate
9 # server-cert.pem - the server certificate signed with ca-cert.pem
10 # server-key.pem - the server private key
11 #
12 # and optionally may contain
13 #
14 # dh-params.pem - the DH params configuration file
15 #
16 # If the directory does not exist, libvirtd will fail to start. If the
17 # directory doesn't contain the necessary files, QEMU domains will fail
18 # to start if they are configured to use TLS.
19 #
20 # In order to overwrite the default path alter the following. This path
21 # definition will be used as the default path for other *_tls_x509_cert_dir
22 # configuration settings if their default path does not exist or is not
23 # specifically set.
24 #
25 #default_tls_x509_cert_dir = "/etc/pki/qemu"
26
27
28 # The default TLS configuration only uses certificates for the server
29 # allowing the client to verify the server's identity and establish
30 # an encrypted channel.
31 #
32 # It is possible to use x509 certificates for authentication too, by
33 # issuing an x509 certificate to every client who needs to connect.
34 #
35 # Enabling this option will reject any client who does not have a
36 # certificate signed by the CA in /etc/pki/qemu/ca-cert.pem
37 #
38 # The default_tls_x509_cert_dir directory must also contain
39 #
40 # client-cert.pem - the client certificate signed with the ca-cert.pem
41 # client-key.pem - the client private key
42 #
43 # If this option is supplied it provides the default for the "_verify" option
44 # of specific TLS users such as vnc, backups, migration, etc. The specific
45 # users of TLS may override this by setting the specific "_verify" option.
46 #
47 # When not supplied the specific TLS users provide their own defaults.
48 #
49 #default_tls_x509_verify = 1
50
51 #
52 # Libvirt assumes the server-key.pem file is unencrypted by default.
53 # To use an encrypted server-key.pem file, the password to decrypt
54 # the PEM file is required. This can be provided by creating a secret
55 # object in libvirt and then to uncomment this setting to set the UUID
56 # of the secret.
57 #
58 # NB This default all-zeros UUID will not work. Replace it with the
59 # output from the UUID for the TLS secret from a 'virsh secret-list'
60 # command and then uncomment the entry
61 #
62 #default_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
63
64
65 # VNC is configured to listen on 127.0.0.1 by default.
66 # To make it listen on all public interfaces, uncomment
67 # this next option.
68 #
69 # NB, strong recommendation to enable TLS + x509 certificate
70 # verification when allowing public access
71 #
72 #vnc_listen = "0.0.0.0"
73
74 # Enable this option to have VNC served over an automatically created
75 # unix socket. This prevents unprivileged access from users on the
76 # host machine, though most VNC clients do not support it.
77 #
78 # This will only be enabled for VNC configurations that have listen
79 # type=address but without any address specified. This setting takes
80 # preference over vnc_listen.
81 #
82 #vnc_auto_unix_socket = 1
83
84 # Enable use of TLS encryption on the VNC server. This requires
85 # a VNC client which supports the VeNCrypt protocol extension.
86 # Examples include vinagre, virt-viewer, virt-manager and vencrypt
87 # itself. UltraVNC, RealVNC, TightVNC do not support this
88 #
89 # It is necessary to setup CA and issue a server certificate
90 # before enabling this.
91 #
92 #vnc_tls = 1
93
94
95 # In order to override the default TLS certificate location for
96 # vnc certificates, supply a valid path to the certificate directory.
97 # If the provided path does not exist, libvirtd will fail to start.
98 # If the path is not provided, but vnc_tls = 1, then the
99 # default_tls_x509_cert_dir path will be used.
100 #
101 #vnc_tls_x509_cert_dir = "/etc/pki/libvirt-vnc"
102
103
104 # Uncomment and use the following option to override the default secret
105 # UUID provided in the default_tls_x509_secret_uuid parameter.
106 #
107 #vnc_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
108
109
110 # The default TLS configuration only uses certificates for the server
111 # allowing the client to verify the server's identity and establish
112 # an encrypted channel.
113 #
114 # It is possible to use x509 certificates for authentication too, by
115 # issuing an x509 certificate to every client who needs to connect.
116 #
117 # Enabling this option will reject any client that does not have a
118 # certificate (as described in default_tls_x509_verify) signed by the
119 # CA in the vnc_tls_x509_cert_dir (or default_tls_x509_cert_dir).
120 #
121 # If this option is not supplied, it will be set to the value of
122 # "default_tls_x509_verify". If "default_tls_x509_verify" is not supplied either,
123 # the default is "0".
124 #
125 #vnc_tls_x509_verify = 1
126
127
128 # The default VNC password. Only 8 bytes are significant for
129 # VNC passwords. This parameter is only used if the per-domain
130 # XML config does not already provide a password. To allow
131 # access without passwords, leave this commented out. An empty
132 # string will still enable passwords, but be rejected by QEMU,
133 # effectively preventing any use of VNC. Obviously change this
134 # example here before you set this.
135 #
136 #vnc_password = "XYZ12345"
137
138
139 # Enable use of SASL encryption on the VNC server. This requires
140 # a VNC client which supports the SASL protocol extension.
141 # Examples include vinagre, virt-viewer and virt-manager
142 # itself. UltraVNC, RealVNC, TightVNC do not support this
143 #
144 # It is necessary to configure /etc/sasl2/qemu.conf to choose
145 # the desired SASL plugin (eg, GSSPI for Kerberos)
146 #
147 #vnc_sasl = 1
148
149
150 # The default SASL configuration file is located in /etc/sasl2/
151 # When running libvirtd unprivileged, it may be desirable to
152 # override the configs in this location. Set this parameter to
153 # point to the directory, and create a qemu.conf in that location
154 #
155 #vnc_sasl_dir = "/some/directory/sasl2"
156
157
158 # QEMU implements an extension for providing audio over a VNC connection,
159 # though if your VNC client does not support it, your only chance for getting
160 # sound output is through regular audio backends. By default, libvirt will
161 # disable all QEMU sound backends if using VNC, since they can cause
162 # permissions issues. Enabling this option will make libvirtd honor the
163 # QEMU_AUDIO_DRV environment variable when using VNC.
164 #
165 #vnc_allow_host_audio = 0
166
167
168
169 # SPICE is configured to listen on 127.0.0.1 by default.
170 # To make it listen on all public interfaces, uncomment
171 # this next option.
172 #
173 # NB, strong recommendation to enable TLS + x509 certificate
174 # verification when allowing public access
175 #
176 #spice_listen = "0.0.0.0"
177
178
179 # Enable use of TLS encryption on the SPICE server.
180 #
181 # It is necessary to setup CA and issue a server certificate
182 # before enabling this.
183 #
184 #spice_tls = 1
185
186
187 # In order to override the default TLS certificate location for
188 # spice certificates, supply a valid path to the certificate directory.
189 # If the provided path does not exist, libvirtd will fail to start.
190 # If the path is not provided, but spice_tls = 1, then the
191 # default_tls_x509_cert_dir path will be used.
192 #
193 #spice_tls_x509_cert_dir = "/etc/pki/libvirt-spice"
194
195
196 # Enable this option to have SPICE served over an automatically created
197 # unix socket. This prevents unprivileged access from users on the
198 # host machine.
199 #
200 # This will only be enabled for SPICE configurations that have listen
201 # type=address but without any address specified. This setting takes
202 # preference over spice_listen.
203 #
204 #spice_auto_unix_socket = 1
205
206
207 # The default SPICE password. This parameter is only used if the
208 # per-domain XML config does not already provide a password. To
209 # allow access without passwords, leave this commented out. An
210 # empty string will still enable passwords, but be rejected by
211 # QEMU, effectively preventing any use of SPICE. Obviously change
212 # this example here before you set this.
213 #
214 #spice_password = "XYZ12345"
215
216
217 # Enable use of SASL encryption on the SPICE server. This requires
218 # a SPICE client which supports the SASL protocol extension.
219 #
220 # It is necessary to configure /etc/sasl2/qemu.conf to choose
221 # the desired SASL plugin (eg, GSSPI for Kerberos)
222 #
223 #spice_sasl = 1
224
225 # The default SASL configuration file is located in /etc/sasl2/
226 # When running libvirtd unprivileged, it may be desirable to
227 # override the configs in this location. Set this parameter to
228 # point to the directory, and create a qemu.conf in that location
229 #
230 #spice_sasl_dir = "/some/directory/sasl2"
231
232 # Enable use of TLS encryption on the chardev TCP transports.
233 #
234 # It is necessary to setup CA and issue a server certificate
235 # before enabling this.
236 #
237 #chardev_tls = 1
238
239
240 # In order to override the default TLS certificate location for character
241 # device TCP certificates, supply a valid path to the certificate directory.
242 # If the provided path does not exist, libvirtd will fail to start.
243 # If the path is not provided, but chardev_tls = 1, then the
244 # default_tls_x509_cert_dir path will be used.
245 #
246 #chardev_tls_x509_cert_dir = "/etc/pki/libvirt-chardev"
247
248
249 # The default TLS configuration only uses certificates for the server
250 # allowing the client to verify the server's identity and establish
251 # an encrypted channel.
252 #
253 # It is possible to use x509 certificates for authentication too, by
254 # issuing an x509 certificate to every client who needs to connect.
255 #
256 # Enabling this option will reject any client that does not have a
257 # certificate (as described in default_tls_x509_verify) signed by the
258 # CA in the chardev_tls_x509_cert_dir (or default_tls_x509_cert_dir).
259 #
260 # If this option is not supplied, it will be set to the value of
261 # "default_tls_x509_verify". If "default_tls_x509_verify" is not supplied either,
262 # the default is "1".
263 #
264 #chardev_tls_x509_verify = 1
265
266
267 # Uncomment and use the following option to override the default secret
268 # UUID provided in the default_tls_x509_secret_uuid parameter.
269 #
270 # NB This default all-zeros UUID will not work. Replace it with the
271 # output from the UUID for the TLS secret from a 'virsh secret-list'
272 # command and then uncomment the entry
273 #
274 #chardev_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
275
276
277 # Enable use of TLS encryption for all VxHS network block devices that
278 # don't specifically disable.
279 #
280 # When the VxHS network block device server is set up appropriately,
281 # x509 certificates are required for authentication between the clients
282 # (qemu processes) and the remote VxHS server.
283 #
284 # It is necessary to setup CA and issue the client certificate before
285 # enabling this.
286 #
287 #vxhs_tls = 1
288
289
290 # In order to override the default TLS certificate location for VxHS
291 # backed storage, supply a valid path to the certificate directory.
292 # This is used to authenticate the VxHS block device clients to the VxHS
293 # server.
294 #
295 # If the provided path does not exist, libvirtd will fail to start.
296 # If the path is not provided, but vxhs_tls = 1, then the
297 # default_tls_x509_cert_dir path will be used.
298 #
299 # VxHS block device clients expect the client certificate and key to be
300 # present in the certificate directory along with the CA master certificate.
301 # If using the default environment, default_tls_x509_verify must be configured.
302 # Since this is only a client the server-key.pem certificate is not needed.
303 # Thus a VxHS directory must contain the following:
304 #
305 # ca-cert.pem - the CA master certificate
306 # client-cert.pem - the client certificate signed with the ca-cert.pem
307 # client-key.pem - the client private key
308 #
309 #vxhs_tls_x509_cert_dir = "/etc/pki/libvirt-vxhs"
310
311
312 # Uncomment and use the following option to override the default secret
313 # UUID provided in the default_tls_x509_secret_uuid parameter.
314 #
315 # NB This default all-zeros UUID will not work. Replace it with the
316 # output from the UUID for the TLS secret from a 'virsh secret-list'
317 # command and then uncomment the entry
318 #
319 #vxhs_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
320
321
322 # Enable use of TLS encryption for all NBD disk devices that don't
323 # specifically disable it.
324 #
325 # When the NBD server is set up appropriately, x509 certificates are required
326 # for authentication between the client and the remote NBD server.
327 #
328 # It is necessary to setup CA and issue the client certificate before
329 # enabling this.
330 #
331 #nbd_tls = 1
332
333
334 # In order to override the default TLS certificate location for NBD
335 # backed storage, supply a valid path to the certificate directory.
336 # This is used to authenticate the NBD block device clients to the NBD
337 # server.
338 #
339 # If the provided path does not exist, libvirtd will fail to start.
340 # If the path is not provided, but nbd_tls = 1, then the
341 # default_tls_x509_cert_dir path will be used.
342 #
343 # NBD block device clients expect the client certificate and key to be
344 # present in the certificate directory along with the CA certificate.
345 # Since this is only a client the server-key.pem certificate is not needed.
346 # Thus a NBD directory must contain the following:
347 #
348 # ca-cert.pem - the CA master certificate
349 # client-cert.pem - the client certificate signed with the ca-cert.pem
350 # client-key.pem - the client private key
351 #
352 #nbd_tls_x509_cert_dir = "/etc/pki/libvirt-nbd"
353
354
355 # Uncomment and use the following option to override the default secret
356 # UUID provided in the default_tls_x509_secret_uuid parameter.
357 #
358 # NB This default all-zeros UUID will not work. Replace it with the
359 # output from the UUID for the TLS secret from a 'virsh secret-list'
360 # command and then uncomment the entry
361 #
362 #nbd_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
363
364
365 # In order to override the default TLS certificate location for migration
366 # certificates, supply a valid path to the certificate directory. If the
367 # provided path does not exist, libvirtd will fail to start. If the path is
368 # not provided, but TLS-encrypted migration is requested, then the
369 # default_tls_x509_cert_dir path will be used. Once/if a default certificate is
370 # enabled/defined, migration will then be able to use the certificate via
371 # migration API flags.
372 #
373 #migrate_tls_x509_cert_dir = "/etc/pki/libvirt-migrate"
374
375
376 # The default TLS configuration only uses certificates for the server
377 # allowing the client to verify the server's identity and establish
378 # an encrypted channel.
379 #
380 # It is possible to use x509 certificates for authentication too, by
381 # issuing an x509 certificate to every client who needs to connect.
382 #
383 # Enabling this option will reject any client that does not have a
384 # certificate (as described in default_tls_x509_verify) signed by the
385 # CA in the migrate_tls_x509_cert_dir (or default_tls_x509_cert_dir).
386 #
387 # If this option is not supplied, it will be set to the value of
388 # "default_tls_x509_verify". If "default_tls_x509_verify" is not supplied
389 # either, the default is "1".
390 #
391 #migrate_tls_x509_verify = 1
392
393
394 # Uncomment and use the following option to override the default secret
395 # UUID provided in the default_tls_x509_secret_uuid parameter.
396 #
397 # NB This default all-zeros UUID will not work. Replace it with the
398 # output from the UUID for the TLS secret from a 'virsh secret-list'
399 # command and then uncomment the entry
400 #
401 #migrate_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
402
403
404 # By default TLS is requested using the VIR_MIGRATE_TLS flag, thus not requested
405 # automatically. Setting 'migate_tls_force' to "1" will prevent any migration
406 # which is not using VIR_MIGRATE_TLS to ensure higher level of security in
407 # deployments with TLS.
408 #
409 #migrate_tls_force = 0
410
411
412 # In order to override the default TLS certificate location for backup NBD
413 # server certificates, supply a valid path to the certificate directory. If the
414 # provided path does not exist, libvirtd will fail to start. If the path is
415 # not provided, but TLS-encrypted backup is requested, then the
416 # default_tls_x509_cert_dir path will be used.
417 #
418 #backup_tls_x509_cert_dir = "/etc/pki/libvirt-backup"
419
420
421 # The default TLS configuration only uses certificates for the server
422 # allowing the client to verify the server's identity and establish
423 # an encrypted channel.
424 #
425 # It is possible to use x509 certificates for authentication too, by
426 # issuing an x509 certificate to every client who needs to connect.
427 #
428 # Enabling this option will reject any client that does not have a
429 # certificate (as described in default_tls_x509_verify) signed by the
430 # CA in the backup_tls_x509_cert_dir (or default_tls_x509_cert_dir).
431 #
432 # If this option is not supplied, it will be set to the value of
433 # "default_tls_x509_verify". If "default_tls_x509_verify" is not supplied either,
434 # the default is "1".
435 #
436 #backup_tls_x509_verify = 1
437
438
439 # Uncomment and use the following option to override the default secret
440 # UUID provided in the default_tls_x509_secret_uuid parameter.
441 #
442 # NB This default all-zeros UUID will not work. Replace it with the
443 # output from the UUID for the TLS secret from a 'virsh secret-list'
444 # command and then uncomment the entry
445 #
446 #backup_tls_x509_secret_uuid = "00000000-0000-0000-0000-000000000000"
447
448
449 # By default, if no graphical front end is configured, libvirt will disable
450 # QEMU audio output since directly talking to alsa/pulseaudio may not work
451 # with various security settings. If you know what you're doing, enable
452 # the setting below and libvirt will passthrough the QEMU_AUDIO_DRV
453 # environment variable when using nographics.
454 #
455 #nographics_allow_host_audio = 1
456
457
458 # Override the port for creating both VNC and SPICE sessions (min).
459 # This defaults to 5900 and increases for consecutive sessions
460 # or when ports are occupied, until it hits the maximum.
461 #
462 # Minimum must be greater than or equal to 5900 as lower number would
463 # result into negative vnc display number.
464 #
465 # Maximum must be less than 65536, because higher numbers do not make
466 # sense as a port number.
467 #
468 #remote_display_port_min = 5900
469 #remote_display_port_max = 65535
470
471 # VNC WebSocket port policies, same rules apply as with remote display
472 # ports. VNC WebSockets use similar display <-> port mappings, with
473 # the exception being that ports start from 5700 instead of 5900.
474 #
475 #remote_websocket_port_min = 5700
476 #remote_websocket_port_max = 65535
477
478 # The default security driver is SELinux. If SELinux is disabled
479 # on the host, then the security driver will automatically disable
480 # itself. If you wish to disable QEMU SELinux security driver while
481 # leaving SELinux enabled for the host in general, then set this
482 # to 'none' instead. It's also possible to use more than one security
483 # driver at the same time, for this use a list of names separated by
484 # comma and delimited by square brackets. For example:
485 #
486 # security_driver = [ "selinux", "apparmor" ]
487 #
488 # Notes: The DAC security driver is always enabled; as a result, the
489 # value of security_driver cannot contain "dac". The value "none" is
490 # a special value; security_driver can be set to that value in
491 # isolation, but it cannot appear in a list of drivers.
492 #
493 #security_driver = "selinux"
494
495 # If set to non-zero, then the default security labeling
496 # will make guests confined. If set to zero, then guests
497 # will be unconfined by default. Defaults to 1.
498 #security_default_confined = 1
499
500 # If set to non-zero, then attempts to create unconfined
501 # guests will be blocked. Defaults to 0.
502 #security_require_confined = 1
503
504 # The user for QEMU processes run by the system instance. It can be
505 # specified as a user name or as a user id. The qemu driver will try to
506 # parse this value first as a name and then, if the name doesn't exist,
507 # as a user id.
508 #
509 # Since a sequence of digits is a valid user name, a leading plus sign
510 # can be used to ensure that a user id will not be interpreted as a user
511 # name.
512 #
513 # Some examples of valid values are:
514 #
515 # user = "qemu" # A user named "qemu"
516 # user = "+0" # Super user (uid=0)
517 # user = "100" # A user named "100" or a user with uid=100
518 #
519 user = "libvirt"
520
521 # The group for QEMU processes run by the system instance. It can be
522 # specified in a similar way to user.
523 group = "libvirt"
524
525 # Whether libvirt should dynamically change file ownership
526 # to match the configured user/group above. Defaults to 1.
527 # Set to 0 to disable file ownership changes.
528 #dynamic_ownership = 1
529
530 # Whether libvirt should remember and restore the original
531 # ownership over files it is relabeling. Defaults to 1, set
532 # to 0 to disable the feature.
533 #remember_owner = 1
534
535 # What cgroup controllers to make use of with QEMU guests
536 #
537 # - 'cpu' - use for scheduler tunables
538 # - 'devices' - use for device access control
539 # - 'memory' - use for memory tunables
540 # - 'blkio' - use for block devices I/O tunables
541 # - 'cpuset' - use for CPUs and memory nodes
542 # - 'cpuacct' - use for CPUs statistics.
543 #
544 # NB, even if configured here, they won't be used unless
545 # the administrator has mounted cgroups, e.g.:
546 #
547 # mkdir /dev/cgroup
548 # mount -t cgroup -o devices,cpu,memory,blkio,cpuset none /dev/cgroup
549 #
550 # They can be mounted anywhere, and different controllers
551 # can be mounted in different locations. libvirt will detect
552 # where they are located.
553 #
554 #cgroup_controllers = [ "cpu", "devices", "memory", "blkio", "cpuset", "cpuacct" ]
555
556 # This is the basic set of devices allowed / required by
557 # all virtual machines.
558 #
559 # As well as this, any configured block backed disks,
560 # all sound device, and all PTY devices are allowed.
561 #
562 # This will only need setting if newer QEMU suddenly
563 # wants some device we don't already know about.
564 #
565 #cgroup_device_acl = [
566 # "/dev/null", "/dev/full", "/dev/zero",
567 # "/dev/random", "/dev/urandom",
568 # "/dev/ptmx", "/dev/kvm"
569 #]
570 #
571 # RDMA migration requires the following extra files to be added to the list:
572 # "/dev/infiniband/rdma_cm",
573 # "/dev/infiniband/issm0",
574 # "/dev/infiniband/issm1",
575 # "/dev/infiniband/umad0",
576 # "/dev/infiniband/umad1",
577 # "/dev/infiniband/uverbs0"
578
579
580 # The default format for QEMU/KVM guest save images is raw; that is, the
581 # memory from the domain is dumped out directly to a file. If you have
582 # guests with a large amount of memory, however, this can take up quite
583 # a bit of space. If you would like to compress the images while they
584 # are being saved to disk, you can also set "lzop", "gzip", "bzip2", or "xz"
585 # for save_image_format. Note that this means you slow down the process of
586 # saving a domain in order to save disk space; the list above is in descending
587 # order by performance and ascending order by compression ratio.
588 #
589 # save_image_format is used when you use 'virsh save' or 'virsh managedsave'
590 # at scheduled saving, and it is an error if the specified save_image_format
591 # is not valid, or the requested compression program can't be found.
592 #
593 # dump_image_format is used when you use 'virsh dump' at emergency
594 # crashdump, and if the specified dump_image_format is not valid, or
595 # the requested compression program can't be found, this falls
596 # back to "raw" compression.
597 #
598 # snapshot_image_format specifies the compression algorithm of the memory save
599 # image when an external snapshot of a domain is taken. This does not apply
600 # on disk image format. It is an error if the specified format isn't valid,
601 # or the requested compression program can't be found.
602 #
603 #save_image_format = "raw"
604 #dump_image_format = "raw"
605 #snapshot_image_format = "raw"
606
607 # When a domain is configured to be auto-dumped when libvirtd receives a
608 # watchdog event from qemu guest, libvirtd will save dump files in directory
609 # specified by auto_dump_path. Default value is /var/lib/libvirt/qemu/dump
610 #
611 #auto_dump_path = "/var/lib/libvirt/qemu/dump"
612
613 # When a domain is configured to be auto-dumped, enabling this flag
614 # has the same effect as using the VIR_DUMP_BYPASS_CACHE flag with the
615 # virDomainCoreDump API. That is, the system will avoid using the
616 # file system cache while writing the dump file, but may cause
617 # slower operation.
618 #
619 #auto_dump_bypass_cache = 0
620
621 # When a domain is configured to be auto-started, enabling this flag
622 # has the same effect as using the VIR_DOMAIN_START_BYPASS_CACHE flag
623 # with the virDomainCreateWithFlags API. That is, the system will
624 # avoid using the file system cache when restoring any managed state
625 # file, but may cause slower operation.
626 #
627 #auto_start_bypass_cache = 0
628
629 # If provided by the host and a hugetlbfs mount point is configured,
630 # a guest may request huge page backing. When this mount point is
631 # unspecified here, determination of a host mount point in /proc/mounts
632 # will be attempted. Specifying an explicit mount overrides detection
633 # of the same in /proc/mounts. Setting the mount point to "" will
634 # disable guest hugepage backing. If desired, multiple mount points can
635 # be specified at once, separated by comma and enclosed in square
636 # brackets, for example:
637 #
638 # hugetlbfs_mount = ["/dev/hugepages2M", "/dev/hugepages1G"]
639 #
640 # The size of huge page served by specific mount point is determined by
641 # libvirt at the daemon startup.
642 #
643 # NB, within these mount points, guests will create memory backing
644 # files in a location of $MOUNTPOINT/libvirt/qemu
645 #
646 #hugetlbfs_mount = "/dev/hugepages"
647
648
649 # Path to the setuid helper for creating tap devices. This executable
650 # is used to create <source type='bridge'> interfaces when libvirtd is
651 # running unprivileged. libvirt invokes the helper directly, instead
652 # of using "-netdev bridge", for security reasons.
653 #bridge_helper = "/usr/libexec/qemu-bridge-helper"
654
655
656 # If enabled, libvirt will have QEMU set its process name to
657 # "qemu:VM_NAME", where VM_NAME is the name of the VM. The QEMU
658 # process will appear as "qemu:VM_NAME" in process listings and
659 # other system monitoring tools. By default, QEMU does not set
660 # its process title, so the complete QEMU command (emulator and
661 # its arguments) appear in process listings.
662 #
663 #set_process_name = 1
664
665
666 # If max_processes is set to a positive integer, libvirt will use
667 # it to set the maximum number of processes that can be run by qemu
668 # user. This can be used to override default value set by host OS.
669 # The same applies to max_files which sets the limit on the maximum
670 # number of opened files.
671 #
672 #max_processes = 0
673 #max_files = 0
674
675 # If max_threads_per_process is set to a positive integer, libvirt
676 # will use it to set the maximum number of threads that can be
677 # created by a qemu process. Some VM configurations can result in
678 # qemu processes with tens of thousands of threads. systemd-based
679 # systems typically limit the number of threads per process to
680 # 16k. max_threads_per_process can be used to override default
681 # limits in the host OS.
682 #
683 #max_threads_per_process = 0
684
685 # If max_core is set to a non-zero integer, then QEMU will be
686 # permitted to create core dumps when it crashes, provided its
687 # RAM size is smaller than the limit set.
688 #
689 # Be warned that the core dump will include a full copy of the
690 # guest RAM, if the 'dump_guest_core' setting has been enabled,
691 # or if the guest XML contains
692 #
693 # <memory dumpcore="on">...guest ram...</memory>
694 #
695 # If guest RAM is to be included, ensure the max_core limit
696 # is set to at least the size of the largest expected guest
697 # plus another 1GB for any QEMU host side memory mappings.
698 #
699 # As a special case it can be set to the string "unlimited" to
700 # to allow arbitrarily sized core dumps.
701 #
702 # By default the core dump size is set to 0 disabling all dumps
703 #
704 # Size is a positive integer specifying bytes or the
705 # string "unlimited"
706 #
707 #max_core = "unlimited"
708
709 # Determine if guest RAM is included in QEMU core dumps. By
710 # default guest RAM will be excluded if a new enough QEMU is
711 # present. Setting this to '1' will force guest RAM to always
712 # be included in QEMU core dumps.
713 #
714 # This setting will be ignored if the guest XML has set the
715 # dumpcore attribute on the <memory> element.
716 #
717 #dump_guest_core = 1
718
719 # mac_filter enables MAC addressed based filtering on bridge ports.
720 # This currently requires ebtables to be installed.
721 #
722 #mac_filter = 1
723
724
725 # By default, PCI devices below non-ACS switch are not allowed to be assigned
726 # to guests. By setting relaxed_acs_check to 1 such devices will be allowed to
727 # be assigned to guests.
728 #
729 #relaxed_acs_check = 1
730
731
732 # In order to prevent accidentally starting two domains that
733 # share one writable disk, libvirt offers two approaches for
734 # locking files. The first one is sanlock, the other one,
735 # virtlockd, is then our own implementation. Accepted values
736 # are "sanlock" and "lockd".
737 #
738 #lock_manager = "lockd"
739
740
741 # Set limit of maximum APIs queued on one domain. All other APIs
742 # over this threshold will fail on acquiring job lock. Specially,
743 # setting to zero turns this feature off.
744 # Note, that job lock is per domain.
745 #
746 #max_queued = 0
747
748 ###################################################################
749 # Keepalive protocol:
750 # This allows qemu driver to detect broken connections to remote
751 # libvirtd during peer-to-peer migration. A keepalive message is
752 # sent to the daemon after keepalive_interval seconds of inactivity
753 # to check if the daemon is still responding; keepalive_count is a
754 # maximum number of keepalive messages that are allowed to be sent
755 # to the daemon without getting any response before the connection
756 # is considered broken. In other words, the connection is
757 # automatically closed approximately after
758 # keepalive_interval * (keepalive_count + 1) seconds since the last
759 # message received from the daemon. If keepalive_interval is set to
760 # -1, qemu driver will not send keepalive requests during
761 # peer-to-peer migration; however, the remote libvirtd can still
762 # send them and source libvirtd will send responses. When
763 # keepalive_count is set to 0, connections will be automatically
764 # closed after keepalive_interval seconds of inactivity without
765 # sending any keepalive messages.
766 #
767 #keepalive_interval = 5
768 #keepalive_count = 5
769
770
771
772 # Use seccomp syscall filtering sandbox in QEMU.
773 # 1 == filter enabled, 0 == filter disabled
774 #
775 # Unless this option is disabled, QEMU will be run with
776 # a seccomp filter that stops it from executing certain
777 # syscalls.
778 #
779 #seccomp_sandbox = 1
780
781
782 # Override the listen address for all incoming migrations. Defaults to
783 # 0.0.0.0, or :: if both host and qemu are capable of IPv6.
784 #migration_address = "0.0.0.0"
785
786
787 # The default hostname or IP address which will be used by a migration
788 # source for transferring migration data to this host. The migration
789 # source has to be able to resolve this hostname and connect to it so
790 # setting "localhost" will not work. By default, the host's configured
791 # hostname is used.
792 #migration_host = "host.example.com"
793
794
795 # Override the port range used for incoming migrations.
796 #
797 # Minimum must be greater than 0, however when QEMU is not running as root,
798 # setting the minimum to be lower than 1024 will not work.
799 #
800 # Maximum must not be greater than 65535.
801 #
802 #migration_port_min = 49152
803 #migration_port_max = 49215
804
805
806
807 # Timestamp QEMU's log messages (if QEMU supports it)
808 #
809 # Defaults to 1.
810 #
811 #log_timestamp = 0
812
813
814 # Location of master nvram file
815 #
816 # This configuration option is obsolete. Libvirt will follow the
817 # QEMU firmware metadata specification to automatically locate
818 # firmware images. See docs/interop/firmware.json in the QEMU
819 # source tree. These metadata files are distributed alongside any
820 # firmware images intended for use with QEMU.
821 #
822 # NOTE: if ANY firmware metadata files are detected, this setting
823 # will be COMPLETELY IGNORED.
824 #
825 # ------------------------------------------
826 #
827 # When a domain is configured to use UEFI instead of standard
828 # BIOS it may use a separate storage for UEFI variables. If
829 # that's the case libvirt creates the variable store per domain
830 # using this master file as image. Each UEFI firmware can,
831 # however, have different variables store. Therefore the nvram is
832 # a list of strings when a single item is in form of:
833 # ${PATH_TO_UEFI_FW}:${PATH_TO_UEFI_VARS}.
834 # Later, when libvirt creates per domain variable store, this list is
835 # searched for the master image. The UEFI firmware can be called
836 # differently for different guest architectures. For instance, it's OVMF
837 # for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default
838 # follows this scheme.
839 #nvram = [
840 # "/usr/share/OVMF/OVMF_CODE.fd:/usr/share/OVMF/OVMF_VARS.fd",
841 # "/usr/share/OVMF/OVMF_CODE.secboot.fd:/usr/share/OVMF/OVMF_VARS.fd",
842 # "/usr/share/AAVMF/AAVMF_CODE.fd:/usr/share/AAVMF/AAVMF_VARS.fd",
843 # "/usr/share/AAVMF/AAVMF32_CODE.fd:/usr/share/AAVMF/AAVMF32_VARS.fd"
844 #]
845
846 # The backend to use for handling stdout/stderr output from
847 # QEMU processes.
848 #
849 # 'file': QEMU writes directly to a plain file. This is the
850 # historical default, but allows QEMU to inflict a
851 # denial of service attack on the host by exhausting
852 # filesystem space
853 #
854 # 'logd': QEMU writes to a pipe provided by virtlogd daemon.
855 # This is the current default, providing protection
856 # against denial of service by performing log file
857 # rollover when a size limit is hit.
858 #
859 #stdio_handler = "logd"
860
861 # QEMU gluster libgfapi log level, debug levels are 0-9, with 9 being the
862 # most verbose, and 0 representing no debugging output.
863 #
864 # The current logging levels defined in the gluster GFAPI are:
865 #
866 # 0 - None
867 # 1 - Emergency
868 # 2 - Alert
869 # 3 - Critical
870 # 4 - Error
871 # 5 - Warning
872 # 6 - Notice
873 # 7 - Info
874 # 8 - Debug
875 # 9 - Trace
876 #
877 # Defaults to 4
878 #
879 #gluster_debug_level = 9
880
881 # virtiofsd debug
882 #
883 # Whether to enable the debugging output of the virtiofsd daemon.
884 # Possible values are 0 or 1. Disabled by default.
885 #
886 #virtiofsd_debug = 1
887
888 # To enhance security, QEMU driver is capable of creating private namespaces
889 # for each domain started. Well, so far only "mount" namespace is supported. If
890 # enabled it means qemu process is unable to see all the devices on the system,
891 # only those configured for the domain in question. Libvirt then manages
892 # devices entries throughout the domain lifetime. This namespace is turned on
893 # by default.
894 #namespaces = [ "mount" ]
895
896 # This directory is used for memoryBacking source if configured as file.
897 # NOTE: big files will be stored here
898 #memory_backing_dir = "/var/lib/libvirt/qemu/ram"
899
900 # Path to the SCSI persistent reservations helper. This helper is
901 # used whenever <reservations/> are enabled for SCSI LUN devices.
902 #pr_helper = "/usr/bin/qemu-pr-helper"
903
904 # Path to the SLIRP networking helper.
905 #slirp_helper = "/usr/bin/slirp-helper"
906
907 # Path to the dbus-daemon
908 #dbus_daemon = "/usr/bin/dbus-daemon"
909
910 # User for the swtpm TPM Emulator
911 #
912 # Default is 'tss'; this is the same user that tcsd (TrouSerS) installs
913 # and uses; alternative is 'root'
914 #
915 #swtpm_user = "tss"
916 #swtpm_group = "tss"
917
918 # For debugging and testing purposes it's sometimes useful to be able to disable
919 # libvirt behaviour based on the capabilities of the qemu process. This option
920 # allows to do so. DO _NOT_ use in production and beaware that the behaviour
921 # may change across versions.
922 #
923 #capability_filters = [ "capname" ]
924
925 # 'deprecation_behavior' setting controls how the qemu process behaves towards
926 # deprecated commands and arguments used by libvirt.
927 #
928 # This setting is meant for developers and CI efforts to make it obvious when
929 # libvirt relies on fields which are deprecated so that it can be fixes as soon
930 # as possible.
931 #
932 # Possible options are:
933 # "none" - (default) qemu is supposed to accept and output deprecated fields
934 # and commands
935 # "omit" - qemu is instructed to omit deprecated fields on output, behaviour
936 # towards fields and commands from qemu is not changed
937 # "reject" - qemu is instructed to report an error if a deprecated command or
938 # field is used by libvirtd
939 # "crash" - qemu crashes when an deprecated command or field is used by libvirtd
940 #
941 # For both "reject" and "crash" qemu is instructed to omit any deprecated fields
942 # on output.
943 #
944 # The "reject" option is less harsh towards the VMs but some code paths ignore
945 # errors reported by qemu and thus it may not be obvious that a deprecated
946 # command/field was used, thus it's suggested to use the "crash" option instead.
947 #
948 # In cases when qemu doesn't support configuring the behaviour this setting is
949 # silently ignored to allow testing older qemu versions without having to
950 # reconfigure libvirtd.
951 #
952 # DO NOT use in production.
953 #
954 #deprecation_behavior = "none"
|