blob: c5606e894eac583a26a1d1ca32ccbd9aafe4fd78 [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
Dmitry Stremkovskiy8a0ff512017-07-25 20:54:13 +0300268 my_ip: 10.1.0.16
Filip Pytloun4a72d792015-10-06 16:28:32 +0200269 bind:
270 vnc_address: 172.20.0.100
271 vnc_port: 6080
272 vnc_name: openstack.domain.com
273 vnc_protocol: http
274 database:
275 engine: mysql
276 host: 127.0.0.1
277 port: 3306
278 name: nova
279 user: nova
280 password: pwd
281 identity:
282 engine: keystone
283 host: 127.0.0.1
284 port: 35357
285 user: nova
286 password: pwd
287 tenant: service
288 message_queue:
289 engine: rabbitmq
290 host: 127.0.0.1
291 port: 5672
292 user: openstack
293 password: pwd
294 virtual_host: '/openstack'
295 image:
296 engine: glance
297 host: 127.0.0.1
298 port: 9292
299 network:
300 engine: neutron
301 host: 127.0.0.1
302 port: 9696
303 identity:
304 engine: keystone
305 host: 127.0.0.1
306 port: 35357
307 user: neutron
308 password: pwd
309 tenant: service
310 qemu:
311 max_files: 4096
312 max_processes: 4096
Dmitry Stremkovskiy96281f52017-07-26 00:39:22 +0300313 host: node-12.domain.tld
Filip Pytloun4a72d792015-10-06 16:28:32 +0200314
kkalynovskyif50f0c02017-12-12 17:52:57 +0200315Group and user to be used for QEMU processes run by the system instance
316
317.. code-block:: yaml
318
319 nova:
320 compute:
321 enabled: true
322 ...
323 qemu:
324 user: nova
325 group: cinder
326 dynamic_ownership: 1
327
Dmitry Stremkovskiy3cd6ba82017-07-25 17:15:36 +0300328Group membership for user nova (upgrade related)
329
330.. code-block:: yaml
331
332 nova:
333 compute:
334 enabled: true
335 ...
336 user:
337 groups:
338 - libvirt
Filip Pytloun4a72d792015-10-06 16:28:32 +0200339
340Nova services on compute node with OpenContrail
341
342.. code-block:: yaml
343
344 nova:
345 compute:
346 enabled: true
347 ...
348 networking: contrail
349
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200350
Filip Pytloun4a72d792015-10-06 16:28:32 +0200351Nova services on compute node with memcached caching
352
353.. code-block:: yaml
354
355 nova:
356 compute:
357 enabled: true
358 ...
359 cache:
360 engine: memcached
361 members:
362 - host: 127.0.0.1
363 port: 11211
364 - host: 127.0.0.1
365 port: 11211
366
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200367
368Client-side RabbitMQ HA setup
369
370.. code-block:: yaml
371
372 nova:
Kirill Bespalov64617172017-07-11 14:43:14 +0300373 compute:
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200374 ....
375 message_queue:
376 engine: rabbitmq
377 members:
378 - host: 10.0.16.1
379 - host: 10.0.16.2
380 - host: 10.0.16.3
381 user: openstack
382 password: pwd
383 virtual_host: '/openstack'
384 ....
385
maxstack39e6aca2016-05-04 13:50:13 +0000386Nova with ephemeral configured with Ceph
387
388.. code-block:: yaml
389
390 nova:
391 compute:
392 enabled: true
393 ...
394 ceph:
395 ephemeral: yes
396 rbd_pool: nova
397 rbd_user: nova
398 secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
Kalynovskyi0bc79692017-07-21 16:22:09 +0300399 ....
maxstack39e6aca2016-05-04 13:50:13 +0000400
Kalynovskyi0bc79692017-07-21 16:22:09 +0300401Nova with ephemeral configured with LVM
402
403.. code-block:: yaml
404
405 nova:
406 compute:
407 enabled: true
408 ...
409 lvm:
410 ephemeral: yes
411 images_volume_group: nova_vg
412
413 linux:
414 storage:
415 lvm:
416 nova_vg:
417 name: nova_vg
418 devices:
419 - /dev/sdf
420 - /dev/sdd
421 - /dev/sdg
422 - /dev/sde
423 - /dev/sdc
424 - /dev/sdj
425 - /dev/sdh
maxstack39e6aca2016-05-04 13:50:13 +0000426
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300427Enable Barbican integration
428
429.. code-block:: yaml
430
431 nova:
432 compute:
433 ....
434 barbican:
435 enabled: true
436
Vasyl Saienko2d591282018-02-05 14:19:02 +0200437Nova metadata custom bindings
438
439.. code-block:: yaml
440
441 nova:
442 controller:
443 enabled: true
444 ...
445 metadata:
446 bind:
447 address: 1.2.3.4
448 port: 8776
449
Oleg Iurchenko370c10d2017-10-19 14:03:37 +0300450
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100451Client role
452-----------
453
Dmitry Stremkovskiy665c7282017-07-05 17:36:27 +0300454Nova configured with NFS
455
456.. code-block:: yaml
457
458 nova:
459 compute:
460 instances_path: /mnt/nova/instances
461
462 linux:
463 storage:
464 enabled: true
465 mount:
466 nfs_nova:
467 enabled: true
468 path: ${nova:compute:instances_path}
469 device: 172.31.35.145:/data
470 file_system: nfs
471 opts: rw,vers=3
472
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100473Nova flavors
474
475.. code-block:: yaml
476
477 nova:
478 client:
479 enabled: true
480 server:
481 identity:
482 flavor:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100483 flavor1:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100484 flavor_id: 10
485 ram: 4096
486 disk: 10
487 vcpus: 1
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100488 flavor2:
489 flavor_id: auto
490 ram: 4096
491 disk: 20
492 vcpus: 2
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100493 identity1:
494 flavor:
495 ...
496
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100497
498Availability zones
499
500.. code-block:: yaml
501
502 nova:
503 client:
504 enabled: true
505 server:
506 identity:
507 availability_zones:
508 - availability_zone_01
509 - availability_zone_02
510
Damian Szeluga5dca0f02017-04-13 17:27:15 +0200511
512
513Aggregates
514
515.. code-block:: yaml
516
517 nova:
518 client:
519 enabled: true
520 server:
521 identity:
522 aggregates:
523 - aggregate1
524 - aggregate2
525
Dmitry Stremkovskiy91f45852017-07-18 16:22:31 +0300526Upgrade levels
527
528.. code-block:: yaml
529
530 nova:
531 controller:
532 upgrade_levels:
533 compute: juno
534
535 nova:
536 compute:
537 upgrade_levels:
538 compute: juno
539
Petr Jedinýd855ef22017-03-06 22:24:33 +0100540SR-IOV
Jakub Pavlik39a05942017-02-13 23:03:08 +0100541------
542
543Add PciPassthroughFilter into scheduler filters and NICs on specific compute nodes.
544
545.. code-block:: yaml
546
547 nova:
548 controller:
549 sriov: true
sandriichenko4fe321d2018-01-22 17:34:06 +0000550 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter"
Jakub Pavlik39a05942017-02-13 23:03:08 +0100551
552 nova:
553 compute:
554 sriov:
555 nic_one:
556 devname: eth1
557 physical_network: physnet1
558
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100559CPU pinning & Hugepages
560-----------------------
561
562CPU pinning of virtual machine instances to dedicated physical CPU cores.
563Hugepages mount point for libvirt.
564
565.. code-block:: yaml
566
567 nova:
568 controller:
sandriichenko4fe321d2018-01-22 17:34:06 +0000569 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100570
571 nova:
572 compute:
573 vcpu_pin_set: 2,3,4,5
574 hugepages:
575 mount_points:
576 - path: /mnt/hugepages_1GB
577 - path: /mnt/hugepages_2MB
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100578
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200579Custom Scheduler filters
580------------------------
581
582If you have a custom filter, that needs to be included in the scheduler, then you can include it like so:
583
584.. code-block:: yaml
585
586 nova:
587 controller:
588 scheduler_custom_filters:
589 - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
590
591 # 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 +0000592 scheduler_default_filters: "DifferentHostFilter,SameHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200593
Michel Nederlofeb566f62017-04-21 15:37:47 +0200594Hardware Trip/Unmap Support
595---------------------------
596
597To enable TRIM support for ephemeral images (thru nova managed images), libvirt has this option.
598
599.. code-block:: yaml
600
601 nova:
602 compute:
603 libvirt:
604 hw_disk_discard: unmap
605
606In order to actually utilize this feature, the following metadata must be set on the image as well, so the SCSI unmap is supported.
607
608.. code-block:: bash
609
610 glance image-update --property hw_scsi_model=virtio-scsi <image>
611 glance image-update --property hw_disk_bus=scsi <image>
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100612
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200613
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000614Scheduler Host Manager
615----------------------
616
617Specify a custom host manager.
618
Thom Gerdesec00afd2017-04-07 18:06:59 +0000619libvirt CPU mode
620----------------
621
622Allow setting the model of CPU that is exposed to a VM. This allows better
623support live migration between hypervisors with different hardware, among other
624things. Defaults to host-passthrough.
625
Jakub Pavlik7046b9c2017-09-19 12:04:19 +0200626
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000627.. code-block:: yaml
628
629 nova:
630 controller:
631 scheduler_host_manager: ironic_host_manager
632
Thom Gerdesec00afd2017-04-07 18:06:59 +0000633 compute:
634 cpu_mode: host-model
635
Dzmitry Stremkouski7da9bf12018-04-25 22:30:37 +0200636Nova compute cpu model
637----------------------
638
639.. code-block:: yaml
640
641 nova:
642 compute:
643 cpu_mode: custom
644 libvirt:
645 cpu_model: IvyBridge
646
647
Michel Nederloff7eefb22017-07-10 11:14:33 +0200648Nova compute workarounds
649------------------------
650
651Live snapshotting is disabled by default in nova. To enable this, it needs a manual switch.
652
653From manual:
654
655.. code-block:: yaml
656
657 # When using libvirt 1.2.2 live snapshots fail intermittently under load
658 # (likely related to concurrent libvirt/qemu operations). This config
659 # option provides a mechanism to disable live snapshot, in favor of cold
660 # snapshot, while this is resolved. Cold snapshot causes an instance
661 # outage while the guest is going through the snapshotting process.
662 #
663 # For more information, refer to the bug report:
664 #
665 # https://bugs.launchpad.net/nova/+bug/1334398
666
667Configurable pillar data:
668
669.. code-block:: yaml
670
671 nova:
672 compute:
Michel Nederlofe322ebb2017-07-10 12:29:21 +0200673 workaround:
Michel Nederloff7eefb22017-07-10 11:14:33 +0200674 disable_libvirt_livesnapshot: False
675
Michel Nederlofb51a5142017-06-27 08:31:35 +0200676Config drive options
677--------------------
678
679See example below on how to configure the options for the config drive.
680
681.. code-block:: yaml
682
683 nova:
684 compute:
685 config_drive:
686 forced: True # Default: True
687 cdrom: True # Default: False
688 format: iso9660 # Default: vfat
689 inject_password: False # Default: False
690
Michel Nederloff81919b2017-11-20 09:37:07 +0100691Number of concurrent live migrates
692----------------------------------
693
694Default is to have no concurrent live migrations (so 1 live-migration at a time).
695
696Excerpt from config options page (https://docs.openstack.org/ocata/config-reference/compute/config-options.html):
697
698 Maximum number of live migrations to run concurrently. This limit is
699 enforced to avoid outbound live migrations overwhelming the host/network
700 and causing failures. It is not recommended that you change this unless
701 you are very sure that doing so is safe and stable in your environment.
702
703 Possible values:
704
705 - 0 : treated as unlimited.
706 - Negative value defaults to 0.
707 - Any positive integer representing maximum number of live migrations to run concurrently.
708
709To configure this option:
710
711.. code-block:: yaml
712
713 nova:
714 compute:
715 max_concurrent_live_migrations: 1 # (1 is the default)
716
Sergio Lystopad9d31cba2018-05-15 11:29:11 +0300717Live migration with auto converge
718----------------------------------
719
720Auto converge throttles down CPU if a progress of on-going live migration is slow.
721https://docs.openstack.org/ocata/config-reference/compute/config-options.html
722
723.. code-block:: yaml
724
725 nova:
726 compute:
727 libvirt:
728 live_migration_permit_auto_converge: False # (False is the default)
729
730.. code-block:: yaml
731
732 nova:
733 controller:
734 libvirt:
735 live_migration_permit_auto_converge: False # (False is the default)
736
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400737Enhanced logging with logging.conf
738----------------------------------
739
740By default logging.conf is disabled.
741
742That is possible to enable per-binary logging.conf with new variables:
743 * openstack_log_appender - set it to true to enable log_config_append for all OpenStack services;
744 * openstack_fluentd_handler_enabled - set to true to enable FluentHandler for all Openstack services.
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200745 * openstack_ossyslog_handler_enabled - set to true to enable OSSysLogHandler for all Openstack services.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400746
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200747Only WatchedFileHandler, OSSysLogHandler and FluentHandler are available.
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400748
Dmitry Kalashnik8da249c2018-01-16 17:58:00 +0400749Also it is possible to configure this with pillar:
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400750
751.. code-block:: yaml
752
753 nova:
754 controller:
755 logging:
756 log_appender: true
757 log_handlers:
758 watchedfile:
759 enabled: true
760 fluentd:
761 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200762 ossyslog:
763 enabled: true
Dmitry Kalashnike58fe082017-12-01 16:31:14 +0400764
765 compute:
766 logging:
767 log_appender: true
768 log_handlers:
769 watchedfile:
770 enabled: true
771 fluentd:
772 enabled: true
Oleksii Chupryn99e35032018-02-06 01:59:40 +0200773 ossyslog:
774 enabled: true
Thom Gerdesf582f1e2017-05-02 18:05:50 +0000775
Vasyl Saienko7243a952018-05-11 21:26:54 +0300776The log level might be configured per logger by using the
777following pillar structure:
778
779.. code-block:: yaml
780
781 nova:
782 compute:
783 logging:
784 loggers:
785 <logger_name>:
786 level: WARNING
787
788 nova:
789 compute:
790 logging:
791 loggers:
792 <logger_name>:
793 level: WARNING
794
Oleh Hryhorove38525d2018-05-15 08:58:59 +0000795Configure syslog parameters for libvirtd
796----------------------------------------
797
798To configure syslog parameters for libvirtd the below pillar structure should be used with values which are supported
799by libvirtd. These values might be known from the documentation.
800
801 nova:
802 compute:
803 libvirt:
804 logging:
805 level: 3
806 filters: '3:remote 4:event'
807 outputs: '3:syslog:libvirtd'
808 buffer_size: 64
809
810#################################################################
811#
812# Logging controls
813#
814
815# Logging level: 4 errors, 3 warnings, 2 information, 1 debug
816# basically 1 will log everything possible
817#log_level = 3
818
819# Logging filters:
820# A filter allows to select a different logging level for a given category
821# of logs
822# The format for a filter is one of:
823# x:name
824# x:+name
825# where name is a string which is matched against source file name,
826# e.g., "remote", "qemu", or "util/json", the optional "+" prefix
827# tells libvirt to log stack trace for each message matching name,
828# and x is the minimal level where matching messages should be logged:
829# 1: DEBUG
830# 2: INFO
831# 3: WARNING
832# 4: ERROR
833#
834# Multiple filter can be defined in a single @filters, they just need to be
835# separated by spaces.
836#
837# e.g. to only get warning or errors from the remote layer and only errors
838# from the event layer:
839#log_filters="3:remote 4:event"
840
841# Logging outputs:
842# An output is one of the places to save logging information
843# The format for an output can be:
844# x:stderr
845# output goes to stderr
846# x:syslog:name
847# use syslog for the output and use the given name as the ident
848# x:file:file_path
849# output to a file, with the given filepath
850# In all case the x prefix is the minimal level, acting as a filter
851# 1: DEBUG
852# 2: INFO
853# 3: WARNING
854# 4: ERROR
855#
856# Multiple output can be defined, they just need to be separated by spaces.
857# e.g. to log all warnings and errors to syslog under the libvirtd ident:
858#log_outputs="3:syslog:libvirtd"
859#
860
861# Log debug buffer size: default 64
862# The daemon keeps an internal debug log buffer which will be dumped in case
863# of crash or upon receiving a SIGUSR2 signal. This setting allows to override
864# the default buffer size in kilobytes.
865# If value is 0 or less the debug log buffer is deactivated
866#log_buffer_size = 64
867
868To configure logging parameters for qemu the below pillar structure and logging parameters should be used:
869
870 nova:
871 compute:
872 qemu:
873 logging:
874 handler: logd
875 virtlog:
876 enabled: true
877 level: 4
878 filters: '3:remote 3:event'
879 outputs: '4:syslog:virtlogd'
880 max_clients: 512
881 max_size: 2097100
882 max_backups: 2
883
Oleksandr Shyshko981b4fa2018-05-02 15:39:30 +0300884Inject password to VM
885---------------------
886
887By default nova blocks up any inject to VM because 'inject_partition' param is equal '-2'
888If 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'
889
890For example:
891
892 nova:
893 compute:
894 inject_partition: '-1'
895 inject_password: True
896
897# Allow the injection of an admin password for instance only at ``create`` and
898# ``rebuild`` process.
899#
900# There is no agent needed within the image to do this. If *libguestfs* is
901# available on the host, it will be used. Otherwise *nbd* is used. The file
902# system of the image will be mounted and the admin password, which is provided
903# in the REST API call will be injected as password for the root user. If no
904# root user is available, the instance won't be launched and an error is thrown.
905# Be aware that the injection is *not* possible when the instance gets launched
906# from a volume.
907#
908# Possible values:
909#
910# * True: Allows the injection.
911# * False (default): Disallows the injection. Any via the REST API provided
912# admin password will be silently ignored.
913#
914# Related options:
915#
916# * ``inject_partition``: That option will decide about the discovery and usage
917# of the file system. It also can disable the injection at all.
918# (boolean value)
919
920You can read more about injecting the administrator password here:
921 https://docs.openstack.org/nova/queens/admin/admin-password-injection.html
922
923
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100924Documentation and Bugs
925======================
926
927To learn how to install and update salt-formulas, consult the documentation
928available online at:
929
930 http://salt-formulas.readthedocs.io/
931
932In the unfortunate event that bugs are discovered, they should be reported to
933the appropriate issue tracker. Use Github issue tracker for specific salt
934formula:
935
936 https://github.com/salt-formulas/salt-formula-nova/issues
937
938For feature requests, bug reports or blueprints affecting entire ecosystem,
939use Launchpad salt-formulas project:
940
941 https://launchpad.net/salt-formulas
942
943You can also join salt-formulas-users team and subscribe to mailing list:
944
945 https://launchpad.net/~salt-formulas-users
946
947Developers wishing to work on the salt-formulas projects should always base
948their work on master branch and submit pull request against specific formula.
949
950 https://github.com/salt-formulas/salt-formula-nova
951
952Any questions or feedback is always welcome so feel free to join our IRC
953channel:
954
955 #salt-formulas @ irc.freenode.net