blob: 73f684b5c88da6465f7c0bca7921d82b4c0c1d9b [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
Dmitry Ukov56c29072017-05-04 16:48:29 +0400172Configuration of policy.json file
173
174.. code-block:: yaml
175
176 cinder:
177 controller:
178 ....
179 policy:
180 'volume:delete': 'rule:admin_or_owner'
181 # Add key without value to remove line from policy.json
182 'volume:extend':
183
Filip Pytlounda2a0792015-10-06 16:28:31 +0200184
185Default Cinder setup with iSCSI target
186
187.. code-block:: yaml
188
189 cinder:
190 controller:
191 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200192 version: mitaka
193 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200194 database:
195 engine: mysql
196 host: 127.0.0.1
197 port: 3306
198 name: cinder
199 user: cinder
200 password: pwd
201 identity:
202 engine: keystone
203 host: 127.0.0.1
204 port: 35357
205 tenant: service
206 user: cinder
207 password: pwd
208 message_queue:
209 engine: rabbitmq
210 host: 127.0.0.1
211 port: 5672
212 user: openstack
213 password: pwd
214 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100215 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200216 lvmdriver-1:
217 engine: lvm
218 type_name: lvmdriver-1
219 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200220
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100221Cinder setup for IBM Storwize
Filip Pytlounda2a0792015-10-06 16:28:31 +0200222
223.. code-block:: yaml
224
225 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100226 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200227 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100228 backend:
229 7k2_SAS:
230 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100231 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100232 host: 192.168.0.1
233 port: 22
234 user: username
235 password: pass
236 connection: FC/iSCSI
237 multihost: true
238 multipath: true
239 pool: SAS7K2
240 10k_SAS:
241 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100242 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100243 host: 192.168.0.1
244 port: 22
245 user: username
246 password: pass
247 connection: FC/iSCSI
248 multihost: true
249 multipath: true
250 pool: SAS10K
251 15k_SAS:
252 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100253 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100254 host: 192.168.0.1
255 port: 22
256 user: username
257 password: pass
258 connection: FC/iSCSI
259 multihost: true
260 multipath: true
261 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200262
Jiri Broulik88548db2017-03-31 12:21:37 +0200263
264Cinder setup with NFS
265
266.. code-block:: yaml
267
268 cinder:
269 controller:
270 enabled: true
271 default_volume_type: nfs-driver
272 backend:
273 nfs-driver:
274 engine: nfs
275 type_name: nfs-driver
276 volume_group: cinder-volume
277 path: /var/lib/cinder/nfs
278 devices:
279 - 172.16.10.110:/var/nfs/cinder
280 options: rw,sync
281
282
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400283Cinder setup with NetApp
284
285.. code-block:: yaml
286
287 cinder:
288 controller:
289 backend:
290 netapp:
291 engine: netapp
292 type_name: netapp
293 user: openstack
294 vserver: vm1
295 server_hostname: 172.18.2.3
296 password: password
297 storage_protocol: nfs
298 transport_type: https
299 lun_space_reservation: enabled
300 use_multipath_for_image_xfer: True
301 devices:
302 - 172.18.1.2:/vol_1
303 - 172.18.1.2:/vol_2
304 - 172.18.1.2:/vol_3
305 - 172.18.1.2:/vol_4
Jakub Pavlik94dc0c92017-06-14 14:53:23 +0200306 linux:
307 system:
308 package:
309 nfs-common:
310 version: latest
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400311
312
Filip Pytlounda2a0792015-10-06 16:28:31 +0200313Cinder setup with Hitachi VPS
314
315.. code-block:: yaml
316
317 cinder:
318 controller:
319 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100320 backend:
321 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100322 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100323 backend: hus100_backend
324 engine: hitachi_vsp
325 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200326
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100327Cinder setup with Hitachi VPS with defined ldev range
328
329.. code-block:: yaml
330
331 cinder:
332 controller:
333 enabled: true
334 backend:
335 hus100_backend:
336 type_name: HUS100
337 backend: hus100_backend
338 engine: hitachi_vsp
339 connection: FC
340 ldev_range: 0-1000
341
Filip Pytlounda2a0792015-10-06 16:28:31 +0200342Cinder setup with CEPH
343
344.. code-block:: yaml
345
346 cinder:
347 controller:
348 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100349 backend:
350 ceph_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100351 type_name: standard-iops
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100352 backend: ceph_backend
353 pool: volumes
354 engine: ceph
355 user: cinder
356 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
357 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
Filip Pytlounda2a0792015-10-06 16:28:31 +0200358
359http://ceph.com/docs/master/rbd/rbd-openstack/
360
361
362Cinder setup with HP3par
363
364.. code-block:: yaml
365
366 cinder:
367 controller:
368 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100369 backend:
370 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100371 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100372 backend: hp3par_backend
373 user: hp3paruser
374 password: something
375 url: http://10.10.10.10/api/v1
376 cpg: OpenStackCPG
377 host: 10.10.10.10
378 login: hp3paradmin
379 sanpassword: something
380 debug: True
381 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200382
383Cinder setup with Fujitsu Eternus
384
385.. code-block:: yaml
386
387 cinder:
388 volume:
389 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100390 backend:
391 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100392 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100393 engine: fujitsu
394 pool: 10kThinPro
395 host: 192.168.0.1
396 port: 5988
397 user: username
398 password: pass
399 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100400 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100401 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100402 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100403 pool: SAS10K
404 engine: fujitsu
405 host: 192.168.0.1
406 port: 5988
407 user: username
408 password: pass
409 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100410 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200411
Jakub Pavlik9703c602015-10-15 18:52:47 +0200412Cinder setup with IBM GPFS filesystem
413
414.. code-block:: yaml
415
416 cinder:
417 volume:
418 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100419 backend:
420 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100421 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100422 engine: gpfs
423 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100424 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100425 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100426 engine: gpfs
427 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100428
429Cinder setup with HP LeftHand
430
431.. code-block:: yaml
432
433 cinder:
434 volume:
435 enabled: true
436 backend:
437 HP-LeftHand:
438 type_name: normal-storage
439 engine: hp_lefthand
440 api_url: 'https://10.10.10.10:8081/lhos'
441 username: user
442 password: password
443 clustername: cluster1
444 iscsi_chap_enabled: false
445
Jakub Pavlika63764f2016-01-11 14:41:06 +0100446Extra parameters for HP LeftHand
Jakub Pavlika63764f2016-01-11 14:41:06 +0100447
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100448.. code-block:: yaml
449
450 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
451
marcodaa52fa2016-01-25 23:49:50 +0100452Cinder setup with Solidfire
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100453
454.. code-block:: yaml
455
456 cinder:
457 volume:
458 enabled: true
459 backend:
460 solidfire:
461 type_name: normal-storage
462 engine: solidfire
463 san_ip: 10.10.10.10
464 san_login: user
465 san_password: password
466 clustername: cluster1
467 sf_emulate_512: false
Filip Pytlounda2a0792015-10-06 16:28:31 +0200468
Alexander Noskov023a0032017-06-16 09:31:59 +0200469Cinder setup with Block Device driver
470
471.. code-block:: yaml
472
473 cinder:
474 volume:
475 enabled: true
476 backend:
477 bdd:
478 engine: bdd
479 enabled: true
480 type_name: bdd
481 devices:
482 - sdb
483 - sdc
484 - sdd
485
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200486Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100487
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200488.. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100489
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200490 cinder:
491 controller:
492 enabled: true
493 version: mitaka
494 backup:
495 engine: ceph
496 ceph_conf: "/etc/ceph/ceph.conf"
497 ceph_pool: backup
498 ceph_stripe_count: 0
499 ceph_stripe_unit: 0
500 ceph_user: cinder
501 ceph_chunk_size: 134217728
502 restore_discard_excess_bytes: false
503 volume:
504 enabled: true
505 version: mitaka
506 backup:
507 engine: ceph
508 ceph_conf: "/etc/ceph/ceph.conf"
509 ceph_pool: backup
510 ceph_stripe_count: 0
511 ceph_stripe_unit: 0
512 ceph_user: cinder
513 ceph_chunk_size: 134217728
514 restore_discard_excess_bytes: false
515
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100516Enable auditing filter, ie: CADF
517
518.. code-block:: yaml
519
520 cinder:
521 controller:
522 audit:
523 enabled: true
524 ....
525 filter_factory: 'keystonemiddleware.audit:filter_factory'
526 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
527 ....
528 volume:
529 audit:
530 enabled: true
531 ....
532 filter_factory: 'keystonemiddleware.audit:filter_factory'
533 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
534
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100535
536Cinder setup with custom availability zones:
537
538.. code-block:: yaml
539
540 cinder:
541 controller:
542 default_availability_zone: my-default-zone
543 storage_availability_zone: my-custom-zone-name
544 cinder:
545 volume:
546 default_availability_zone: my-default-zone
547 storage_availability_zone: my-custom-zone-name
548
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300549
550Cinder setup with custom non-admin volume query filters:
551
552.. code-block:: yaml
553
554 cinder:
555 controller:
556 query_volume_filters:
557 - name
558 - status
559 - metadata
560 - availability_zone
561 - bootable
562
563
Alexander Noskov62496fb2017-02-27 16:42:54 +0100564public_endpoint and osapi_volume_base_url parameters:
565"public_endpoint" is used for configuring versions endpoint,
566"osapi_volume_base_URL" is used to present Cinder URL to users.
567They are useful when running Cinder under load balancer in SSL.
568
569.. code-block:: yaml
570
571 cinder:
572 controller:
573 public_endpoint_address: https://${_param:cluster_domain}:8776
574
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100575The 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)
576The storage availability zone is the actual zone where the node belongs to. Make sure to specify this per node.
577Check the documentation of OpenStack for more information
578
Jakub Pavlikb513f132016-05-20 11:11:19 +0200579Documentation and Bugs
580============================
581
582To learn how to deploy OpenStack Salt, consult the documentation available
583online at:
584
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100585https://wiki.openstack.org/wiki/OpenStackSalt
Jakub Pavlikb513f132016-05-20 11:11:19 +0200586
587In the unfortunate event that bugs are discovered, they should be reported to
588the appropriate bug tracker. If you obtained the software from a 3rd party
589operating system vendor, it is often wise to use their own bug tracker for
590reporting problems. In all other cases use the master OpenStack bug tracker,
591available at:
592
593 http://bugs.launchpad.net/openstack-salt
594
595Developers wishing to work on the OpenStack Salt project should always base
596their work on the latest formulas code, available from the master GIT
597repository at:
598
599 https://git.openstack.org/cgit/openstack/salt-formula-cinder
600
601Developers should also join the discussion on the IRC list, at:
602
603 https://wiki.openstack.org/wiki/Meetings/openstack-salt
Filip Pytlounb0f5c1f2017-02-02 13:02:03 +0100604
605Documentation and Bugs
606======================
607
608To learn how to install and update salt-formulas, consult the documentation
609available online at:
610
611 http://salt-formulas.readthedocs.io/
612
613In the unfortunate event that bugs are discovered, they should be reported to
614the appropriate issue tracker. Use Github issue tracker for specific salt
615formula:
616
617 https://github.com/salt-formulas/salt-formula-cinder/issues
618
619For feature requests, bug reports or blueprints affecting entire ecosystem,
620use Launchpad salt-formulas project:
621
622 https://launchpad.net/salt-formulas
623
624You can also join salt-formulas-users team and subscribe to mailing list:
625
626 https://launchpad.net/~salt-formulas-users
627
628Developers wishing to work on the salt-formulas projects should always base
629their work on master branch and submit pull request against specific formula.
630
631 https://github.com/salt-formulas/salt-formula-cinder
632
633Any questions or feedback is always welcome so feel free to join our IRC
634channel:
635
636 #salt-formulas @ irc.freenode.net