blob: a8b174e7d8cea4aafc3df493bbedd6d022d6114f [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
Jiri Konecny2dce35f2016-04-19 16:29:52 +020099
100Client-side RabbitMQ HA setup for controller
101
102.. code-block:: yaml
103
104 cinder:
105 controller:
106 ....
107 message_queue:
108 engine: rabbitmq
109 members:
110 - host: 10.0.16.1
111 - host: 10.0.16.2
112 - host: 10.0.16.3
113 user: openstack
114 password: pwd
115 virtual_host: '/openstack'
116 ....
117
118Client-side RabbitMQ HA setup for volume component
119
120.. code-block:: yaml
121
122 cinder:
123 volume:
124 ....
125 message_queue:
126 engine: rabbitmq
127 members:
128 - host: 10.0.16.1
129 - host: 10.0.16.2
130 - host: 10.0.16.3
131 user: openstack
132 password: pwd
133 virtual_host: '/openstack'
134 ....
Filip Pytlounda2a0792015-10-06 16:28:31 +0200135
136Cinder setup with zeroing deleted volumes
137
Alexander Noskov62496fb2017-02-27 16:42:54 +0100138.. code-block:: yaml
139
Filip Pytlounda2a0792015-10-06 16:28:31 +0200140 cinder:
141 controller:
142 enabled: true
143 wipe_method: zero
144 ...
145
146Cinder setup with shreding deleted volumes
147
148.. code-block:: yaml
149
150 cinder:
151 controller:
152 enabled: true
153 wipe_method: shred
154 ...
155
156
157Default Cinder setup with iSCSI target
158
159.. code-block:: yaml
160
161 cinder:
162 controller:
163 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200164 version: mitaka
165 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200166 database:
167 engine: mysql
168 host: 127.0.0.1
169 port: 3306
170 name: cinder
171 user: cinder
172 password: pwd
173 identity:
174 engine: keystone
175 host: 127.0.0.1
176 port: 35357
177 tenant: service
178 user: cinder
179 password: pwd
180 message_queue:
181 engine: rabbitmq
182 host: 127.0.0.1
183 port: 5672
184 user: openstack
185 password: pwd
186 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100187 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200188 lvmdriver-1:
189 engine: lvm
190 type_name: lvmdriver-1
191 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200192
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100193Cinder setup for IBM Storwize
Filip Pytlounda2a0792015-10-06 16:28:31 +0200194
195.. code-block:: yaml
196
197 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100198 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200199 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100200 backend:
201 7k2_SAS:
202 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100203 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100204 host: 192.168.0.1
205 port: 22
206 user: username
207 password: pass
208 connection: FC/iSCSI
209 multihost: true
210 multipath: true
211 pool: SAS7K2
212 10k_SAS:
213 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100214 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100215 host: 192.168.0.1
216 port: 22
217 user: username
218 password: pass
219 connection: FC/iSCSI
220 multihost: true
221 multipath: true
222 pool: SAS10K
223 15k_SAS:
224 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100225 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100226 host: 192.168.0.1
227 port: 22
228 user: username
229 password: pass
230 connection: FC/iSCSI
231 multihost: true
232 multipath: true
233 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200234
Jiri Broulik88548db2017-03-31 12:21:37 +0200235
236Cinder setup with NFS
237
238.. code-block:: yaml
239
240 cinder:
241 controller:
242 enabled: true
243 default_volume_type: nfs-driver
244 backend:
245 nfs-driver:
246 engine: nfs
247 type_name: nfs-driver
248 volume_group: cinder-volume
249 path: /var/lib/cinder/nfs
250 devices:
251 - 172.16.10.110:/var/nfs/cinder
252 options: rw,sync
253
254
Filip Pytlounda2a0792015-10-06 16:28:31 +0200255Cinder setup with Hitachi VPS
256
257.. code-block:: yaml
258
259 cinder:
260 controller:
261 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100262 backend:
263 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100264 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100265 backend: hus100_backend
266 engine: hitachi_vsp
267 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200268
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100269Cinder setup with Hitachi VPS with defined ldev range
270
271.. code-block:: yaml
272
273 cinder:
274 controller:
275 enabled: true
276 backend:
277 hus100_backend:
278 type_name: HUS100
279 backend: hus100_backend
280 engine: hitachi_vsp
281 connection: FC
282 ldev_range: 0-1000
283
Filip Pytlounda2a0792015-10-06 16:28:31 +0200284Cinder setup with CEPH
285
286.. code-block:: yaml
287
288 cinder:
289 controller:
290 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100291 backend:
292 ceph_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100293 type_name: standard-iops
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100294 backend: ceph_backend
295 pool: volumes
296 engine: ceph
297 user: cinder
298 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
299 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
Filip Pytlounda2a0792015-10-06 16:28:31 +0200300
301http://ceph.com/docs/master/rbd/rbd-openstack/
302
303
304Cinder setup with HP3par
305
306.. code-block:: yaml
307
308 cinder:
309 controller:
310 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100311 backend:
312 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100313 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100314 backend: hp3par_backend
315 user: hp3paruser
316 password: something
317 url: http://10.10.10.10/api/v1
318 cpg: OpenStackCPG
319 host: 10.10.10.10
320 login: hp3paradmin
321 sanpassword: something
322 debug: True
323 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200324
325Cinder setup with Fujitsu Eternus
326
327.. code-block:: yaml
328
329 cinder:
330 volume:
331 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100332 backend:
333 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100334 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100335 engine: fujitsu
336 pool: 10kThinPro
337 host: 192.168.0.1
338 port: 5988
339 user: username
340 password: pass
341 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100342 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100343 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100344 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100345 pool: SAS10K
346 engine: fujitsu
347 host: 192.168.0.1
348 port: 5988
349 user: username
350 password: pass
351 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100352 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200353
Jakub Pavlik9703c602015-10-15 18:52:47 +0200354Cinder setup with IBM GPFS filesystem
355
356.. code-block:: yaml
357
358 cinder:
359 volume:
360 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100361 backend:
362 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100363 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100364 engine: gpfs
365 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100366 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100367 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100368 engine: gpfs
369 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100370
371Cinder setup with HP LeftHand
372
373.. code-block:: yaml
374
375 cinder:
376 volume:
377 enabled: true
378 backend:
379 HP-LeftHand:
380 type_name: normal-storage
381 engine: hp_lefthand
382 api_url: 'https://10.10.10.10:8081/lhos'
383 username: user
384 password: password
385 clustername: cluster1
386 iscsi_chap_enabled: false
387
Jakub Pavlika63764f2016-01-11 14:41:06 +0100388Extra parameters for HP LeftHand
Jakub Pavlika63764f2016-01-11 14:41:06 +0100389
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100390.. code-block:: yaml
391
392 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
393
marcodaa52fa2016-01-25 23:49:50 +0100394Cinder setup with Solidfire
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100395
396.. code-block:: yaml
397
398 cinder:
399 volume:
400 enabled: true
401 backend:
402 solidfire:
403 type_name: normal-storage
404 engine: solidfire
405 san_ip: 10.10.10.10
406 san_login: user
407 san_password: password
408 clustername: cluster1
409 sf_emulate_512: false
Filip Pytlounda2a0792015-10-06 16:28:31 +0200410
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100411
412
413Enable auditing filter, ie: CADF
414
415.. code-block:: yaml
416
417 cinder:
418 controller:
419 audit:
420 enabled: true
421 ....
422 filter_factory: 'keystonemiddleware.audit:filter_factory'
423 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
424 ....
425 volume:
426 audit:
427 enabled: true
428 ....
429 filter_factory: 'keystonemiddleware.audit:filter_factory'
430 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
431
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100432
433Cinder setup with custom availability zones:
434
435.. code-block:: yaml
436
437 cinder:
438 controller:
439 default_availability_zone: my-default-zone
440 storage_availability_zone: my-custom-zone-name
441 cinder:
442 volume:
443 default_availability_zone: my-default-zone
444 storage_availability_zone: my-custom-zone-name
445
Andrii Ostapenkob7aa34d2017-04-20 14:22:44 +0300446
447Cinder setup with custom non-admin volume query filters:
448
449.. code-block:: yaml
450
451 cinder:
452 controller:
453 query_volume_filters:
454 - name
455 - status
456 - metadata
457 - availability_zone
458 - bootable
459
460
Alexander Noskov62496fb2017-02-27 16:42:54 +0100461public_endpoint and osapi_volume_base_url parameters:
462"public_endpoint" is used for configuring versions endpoint,
463"osapi_volume_base_URL" is used to present Cinder URL to users.
464They are useful when running Cinder under load balancer in SSL.
465
466.. code-block:: yaml
467
468 cinder:
469 controller:
470 public_endpoint_address: https://${_param:cluster_domain}:8776
471
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100472The 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)
473The storage availability zone is the actual zone where the node belongs to. Make sure to specify this per node.
474Check the documentation of OpenStack for more information
475
Jakub Pavlikb513f132016-05-20 11:11:19 +0200476Documentation and Bugs
477============================
478
479To learn how to deploy OpenStack Salt, consult the documentation available
480online at:
481
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100482https://wiki.openstack.org/wiki/OpenStackSalt
Jakub Pavlikb513f132016-05-20 11:11:19 +0200483
484In the unfortunate event that bugs are discovered, they should be reported to
485the appropriate bug tracker. If you obtained the software from a 3rd party
486operating system vendor, it is often wise to use their own bug tracker for
487reporting problems. In all other cases use the master OpenStack bug tracker,
488available at:
489
490 http://bugs.launchpad.net/openstack-salt
491
492Developers wishing to work on the OpenStack Salt project should always base
493their work on the latest formulas code, available from the master GIT
494repository at:
495
496 https://git.openstack.org/cgit/openstack/salt-formula-cinder
497
498Developers should also join the discussion on the IRC list, at:
499
500 https://wiki.openstack.org/wiki/Meetings/openstack-salt
Filip Pytlounb0f5c1f2017-02-02 13:02:03 +0100501
502Documentation and Bugs
503======================
504
505To learn how to install and update salt-formulas, consult the documentation
506available online at:
507
508 http://salt-formulas.readthedocs.io/
509
510In the unfortunate event that bugs are discovered, they should be reported to
511the appropriate issue tracker. Use Github issue tracker for specific salt
512formula:
513
514 https://github.com/salt-formulas/salt-formula-cinder/issues
515
516For feature requests, bug reports or blueprints affecting entire ecosystem,
517use Launchpad salt-formulas project:
518
519 https://launchpad.net/salt-formulas
520
521You can also join salt-formulas-users team and subscribe to mailing list:
522
523 https://launchpad.net/~salt-formulas-users
524
525Developers wishing to work on the salt-formulas projects should always base
526their work on master branch and submit pull request against specific formula.
527
528 https://github.com/salt-formulas/salt-formula-cinder
529
530Any questions or feedback is always welcome so feel free to join our IRC
531channel:
532
533 #salt-formulas @ irc.freenode.net