blob: 7e02a05dd7b31a6fca09f6c99d6302d23ca17a79 [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
Filip Pytlounda2a0792015-10-06 16:28:31 +020022 database:
23 engine: mysql
24 host: 127.0.0.1
25 port: 3306
26 name: cinder
27 user: cinder
28 password: pwd
29 identity:
30 engine: keystone
31 host: 127.0.0.1
32 port: 35357
33 tenant: service
34 user: cinder
35 password: pwd
36 message_queue:
37 engine: rabbitmq
38 host: 127.0.0.1
39 port: 5672
40 user: openstack
41 password: pwd
42 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010043 backend:
44 7k2_SAS:
45 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010046 type_name: slow-disks
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010047 host: 192.168.0.1
48 port: 22
49 user: username
50 password: pass
51 connection: FC/iSCSI
52 multihost: true
53 multipath: true
54 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +010055 audit:
56 enabled: false
Simon Pasquier9089de42017-02-03 16:13:22 +010057 osapi_max_limit: 500
Filip Pytlounda2a0792015-10-06 16:28:31 +020058
59 cinder:
60 volume:
61 enabled: true
62 version: juno
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010063 default_volume_type: 7k2SaS
Filip Pytlounda2a0792015-10-06 16:28:31 +020064 database:
65 engine: mysql
66 host: 127.0.0.1
67 port: 3306
68 name: cinder
69 user: cinder
70 password: pwd
71 identity:
72 engine: keystone
73 host: 127.0.0.1
74 port: 35357
75 tenant: service
76 user: cinder
77 password: pwd
78 message_queue:
79 engine: rabbitmq
80 host: 127.0.0.1
81 port: 5672
82 user: openstack
83 password: pwd
84 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010085 backend:
86 7k2_SAS:
87 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +010088 type_name: 7k2 SAS disk
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +010089 host: 192.168.0.1
90 port: 22
91 user: username
92 password: pass
93 connection: FC/iSCSI
94 multihost: true
95 multipath: true
96 pool: SAS7K2
Petr Michaleca1c7ff12016-11-29 16:32:50 +010097 audit:
98 enabled: false
Ondrej Smolaed6abbf2017-04-25 11:55:44 +020099
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
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200412Enable cinder-backup service for ceph
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100413
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200414.. code-block:: yaml
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100415
Ondrej Smolaed6abbf2017-04-25 11:55:44 +0200416 cinder:
417 controller:
418 enabled: true
419 version: mitaka
420 backup:
421 engine: ceph
422 ceph_conf: "/etc/ceph/ceph.conf"
423 ceph_pool: backup
424 ceph_stripe_count: 0
425 ceph_stripe_unit: 0
426 ceph_user: cinder
427 ceph_chunk_size: 134217728
428 restore_discard_excess_bytes: false
429 volume:
430 enabled: true
431 version: mitaka
432 backup:
433 engine: ceph
434 ceph_conf: "/etc/ceph/ceph.conf"
435 ceph_pool: backup
436 ceph_stripe_count: 0
437 ceph_stripe_unit: 0
438 ceph_user: cinder
439 ceph_chunk_size: 134217728
440 restore_discard_excess_bytes: false
441
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100442Enable auditing filter, ie: CADF
443
444.. code-block:: yaml
445
446 cinder:
447 controller:
448 audit:
449 enabled: true
450 ....
451 filter_factory: 'keystonemiddleware.audit:filter_factory'
452 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
453 ....
454 volume:
455 audit:
456 enabled: true
457 ....
458 filter_factory: 'keystonemiddleware.audit:filter_factory'
459 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
460
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100461
462Cinder setup with custom availability zones:
463
464.. code-block:: yaml
465
466 cinder:
467 controller:
468 default_availability_zone: my-default-zone
469 storage_availability_zone: my-custom-zone-name
470 cinder:
471 volume:
472 default_availability_zone: my-default-zone
473 storage_availability_zone: my-custom-zone-name
474
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300475
476Cinder setup with custom non-admin volume query filters:
477
478.. code-block:: yaml
479
480 cinder:
481 controller:
482 query_volume_filters:
483 - name
484 - status
485 - metadata
486 - availability_zone
487 - bootable
488
489
Alexander Noskov62496fb2017-02-27 16:42:54 +0100490public_endpoint and osapi_volume_base_url parameters:
491"public_endpoint" is used for configuring versions endpoint,
492"osapi_volume_base_URL" is used to present Cinder URL to users.
493They are useful when running Cinder under load balancer in SSL.
494
495.. code-block:: yaml
496
497 cinder:
498 controller:
499 public_endpoint_address: https://${_param:cluster_domain}:8776
500
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100501The 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)
502The storage availability zone is the actual zone where the node belongs to. Make sure to specify this per node.
503Check the documentation of OpenStack for more information
504
Jakub Pavlikb513f132016-05-20 11:11:19 +0200505Documentation and Bugs
506============================
507
508To learn how to deploy OpenStack Salt, consult the documentation available
509online at:
510
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100511https://wiki.openstack.org/wiki/OpenStackSalt
Jakub Pavlikb513f132016-05-20 11:11:19 +0200512
513In the unfortunate event that bugs are discovered, they should be reported to
514the appropriate bug tracker. If you obtained the software from a 3rd party
515operating system vendor, it is often wise to use their own bug tracker for
516reporting problems. In all other cases use the master OpenStack bug tracker,
517available at:
518
519 http://bugs.launchpad.net/openstack-salt
520
521Developers wishing to work on the OpenStack Salt project should always base
522their work on the latest formulas code, available from the master GIT
523repository at:
524
525 https://git.openstack.org/cgit/openstack/salt-formula-cinder
526
527Developers should also join the discussion on the IRC list, at:
528
529 https://wiki.openstack.org/wiki/Meetings/openstack-salt
Filip Pytlounb0f5c1f2017-02-02 13:02:03 +0100530
531Documentation and Bugs
532======================
533
534To learn how to install and update salt-formulas, consult the documentation
535available online at:
536
537 http://salt-formulas.readthedocs.io/
538
539In the unfortunate event that bugs are discovered, they should be reported to
540the appropriate issue tracker. Use Github issue tracker for specific salt
541formula:
542
543 https://github.com/salt-formulas/salt-formula-cinder/issues
544
545For feature requests, bug reports or blueprints affecting entire ecosystem,
546use Launchpad salt-formulas project:
547
548 https://launchpad.net/salt-formulas
549
550You can also join salt-formulas-users team and subscribe to mailing list:
551
552 https://launchpad.net/~salt-formulas-users
553
554Developers wishing to work on the salt-formulas projects should always base
555their work on master branch and submit pull request against specific formula.
556
557 https://github.com/salt-formulas/salt-formula-cinder
558
559Any questions or feedback is always welcome so feel free to join our IRC
560channel:
561
562 #salt-formulas @ irc.freenode.net