Bug 1312000

Summary: [RFE] support for cinder multiple heterogeneous backends for a single deployment
Product: Red Hat OpenStack Reporter: Mike Burns <mburns>
Component: openstack-puppet-modulesAssignee: Emilien Macchi <emacchi>
Status: CLOSED ERRATA QA Contact: lkuchlan <lkuchlan>
Severity: high Docs Contact:
Priority: unspecified    
Version: 8.0 (Liberty)CC: achernet, arkady_kanevsky, cdevine, christopher_dearborn, dbecker, emacchi, gfidente, hbrock, jguiditt, joherr, John_walsh, kbasil, kschinck, kurt_hey, mburns, mcornea, morazi, nlevine, pbandark, rajini.karthik, randy_perryman, rhel-osp-director-maint, rsussman, shardy, sreichar, tdunnon, yeylon
Target Milestone: gaKeywords: FutureFeature
Target Release: 8.0 (Liberty)   
Hardware: All   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-puppet-modules-7.0.10-1.el7ost Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: 1269990 Environment:
Last Closed: 2016-04-07 21:30:56 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1291943    
Bug Blocks: 1261979, 1269990, 1302085, 1310828, 1324932, 1339413, 1339836    

Comment 3 lkuchlan 2016-03-22 09:21:50 UTC
Emilien, can you please provide how to deploy multiple back-ends in single deployment using OSPD?

Comment 4 Mike Burns 2016-03-22 12:07:55 UTC
The description of how is in bug 1269990

Comment 6 lkuchlan 2016-03-23 13:41:10 UTC
Tested using:
openstack-puppet-modules-7.0.15-1.el7ost.noarch

Verification flow:

* Updating cinder.conf of overcloud nodes for 2 NetApp back-ends via a heat environment file

[stack@instack ~]$ cat /mulit_backends.yaml 
parameter_defaults:
  ExtraConfig:
    cinder::config::cinder_config:
        netapp1/volume_driver:
                value: cinder.volume.drivers.netapp.common.NetAppDriver
        netapp1/netapp_storage_family:
                value: ontap_7mode
        netapp1/netapp_storage_protocol:
                value: iscsi
        netapp1/netapp_server_hostname:
                value: 10.35.64.11
        netapp1/netapp_server_port:
                value: 80
        netapp1/netapp_login:
                value: root
        netapp1/netapp_password:
                value: 123456
        netapp1/volume_backend_name:
                value: netapp_1
        netapp2/volume_driver:
                value: cinder.volume.drivers.netapp.common.NetAppDriver
        netapp2/netapp_storage_family:
                value: ontap_7mode
        netapp2/netapp_storage_protocol:
                value: iscsi   
        netapp2/netapp_server_hostname:
                value: 10.35.64.11
        netapp2/netapp_server_port:
                value: 80
        netapp2/netapp_login:
                value: root  
        netapp2/netapp_password:
                value: 123456  
        netapp2/volume_backend_name:
                value: netapp_2
    cinder_user_enabled_backends: ['netapp1','netapp2']


* Overcloud deployment

[stack@instack ~]$ openstack overcloud deploy --templates -e /mulit_backends.yaml  --control-scale 1 --compute-scale 1 --debug --log-file=overcloud_deploy.log

* Content of cinder.conf file after overcloud deloyment 

[root@overcloud-controller-0 ~]# cat /etc/cinder/cinder.conf | grep -C 8  'netapp1\|netapp2'

#enabled_backends = <None>
enabled_backends = tripleo_iscsi,netapp1,netapp2


[netapp1]
volume_backend_name=netapp_1
volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver
netapp_login=root
netapp_storage_protocol=iscsi
netapp_password=123456
netapp_storage_family=ontap_7mode
netapp_server_port=80
netapp_server_hostname=10.35.64.11

[netapp2]
volume_backend_name=netapp_2
volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver
netapp_login=root
netapp_storage_protocol=iscsi
netapp_password=123456
netapp_storage_family=ontap_7mode
netapp_server_port=80
netapp_server_hostname=10.35.64.11

* Volume types for Netapp back-ends

[stack@instack ~]$ cinder extra-specs-list
+--------------------------------------+---------+---------------------------------------+
|                  ID                  |   Name  |              extra_specs              |
+--------------------------------------+---------+---------------------------------------+
| 67e641bd-8c44-4c2a-87ff-bcfe1027fa6d | netapp1 | {u'volume_backend_name': u'netapp_1'} |
| 84d7d01d-4a0b-4ccb-9f0e-21df6e37863d | netapp2 | {u'volume_backend_name': u'netapp_2'} |
+--------------------------------------+---------+---------------------------------------+

* Creating a volume on both back-ends

[stack@instack ~]$ cinder list
+--------------------------------------+-----------+------------------+------+------+-------------+----------+-------------+-------------+
|                  ID                  |   Status  | Migration Status | Name | Size | Volume Type | Bootable | Multiattach | Attached to |
+--------------------------------------+-----------+------------------+------+------+-------------+----------+-------------+-------------+
| 703f9d13-e60a-457f-9010-baf0b3d621cb | available |        -         |  -   |  1   |   netapp1   |  false   |    False    |             |
| bed7cc29-74e3-4bd4-809c-1fd348c6f92d | available |        -         |  -   |  1   |   netapp2   |  false   |    False    |             |
+--------------------------------------+-----------+------------------+------+------+-------------+----------+-------------+-------------+

Comment 7 Rajini Karthik 2016-04-04 18:41:38 UTC
Verified with dell storage backends as well on Beta9

Comment 8 errata-xmlrpc 2016-04-07 21:30:56 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHEA-2016-0603.html