[tripleo][cinder][netapp]

Alan Bishop abishop at redhat.com
Mon Jul 15 23:44:58 UTC 2019


On Mon, Jul 15, 2019 at 7:34 AM Tomáš Bredár <tomas.bredar at gmail.com> wrote:

> Hi Alan,
> Yes, this is something I was able to achieve. Sorry I think I didn't
> express myself clearly. My question was how to correctly create multiple
> configuration files?
>

Hi Tomas,

Sorry, but I'm not aware of any existing template or puppet module you
could use to create multiple share config files. However, if you're willing
to get your hands dirty and spend time experimenting, there are a couple of
tripleo facilities you might be able to use to get the job done.

One approach would be to use an "extra config" hook [1], in which you could
execute a script that generates the contents of your share config files
(e.g. a bash script that echos data to a file). Tripleo's
extraconfig/services directory [2] might provide some ideas. For example,
you could create a template that defines a new, minimal tripleo "service"
whose host_prep_tasks (essentially a list of ansible tasks) create the
files.

[1] http://tripleo.org/install/advanced_deployment/extra_config.html
[2]
https://github.com/openstack/tripleo-heat-templates/tree/stable/queens/extraconfig/services

Unfortunately, it's been quite a while since I dabbled in these areas, so I
can't point you to a concise example. Maybe a tripleo expert can provide
better guidance.

Alan

> po 15. 7. 2019 o 15:56 Alan Bishop <abishop at redhat.com> napísal(a):
>
>>
>> On Mon, Jul 15, 2019 at 4:11 AM Tomáš Bredár <tomas.bredar at gmail.com>
>> wrote:
>>
>>> Hi Alan!
>>> Thanks for the pointers. For now I'm going with a single backend with
>>> two NFS shares, so I'll use the tripleo templates for netapp.
>>> For the future, could you point me to the right template / puppet-cinder
>>> code which can create multiple nfs share files for me? Or should I create
>>> my own puppet manifest?
>>>
>>
>> Hi Tomas,
>>
>> The puppet-cinder code that renders the shares config file is [1], and
>> the data comes from puppet-tripleo [2]. This is puppet hiera data, and the
>> value is bound to the CindeNetappNfsShares tripleo parameter [3].
>>
>> So you should be able to deploy a single backend that accesses multiple
>> shares by adding something like this to your tripleo deployment.
>>
>> parameter_defaults:
>>   CinderNetappNfsShares: 'host_1:/path/to/share_1,host_2:/path/to/share_2'
>>
>> [1]
>> https://opendev.org/openstack/puppet-cinder/src/branch/stable/queens/manifests/backend/netapp.pp#L280
>> [2]
>> https://opendev.org/openstack/puppet-tripleo/src/branch/stable/queens/manifests/profile/base/cinder/volume/netapp.pp#L38
>> [3]
>> https://opendev.org/openstack/tripleo-heat-templates/src/branch/stable/queens/puppet/services/cinder-backend-netapp.yaml#L137
>>
>> Alan
>>
>> Thanks again.
>>>
>>> Tomas
>>>
>>> pi 12. 7. 2019 o 16:11 Alan Bishop <abishop at redhat.com> napísal(a):
>>>
>>>>
>>>> On Fri, Jul 12, 2019 at 6:09 AM Tomáš Bredár <tomas.bredar at gmail.com>
>>>> wrote:
>>>>
>>>>> Hi Emilien!
>>>>>
>>>>> Thanks for your help. Yes with this I am able to define multiple
>>>>> stanzas in cinder.conf. However netapp driver needs a .conf file with the
>>>>> nfs shares listed in it. Defining multiple configuration files with nfs
>>>>> share details in each is not possible with the manual you've sent nor with
>>>>> the templates in my first email.
>>>>>
>>>>
>>>> Hi Tomas,
>>>>
>>>> When deploying a single backend, the tripleo template takes care of
>>>> generating the nfs shares file (actually, puppet-cinder generates the file,
>>>> but it's triggered by tripleo). But when you use the custom backend method
>>>> that Emilien pointed you to use, then you are responsible for supplying all
>>>> the pieces for the backend(s) to function correctly. This means you will
>>>> need to generate the nfs shares file on the host (controller), and then
>>>> bind mount the file using CinderVolumeOptVolumes so that the shares file on
>>>> the host is visible to the cinder-volume process running in a container.
>>>>
>>>> I'm wondering if it's possible to define a second backend by creating
>>>>> another service, for example "OS::TripleO::Services::CinderBackendNetApp2" ?
>>>>>
>>>>
>>>> Sorry, this won't work. TripleO will trying to deploy two completely
>>>> separate instances of the cinder-volume service, but the two deployments
>>>> will step all over each other. There has been a long standing goal of
>>>> enhancing tripleo so that it can deploy multiple instances of a cinder
>>>> backend, but it's a complex task that will require non-trivial changes to
>>>> tripleo.
>>>>
>>>> Alan
>>>>
>>>> Tomas
>>>>>
>>>>> št 11. 7. 2019 o 14:35 Emilien Macchi <emilien at redhat.com> napísal(a):
>>>>>
>>>>>> On Thu, Jul 11, 2019 at 7:32 AM Tomáš Bredár <tomas.bredar at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi community,
>>>>>>>
>>>>>>> I'm trying to define multiple NetApp storage backends via Tripleo
>>>>>>> installer.
>>>>>>> According to [1] the puppet manifest supports multiple backends.
>>>>>>> The current templates [2] [3] support only single backend.
>>>>>>> Does anyone know how to define multiple netapp backends in the
>>>>>>> tripleo-heat environment files / templates?
>>>>>>>
>>>>>>
>>>>>> We don't support that via the templates that you linked, however if
>>>>>> you follow this manual you should be able to configure multiple NetApp
>>>>>> backends:
>>>>>>
>>>>>> https://docs.openstack.org/tripleo-docs/latest/install/advanced_deployment/cinder_custom_backend.html
>>>>>>
>>>>>> Let us know how it worked!
>>>>>> --
>>>>>> Emilien Macchi
>>>>>>
>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-discuss/attachments/20190715/4acff30a/attachment-0001.html>


More information about the openstack-discuss mailing list