blob: 899d5c1cffc59a22602644462bf356dd3f4bb2e9 [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
Dmitry Stremkovskiy9f4ac8b2017-07-11 09:48:46 +030021 cinder_uid: 304
22 cinder_gid: 304
Dmitry Stremkovskiyef4c7d02017-07-30 16:51:52 +030023 nas_secure_file_permissions: false
24 nas_secure_file_operations: false
Dmitry Stremkovskiya5dd7992017-07-30 19:54:23 +030025 cinder_internal_tenant_user_id: f46924c112a14c80ab0a24a613d95eef
26 cinder_internal_tenant_project_id: b7455b8974bb4064ad247c8f375eae6c
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010027 default_volume_type: 7k2SaS
Damian Szeluga0918f5a2017-04-19 12:26:56 +020028 availability_zone_fallback: True
Filip Pytlounda2a0792015-10-06 16:28:31 +020029 database:
30 engine: mysql
31 host: 127.0.0.1
32 port: 3306
33 name: cinder
34 user: cinder
35 password: pwd
36 identity:
37 engine: keystone
38 host: 127.0.0.1
39 port: 35357
40 tenant: service
41 user: cinder
42 password: pwd
43 message_queue:
44 engine: rabbitmq
45 host: 127.0.0.1
46 port: 5672
47 user: openstack
48 password: pwd
49 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010050 backend:
51 7k2_SAS:
52 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010053 type_name: slow-disks
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010054 host: 192.168.0.1
55 port: 22
56 user: username
57 password: pass
58 connection: FC/iSCSI
59 multihost: true
60 multipath: true
61 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +010062 audit:
63 enabled: false
Simon Pasquier9089de42017-02-03 16:13:22 +010064 osapi_max_limit: 500
Filip Pytlounda2a0792015-10-06 16:28:31 +020065
66 cinder:
67 volume:
68 enabled: true
69 version: juno
Dmitry Stremkovskiy9f4ac8b2017-07-11 09:48:46 +030070 cinder_uid: 304
71 cinder_gid: 304
Dmitry Stremkovskiyef4c7d02017-07-30 16:51:52 +030072 nas_secure_file_permissions: false
73 nas_secure_file_operations: false
Dmitry Stremkovskiya5dd7992017-07-30 19:54:23 +030074 cinder_internal_tenant_user_id: f46924c112a14c80ab0a24a613d95eef
75 cinder_internal_tenant_project_id: b7455b8974bb4064ad247c8f375eae6c
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010076 default_volume_type: 7k2SaS
Filip Pytlounda2a0792015-10-06 16:28:31 +020077 database:
78 engine: mysql
79 host: 127.0.0.1
80 port: 3306
81 name: cinder
82 user: cinder
83 password: pwd
84 identity:
85 engine: keystone
86 host: 127.0.0.1
87 port: 35357
88 tenant: service
89 user: cinder
90 password: pwd
91 message_queue:
92 engine: rabbitmq
93 host: 127.0.0.1
94 port: 5672
95 user: openstack
96 password: pwd
97 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010098 backend:
99 7k2_SAS:
100 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100101 type_name: 7k2 SAS disk
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100102 host: 192.168.0.1
103 port: 22
104 user: username
105 password: pass
106 connection: FC/iSCSI
107 multihost: true
108 multipath: true
109 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100110 audit:
111 enabled: false
Ondrej Smola74af21b2017-04-28 12:30:24 +0200112
113
114Enable CORS parameters
115
116.. code-block:: yaml
117
118 cinder:
119 controller:
120 cors:
121 allowed_origin: https:localhost.local,http:localhost.local
122 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
123 allow_methods: GET,PUT,POST,DELETE,PATCH
124 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
125 allow_credentials: True
126 max_age: 86400
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200127
128Client-side RabbitMQ HA setup for controller
129
130.. code-block:: yaml
131
132 cinder:
133 controller:
134 ....
135 message_queue:
136 engine: rabbitmq
137 members:
138 - host: 10.0.16.1
139 - host: 10.0.16.2
140 - host: 10.0.16.3
141 user: openstack
142 password: pwd
143 virtual_host: '/openstack'
144 ....
145
146Client-side RabbitMQ HA setup for volume component
147
148.. code-block:: yaml
149
150 cinder:
151 volume:
152 ....
153 message_queue:
154 engine: rabbitmq
155 members:
156 - host: 10.0.16.1
157 - host: 10.0.16.2
158 - host: 10.0.16.3
159 user: openstack
160 password: pwd
161 virtual_host: '/openstack'
162 ....
Filip Pytlounda2a0792015-10-06 16:28:31 +0200163
164Cinder setup with zeroing deleted volumes
165
Alexander Noskov62496fb2017-02-27 16:42:54 +0100166.. code-block:: yaml
167
Filip Pytlounda2a0792015-10-06 16:28:31 +0200168 cinder:
169 controller:
170 enabled: true
171 wipe_method: zero
172 ...
173
174Cinder setup with shreding deleted volumes
175
176.. code-block:: yaml
177
178 cinder:
179 controller:
180 enabled: true
181 wipe_method: shred
182 ...
183
Dmitry Ukov56c29072017-05-04 16:48:29 +0400184Configuration of policy.json file
185
186.. code-block:: yaml
187
188 cinder:
189 controller:
190 ....
191 policy:
192 'volume:delete': 'rule:admin_or_owner'
193 # Add key without value to remove line from policy.json
194 'volume:extend':
195
Filip Pytlounda2a0792015-10-06 16:28:31 +0200196
197Default Cinder setup with iSCSI target
198
199.. code-block:: yaml
200
201 cinder:
202 controller:
203 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200204 version: mitaka
205 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200206 database:
207 engine: mysql
208 host: 127.0.0.1
209 port: 3306
210 name: cinder
211 user: cinder
212 password: pwd
213 identity:
214 engine: keystone
215 host: 127.0.0.1
216 port: 35357
217 tenant: service
218 user: cinder
219 password: pwd
220 message_queue:
221 engine: rabbitmq
222 host: 127.0.0.1
223 port: 5672
224 user: openstack
225 password: pwd
226 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100227 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200228 lvmdriver-1:
229 engine: lvm
230 type_name: lvmdriver-1
231 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200232
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100233Cinder setup for IBM Storwize
Filip Pytlounda2a0792015-10-06 16:28:31 +0200234
235.. code-block:: yaml
236
237 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100238 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200239 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100240 backend:
241 7k2_SAS:
242 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100243 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100244 host: 192.168.0.1
245 port: 22
246 user: username
247 password: pass
248 connection: FC/iSCSI
249 multihost: true
250 multipath: true
251 pool: SAS7K2
252 10k_SAS:
253 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100254 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100255 host: 192.168.0.1
256 port: 22
257 user: username
258 password: pass
259 connection: FC/iSCSI
260 multihost: true
261 multipath: true
262 pool: SAS10K
263 15k_SAS:
264 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100265 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100266 host: 192.168.0.1
267 port: 22
268 user: username
269 password: pass
270 connection: FC/iSCSI
271 multihost: true
272 multipath: true
273 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200274
Jiri Broulik88548db2017-03-31 12:21:37 +0200275
276Cinder setup with NFS
277
278.. code-block:: yaml
279
280 cinder:
281 controller:
282 enabled: true
283 default_volume_type: nfs-driver
284 backend:
285 nfs-driver:
286 engine: nfs
287 type_name: nfs-driver
288 volume_group: cinder-volume
289 path: /var/lib/cinder/nfs
290 devices:
291 - 172.16.10.110:/var/nfs/cinder
292 options: rw,sync
293
294
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400295Cinder setup with NetApp
296
297.. code-block:: yaml
298
299 cinder:
300 controller:
301 backend:
302 netapp:
303 engine: netapp
304 type_name: netapp
305 user: openstack
306 vserver: vm1
307 server_hostname: 172.18.2.3
308 password: password
309 storage_protocol: nfs
310 transport_type: https
311 lun_space_reservation: enabled
312 use_multipath_for_image_xfer: True
313 devices:
314 - 172.18.1.2:/vol_1
315 - 172.18.1.2:/vol_2
316 - 172.18.1.2:/vol_3
317 - 172.18.1.2:/vol_4
Jakub Pavlik94dc0c92017-06-14 14:53:23 +0200318 linux:
319 system:
320 package:
321 nfs-common:
322 version: latest
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400323
324
Filip Pytlounda2a0792015-10-06 16:28:31 +0200325Cinder setup with Hitachi VPS
326
327.. code-block:: yaml
328
329 cinder:
330 controller:
331 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100332 backend:
333 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100334 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100335 backend: hus100_backend
336 engine: hitachi_vsp
337 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200338
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100339Cinder setup with Hitachi VPS with defined ldev range
340
341.. code-block:: yaml
342
343 cinder:
344 controller:
345 enabled: true
346 backend:
347 hus100_backend:
348 type_name: HUS100
349 backend: hus100_backend
350 engine: hitachi_vsp
351 connection: FC
352 ldev_range: 0-1000
353
Filip Pytlounda2a0792015-10-06 16:28:31 +0200354Cinder setup with CEPH
355
356.. code-block:: yaml
357
358 cinder:
359 controller:
360 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100361 backend:
362 ceph_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100363 type_name: standard-iops
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100364 backend: ceph_backend
365 pool: volumes
366 engine: ceph
367 user: cinder
368 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
369 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
Michel Nederlofb43a4872017-06-20 09:36:47 +0200370 report_discard_supported: True
Filip Pytlounda2a0792015-10-06 16:28:31 +0200371
372http://ceph.com/docs/master/rbd/rbd-openstack/
373
374
375Cinder setup with HP3par
376
377.. code-block:: yaml
378
379 cinder:
380 controller:
381 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100382 backend:
383 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100384 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100385 backend: hp3par_backend
386 user: hp3paruser
387 password: something
388 url: http://10.10.10.10/api/v1
389 cpg: OpenStackCPG
390 host: 10.10.10.10
391 login: hp3paradmin
392 sanpassword: something
393 debug: True
394 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200395
396Cinder setup with Fujitsu Eternus
397
398.. code-block:: yaml
399
400 cinder:
401 volume:
402 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100403 backend:
404 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100405 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100406 engine: fujitsu
407 pool: 10kThinPro
408 host: 192.168.0.1
409 port: 5988
410 user: username
411 password: pass
412 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100413 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100414 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100415 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100416 pool: SAS10K
417 engine: fujitsu
418 host: 192.168.0.1
419 port: 5988
420 user: username
421 password: pass
422 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100423 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200424
Jakub Pavlik9703c602015-10-15 18:52:47 +0200425Cinder setup with IBM GPFS filesystem
426
427.. code-block:: yaml
428
429 cinder:
430 volume:
431 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100432 backend:
433 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100434 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100435 engine: gpfs
436 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100437 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100438 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100439 engine: gpfs
440 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100441
442Cinder setup with HP LeftHand
443
444.. code-block:: yaml
445
446 cinder:
447 volume:
448 enabled: true
449 backend:
450 HP-LeftHand:
451 type_name: normal-storage
452 engine: hp_lefthand
453 api_url: 'https://10.10.10.10:8081/lhos'
454 username: user
455 password: password
456 clustername: cluster1
457 iscsi_chap_enabled: false
458
Jakub Pavlika63764f2016-01-11 14:41:06 +0100459Extra parameters for HP LeftHand
Jakub Pavlika63764f2016-01-11 14:41:06 +0100460
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100461.. code-block:: yaml
462
463 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
464
marcodaa52fa2016-01-25 23:49:50 +0100465Cinder setup with Solidfire
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100466
467.. code-block:: yaml
468
469 cinder:
470 volume:
471 enabled: true
472 backend:
473 solidfire:
474 type_name: normal-storage
475 engine: solidfire
476 san_ip: 10.10.10.10
477 san_login: user
478 san_password: password
479 clustername: cluster1
480 sf_emulate_512: false
Filip Pytlounda2a0792015-10-06 16:28:31 +0200481
Alexander Noskov023a0032017-06-16 09:31:59 +0200482Cinder setup with Block Device driver
483
484.. code-block:: yaml
485
486 cinder:
487 volume:
488 enabled: true
489 backend:
490 bdd:
491 engine: bdd
492 enabled: true
493 type_name: bdd
494 devices:
495 - sdb
496 - sdc
497 - sdd
498
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200499Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100500
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200501.. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100502
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200503 cinder:
504 controller:
505 enabled: true
506 version: mitaka
507 backup:
508 engine: ceph
509 ceph_conf: "/etc/ceph/ceph.conf"
510 ceph_pool: backup
511 ceph_stripe_count: 0
512 ceph_stripe_unit: 0
513 ceph_user: cinder
514 ceph_chunk_size: 134217728
515 restore_discard_excess_bytes: false
516 volume:
517 enabled: true
518 version: mitaka
519 backup:
520 engine: ceph
521 ceph_conf: "/etc/ceph/ceph.conf"
522 ceph_pool: backup
523 ceph_stripe_count: 0
524 ceph_stripe_unit: 0
525 ceph_user: cinder
526 ceph_chunk_size: 134217728
527 restore_discard_excess_bytes: false
528
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100529Enable auditing filter, ie: CADF
530
531.. code-block:: yaml
532
533 cinder:
534 controller:
535 audit:
536 enabled: true
537 ....
538 filter_factory: 'keystonemiddleware.audit:filter_factory'
539 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
540 ....
541 volume:
542 audit:
543 enabled: true
544 ....
545 filter_factory: 'keystonemiddleware.audit:filter_factory'
546 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
547
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100548
549Cinder setup with custom availability zones:
550
551.. code-block:: yaml
552
553 cinder:
554 controller:
555 default_availability_zone: my-default-zone
556 storage_availability_zone: my-custom-zone-name
557 cinder:
558 volume:
559 default_availability_zone: my-default-zone
560 storage_availability_zone: my-custom-zone-name
561
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300562
563Cinder setup with custom non-admin volume query filters:
564
565.. code-block:: yaml
566
567 cinder:
568 controller:
569 query_volume_filters:
570 - name
571 - status
572 - metadata
573 - availability_zone
574 - bootable
575
576
Alexander Noskov62496fb2017-02-27 16:42:54 +0100577public_endpoint and osapi_volume_base_url parameters:
578"public_endpoint" is used for configuring versions endpoint,
579"osapi_volume_base_URL" is used to present Cinder URL to users.
580They are useful when running Cinder under load balancer in SSL.
581
582.. code-block:: yaml
583
584 cinder:
585 controller:
586 public_endpoint_address: https://${_param:cluster_domain}:8776
587
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100588The 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)
589The storage availability zone is the actual zone where the node belongs to. Make sure to specify this per node.
590Check the documentation of OpenStack for more information
591
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200592
593Client role
594
595.. code-block:: yaml
596
597 cinder:
598 client:
599 enabled: true
600 identity:
601 host: 127.0.0.1
602 port: 35357
603 project: service
604 user: cinder
605 password: pwd
606 protocol: http
607 endpoint_type: internalURL
608 region_name: RegionOne
609 backend:
610 ceph:
611 type_name: standard-iops
612 engine: ceph
613 key:
614 conn_speed: fibre-10G
615
616
Jakub Pavlikb513f132016-05-20 11:11:19 +0200617Documentation and Bugs
618============================
619
620To learn how to deploy OpenStack Salt, consult the documentation available
621online at:
622
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100623https://wiki.openstack.org/wiki/OpenStackSalt
Jakub Pavlikb513f132016-05-20 11:11:19 +0200624
625In the unfortunate event that bugs are discovered, they should be reported to
626the appropriate bug tracker. If you obtained the software from a 3rd party
627operating system vendor, it is often wise to use their own bug tracker for
628reporting problems. In all other cases use the master OpenStack bug tracker,
629available at:
630
631 http://bugs.launchpad.net/openstack-salt
632
633Developers wishing to work on the OpenStack Salt project should always base
634their work on the latest formulas code, available from the master GIT
635repository at:
636
637 https://git.openstack.org/cgit/openstack/salt-formula-cinder
638
639Developers should also join the discussion on the IRC list, at:
640
641 https://wiki.openstack.org/wiki/Meetings/openstack-salt
Filip Pytlounb0f5c1f2017-02-02 13:02:03 +0100642
643Documentation and Bugs
644======================
645
646To learn how to install and update salt-formulas, consult the documentation
647available online at:
648
649 http://salt-formulas.readthedocs.io/
650
651In the unfortunate event that bugs are discovered, they should be reported to
652the appropriate issue tracker. Use Github issue tracker for specific salt
653formula:
654
655 https://github.com/salt-formulas/salt-formula-cinder/issues
656
657For feature requests, bug reports or blueprints affecting entire ecosystem,
658use Launchpad salt-formulas project:
659
660 https://launchpad.net/salt-formulas
661
662You can also join salt-formulas-users team and subscribe to mailing list:
663
664 https://launchpad.net/~salt-formulas-users
665
666Developers wishing to work on the salt-formulas projects should always base
667their work on master branch and submit pull request against specific formula.
668
669 https://github.com/salt-formulas/salt-formula-cinder
670
671Any questions or feedback is always welcome so feel free to join our IRC
672channel:
673
674 #salt-formulas @ irc.freenode.net