blob: 72f353d6bf5dc4a2951d91a0b2b07832859e7348 [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
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010025 default_volume_type: 7k2SaS
Damian Szeluga0918f5a2017-04-19 12:26:56 +020026 availability_zone_fallback: True
Filip Pytlounda2a0792015-10-06 16:28:31 +020027 database:
28 engine: mysql
29 host: 127.0.0.1
30 port: 3306
31 name: cinder
32 user: cinder
33 password: pwd
34 identity:
35 engine: keystone
36 host: 127.0.0.1
37 port: 35357
38 tenant: service
39 user: cinder
40 password: pwd
41 message_queue:
42 engine: rabbitmq
43 host: 127.0.0.1
44 port: 5672
45 user: openstack
46 password: pwd
47 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010048 backend:
49 7k2_SAS:
50 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010051 type_name: slow-disks
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010052 host: 192.168.0.1
53 port: 22
54 user: username
55 password: pass
56 connection: FC/iSCSI
57 multihost: true
58 multipath: true
59 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +010060 audit:
61 enabled: false
Simon Pasquier9089de42017-02-03 16:13:22 +010062 osapi_max_limit: 500
Filip Pytlounda2a0792015-10-06 16:28:31 +020063
64 cinder:
65 volume:
66 enabled: true
67 version: juno
Dmitry Stremkovskiy9f4ac8b2017-07-11 09:48:46 +030068 cinder_uid: 304
69 cinder_gid: 304
Dmitry Stremkovskiyef4c7d02017-07-30 16:51:52 +030070 nas_secure_file_permissions: false
71 nas_secure_file_operations: false
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010072 default_volume_type: 7k2SaS
Filip Pytlounda2a0792015-10-06 16:28:31 +020073 database:
74 engine: mysql
75 host: 127.0.0.1
76 port: 3306
77 name: cinder
78 user: cinder
79 password: pwd
80 identity:
81 engine: keystone
82 host: 127.0.0.1
83 port: 35357
84 tenant: service
85 user: cinder
86 password: pwd
87 message_queue:
88 engine: rabbitmq
89 host: 127.0.0.1
90 port: 5672
91 user: openstack
92 password: pwd
93 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010094 backend:
95 7k2_SAS:
96 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010097 type_name: 7k2 SAS disk
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010098 host: 192.168.0.1
99 port: 22
100 user: username
101 password: pass
102 connection: FC/iSCSI
103 multihost: true
104 multipath: true
105 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100106 audit:
107 enabled: false
Ondrej Smola74af21b2017-04-28 12:30:24 +0200108
109
110Enable CORS parameters
111
112.. code-block:: yaml
113
114 cinder:
115 controller:
116 cors:
117 allowed_origin: https:localhost.local,http:localhost.local
118 expose_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
119 allow_methods: GET,PUT,POST,DELETE,PATCH
120 allow_headers: X-Auth-Token,X-Openstack-Request-Id,X-Subject-Token
121 allow_credentials: True
122 max_age: 86400
Jiri Konecny2dce35f2016-04-19 16:29:52 +0200123
124Client-side RabbitMQ HA setup for controller
125
126.. code-block:: yaml
127
128 cinder:
129 controller:
130 ....
131 message_queue:
132 engine: rabbitmq
133 members:
134 - host: 10.0.16.1
135 - host: 10.0.16.2
136 - host: 10.0.16.3
137 user: openstack
138 password: pwd
139 virtual_host: '/openstack'
140 ....
141
142Client-side RabbitMQ HA setup for volume component
143
144.. code-block:: yaml
145
146 cinder:
147 volume:
148 ....
149 message_queue:
150 engine: rabbitmq
151 members:
152 - host: 10.0.16.1
153 - host: 10.0.16.2
154 - host: 10.0.16.3
155 user: openstack
156 password: pwd
157 virtual_host: '/openstack'
158 ....
Filip Pytlounda2a0792015-10-06 16:28:31 +0200159
160Cinder setup with zeroing deleted volumes
161
Alexander Noskov62496fb2017-02-27 16:42:54 +0100162.. code-block:: yaml
163
Filip Pytlounda2a0792015-10-06 16:28:31 +0200164 cinder:
165 controller:
166 enabled: true
167 wipe_method: zero
168 ...
169
170Cinder setup with shreding deleted volumes
171
172.. code-block:: yaml
173
174 cinder:
175 controller:
176 enabled: true
177 wipe_method: shred
178 ...
179
Dmitry Ukov56c29072017-05-04 16:48:29 +0400180Configuration of policy.json file
181
182.. code-block:: yaml
183
184 cinder:
185 controller:
186 ....
187 policy:
188 'volume:delete': 'rule:admin_or_owner'
189 # Add key without value to remove line from policy.json
190 'volume:extend':
191
Filip Pytlounda2a0792015-10-06 16:28:31 +0200192
193Default Cinder setup with iSCSI target
194
195.. code-block:: yaml
196
197 cinder:
198 controller:
199 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200200 version: mitaka
201 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200202 database:
203 engine: mysql
204 host: 127.0.0.1
205 port: 3306
206 name: cinder
207 user: cinder
208 password: pwd
209 identity:
210 engine: keystone
211 host: 127.0.0.1
212 port: 35357
213 tenant: service
214 user: cinder
215 password: pwd
216 message_queue:
217 engine: rabbitmq
218 host: 127.0.0.1
219 port: 5672
220 user: openstack
221 password: pwd
222 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100223 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200224 lvmdriver-1:
225 engine: lvm
226 type_name: lvmdriver-1
227 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200228
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100229Cinder setup for IBM Storwize
Filip Pytlounda2a0792015-10-06 16:28:31 +0200230
231.. code-block:: yaml
232
233 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100234 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200235 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100236 backend:
237 7k2_SAS:
238 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100239 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100240 host: 192.168.0.1
241 port: 22
242 user: username
243 password: pass
244 connection: FC/iSCSI
245 multihost: true
246 multipath: true
247 pool: SAS7K2
248 10k_SAS:
249 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100250 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100251 host: 192.168.0.1
252 port: 22
253 user: username
254 password: pass
255 connection: FC/iSCSI
256 multihost: true
257 multipath: true
258 pool: SAS10K
259 15k_SAS:
260 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100261 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100262 host: 192.168.0.1
263 port: 22
264 user: username
265 password: pass
266 connection: FC/iSCSI
267 multihost: true
268 multipath: true
269 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200270
Jiri Broulik88548db2017-03-31 12:21:37 +0200271
272Cinder setup with NFS
273
274.. code-block:: yaml
275
276 cinder:
277 controller:
278 enabled: true
279 default_volume_type: nfs-driver
280 backend:
281 nfs-driver:
282 engine: nfs
283 type_name: nfs-driver
284 volume_group: cinder-volume
285 path: /var/lib/cinder/nfs
286 devices:
287 - 172.16.10.110:/var/nfs/cinder
288 options: rw,sync
289
290
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400291Cinder setup with NetApp
292
293.. code-block:: yaml
294
295 cinder:
296 controller:
297 backend:
298 netapp:
299 engine: netapp
300 type_name: netapp
301 user: openstack
302 vserver: vm1
303 server_hostname: 172.18.2.3
304 password: password
305 storage_protocol: nfs
306 transport_type: https
307 lun_space_reservation: enabled
308 use_multipath_for_image_xfer: True
309 devices:
310 - 172.18.1.2:/vol_1
311 - 172.18.1.2:/vol_2
312 - 172.18.1.2:/vol_3
313 - 172.18.1.2:/vol_4
Jakub Pavlik94dc0c92017-06-14 14:53:23 +0200314 linux:
315 system:
316 package:
317 nfs-common:
318 version: latest
Alexey Chekunovf916f0c2017-05-25 13:29:45 +0400319
320
Filip Pytlounda2a0792015-10-06 16:28:31 +0200321Cinder setup with Hitachi VPS
322
323.. code-block:: yaml
324
325 cinder:
326 controller:
327 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100328 backend:
329 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100330 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100331 backend: hus100_backend
332 engine: hitachi_vsp
333 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200334
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100335Cinder setup with Hitachi VPS with defined ldev range
336
337.. code-block:: yaml
338
339 cinder:
340 controller:
341 enabled: true
342 backend:
343 hus100_backend:
344 type_name: HUS100
345 backend: hus100_backend
346 engine: hitachi_vsp
347 connection: FC
348 ldev_range: 0-1000
349
Filip Pytlounda2a0792015-10-06 16:28:31 +0200350Cinder setup with CEPH
351
352.. code-block:: yaml
353
354 cinder:
355 controller:
356 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100357 backend:
358 ceph_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100359 type_name: standard-iops
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100360 backend: ceph_backend
361 pool: volumes
362 engine: ceph
363 user: cinder
364 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
365 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
Michel Nederlofb43a4872017-06-20 09:36:47 +0200366 report_discard_supported: True
Filip Pytlounda2a0792015-10-06 16:28:31 +0200367
368http://ceph.com/docs/master/rbd/rbd-openstack/
369
370
371Cinder setup with HP3par
372
373.. code-block:: yaml
374
375 cinder:
376 controller:
377 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100378 backend:
379 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100380 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100381 backend: hp3par_backend
382 user: hp3paruser
383 password: something
384 url: http://10.10.10.10/api/v1
385 cpg: OpenStackCPG
386 host: 10.10.10.10
387 login: hp3paradmin
388 sanpassword: something
389 debug: True
390 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200391
392Cinder setup with Fujitsu Eternus
393
394.. code-block:: yaml
395
396 cinder:
397 volume:
398 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100399 backend:
400 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100401 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100402 engine: fujitsu
403 pool: 10kThinPro
404 host: 192.168.0.1
405 port: 5988
406 user: username
407 password: pass
408 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100409 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100410 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100411 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100412 pool: SAS10K
413 engine: fujitsu
414 host: 192.168.0.1
415 port: 5988
416 user: username
417 password: pass
418 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100419 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200420
Jakub Pavlik9703c602015-10-15 18:52:47 +0200421Cinder setup with IBM GPFS filesystem
422
423.. code-block:: yaml
424
425 cinder:
426 volume:
427 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100428 backend:
429 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100430 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100431 engine: gpfs
432 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100433 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100434 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100435 engine: gpfs
436 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100437
438Cinder setup with HP LeftHand
439
440.. code-block:: yaml
441
442 cinder:
443 volume:
444 enabled: true
445 backend:
446 HP-LeftHand:
447 type_name: normal-storage
448 engine: hp_lefthand
449 api_url: 'https://10.10.10.10:8081/lhos'
450 username: user
451 password: password
452 clustername: cluster1
453 iscsi_chap_enabled: false
454
Jakub Pavlika63764f2016-01-11 14:41:06 +0100455Extra parameters for HP LeftHand
Jakub Pavlika63764f2016-01-11 14:41:06 +0100456
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100457.. code-block:: yaml
458
459 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
460
marcodaa52fa2016-01-25 23:49:50 +0100461Cinder setup with Solidfire
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100462
463.. code-block:: yaml
464
465 cinder:
466 volume:
467 enabled: true
468 backend:
469 solidfire:
470 type_name: normal-storage
471 engine: solidfire
472 san_ip: 10.10.10.10
473 san_login: user
474 san_password: password
475 clustername: cluster1
476 sf_emulate_512: false
Filip Pytlounda2a0792015-10-06 16:28:31 +0200477
Alexander Noskov023a0032017-06-16 09:31:59 +0200478Cinder setup with Block Device driver
479
480.. code-block:: yaml
481
482 cinder:
483 volume:
484 enabled: true
485 backend:
486 bdd:
487 engine: bdd
488 enabled: true
489 type_name: bdd
490 devices:
491 - sdb
492 - sdc
493 - sdd
494
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200495Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100496
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200497.. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100498
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200499 cinder:
500 controller:
501 enabled: true
502 version: mitaka
503 backup:
504 engine: ceph
505 ceph_conf: "/etc/ceph/ceph.conf"
506 ceph_pool: backup
507 ceph_stripe_count: 0
508 ceph_stripe_unit: 0
509 ceph_user: cinder
510 ceph_chunk_size: 134217728
511 restore_discard_excess_bytes: false
512 volume:
513 enabled: true
514 version: mitaka
515 backup:
516 engine: ceph
517 ceph_conf: "/etc/ceph/ceph.conf"
518 ceph_pool: backup
519 ceph_stripe_count: 0
520 ceph_stripe_unit: 0
521 ceph_user: cinder
522 ceph_chunk_size: 134217728
523 restore_discard_excess_bytes: false
524
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100525Enable auditing filter, ie: CADF
526
527.. code-block:: yaml
528
529 cinder:
530 controller:
531 audit:
532 enabled: true
533 ....
534 filter_factory: 'keystonemiddleware.audit:filter_factory'
535 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
536 ....
537 volume:
538 audit:
539 enabled: true
540 ....
541 filter_factory: 'keystonemiddleware.audit:filter_factory'
542 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
543
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100544
545Cinder setup with custom availability zones:
546
547.. code-block:: yaml
548
549 cinder:
550 controller:
551 default_availability_zone: my-default-zone
552 storage_availability_zone: my-custom-zone-name
553 cinder:
554 volume:
555 default_availability_zone: my-default-zone
556 storage_availability_zone: my-custom-zone-name
557
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300558
559Cinder setup with custom non-admin volume query filters:
560
561.. code-block:: yaml
562
563 cinder:
564 controller:
565 query_volume_filters:
566 - name
567 - status
568 - metadata
569 - availability_zone
570 - bootable
571
572
Alexander Noskov62496fb2017-02-27 16:42:54 +0100573public_endpoint and osapi_volume_base_url parameters:
574"public_endpoint" is used for configuring versions endpoint,
575"osapi_volume_base_URL" is used to present Cinder URL to users.
576They are useful when running Cinder under load balancer in SSL.
577
578.. code-block:: yaml
579
580 cinder:
581 controller:
582 public_endpoint_address: https://${_param:cluster_domain}:8776
583
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100584The 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)
585The storage availability zone is the actual zone where the node belongs to. Make sure to specify this per node.
586Check the documentation of OpenStack for more information
587
Jiri Broulik47aa6b32017-07-10 18:39:15 +0200588
589Client role
590
591.. code-block:: yaml
592
593 cinder:
594 client:
595 enabled: true
596 identity:
597 host: 127.0.0.1
598 port: 35357
599 project: service
600 user: cinder
601 password: pwd
602 protocol: http
603 endpoint_type: internalURL
604 region_name: RegionOne
605 backend:
606 ceph:
607 type_name: standard-iops
608 engine: ceph
609 key:
610 conn_speed: fibre-10G
611
612
Jakub Pavlikb513f132016-05-20 11:11:19 +0200613Documentation and Bugs
614============================
615
616To learn how to deploy OpenStack Salt, consult the documentation available
617online at:
618
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100619https://wiki.openstack.org/wiki/OpenStackSalt
Jakub Pavlikb513f132016-05-20 11:11:19 +0200620
621In the unfortunate event that bugs are discovered, they should be reported to
622the appropriate bug tracker. If you obtained the software from a 3rd party
623operating system vendor, it is often wise to use their own bug tracker for
624reporting problems. In all other cases use the master OpenStack bug tracker,
625available at:
626
627 http://bugs.launchpad.net/openstack-salt
628
629Developers wishing to work on the OpenStack Salt project should always base
630their work on the latest formulas code, available from the master GIT
631repository at:
632
633 https://git.openstack.org/cgit/openstack/salt-formula-cinder
634
635Developers should also join the discussion on the IRC list, at:
636
637 https://wiki.openstack.org/wiki/Meetings/openstack-salt
Filip Pytlounb0f5c1f2017-02-02 13:02:03 +0100638
639Documentation and Bugs
640======================
641
642To learn how to install and update salt-formulas, consult the documentation
643available online at:
644
645 http://salt-formulas.readthedocs.io/
646
647In the unfortunate event that bugs are discovered, they should be reported to
648the appropriate issue tracker. Use Github issue tracker for specific salt
649formula:
650
651 https://github.com/salt-formulas/salt-formula-cinder/issues
652
653For feature requests, bug reports or blueprints affecting entire ecosystem,
654use Launchpad salt-formulas project:
655
656 https://launchpad.net/salt-formulas
657
658You can also join salt-formulas-users team and subscribe to mailing list:
659
660 https://launchpad.net/~salt-formulas-users
661
662Developers wishing to work on the salt-formulas projects should always base
663their work on master branch and submit pull request against specific formula.
664
665 https://github.com/salt-formulas/salt-formula-cinder
666
667Any questions or feedback is always welcome so feel free to join our IRC
668channel:
669
670 #salt-formulas @ irc.freenode.net