blob: dd2787702f2ae9de3792ecd2b066eee8165aaf81 [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
Jiri Konecnyb5a80e42016-03-22 11:51:01 +010029 workers: 8
Jakub Pavlik617a8962016-09-04 18:50:06 +020030 report_interval: 60
Filip Pytloun4a72d792015-10-06 16:28:32 +020031 bind:
32 public_address: 10.0.0.122
33 public_name: openstack.domain.com
34 novncproxy_port: 6080
35 database:
36 engine: mysql
37 host: 127.0.0.1
38 port: 3306
39 name: nova
40 user: nova
41 password: pwd
42 identity:
43 engine: keystone
44 host: 127.0.0.1
45 port: 35357
46 user: nova
47 password: pwd
48 tenant: service
49 message_queue:
50 engine: rabbitmq
51 host: 127.0.0.1
52 port: 5672
53 user: openstack
54 password: pwd
55 virtual_host: '/openstack'
56 network:
57 engine: neutron
58 host: 127.0.0.1
59 port: 9696
Jakub Pavlik617a8962016-09-04 18:50:06 +020060 extension_sync_interval: 600
Filip Pytloun4a72d792015-10-06 16:28:32 +020061 identity:
62 engine: keystone
63 host: 127.0.0.1
64 port: 35357
65 user: neutron
66 password: pwd
67 tenant: service
68 metadata:
69 password: password
Petr Michalecaa23dc02016-11-29 16:30:25 +010070 audit:
71 enabled: false
Simon Pasquier8683b7a2017-02-03 16:00:16 +010072 osapi_max_limit: 500
Filip Pytloun4a72d792015-10-06 16:28:32 +020073
Jiri Konecnye31f2c52016-04-14 17:16:02 +020074
Filip Pytloun4a72d792015-10-06 16:28:32 +020075Nova services from custom package repository
76
77.. code-block:: yaml
78
79 nova:
80 controller:
81 version: juno
82 source:
83 engine: pkg
84 address: http://...
85 ....
86
Jiri Konecnye31f2c52016-04-14 17:16:02 +020087
88Client-side RabbitMQ HA setup
89
90.. code-block:: yaml
91
92 nova:
93 controller:
94 ....
95 message_queue:
96 engine: rabbitmq
97 members:
98 - host: 10.0.16.1
99 - host: 10.0.16.2
100 - host: 10.0.16.3
101 user: openstack
102 password: pwd
103 virtual_host: '/openstack'
104 ....
105
106
Petr Michalecaa23dc02016-11-29 16:30:25 +0100107Enable auditing filter, ie: CADF
108
109.. code-block:: yaml
110
111 nova:
112 controller:
Simon Pasquier6a3c8f72016-12-19 15:37:24 +0100113 audit:
Petr Michalecaa23dc02016-11-29 16:30:25 +0100114 enabled: true
115 ....
116 filter_factory: 'keystonemiddleware.audit:filter_factory'
117 map_file: '/etc/pycadf/nova_api_audit_map.conf'
118 ....
119
120
Filip Pytloun4a72d792015-10-06 16:28:32 +0200121Compute nodes
122-------------
123
124Nova controller services on compute node
125
126.. code-block:: yaml
127
128 nova:
129 compute:
130 version: juno
131 enabled: true
132 virtualization: kvm
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100133 availability_zone: availability_zone_01
Damian Szelugae1922412017-04-18 16:36:46 +0200134 aggregates:
135 - hosts_with_fc
136 - hosts_with_ssd
Filip Pytloun4a72d792015-10-06 16:28:32 +0200137 security_group: true
Petr Michalecf03e4882017-04-10 10:26:18 +0200138 resume_guests_state_on_host_boot: False
Filip Pytloun4a72d792015-10-06 16:28:32 +0200139 bind:
140 vnc_address: 172.20.0.100
141 vnc_port: 6080
142 vnc_name: openstack.domain.com
143 vnc_protocol: http
144 database:
145 engine: mysql
146 host: 127.0.0.1
147 port: 3306
148 name: nova
149 user: nova
150 password: pwd
151 identity:
152 engine: keystone
153 host: 127.0.0.1
154 port: 35357
155 user: nova
156 password: pwd
157 tenant: service
158 message_queue:
159 engine: rabbitmq
160 host: 127.0.0.1
161 port: 5672
162 user: openstack
163 password: pwd
164 virtual_host: '/openstack'
165 image:
166 engine: glance
167 host: 127.0.0.1
168 port: 9292
169 network:
170 engine: neutron
171 host: 127.0.0.1
172 port: 9696
173 identity:
174 engine: keystone
175 host: 127.0.0.1
176 port: 35357
177 user: neutron
178 password: pwd
179 tenant: service
180 qemu:
181 max_files: 4096
182 max_processes: 4096
183
184Nova services on compute node with OpenContrail
185
186.. code-block:: yaml
187
188 nova:
189 compute:
190 enabled: true
191 ...
192 networking: contrail
193
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200194
Filip Pytloun4a72d792015-10-06 16:28:32 +0200195Nova services on compute node with memcached caching
196
197.. code-block:: yaml
198
199 nova:
200 compute:
201 enabled: true
202 ...
203 cache:
204 engine: memcached
205 members:
206 - host: 127.0.0.1
207 port: 11211
208 - host: 127.0.0.1
209 port: 11211
210
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200211
212Client-side RabbitMQ HA setup
213
214.. code-block:: yaml
215
216 nova:
217 controller:
218 ....
219 message_queue:
220 engine: rabbitmq
221 members:
222 - host: 10.0.16.1
223 - host: 10.0.16.2
224 - host: 10.0.16.3
225 user: openstack
226 password: pwd
227 virtual_host: '/openstack'
228 ....
229
maxstack39e6aca2016-05-04 13:50:13 +0000230
231Nova with ephemeral configured with Ceph
232
233.. code-block:: yaml
234
235 nova:
236 compute:
237 enabled: true
238 ...
239 ceph:
240 ephemeral: yes
241 rbd_pool: nova
242 rbd_user: nova
243 secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
244
245
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100246Client role
247-----------
248
249Nova flavors
250
251.. code-block:: yaml
252
253 nova:
254 client:
255 enabled: true
256 server:
257 identity:
258 flavor:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100259 flavor1:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100260 flavor_id: 10
261 ram: 4096
262 disk: 10
263 vcpus: 1
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100264 flavor2:
265 flavor_id: auto
266 ram: 4096
267 disk: 20
268 vcpus: 2
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100269 identity1:
270 flavor:
271 ...
272
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100273
274Availability zones
275
276.. code-block:: yaml
277
278 nova:
279 client:
280 enabled: true
281 server:
282 identity:
283 availability_zones:
284 - availability_zone_01
285 - availability_zone_02
286
Damian Szeluga5dca0f02017-04-13 17:27:15 +0200287
288
289Aggregates
290
291.. code-block:: yaml
292
293 nova:
294 client:
295 enabled: true
296 server:
297 identity:
298 aggregates:
299 - aggregate1
300 - aggregate2
301
Petr Jedinýd855ef22017-03-06 22:24:33 +0100302SR-IOV
Jakub Pavlik39a05942017-02-13 23:03:08 +0100303------
304
305Add PciPassthroughFilter into scheduler filters and NICs on specific compute nodes.
306
307.. code-block:: yaml
308
309 nova:
310 controller:
311 sriov: true
312 scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter"
313
314 nova:
315 compute:
316 sriov:
317 nic_one:
318 devname: eth1
319 physical_network: physnet1
320
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100321CPU pinning & Hugepages
322-----------------------
323
324CPU pinning of virtual machine instances to dedicated physical CPU cores.
325Hugepages mount point for libvirt.
326
327.. code-block:: yaml
328
329 nova:
330 controller:
331 scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
332
333 nova:
334 compute:
335 vcpu_pin_set: 2,3,4,5
336 hugepages:
337 mount_points:
338 - path: /mnt/hugepages_1GB
339 - path: /mnt/hugepages_2MB
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100340
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200341Custom Scheduler filters
342------------------------
343
344If you have a custom filter, that needs to be included in the scheduler, then you can include it like so:
345
346.. code-block:: yaml
347
348 nova:
349 controller:
350 scheduler_custom_filters:
351 - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
352
353 # Then add your custom filter on the end (make sure to include all other ones that you need as well)
354 scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
355
Michel Nederlofeb566f62017-04-21 15:37:47 +0200356Hardware Trip/Unmap Support
357---------------------------
358
359To enable TRIM support for ephemeral images (thru nova managed images), libvirt has this option.
360
361.. code-block:: yaml
362
363 nova:
364 compute:
365 libvirt:
366 hw_disk_discard: unmap
367
368In order to actually utilize this feature, the following metadata must be set on the image as well, so the SCSI unmap is supported.
369
370.. code-block:: bash
371
372 glance image-update --property hw_scsi_model=virtio-scsi <image>
373 glance image-update --property hw_disk_bus=scsi <image>
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100374
375Documentation and Bugs
376======================
377
378To learn how to install and update salt-formulas, consult the documentation
379available online at:
380
381 http://salt-formulas.readthedocs.io/
382
383In the unfortunate event that bugs are discovered, they should be reported to
384the appropriate issue tracker. Use Github issue tracker for specific salt
385formula:
386
387 https://github.com/salt-formulas/salt-formula-nova/issues
388
389For feature requests, bug reports or blueprints affecting entire ecosystem,
390use Launchpad salt-formulas project:
391
392 https://launchpad.net/salt-formulas
393
394You can also join salt-formulas-users team and subscribe to mailing list:
395
396 https://launchpad.net/~salt-formulas-users
397
398Developers wishing to work on the salt-formulas projects should always base
399their work on master branch and submit pull request against specific formula.
400
401 https://github.com/salt-formulas/salt-formula-nova
402
403Any questions or feedback is always welcome so feel free to join our IRC
404channel:
405
406 #salt-formulas @ irc.freenode.net