blob: 4229b9050957dd8b891629dc859ee391ae7f82d8 [file] [log] [blame]
Filip Pytloun4a72d792015-10-06 16:28:32 +02001
Aleš Komárek72152852017-04-11 13:48:48 +02002============
3Nova Formula
4============
Filip Pytloun4a72d792015-10-06 16:28:32 +02005
Jakub Pavlikfcf34f82016-05-20 09:35:51 +02006OpenStack Nova provides a cloud computing fabric controller, supporting a wide
7variety of virtualization technologies, including KVM, Xen, LXC, VMware, and
8more. In addition to its native API, it includes compatibility with the
9commonly encountered Amazon EC2 and S3 APIs.
Filip Pytloun4a72d792015-10-06 16:28:32 +020010
Aleš Komárek72152852017-04-11 13:48:48 +020011Sample Pillars
Filip Pytloun4a72d792015-10-06 16:28:32 +020012==============
13
14Controller nodes
15----------------
16
17Nova services on the controller node
18
19.. code-block:: yaml
20
21 nova:
22 controller:
23 version: juno
24 enabled: true
25 security_group: true
Lachlan Evensonb72de502016-01-20 15:34:04 -080026 cpu_allocation_ratio: 8.0
27 ram_allocation_ratio: 1.0
Jiri Konecny9344a372016-03-21 19:25:48 +010028 disk_allocation_ratio: 1.0
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +030029 cross_az_attach: false
Jiri Konecnyb5a80e42016-03-22 11:51:01 +010030 workers: 8
Jakub Pavlik617a8962016-09-04 18:50:06 +020031 report_interval: 60
Filip Pytloun4a72d792015-10-06 16:28:32 +020032 bind:
33 public_address: 10.0.0.122
34 public_name: openstack.domain.com
35 novncproxy_port: 6080
36 database:
37 engine: mysql
38 host: 127.0.0.1
39 port: 3306
40 name: nova
41 user: nova
42 password: pwd
43 identity:
44 engine: keystone
45 host: 127.0.0.1
46 port: 35357
47 user: nova
48 password: pwd
49 tenant: service
50 message_queue:
51 engine: rabbitmq
52 host: 127.0.0.1
53 port: 5672
54 user: openstack
55 password: pwd
56 virtual_host: '/openstack'
57 network:
58 engine: neutron
59 host: 127.0.0.1
60 port: 9696
Jakub Pavlik617a8962016-09-04 18:50:06 +020061 extension_sync_interval: 600
Filip Pytloun4a72d792015-10-06 16:28:32 +020062 identity:
63 engine: keystone
64 host: 127.0.0.1
65 port: 35357
66 user: neutron
67 password: pwd
68 tenant: service
69 metadata:
70 password: password
Petr Michalecaa23dc02016-11-29 16:30:25 +010071 audit:
72 enabled: false
Simon Pasquier8683b7a2017-02-03 16:00:16 +010073 osapi_max_limit: 500
Oleg Iurchenko370c10d2017-10-19 14:03:37 +030074 barbican:
75 enabled: true
Filip Pytloun4a72d792015-10-06 16:28:32 +020076
Jiri Konecnye31f2c52016-04-14 17:16:02 +020077
Filip Pytloun4a72d792015-10-06 16:28:32 +020078Nova services from custom package repository
79
80.. code-block:: yaml
81
82 nova:
83 controller:
84 version: juno
85 source:
86 engine: pkg
87 address: http://...
88 ....
89
Jiri Konecnye31f2c52016-04-14 17:16:02 +020090
91Client-side RabbitMQ HA setup
92
93.. code-block:: yaml
94
95 nova:
96 controller:
97 ....
98 message_queue:
99 engine: rabbitmq
100 members:
101 - host: 10.0.16.1
102 - host: 10.0.16.2
103 - host: 10.0.16.3
104 user: openstack
105 password: pwd
106 virtual_host: '/openstack'
107 ....
108
109
Petr Michalecaa23dc02016-11-29 16:30:25 +0100110Enable auditing filter, ie: CADF
111
112.. code-block:: yaml
113
114 nova:
115 controller:
Simon Pasquier6a3c8f72016-12-19 15:37:24 +0100116 audit:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100117 enabled: true
118 ....
119 filter_factory: 'keystonemiddleware.audit:filter_factory'
120 map_file: '/etc/pycadf/nova_api_audit_map.conf'
121 ....
122
123
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200124Enable CORS parameters
125
126.. code-block:: yaml
127
128 nova:
129 controller:
130 cors:
131 allowed_origin: https:localhost.local,http:localhost.local
132 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
133 allow_methods: GET,PUT,POST,DELETE,PATCH
134 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
135 allow_credentials: True
136 max_age: 86400
137
Dmitry Ukov3562a082017-05-04 00:00:48 +0400138Configuration of policy.json file
139
140.. code-block:: yaml
141
142 nova:
143 controller:
144 ....
145 policy:
146 context_is_admin: 'role:admin or role:administrator'
147 'compute:create': 'rule:admin_or_owner'
148 # Add key without value to remove line from policy.json
149 'compute:create:attach_network':
Ondrej Smola25b53cb2017-04-28 10:56:19 +0200150
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300151Enable Barbican integration
152
153.. code-block:: yaml
154
155 nova:
156 controller:
157 ....
158 barbican:
159 enabled: true
160
Jiri Broulik789179a2018-02-13 16:16:46 +0100161Enable cells update:
162
163**Note:** Useful when upgrading Openstack. To update cells to test sync db agains duplicated production database.
164
165.. code-block:: yaml
166
167 nova:
168 controller:
169 update_cells: true
170
Kirill Bespalov64617172017-07-11 14:43:14 +0300171
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300172Configuring TLS communications
173------------------------------
Kirill Bespalov64617172017-07-11 14:43:14 +0300174
Kirill Bespalov64617172017-07-11 14:43:14 +0300175
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300176**Note:** by default system wide installed CA certs are used, so ``cacert_file`` param is optional, as well as ``cacert``.
177
178
179
180- **RabbitMQ TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300181
182.. code-block:: yaml
183
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300184 nova:
185 compute:
Kirill Bespalov64617172017-07-11 14:43:14 +0300186 message_queue:
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300187 port: 5671
Kirill Bespalov64617172017-07-11 14:43:14 +0300188 ssl:
189 enabled: True
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300190 (optional) cacert: cert body if the cacert_file does not exists
191 (optional) cacert_file: /etc/openstack/rabbitmq-ca.pem
192 (optional) version: TLSv1_2
Kirill Bespalov64617172017-07-11 14:43:14 +0300193
194
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300195- **MySQL TLS**
Kirill Bespalov64617172017-07-11 14:43:14 +0300196
197.. code-block:: yaml
198
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300199 nova:
200 controller:
201 database:
Kirill Bespalov64617172017-07-11 14:43:14 +0300202 ssl:
203 enabled: True
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300204 (optional) cacert: cert body if the cacert_file does not exists
205 (optional) cacert_file: /etc/openstack/mysql-ca.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300206
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300207- **Openstack HTTPS API**
208
209
210Set the ``https`` as protocol at ``nova:compute`` and ``nova:controller`` sections :
Kirill Bespalov64617172017-07-11 14:43:14 +0300211
212.. code-block:: yaml
213
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300214 nova:
215 controller :
216 identity:
217 protocol: https
218 (optional) cacert_file: /etc/openstack/proxy.pem
219 network:
220 protocol: https
221 (optional) cacert_file: /etc/openstack/proxy.pem
222 glance:
223 protocol: https
224 (optional) cacert_file: /etc/openstack/proxy.pem
Kirill Bespalov64617172017-07-11 14:43:14 +0300225
226
Kirill Bespalova0eaca72017-11-20 13:40:42 +0300227.. code-block:: yaml
228
229 nova:
230 compute:
231 identity:
232 protocol: https
233 (optional) cacert_file: /etc/openstack/proxy.pem
234 network:
235 protocol: https
236 (optional) cacert_file: /etc/openstack/proxy.pem
237 image:
238 protocol: https
239 (optional) cacert_file: /etc/openstack/proxy.pem
240 ironic:
241 protocol: https
242 (optional) cacert_file: /etc/openstack/proxy.pem
243
244
245**Note:** the barbican, cinder and placement url endpoints are discovering using service catalog.
Kirill Bespalov64617172017-07-11 14:43:14 +0300246
247
Filip Pytloun4a72d792015-10-06 16:28:32 +0200248Compute nodes
249-------------
250
251Nova controller services on compute node
252
253.. code-block:: yaml
254
255 nova:
256 compute:
257 version: juno
258 enabled: true
259 virtualization: kvm
Dmitry Stremkovskiy2bcba8d2017-07-30 21:43:59 +0300260 cross_az_attach: false
Dmitry Stremkovskiy35e53b72017-07-29 12:50:39 +0300261 disk_cachemodes: network=writeback,block=none
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100262 availability_zone: availability_zone_01
Damian Szelugae1922412017-04-18 16:36:46 +0200263 aggregates:
264 - hosts_with_fc
265 - hosts_with_ssd
Filip Pytloun4a72d792015-10-06 16:28:32 +0200266 security_group: true
Petr Michalecf03e4882017-04-10 10:26:18 +0200267 resume_guests_state_on_host_boot: False
Michael Polenchuk159c2542018-06-09 15:31:51 +0400268 preallocate_images: space # Default is 'none'
Dmitry Stremkovskiy8a0ff512017-07-25 20:54:13 +0300269 my_ip: 10.1.0.16
Filip Pytloun4a72d792015-10-06 16:28:32 +0200270 bind:
271 vnc_address: 172.20.0.100
272 vnc_port: 6080
273 vnc_name: openstack.domain.com
274 vnc_protocol: http
275 database:
276 engine: mysql
277 host: 127.0.0.1
278 port: 3306
279 name: nova
280 user: nova
281 password: pwd
282 identity:
283 engine: keystone
284 host: 127.0.0.1
285 port: 35357
286 user: nova
287 password: pwd
288 tenant: service
289 message_queue:
290 engine: rabbitmq
291 host: 127.0.0.1
292 port: 5672
293 user: openstack
294 password: pwd
295 virtual_host: '/openstack'
296 image:
297 engine: glance
298 host: 127.0.0.1
299 port: 9292
300 network:
301 engine: neutron
302 host: 127.0.0.1
303 port: 9696
304 identity:
305 engine: keystone
306 host: 127.0.0.1
307 port: 35357
308 user: neutron
309 password: pwd
310 tenant: service
311 qemu:
312 max_files: 4096
313 max_processes: 4096
Dmitry Stremkovskiy96281f52017-07-26 00:39:22 +0300314 host: node-12.domain.tld
Filip Pytloun4a72d792015-10-06 16:28:32 +0200315
kkalynovskyif50f0c02017-12-12 17:52:57 +0200316Group and user to be used for QEMU processes run by the system instance
317
318.. code-block:: yaml
319
320 nova:
321 compute:
322 enabled: true
323 ...
324 qemu:
325 user: nova
326 group: cinder
327 dynamic_ownership: 1
328
Dmitry Stremkovskiy3cd6ba82017-07-25 17:15:36 +0300329Group membership for user nova (upgrade related)
330
331.. code-block:: yaml
332
333 nova:
334 compute:
335 enabled: true
336 ...
337 user:
338 groups:
339 - libvirt
Filip Pytloun4a72d792015-10-06 16:28:32 +0200340
341Nova services on compute node with OpenContrail
342
343.. code-block:: yaml
344
345 nova:
346 compute:
347 enabled: true
348 ...
349 networking: contrail
350
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200351
Filip Pytloun4a72d792015-10-06 16:28:32 +0200352Nova services on compute node with memcached caching
353
354.. code-block:: yaml
355
356 nova:
357 compute:
358 enabled: true
359 ...
360 cache:
361 engine: memcached
362 members:
363 - host: 127.0.0.1
364 port: 11211
365 - host: 127.0.0.1
366 port: 11211
367
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200368
369Client-side RabbitMQ HA setup
370
371.. code-block:: yaml
372
373 nova:
Kirill Bespalov64617172017-07-11 14:43:14 +0300374 compute:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200375 ....
376 message_queue:
377 engine: rabbitmq
378 members:
379 - host: 10.0.16.1
380 - host: 10.0.16.2
381 - host: 10.0.16.3
382 user: openstack
383 password: pwd
384 virtual_host: '/openstack'
385 ....
386
maxstack39e6aca2016-05-04 13:50:13 +0000387Nova with ephemeral configured with Ceph
388
389.. code-block:: yaml
390
391 nova:
392 compute:
393 enabled: true
394 ...
395 ceph:
396 ephemeral: yes
397 rbd_pool: nova
398 rbd_user: nova
399 secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
Kalynovskyi0bc79692017-07-21 16:22:09 +0300400 ....
maxstack39e6aca2016-05-04 13:50:13 +0000401
Kalynovskyi0bc79692017-07-21 16:22:09 +0300402Nova with ephemeral configured with LVM
403
404.. code-block:: yaml
405
406 nova:
407 compute:
408 enabled: true
409 ...
410 lvm:
411 ephemeral: yes
412 images_volume_group: nova_vg
413
414 linux:
415 storage:
416 lvm:
417 nova_vg:
418 name: nova_vg
419 devices:
420 - /dev/sdf
421 - /dev/sdd
422 - /dev/sdg
423 - /dev/sde
424 - /dev/sdc
425 - /dev/sdj
426 - /dev/sdh
maxstack39e6aca2016-05-04 13:50:13 +0000427
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300428Enable Barbican integration
429
430.. code-block:: yaml
431
432 nova:
433 compute:
434 ....
435 barbican:
436 enabled: true
437
Vasyl Saienko2d591282018-02-05 14:19:02 +0200438Nova metadata custom bindings
439
440.. code-block:: yaml
441
442 nova:
443 controller:
444 enabled: true
445 ...
446 metadata:
447 bind:
448 address: 1.2.3.4
449 port: 8776
450
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300451
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100452Client role
453-----------
454
Dmitry Stremkovskiy665c7282017-07-05 17:36:27 +0300455Nova configured with NFS
456
457.. code-block:: yaml
458
459 nova:
460 compute:
461 instances_path: /mnt/nova/instances
462
463 linux:
464 storage:
465 enabled: true
466 mount:
467 nfs_nova:
468 enabled: true
469 path: ${nova:compute:instances_path}
470 device: 172.31.35.145:/data
471 file_system: nfs
472 opts: rw,vers=3
473
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100474Nova flavors
475
476.. code-block:: yaml
477
478 nova:
479 client:
480 enabled: true
481 server:
482 identity:
483 flavor:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100484 flavor1:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100485 flavor_id: 10
486 ram: 4096
487 disk: 10
488 vcpus: 1
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100489 flavor2:
490 flavor_id: auto
491 ram: 4096
492 disk: 20
493 vcpus: 2
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100494 identity1:
495 flavor:
496 ...
497
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100498
499Availability zones
500
501.. code-block:: yaml
502
503 nova:
504 client:
505 enabled: true
506 server:
507 identity:
508 availability_zones:
509 - availability_zone_01
510 - availability_zone_02
511
Damian Szeluga5dca0f02017-04-13 17:27:15 +0200512
513
514Aggregates
515
516.. code-block:: yaml
517
518 nova:
519 client:
520 enabled: true
521 server:
522 identity:
523 aggregates:
524 - aggregate1
525 - aggregate2
526
Dmitry Stremkovskiy91f45852017-07-18 16:22:31 +0300527Upgrade levels
528
529.. code-block:: yaml
530
531 nova:
532 controller:
533 upgrade_levels:
534 compute: juno
535
536 nova:
537 compute:
538 upgrade_levels:
539 compute: juno
540
Petr Jedinýd855ef22017-03-06 22:24:33 +0100541SR-IOV
Jakub Pavlik39a05942017-02-13 23:03:08 +0100542------
543
544Add PciPassthroughFilter into scheduler filters and NICs on specific compute nodes.
545
546.. code-block:: yaml
547
548 nova:
549 controller:
550 sriov: true
sandriichenko4fe321d2018-01-22 17:34:06 +0000551 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter"
Jakub Pavlik39a05942017-02-13 23:03:08 +0100552
553 nova:
554 compute:
555 sriov:
556 nic_one:
557 devname: eth1
558 physical_network: physnet1
559
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100560CPU pinning & Hugepages
561-----------------------
562
563CPU pinning of virtual machine instances to dedicated physical CPU cores.
564Hugepages mount point for libvirt.
565
566.. code-block:: yaml
567
568 nova:
569 controller:
sandriichenko4fe321d2018-01-22 17:34:06 +0000570 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100571
572 nova:
573 compute:
574 vcpu_pin_set: 2,3,4,5
575 hugepages:
576 mount_points:
577 - path: /mnt/hugepages_1GB
578 - path: /mnt/hugepages_2MB
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100579
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200580Custom Scheduler filters
581------------------------
582
583If you have a custom filter, that needs to be included in the scheduler, then you can include it like so:
584
585.. code-block:: yaml
586
587 nova:
588 controller:
589 scheduler_custom_filters:
590 - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
591
592 # Then add your custom filter on the end (make sure to include all other ones that you need as well)
sandriichenko4fe321d2018-01-22 17:34:06 +0000593 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200594
Michel Nederlofeb566f62017-04-21 15:37:47 +0200595Hardware Trip/Unmap Support
596---------------------------
597
598To enable TRIM support for ephemeral images (thru nova managed images), libvirt has this option.
599
600.. code-block:: yaml
601
602 nova:
603 compute:
604 libvirt:
605 hw_disk_discard: unmap
606
607In order to actually utilize this feature, the following metadata must be set on the image as well, so the SCSI unmap is supported.
608
609.. code-block:: bash
610
611 glance image-update --property hw_scsi_model=virtio-scsi <image>
612 glance image-update --property hw_disk_bus=scsi <image>
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100613
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200614
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000615Scheduler Host Manager
616----------------------
617
618Specify a custom host manager.
619
Thom Gerdesec00afd2017-04-07 18:06:59 +0000620libvirt CPU mode
621----------------
622
623Allow setting the model of CPU that is exposed to a VM. This allows better
624support live migration between hypervisors with different hardware, among other
625things. Defaults to host-passthrough.
626
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200627
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000628.. code-block:: yaml
629
630 nova:
631 controller:
632 scheduler_host_manager: ironic_host_manager
633
Thom Gerdesec00afd2017-04-07 18:06:59 +0000634 compute:
635 cpu_mode: host-model
636
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200637Nova compute cpu model
638----------------------
639
640.. code-block:: yaml
641
642 nova:
643 compute:
644 cpu_mode: custom
645 libvirt:
646 cpu_model: IvyBridge
647
648
Michel Nederloff7eefb22017-07-10 11:14:33 +0200649Nova compute workarounds
650------------------------
651
652Live snapshotting is disabled by default in nova. To enable this, it needs a manual switch.
653
654From manual:
655
656.. code-block:: yaml
657
658 # When using libvirt 1.2.2 live snapshots fail intermittently under load
659 # (likely related to concurrent libvirt/qemu operations). This config
660 # option provides a mechanism to disable live snapshot, in favor of cold
661 # snapshot, while this is resolved. Cold snapshot causes an instance
662 # outage while the guest is going through the snapshotting process.
663 #
664 # For more information, refer to the bug report:
665 #
666 # https://bugs.launchpad.net/nova/+bug/1334398
667
668Configurable pillar data:
669
670.. code-block:: yaml
671
672 nova:
673 compute:
Michel Nederlofe322ebb2017-07-10 12:29:21 +0200674 workaround:
Michel Nederloff7eefb22017-07-10 11:14:33 +0200675 disable_libvirt_livesnapshot: False
676
Michel Nederlofb51a5142017-06-27 08:31:35 +0200677Config drive options
678--------------------
679
680See example below on how to configure the options for the config drive.
681
682.. code-block:: yaml
683
684 nova:
685 compute:
686 config_drive:
687 forced: True # Default: True
688 cdrom: True # Default: False
689 format: iso9660 # Default: vfat
690 inject_password: False # Default: False
691
Michel Nederloff81919b2017-11-20 09:37:07 +0100692Number of concurrent live migrates
693----------------------------------
694
695Default is to have no concurrent live migrations (so 1 live-migration at a time).
696
697Excerpt from config options page (https://docs.openstack.org/ocata/config-reference/compute/config-options.html):
698
699 Maximum number of live migrations to run concurrently. This limit is
700 enforced to avoid outbound live migrations overwhelming the host/network
701 and causing failures. It is not recommended that you change this unless
702 you are very sure that doing so is safe and stable in your environment.
703
704 Possible values:
705
706 - 0 : treated as unlimited.
707 - Negative value defaults to 0.
708 - Any positive integer representing maximum number of live migrations to run concurrently.
709
710To configure this option:
711
712.. code-block:: yaml
713
714 nova:
715 compute:
716 max_concurrent_live_migrations: 1 # (1 is the default)
717
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300718Live migration with auto converge
719----------------------------------
720
721Auto converge throttles down CPU if a progress of on-going live migration is slow.
722https://docs.openstack.org/ocata/config-reference/compute/config-options.html
723
724.. code-block:: yaml
725
726 nova:
727 compute:
728 libvirt:
729 live_migration_permit_auto_converge: False # (False is the default)
730
731.. code-block:: yaml
732
733 nova:
734 controller:
735 libvirt:
736 live_migration_permit_auto_converge: False # (False is the default)
737
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400738Enhanced logging with logging.conf
739----------------------------------
740
741By default logging.conf is disabled.
742
743That is possible to enable per-binary logging.conf with new variables:
744 * openstack_log_appender - set it to true to enable log_config_append for all OpenStack services;
745 * openstack_fluentd_handler_enabled - set to true to enable FluentHandler for all Openstack services.
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200746 * openstack_ossyslog_handler_enabled - set to true to enable OSSysLogHandler for all Openstack services.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400747
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200748Only WatchedFileHandler, OSSysLogHandler and FluentHandler are available.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400749
Dmitry Kalashnik8da249c2018-01-16 17:58:00 +0400750Also it is possible to configure this with pillar:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400751
752.. code-block:: yaml
753
754 nova:
755 controller:
756 logging:
757 log_appender: true
758 log_handlers:
759 watchedfile:
760 enabled: true
761 fluentd:
762 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200763 ossyslog:
764 enabled: true
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400765
766 compute:
767 logging:
768 log_appender: true
769 log_handlers:
770 watchedfile:
771 enabled: true
772 fluentd:
773 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200774 ossyslog:
775 enabled: true
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000776
Vasyl Saienko7243a952018-05-11 21:26:54 +0300777The log level might be configured per logger by using the
778following pillar structure:
779
780.. code-block:: yaml
781
782 nova:
783 compute:
784 logging:
785 loggers:
786 <logger_name>:
787 level: WARNING
788
789 nova:
790 compute:
791 logging:
792 loggers:
793 <logger_name>:
794 level: WARNING
795
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000796Configure syslog parameters for libvirtd
797----------------------------------------
798
799To configure syslog parameters for libvirtd the below pillar structure should be used with values which are supported
800by libvirtd. These values might be known from the documentation.
801
802 nova:
803 compute:
804 libvirt:
805 logging:
806 level: 3
807 filters: '3:remote 4:event'
808 outputs: '3:syslog:libvirtd'
809 buffer_size: 64
810
811#################################################################
812#
813# Logging controls
814#
815
816# Logging level: 4 errors, 3 warnings, 2 information, 1 debug
817# basically 1 will log everything possible
818#log_level = 3
819
820# Logging filters:
821# A filter allows to select a different logging level for a given category
822# of logs
823# The format for a filter is one of:
824# x:name
825# x:+name
826# where name is a string which is matched against source file name,
827# e.g., "remote", "qemu", or "util/json", the optional "+" prefix
828# tells libvirt to log stack trace for each message matching name,
829# and x is the minimal level where matching messages should be logged:
830# 1: DEBUG
831# 2: INFO
832# 3: WARNING
833# 4: ERROR
834#
835# Multiple filter can be defined in a single @filters, they just need to be
836# separated by spaces.
837#
838# e.g. to only get warning or errors from the remote layer and only errors
839# from the event layer:
840#log_filters="3:remote 4:event"
841
842# Logging outputs:
843# An output is one of the places to save logging information
844# The format for an output can be:
845# x:stderr
846# output goes to stderr
847# x:syslog:name
848# use syslog for the output and use the given name as the ident
849# x:file:file_path
850# output to a file, with the given filepath
851# In all case the x prefix is the minimal level, acting as a filter
852# 1: DEBUG
853# 2: INFO
854# 3: WARNING
855# 4: ERROR
856#
857# Multiple output can be defined, they just need to be separated by spaces.
858# e.g. to log all warnings and errors to syslog under the libvirtd ident:
859#log_outputs="3:syslog:libvirtd"
860#
861
862# Log debug buffer size: default 64
863# The daemon keeps an internal debug log buffer which will be dumped in case
864# of crash or upon receiving a SIGUSR2 signal. This setting allows to override
865# the default buffer size in kilobytes.
866# If value is 0 or less the debug log buffer is deactivated
867#log_buffer_size = 64
868
869To configure logging parameters for qemu the below pillar structure and logging parameters should be used:
870
871 nova:
872 compute:
873 qemu:
874 logging:
875 handler: logd
876 virtlog:
877 enabled: true
878 level: 4
879 filters: '3:remote 3:event'
880 outputs: '4:syslog:virtlogd'
881 max_clients: 512
882 max_size: 2097100
883 max_backups: 2
884
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +0300885Inject password to VM
886---------------------
887
888By default nova blocks up any inject to VM because 'inject_partition' param is equal '-2'
889If you want to inject password to VM, you will need to define 'inject_partition' greater or equal to '-1' and define 'inject_password' to 'True'
890
891For example:
892
893 nova:
894 compute:
895 inject_partition: '-1'
896 inject_password: True
897
898# Allow the injection of an admin password for instance only at ``create`` and
899# ``rebuild`` process.
900#
901# There is no agent needed within the image to do this. If *libguestfs* is
902# available on the host, it will be used. Otherwise *nbd* is used. The file
903# system of the image will be mounted and the admin password, which is provided
904# in the REST API call will be injected as password for the root user. If no
905# root user is available, the instance won't be launched and an error is thrown.
906# Be aware that the injection is *not* possible when the instance gets launched
907# from a volume.
908#
909# Possible values:
910#
911# * True: Allows the injection.
912# * False (default): Disallows the injection. Any via the REST API provided
913# admin password will be silently ignored.
914#
915# Related options:
916#
917# * ``inject_partition``: That option will decide about the discovery and usage
918# of the file system. It also can disable the injection at all.
919# (boolean value)
920
921You can read more about injecting the administrator password here:
922 https://docs.openstack.org/nova/queens/admin/admin-password-injection.html
923
Oleksandr Shyshko1c020d12018-05-24 12:47:08 +0300924Enable libvirt control channel over TLS
925---------------------
926
927By default TLS is disabled.
928
929Enable TLS transport.
930
931 compute:
932 libvirt:
933 tls:
934 enabled: True
935
936You able to set custom certificates in pillar:
937
938 nova:
939 compute:
940 libvirt:
941 tls:
942 key: (certificate content)
943 cert: (certificate content)
944 cacert: (certificate content)
945 client:
946 key: (certificate content)
947 cert: (certificate content)
948
949You can read more about live migration over TLS here:
950 https://wiki.libvirt.org/page/TLSCreateServerCerts
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +0300951
Oleksandr Shyshko1195fca2018-07-09 18:22:59 +0300952Enable transport + authentication for VNC over TLS
953---------------------
954
955By default communication between nova-novncproxy and qemu service is unsecure.
956
957compute:
958 qemu:
959 vnc:
960 tls:
961 enabled: True
962
963controller:
964 novncproxy:
965 tls:
966 enabled: True
967
968You able to set custom certificates in pillar:
969
970 nova:
971 compute:
972 qemu:
973 vnc:
974 tls:
975 cacert (certificate content)
976 cert (certificate content)
977 key (certificate content)
978
979 nova:
980 controller:
981 novncproxy:
982 tls:
983 cacert (certificate content)
984 cert (certificate content)
985 key (certificate content)
986 allfile (certificate content)
987
988You can read more about it here:
989 https://docs.openstack.org/nova/queens/admin/remote-console-access.html
990
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100991Documentation and Bugs
992======================
993
994To learn how to install and update salt-formulas, consult the documentation
995available online at:
996
997 http://salt-formulas.readthedocs.io/
998
999In the unfortunate event that bugs are discovered, they should be reported to
1000the appropriate issue tracker. Use Github issue tracker for specific salt
1001formula:
1002
1003 https://github.com/salt-formulas/salt-formula-nova/issues
1004
1005For feature requests, bug reports or blueprints affecting entire ecosystem,
1006use Launchpad salt-formulas project:
1007
1008 https://launchpad.net/salt-formulas
1009
1010You can also join salt-formulas-users team and subscribe to mailing list:
1011
1012 https://launchpad.net/~salt-formulas-users
1013
1014Developers wishing to work on the salt-formulas projects should always base
1015their work on master branch and submit pull request against specific formula.
1016
1017 https://github.com/salt-formulas/salt-formula-nova
1018
1019Any questions or feedback is always welcome so feel free to join our IRC
1020channel:
1021
1022 #salt-formulas @ irc.freenode.net