blob: e2da0260559dfaa83f22c7dabab998ba06164549 [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
138 cinder:
139 controller:
140 enabled: true
141 wipe_method: zero
142 ...
143
144Cinder setup with shreding deleted volumes
145
146.. code-block:: yaml
147
148 cinder:
149 controller:
150 enabled: true
151 wipe_method: shred
152 ...
153
154
155Default Cinder setup with iSCSI target
156
157.. code-block:: yaml
158
159 cinder:
160 controller:
161 enabled: true
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200162 version: mitaka
163 default_volume_type: lvmdriver-1
Filip Pytlounda2a0792015-10-06 16:28:31 +0200164 database:
165 engine: mysql
166 host: 127.0.0.1
167 port: 3306
168 name: cinder
169 user: cinder
170 password: pwd
171 identity:
172 engine: keystone
173 host: 127.0.0.1
174 port: 35357
175 tenant: service
176 user: cinder
177 password: pwd
178 message_queue:
179 engine: rabbitmq
180 host: 127.0.0.1
181 port: 5672
182 user: openstack
183 password: pwd
184 virtual_host: '/openstack'
Jakub Pavlikaf96c2a2016-01-08 15:49:54 +0100185 backend:
Jakub Pavlik3d437df2016-04-11 22:07:50 +0200186 lvmdriver-1:
187 engine: lvm
188 type_name: lvmdriver-1
189 volume_group: cinder-volume
Filip Pytlounda2a0792015-10-06 16:28:31 +0200190
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100191Cinder setup for IBM Storwize
Filip Pytlounda2a0792015-10-06 16:28:31 +0200192
193.. code-block:: yaml
194
195 cinder:
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100196 volume:
Filip Pytlounda2a0792015-10-06 16:28:31 +0200197 enabled: true
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100198 backend:
199 7k2_SAS:
200 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100201 type_name: 7k2 SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100202 host: 192.168.0.1
203 port: 22
204 user: username
205 password: pass
206 connection: FC/iSCSI
207 multihost: true
208 multipath: true
209 pool: SAS7K2
210 10k_SAS:
211 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100212 type_name: 10k SAS disk
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100213 host: 192.168.0.1
214 port: 22
215 user: username
216 password: pass
217 connection: FC/iSCSI
218 multihost: true
219 multipath: true
220 pool: SAS10K
221 15k_SAS:
222 engine: storwize
Jakub Pavlikedd46102016-01-08 16:20:38 +0100223 type_name: 15k SAS
Ales Komarekdf13bbd2016-01-05 21:33:36 +0100224 host: 192.168.0.1
225 port: 22
226 user: username
227 password: pass
228 connection: FC/iSCSI
229 multihost: true
230 multipath: true
231 pool: SAS15K
Filip Pytlounda2a0792015-10-06 16:28:31 +0200232
233Cinder setup with Hitachi VPS
234
235.. code-block:: yaml
236
237 cinder:
238 controller:
239 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100240 backend:
241 hus100_backend:
marcodaa52fa2016-01-25 23:49:50 +0100242 type_name: HUS100
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100243 backend: hus100_backend
244 engine: hitachi_vsp
245 connection: FC
Filip Pytlounda2a0792015-10-06 16:28:31 +0200246
Ondrej Smola16d66bd2017-01-15 13:56:03 +0100247Cinder setup with Hitachi VPS with defined ldev range
248
249.. code-block:: yaml
250
251 cinder:
252 controller:
253 enabled: true
254 backend:
255 hus100_backend:
256 type_name: HUS100
257 backend: hus100_backend
258 engine: hitachi_vsp
259 connection: FC
260 ldev_range: 0-1000
261
Filip Pytlounda2a0792015-10-06 16:28:31 +0200262Cinder setup with CEPH
263
264.. code-block:: yaml
265
266 cinder:
267 controller:
268 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100269 backend:
270 ceph_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100271 type_name: standard-iops
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100272 backend: ceph_backend
273 pool: volumes
274 engine: ceph
275 user: cinder
276 secret_uuid: da74ccb7-aa59-1721-a172-0006b1aa4e3e
277 client_cinder_key: AQDOavlU6BsSJhAAnpFR906mvdgdfRqLHwu0Uw==
Filip Pytlounda2a0792015-10-06 16:28:31 +0200278
279http://ceph.com/docs/master/rbd/rbd-openstack/
280
281
282Cinder setup with HP3par
283
284.. code-block:: yaml
285
286 cinder:
287 controller:
288 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100289 backend:
290 hp3par_backend:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100291 type_name: hp3par
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100292 backend: hp3par_backend
293 user: hp3paruser
294 password: something
295 url: http://10.10.10.10/api/v1
296 cpg: OpenStackCPG
297 host: 10.10.10.10
298 login: hp3paradmin
299 sanpassword: something
300 debug: True
301 snapcpg: OpenStackSNAPCPG
Filip Pytlounda2a0792015-10-06 16:28:31 +0200302
303Cinder setup with Fujitsu Eternus
304
305.. code-block:: yaml
306
307 cinder:
308 volume:
309 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100310 backend:
311 10kThinPro:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100312 type_name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100313 engine: fujitsu
314 pool: 10kThinPro
315 host: 192.168.0.1
316 port: 5988
317 user: username
318 password: pass
319 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100320 name: 10kThinPro
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100321 10k_SAS:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100322 type_name: 10k_SAS
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100323 pool: SAS10K
324 engine: fujitsu
325 host: 192.168.0.1
326 port: 5988
327 user: username
328 password: pass
329 connection: FC/iSCSI
marcodaa52fa2016-01-25 23:49:50 +0100330 name: 10k_SAS
Filip Pytlounda2a0792015-10-06 16:28:31 +0200331
Jakub Pavlik9703c602015-10-15 18:52:47 +0200332Cinder setup with IBM GPFS filesystem
333
334.. code-block:: yaml
335
336 cinder:
337 volume:
338 enabled: true
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100339 backend:
340 GPFS-GOLD:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100341 type_name: GPFS-GOLD
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100342 engine: gpfs
343 mount_point: '/mnt/gpfs-openstack/cinder/gold'
marcodaa52fa2016-01-25 23:49:50 +0100344 GPFS-SILVER:
Jakub Pavlikedd46102016-01-08 16:20:38 +0100345 type_name: GPFS-SILVER
Jakub Pavlik5d7df0d2016-01-06 13:08:30 +0100346 engine: gpfs
347 mount_point: '/mnt/gpfs-openstack/cinder/silver'
Jakub Pavlik9f5988a2016-01-11 13:44:57 +0100348
349Cinder setup with HP LeftHand
350
351.. code-block:: yaml
352
353 cinder:
354 volume:
355 enabled: true
356 backend:
357 HP-LeftHand:
358 type_name: normal-storage
359 engine: hp_lefthand
360 api_url: 'https://10.10.10.10:8081/lhos'
361 username: user
362 password: password
363 clustername: cluster1
364 iscsi_chap_enabled: false
365
Jakub Pavlika63764f2016-01-11 14:41:06 +0100366Extra parameters for HP LeftHand
Jakub Pavlika63764f2016-01-11 14:41:06 +0100367
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100368.. code-block:: yaml
369
370 cinder type-key normal-storage set hplh:data_pl=r-10-2 hplh:provisioning=full
371
marcodaa52fa2016-01-25 23:49:50 +0100372Cinder setup with Solidfire
Jakub Pavlik5050dda2016-01-11 16:52:32 +0100373
374.. code-block:: yaml
375
376 cinder:
377 volume:
378 enabled: true
379 backend:
380 solidfire:
381 type_name: normal-storage
382 engine: solidfire
383 san_ip: 10.10.10.10
384 san_login: user
385 san_password: password
386 clustername: cluster1
387 sf_emulate_512: false
Filip Pytlounda2a0792015-10-06 16:28:31 +0200388
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100389
390
391Enable auditing filter, ie: CADF
392
393.. code-block:: yaml
394
395 cinder:
396 controller:
397 audit:
398 enabled: true
399 ....
400 filter_factory: 'keystonemiddleware.audit:filter_factory'
401 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
402 ....
403 volume:
404 audit:
405 enabled: true
406 ....
407 filter_factory: 'keystonemiddleware.audit:filter_factory'
408 map_file: '/etc/pycadf/cinder_api_audit_map.conf'
409
Michel Nederlofb8603eb2017-02-09 10:04:38 +0100410
411Cinder setup with custom availability zones:
412
413.. code-block:: yaml
414
415 cinder:
416 controller:
417 default_availability_zone: my-default-zone
418 storage_availability_zone: my-custom-zone-name
419 cinder:
420 volume:
421 default_availability_zone: my-default-zone
422 storage_availability_zone: my-custom-zone-name
423
424The 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)
425The storage availability zone is the actual zone where the node belongs to. Make sure to specify this per node.
426Check the documentation of OpenStack for more information
427
Jakub Pavlikb513f132016-05-20 11:11:19 +0200428Documentation and Bugs
429============================
430
431To learn how to deploy OpenStack Salt, consult the documentation available
432online at:
433
Petr Michaleca1c7ff12016-11-29 16:32:50 +0100434https://wiki.openstack.org/wiki/OpenStackSalt
Jakub Pavlikb513f132016-05-20 11:11:19 +0200435
436In the unfortunate event that bugs are discovered, they should be reported to
437the appropriate bug tracker. If you obtained the software from a 3rd party
438operating system vendor, it is often wise to use their own bug tracker for
439reporting problems. In all other cases use the master OpenStack bug tracker,
440available at:
441
442 http://bugs.launchpad.net/openstack-salt
443
444Developers wishing to work on the OpenStack Salt project should always base
445their work on the latest formulas code, available from the master GIT
446repository at:
447
448 https://git.openstack.org/cgit/openstack/salt-formula-cinder
449
450Developers should also join the discussion on the IRC list, at:
451
452 https://wiki.openstack.org/wiki/Meetings/openstack-salt
Filip Pytlounb0f5c1f2017-02-02 13:02:03 +0100453
454Documentation and Bugs
455======================
456
457To learn how to install and update salt-formulas, consult the documentation
458available online at:
459
460 http://salt-formulas.readthedocs.io/
461
462In the unfortunate event that bugs are discovered, they should be reported to
463the appropriate issue tracker. Use Github issue tracker for specific salt
464formula:
465
466 https://github.com/salt-formulas/salt-formula-cinder/issues
467
468For feature requests, bug reports or blueprints affecting entire ecosystem,
469use Launchpad salt-formulas project:
470
471 https://launchpad.net/salt-formulas
472
473You can also join salt-formulas-users team and subscribe to mailing list:
474
475 https://launchpad.net/~salt-formulas-users
476
477Developers wishing to work on the salt-formulas projects should always base
478their work on master branch and submit pull request against specific formula.
479
480 https://github.com/salt-formulas/salt-formula-cinder
481
482Any questions or feedback is always welcome so feel free to join our IRC
483channel:
484
485 #salt-formulas @ irc.freenode.net