blob: 971f76ce2db0fcaaf8fb7fbe32d686581765fe26 [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
Ondrej Smola74af21b2017-04-28 12:30:24 +0200100
101
102Enable CORS parameters
103
104.. code-block:: yaml
105
106 cinder:
107 controller:
108 cors:
109 allowed_origin: https:localhost.local,http:localhost.local
110 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
111 allow_methods: GET,PUT,POST,DELETE,PATCH
112 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
113 allow_credentials: True
114 max_age: 86400
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200115
116Client-side RabbitMQ HA setup for controller
117
118.. code-block:: yaml
119
120 cinder:
121 controller:
122 ....
123 message_queue:
124 engine: rabbitmq
125 members:
126 - host: 10.0.16.1
127 - host: 10.0.16.2
128 - host: 10.0.16.3
129 user: openstack
130 password: pwd
131 virtual_host: '/openstack'
132 ....
133
134Client-side RabbitMQ HA setup for volume component
135
136.. code-block:: yaml
137
138 cinder:
139 volume:
140 ....
141 message_queue:
142 engine: rabbitmq
143 members:
144 - host: 10.0.16.1
145 - host: 10.0.16.2
146 - host: 10.0.16.3
147 user: openstack
148 password: pwd
149 virtual_host: '/openstack'
150 ....
Filip Pytlounda2a0792015-10-06 16:28:31 +0200151
152Cinder setup with zeroing deleted volumes
153
Alexander Noskov62496fb2017-02-27 16:42:54 +0100154.. code-block:: yaml
155
Filip Pytlounda2a0792015-10-06 16:28:31 +0200156 cinder:
157 controller:
158 enabled: true
159 wipe_method: zero
160 ...
161
162Cinder setup with shreding deleted volumes
163
164.. code-block:: yaml
165
166 cinder:
167 controller:
168 enabled: true
169 wipe_method: shred
170 ...
171
172
173Default Cinder setup with iSCSI target
174
175.. code-block:: yaml
176
177 cinder:
178 controller:
179 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200180 version: mitaka
181 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200182 database:
183 engine: mysql
184 host: 127.0.0.1
185 port: 3306
186 name: cinder
187 user: cinder
188 password: pwd
189 identity:
190 engine: keystone
191 host: 127.0.0.1
192 port: 35357
193 tenant: service
194 user: cinder
195 password: pwd
196 message_queue:
197 engine: rabbitmq
198 host: 127.0.0.1
199 port: 5672
200 user: openstack
201 password: pwd
202 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100203 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200204 lvmdriver-1:
205 engine: lvm
206 type_name: lvmdriver-1
207 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200208
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100209Cinder setup for IBM Storwize
Filip Pytlounda2a0792015-10-06 16:28:31 +0200210
211.. code-block:: yaml
212
213 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100214 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200215 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100216 backend:
217 7k2_SAS:
218 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100219 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100220 host: 192.168.0.1
221 port: 22
222 user: username
223 password: pass
224 connection: FC/iSCSI
225 multihost: true
226 multipath: true
227 pool: SAS7K2
228 10k_SAS:
229 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100230 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100231 host: 192.168.0.1
232 port: 22
233 user: username
234 password: pass
235 connection: FC/iSCSI
236 multihost: true
237 multipath: true
238 pool: SAS10K
239 15k_SAS:
240 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100241 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100242 host: 192.168.0.1
243 port: 22
244 user: username
245 password: pass
246 connection: FC/iSCSI
247 multihost: true
248 multipath: true
249 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200250
Jiri Broulik88548db2017-03-31 12:21:37 +0200251
252Cinder setup with NFS
253
254.. code-block:: yaml
255
256 cinder:
257 controller:
258 enabled: true
259 default_volume_type: nfs-driver
260 backend:
261 nfs-driver:
262 engine: nfs
263 type_name: nfs-driver
264 volume_group: cinder-volume
265 path: /var/lib/cinder/nfs
266 devices:
267 - 172.16.10.110:/var/nfs/cinder
268 options: rw,sync
269
270
Filip Pytlounda2a0792015-10-06 16:28:31 +0200271Cinder setup with Hitachi VPS
272
273.. code-block:: yaml
274
275 cinder:
276 controller:
277 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100278 backend:
279 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100280 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100281 backend: hus100_backend
282 engine: hitachi_vsp
283 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200284
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100285Cinder setup with Hitachi VPS with defined ldev range
286
287.. code-block:: yaml
288
289 cinder:
290 controller:
291 enabled: true
292 backend:
293 hus100_backend:
294 type_name: HUS100
295 backend: hus100_backend
296 engine: hitachi_vsp
297 connection: FC
298 ldev_range: 0-1000
299
Filip Pytlounda2a0792015-10-06 16:28:31 +0200300Cinder setup with CEPH
301
302.. code-block:: yaml
303
304 cinder:
305 controller:
306 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100307 backend:
308 ceph_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100309 type_name: standard-iops
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100310 backend: ceph_backend
311 pool: volumes
312 engine: ceph
313 user: cinder
314 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
315 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
Filip Pytlounda2a0792015-10-06 16:28:31 +0200316
317http://ceph.com/docs/master/rbd/rbd-openstack/
318
319
320Cinder setup with HP3par
321
322.. code-block:: yaml
323
324 cinder:
325 controller:
326 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100327 backend:
328 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100329 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100330 backend: hp3par_backend
331 user: hp3paruser
332 password: something
333 url: http://10.10.10.10/api/v1
334 cpg: OpenStackCPG
335 host: 10.10.10.10
336 login: hp3paradmin
337 sanpassword: something
338 debug: True
339 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200340
341Cinder setup with Fujitsu Eternus
342
343.. code-block:: yaml
344
345 cinder:
346 volume:
347 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100348 backend:
349 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100350 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100351 engine: fujitsu
352 pool: 10kThinPro
353 host: 192.168.0.1
354 port: 5988
355 user: username
356 password: pass
357 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100358 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100359 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100360 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100361 pool: SAS10K
362 engine: fujitsu
363 host: 192.168.0.1
364 port: 5988
365 user: username
366 password: pass
367 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100368 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200369
Jakub Pavlik9703c602015-10-15 18:52:47 +0200370Cinder setup with IBM GPFS filesystem
371
372.. code-block:: yaml
373
374 cinder:
375 volume:
376 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100377 backend:
378 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100379 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100380 engine: gpfs
381 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100382 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100383 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100384 engine: gpfs
385 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100386
387Cinder setup with HP LeftHand
388
389.. code-block:: yaml
390
391 cinder:
392 volume:
393 enabled: true
394 backend:
395 HP-LeftHand:
396 type_name: normal-storage
397 engine: hp_lefthand
398 api_url: 'https://10.10.10.10:8081/lhos'
399 username: user
400 password: password
401 clustername: cluster1
402 iscsi_chap_enabled: false
403
Jakub Pavlika63764f2016-01-11 14:41:06 +0100404Extra parameters for HP LeftHand
Jakub Pavlika63764f2016-01-11 14:41:06 +0100405
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100406.. code-block:: yaml
407
408 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
409
marcodaa52fa2016-01-25 23:49:50 +0100410Cinder setup with Solidfire
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100411
412.. code-block:: yaml
413
414 cinder:
415 volume:
416 enabled: true
417 backend:
418 solidfire:
419 type_name: normal-storage
420 engine: solidfire
421 san_ip: 10.10.10.10
422 san_login: user
423 san_password: password
424 clustername: cluster1
425 sf_emulate_512: false
Filip Pytlounda2a0792015-10-06 16:28:31 +0200426
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200427Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100428
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200429.. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100430
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200431 cinder:
432 controller:
433 enabled: true
434 version: mitaka
435 backup:
436 engine: ceph
437 ceph_conf: "/etc/ceph/ceph.conf"
438 ceph_pool: backup
439 ceph_stripe_count: 0
440 ceph_stripe_unit: 0
441 ceph_user: cinder
442 ceph_chunk_size: 134217728
443 restore_discard_excess_bytes: false
444 volume:
445 enabled: true
446 version: mitaka
447 backup:
448 engine: ceph
449 ceph_conf: "/etc/ceph/ceph.conf"
450 ceph_pool: backup
451 ceph_stripe_count: 0
452 ceph_stripe_unit: 0
453 ceph_user: cinder
454 ceph_chunk_size: 134217728
455 restore_discard_excess_bytes: false
456
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100457Enable auditing filter, ie: CADF
458
459.. code-block:: yaml
460
461 cinder:
462 controller:
463 audit:
464 enabled: true
465 ....
466 filter_factory: 'keystonemiddleware.audit:filter_factory'
467 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
468 ....
469 volume:
470 audit:
471 enabled: true
472 ....
473 filter_factory: 'keystonemiddleware.audit:filter_factory'
474 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
475
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100476
477Cinder setup with custom availability zones:
478
479.. code-block:: yaml
480
481 cinder:
482 controller:
483 default_availability_zone: my-default-zone
484 storage_availability_zone: my-custom-zone-name
485 cinder:
486 volume:
487 default_availability_zone: my-default-zone
488 storage_availability_zone: my-custom-zone-name
489
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300490
491Cinder setup with custom non-admin volume query filters:
492
493.. code-block:: yaml
494
495 cinder:
496 controller:
497 query_volume_filters:
498 - name
499 - status
500 - metadata
501 - availability_zone
502 - bootable
503
504
Alexander Noskov62496fb2017-02-27 16:42:54 +0100505public_endpoint and osapi_volume_base_url parameters:
506"public_endpoint" is used for configuring versions endpoint,
507"osapi_volume_base_URL" is used to present Cinder URL to users.
508They are useful when running Cinder under load balancer in SSL.
509
510.. code-block:: yaml
511
512 cinder:
513 controller:
514 public_endpoint_address: https://${_param:cluster_domain}:8776
515
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100516The 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)
517The storage availability zone is the actual zone where the node belongs to. Make sure to specify this per node.
518Check the documentation of OpenStack for more information
519
Jakub Pavlikb513f132016-05-20 11:11:19 +0200520Documentation and Bugs
521============================
522
523To learn how to deploy OpenStack Salt, consult the documentation available
524online at:
525
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100526https://wiki.openstack.org/wiki/OpenStackSalt
Jakub Pavlikb513f132016-05-20 11:11:19 +0200527
528In the unfortunate event that bugs are discovered, they should be reported to
529the appropriate bug tracker. If you obtained the software from a 3rd party
530operating system vendor, it is often wise to use their own bug tracker for
531reporting problems. In all other cases use the master OpenStack bug tracker,
532available at:
533
534 http://bugs.launchpad.net/openstack-salt
535
536Developers wishing to work on the OpenStack Salt project should always base
537their work on the latest formulas code, available from the master GIT
538repository at:
539
540 https://git.openstack.org/cgit/openstack/salt-formula-cinder
541
542Developers should also join the discussion on the IRC list, at:
543
544 https://wiki.openstack.org/wiki/Meetings/openstack-salt
Filip Pytlounb0f5c1f2017-02-02 13:02:03 +0100545
546Documentation and Bugs
547======================
548
549To learn how to install and update salt-formulas, consult the documentation
550available online at:
551
552 http://salt-formulas.readthedocs.io/
553
554In the unfortunate event that bugs are discovered, they should be reported to
555the appropriate issue tracker. Use Github issue tracker for specific salt
556formula:
557
558 https://github.com/salt-formulas/salt-formula-cinder/issues
559
560For feature requests, bug reports or blueprints affecting entire ecosystem,
561use Launchpad salt-formulas project:
562
563 https://launchpad.net/salt-formulas
564
565You can also join salt-formulas-users team and subscribe to mailing list:
566
567 https://launchpad.net/~salt-formulas-users
568
569Developers wishing to work on the salt-formulas projects should always base
570their work on master branch and submit pull request against specific formula.
571
572 https://github.com/salt-formulas/salt-formula-cinder
573
574Any questions or feedback is always welcome so feel free to join our IRC
575channel:
576
577 #salt-formulas @ irc.freenode.net