blob: 2ca9873706f2655257acf6e7db55a859eadf1953 [file] [log] [blame]
Filip Pytlounda2a0792015-10-06 16:28:31 +02001==============================
2Openstack Cinder Block Storage
3==============================
4
Jakub Pavlikb513f132016-05-20 11:11:19 +02005Cinder provides an infrastructure for managing volumes in OpenStack. It was
6originally a Nova component called nova-volume, but has become an independent
7project since the Folsom release.
Filip Pytlounda2a0792015-10-06 16:28:31 +02008
9Sample pillars
10==============
11
Jakub Pavlikb513f132016-05-20 11:11:19 +020012New structure divides cinder-api,cinder-scheduler to role controller and
13cinder-volume to role volume.
Filip Pytlounda2a0792015-10-06 16:28:31 +020014
15.. code-block:: yaml
16
17 cinder:
18 controller:
19 enabled: true
20 version: juno
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010021 default_volume_type: 7k2SaS
Damian Szeluga0918f5a2017-04-19 12:26:56 +020022 availability_zone_fallback: True
Filip Pytlounda2a0792015-10-06 16:28:31 +020023 database:
24 engine: mysql
25 host: 127.0.0.1
26 port: 3306
27 name: cinder
28 user: cinder
29 password: pwd
30 identity:
31 engine: keystone
32 host: 127.0.0.1
33 port: 35357
34 tenant: service
35 user: cinder
36 password: pwd
37 message_queue:
38 engine: rabbitmq
39 host: 127.0.0.1
40 port: 5672
41 user: openstack
42 password: pwd
43 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010044 backend:
45 7k2_SAS:
46 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010047 type_name: slow-disks
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010048 host: 192.168.0.1
49 port: 22
50 user: username
51 password: pass
52 connection: FC/iSCSI
53 multihost: true
54 multipath: true
55 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +010056 audit:
57 enabled: false
Simon Pasquier9089de42017-02-03 16:13:22 +010058 osapi_max_limit: 500
Filip Pytlounda2a0792015-10-06 16:28:31 +020059
60 cinder:
61 volume:
62 enabled: true
63 version: juno
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010064 default_volume_type: 7k2SaS
Filip Pytlounda2a0792015-10-06 16:28:31 +020065 database:
66 engine: mysql
67 host: 127.0.0.1
68 port: 3306
69 name: cinder
70 user: cinder
71 password: pwd
72 identity:
73 engine: keystone
74 host: 127.0.0.1
75 port: 35357
76 tenant: service
77 user: cinder
78 password: pwd
79 message_queue:
80 engine: rabbitmq
81 host: 127.0.0.1
82 port: 5672
83 user: openstack
84 password: pwd
85 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010086 backend:
87 7k2_SAS:
88 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010089 type_name: 7k2 SAS disk
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010090 host: 192.168.0.1
91 port: 22
92 user: username
93 password: pass
94 connection: FC/iSCSI
95 multihost: true
96 multipath: true
97 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +010098 audit:
99 enabled: false
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200100
101Client-side RabbitMQ HA setup for controller
102
103.. code-block:: yaml
104
105 cinder:
106 controller:
107 ....
108 message_queue:
109 engine: rabbitmq
110 members:
111 - host: 10.0.16.1
112 - host: 10.0.16.2
113 - host: 10.0.16.3
114 user: openstack
115 password: pwd
116 virtual_host: '/openstack'
117 ....
118
119Client-side RabbitMQ HA setup for volume component
120
121.. code-block:: yaml
122
123 cinder:
124 volume:
125 ....
126 message_queue:
127 engine: rabbitmq
128 members:
129 - host: 10.0.16.1
130 - host: 10.0.16.2
131 - host: 10.0.16.3
132 user: openstack
133 password: pwd
134 virtual_host: '/openstack'
135 ....
Filip Pytlounda2a0792015-10-06 16:28:31 +0200136
137Cinder setup with zeroing deleted volumes
138
Alexander Noskov62496fb2017-02-27 16:42:54 +0100139.. code-block:: yaml
140
Filip Pytlounda2a0792015-10-06 16:28:31 +0200141 cinder:
142 controller:
143 enabled: true
144 wipe_method: zero
145 ...
146
147Cinder setup with shreding deleted volumes
148
149.. code-block:: yaml
150
151 cinder:
152 controller:
153 enabled: true
154 wipe_method: shred
155 ...
156
157
158Default Cinder setup with iSCSI target
159
160.. code-block:: yaml
161
162 cinder:
163 controller:
164 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200165 version: mitaka
166 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200167 database:
168 engine: mysql
169 host: 127.0.0.1
170 port: 3306
171 name: cinder
172 user: cinder
173 password: pwd
174 identity:
175 engine: keystone
176 host: 127.0.0.1
177 port: 35357
178 tenant: service
179 user: cinder
180 password: pwd
181 message_queue:
182 engine: rabbitmq
183 host: 127.0.0.1
184 port: 5672
185 user: openstack
186 password: pwd
187 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100188 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200189 lvmdriver-1:
190 engine: lvm
191 type_name: lvmdriver-1
192 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200193
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100194Cinder setup for IBM Storwize
Filip Pytlounda2a0792015-10-06 16:28:31 +0200195
196.. code-block:: yaml
197
198 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100199 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200200 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100201 backend:
202 7k2_SAS:
203 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100204 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100205 host: 192.168.0.1
206 port: 22
207 user: username
208 password: pass
209 connection: FC/iSCSI
210 multihost: true
211 multipath: true
212 pool: SAS7K2
213 10k_SAS:
214 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100215 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100216 host: 192.168.0.1
217 port: 22
218 user: username
219 password: pass
220 connection: FC/iSCSI
221 multihost: true
222 multipath: true
223 pool: SAS10K
224 15k_SAS:
225 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100226 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100227 host: 192.168.0.1
228 port: 22
229 user: username
230 password: pass
231 connection: FC/iSCSI
232 multihost: true
233 multipath: true
234 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200235
Jiri Broulik88548db2017-03-31 12:21:37 +0200236
237Cinder setup with NFS
238
239.. code-block:: yaml
240
241 cinder:
242 controller:
243 enabled: true
244 default_volume_type: nfs-driver
245 backend:
246 nfs-driver:
247 engine: nfs
248 type_name: nfs-driver
249 volume_group: cinder-volume
250 path: /var/lib/cinder/nfs
251 devices:
252 - 172.16.10.110:/var/nfs/cinder
253 options: rw,sync
254
255
Filip Pytlounda2a0792015-10-06 16:28:31 +0200256Cinder setup with Hitachi VPS
257
258.. code-block:: yaml
259
260 cinder:
261 controller:
262 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100263 backend:
264 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100265 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100266 backend: hus100_backend
267 engine: hitachi_vsp
268 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200269
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100270Cinder setup with Hitachi VPS with defined ldev range
271
272.. code-block:: yaml
273
274 cinder:
275 controller:
276 enabled: true
277 backend:
278 hus100_backend:
279 type_name: HUS100
280 backend: hus100_backend
281 engine: hitachi_vsp
282 connection: FC
283 ldev_range: 0-1000
284
Filip Pytlounda2a0792015-10-06 16:28:31 +0200285Cinder setup with CEPH
286
287.. code-block:: yaml
288
289 cinder:
290 controller:
291 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100292 backend:
293 ceph_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100294 type_name: standard-iops
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100295 backend: ceph_backend
296 pool: volumes
297 engine: ceph
298 user: cinder
299 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
300 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
Filip Pytlounda2a0792015-10-06 16:28:31 +0200301
302http://ceph.com/docs/master/rbd/rbd-openstack/
303
304
305Cinder setup with HP3par
306
307.. code-block:: yaml
308
309 cinder:
310 controller:
311 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100312 backend:
313 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100314 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100315 backend: hp3par_backend
316 user: hp3paruser
317 password: something
318 url: http://10.10.10.10/api/v1
319 cpg: OpenStackCPG
320 host: 10.10.10.10
321 login: hp3paradmin
322 sanpassword: something
323 debug: True
324 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200325
326Cinder setup with Fujitsu Eternus
327
328.. code-block:: yaml
329
330 cinder:
331 volume:
332 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100333 backend:
334 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100335 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100336 engine: fujitsu
337 pool: 10kThinPro
338 host: 192.168.0.1
339 port: 5988
340 user: username
341 password: pass
342 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100343 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100344 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100345 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100346 pool: SAS10K
347 engine: fujitsu
348 host: 192.168.0.1
349 port: 5988
350 user: username
351 password: pass
352 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100353 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200354
Jakub Pavlik9703c602015-10-15 18:52:47 +0200355Cinder setup with IBM GPFS filesystem
356
357.. code-block:: yaml
358
359 cinder:
360 volume:
361 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100362 backend:
363 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100364 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100365 engine: gpfs
366 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100367 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100368 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100369 engine: gpfs
370 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100371
372Cinder setup with HP LeftHand
373
374.. code-block:: yaml
375
376 cinder:
377 volume:
378 enabled: true
379 backend:
380 HP-LeftHand:
381 type_name: normal-storage
382 engine: hp_lefthand
383 api_url: 'https://10.10.10.10:8081/lhos'
384 username: user
385 password: password
386 clustername: cluster1
387 iscsi_chap_enabled: false
388
Jakub Pavlika63764f2016-01-11 14:41:06 +0100389Extra parameters for HP LeftHand
Jakub Pavlika63764f2016-01-11 14:41:06 +0100390
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100391.. code-block:: yaml
392
393 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
394
marcodaa52fa2016-01-25 23:49:50 +0100395Cinder setup with Solidfire
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100396
397.. code-block:: yaml
398
399 cinder:
400 volume:
401 enabled: true
402 backend:
403 solidfire:
404 type_name: normal-storage
405 engine: solidfire
406 san_ip: 10.10.10.10
407 san_login: user
408 san_password: password
409 clustername: cluster1
410 sf_emulate_512: false
Filip Pytlounda2a0792015-10-06 16:28:31 +0200411
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100412
413
414Enable auditing filter, ie: CADF
415
416.. code-block:: yaml
417
418 cinder:
419 controller:
420 audit:
421 enabled: true
422 ....
423 filter_factory: 'keystonemiddleware.audit:filter_factory'
424 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
425 ....
426 volume:
427 audit:
428 enabled: true
429 ....
430 filter_factory: 'keystonemiddleware.audit:filter_factory'
431 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
432
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100433
434Cinder setup with custom availability zones:
435
436.. code-block:: yaml
437
438 cinder:
439 controller:
440 default_availability_zone: my-default-zone
441 storage_availability_zone: my-custom-zone-name
442 cinder:
443 volume:
444 default_availability_zone: my-default-zone
445 storage_availability_zone: my-custom-zone-name
446
Alexander Noskov62496fb2017-02-27 16:42:54 +0100447public_endpoint and osapi_volume_base_url parameters:
448"public_endpoint" is used for configuring versions endpoint,
449"osapi_volume_base_URL" is used to present Cinder URL to users.
450They are useful when running Cinder under load balancer in SSL.
451
452.. code-block:: yaml
453
454 cinder:
455 controller:
456 public_endpoint_address: https://${_param:cluster_domain}:8776
457
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100458The default availability zone is used when a volume has been created, without specifying a zone in the create request. (this zone must exist in your configuration obviously)
459The storage availability zone is the actual zone where the node belongs to. Make sure to specify this per node.
460Check the documentation of OpenStack for more information
461
Jakub Pavlikb513f132016-05-20 11:11:19 +0200462Documentation and Bugs
463============================
464
465To learn how to deploy OpenStack Salt, consult the documentation available
466online at:
467
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100468https://wiki.openstack.org/wiki/OpenStackSalt
Jakub Pavlikb513f132016-05-20 11:11:19 +0200469
470In the unfortunate event that bugs are discovered, they should be reported to
471the appropriate bug tracker. If you obtained the software from a 3rd party
472operating system vendor, it is often wise to use their own bug tracker for
473reporting problems. In all other cases use the master OpenStack bug tracker,
474available at:
475
476 http://bugs.launchpad.net/openstack-salt
477
478Developers wishing to work on the OpenStack Salt project should always base
479their work on the latest formulas code, available from the master GIT
480repository at:
481
482 https://git.openstack.org/cgit/openstack/salt-formula-cinder
483
484Developers should also join the discussion on the IRC list, at:
485
486 https://wiki.openstack.org/wiki/Meetings/openstack-salt
Filip Pytlounb0f5c1f2017-02-02 13:02:03 +0100487
488Documentation and Bugs
489======================
490
491To learn how to install and update salt-formulas, consult the documentation
492available online at:
493
494 http://salt-formulas.readthedocs.io/
495
496In the unfortunate event that bugs are discovered, they should be reported to
497the appropriate issue tracker. Use Github issue tracker for specific salt
498formula:
499
500 https://github.com/salt-formulas/salt-formula-cinder/issues
501
502For feature requests, bug reports or blueprints affecting entire ecosystem,
503use Launchpad salt-formulas project:
504
505 https://launchpad.net/salt-formulas
506
507You can also join salt-formulas-users team and subscribe to mailing list:
508
509 https://launchpad.net/~salt-formulas-users
510
511Developers wishing to work on the salt-formulas projects should always base
512their work on master branch and submit pull request against specific formula.
513
514 https://github.com/salt-formulas/salt-formula-cinder
515
516Any questions or feedback is always welcome so feel free to join our IRC
517channel:
518
519 #salt-formulas @ irc.freenode.net