blob: bb8f2de8dfdd4adab1c55c962698c5d835068919 [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
Filip Pytloun4a72d792015-10-06 16:28:32 +0200134 security_group: true
Petr Michalecf03e4882017-04-10 10:26:18 +0200135 resume_guests_state_on_host_boot: False
Filip Pytloun4a72d792015-10-06 16:28:32 +0200136 bind:
137 vnc_address: 172.20.0.100
138 vnc_port: 6080
139 vnc_name: openstack.domain.com
140 vnc_protocol: http
141 database:
142 engine: mysql
143 host: 127.0.0.1
144 port: 3306
145 name: nova
146 user: nova
147 password: pwd
148 identity:
149 engine: keystone
150 host: 127.0.0.1
151 port: 35357
152 user: nova
153 password: pwd
154 tenant: service
155 message_queue:
156 engine: rabbitmq
157 host: 127.0.0.1
158 port: 5672
159 user: openstack
160 password: pwd
161 virtual_host: '/openstack'
162 image:
163 engine: glance
164 host: 127.0.0.1
165 port: 9292
166 network:
167 engine: neutron
168 host: 127.0.0.1
169 port: 9696
170 identity:
171 engine: keystone
172 host: 127.0.0.1
173 port: 35357
174 user: neutron
175 password: pwd
176 tenant: service
177 qemu:
178 max_files: 4096
179 max_processes: 4096
180
181Nova services on compute node with OpenContrail
182
183.. code-block:: yaml
184
185 nova:
186 compute:
187 enabled: true
188 ...
189 networking: contrail
190
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200191
Filip Pytloun4a72d792015-10-06 16:28:32 +0200192Nova services on compute node with memcached caching
193
194.. code-block:: yaml
195
196 nova:
197 compute:
198 enabled: true
199 ...
200 cache:
201 engine: memcached
202 members:
203 - host: 127.0.0.1
204 port: 11211
205 - host: 127.0.0.1
206 port: 11211
207
Jiri Konecnye31f2c52016-04-14 17:16:02 +0200208
209Client-side RabbitMQ HA setup
210
211.. code-block:: yaml
212
213 nova:
214 controller:
215 ....
216 message_queue:
217 engine: rabbitmq
218 members:
219 - host: 10.0.16.1
220 - host: 10.0.16.2
221 - host: 10.0.16.3
222 user: openstack
223 password: pwd
224 virtual_host: '/openstack'
225 ....
226
maxstack39e6aca2016-05-04 13:50:13 +0000227
228Nova with ephemeral configured with Ceph
229
230.. code-block:: yaml
231
232 nova:
233 compute:
234 enabled: true
235 ...
236 ceph:
237 ephemeral: yes
238 rbd_pool: nova
239 rbd_user: nova
240 secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
241
242
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100243Client role
244-----------
245
246Nova flavors
247
248.. code-block:: yaml
249
250 nova:
251 client:
252 enabled: true
253 server:
254 identity:
255 flavor:
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100256 flavor1:
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100257 flavor_id: 10
258 ram: 4096
259 disk: 10
260 vcpus: 1
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100261 flavor2:
262 flavor_id: auto
263 ram: 4096
264 disk: 20
265 vcpus: 2
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100266 identity1:
267 flavor:
268 ...
269
Jiri Broulik70d9e3f2017-02-15 18:37:13 +0100270
271Availability zones
272
273.. code-block:: yaml
274
275 nova:
276 client:
277 enabled: true
278 server:
279 identity:
280 availability_zones:
281 - availability_zone_01
282 - availability_zone_02
283
Petr Jedinýd855ef22017-03-06 22:24:33 +0100284SR-IOV
Jakub Pavlik39a05942017-02-13 23:03:08 +0100285------
286
287Add PciPassthroughFilter into scheduler filters and NICs on specific compute nodes.
288
289.. code-block:: yaml
290
291 nova:
292 controller:
293 sriov: true
294 scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter"
295
296 nova:
297 compute:
298 sriov:
299 nic_one:
300 devname: eth1
301 physical_network: physnet1
302
Jakub Pavlik26fb85c2017-02-16 22:29:22 +0100303CPU pinning & Hugepages
304-----------------------
305
306CPU pinning of virtual machine instances to dedicated physical CPU cores.
307Hugepages mount point for libvirt.
308
309.. code-block:: yaml
310
311 nova:
312 controller:
313 scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
314
315 nova:
316 compute:
317 vcpu_pin_set: 2,3,4,5
318 hugepages:
319 mount_points:
320 - path: /mnt/hugepages_1GB
321 - path: /mnt/hugepages_2MB
Jiri Broulik0ce9fc92017-02-01 23:10:40 +0100322
Michel Nederlof171c7ac2017-04-13 12:54:14 +0200323Custom Scheduler filters
324------------------------
325
326If you have a custom filter, that needs to be included in the scheduler, then you can include it like so:
327
328.. code-block:: yaml
329
330 nova:
331 controller:
332 scheduler_custom_filters:
333 - my_custom_driver.nova.scheduler.filters.my_custom_filter.MyCustomFilter
334
335 # Then add your custom filter on the end (make sure to include all other ones that you need as well)
336 scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,MyCustomFilter"
337
Filip Pytloun5bc9e9f2017-02-02 13:05:40 +0100338
339Documentation and Bugs
340======================
341
342To learn how to install and update salt-formulas, consult the documentation
343available online at:
344
345 http://salt-formulas.readthedocs.io/
346
347In the unfortunate event that bugs are discovered, they should be reported to
348the appropriate issue tracker. Use Github issue tracker for specific salt
349formula:
350
351 https://github.com/salt-formulas/salt-formula-nova/issues
352
353For feature requests, bug reports or blueprints affecting entire ecosystem,
354use Launchpad salt-formulas project:
355
356 https://launchpad.net/salt-formulas
357
358You can also join salt-formulas-users team and subscribe to mailing list:
359
360 https://launchpad.net/~salt-formulas-users
361
362Developers wishing to work on the salt-formulas projects should always base
363their work on master branch and submit pull request against specific formula.
364
365 https://github.com/salt-formulas/salt-formula-nova
366
367Any questions or feedback is always welcome so feel free to join our IRC
368channel:
369
370 #salt-formulas @ irc.freenode.net