[openstack-dev] Test multi backend support for cinder

Jérôme Gallard jeronimo974 at gmail.com
Wed Feb 13 10:01:42 UTC 2013


Hi all,

John, thank you very much for your answer. However it still not solve
completely the issue.
I investigated more. I would like to explain it, perhaps it will allow
someone to help me :)

When I start "cinder-volume", the process forks 1 child per backend.
In my case I have 2 backends, so, 2 childs. Everything is right.
Then, the father checks continuously the status of its childs
(service.py l279 :
https://review.openstack.org/#/c/21815/3/cinder/service.py ).
Then, it continues to a loop which calls the _wait_child function.
In _wait_child, there is an os.wait().
>From my understanding this function return a tuple (pid, status) of a
dead child. This should be a blocking function, right ?
This is not the case in my configuration, os.wait() returns (pid=0,
status=0). This is why in my configuration I stay in this infinite
loop which takes 100% of the CPU load.
So my first conclusions:
- os.wait() in my case has not the right behaviour (but I don't know why)
- os.wait() has the right behaviour and in that case it is necessary
to add a time.sleep() in the loop (currently, this is what I made, and
it's ok with that)

Someone have an idea ?

Thanks a lot,
Jérôme

On Thu, Feb 7, 2013 at 11:41 PM, John Griffith
<john.griffith at solidfire.com> wrote:
>
>
> On Thu, Feb 7, 2013 at 10:51 AM, Jérôme Gallard <jeronimo974 at gmail.com>
> wrote:
>>
>> Just to add details to my first email, if it can help, here is a trace
>> + stdout : http://paste.openstack.org/show/30722/
>>
>> Thanks,
>> Jérôme
>>
>> On Thu, Feb 7, 2013 at 3:49 PM, Jérôme Gallard <jeronimo974 at gmail.com>
>> wrote:
>> > Hi all,
>> >
>> > I am testing the cinder multi backend support:
>> > https://review.openstack.org/#/c/20347/ (patch 9)
>> >
>> > When I start the cinder-volume service, it loops indefinitly with :
>> > WARNING cinder.service [-] pid 0 not in child list
>> > INFO cinder.service [-] Child 0 exited with status 0
>> >
>> > Does someone have an idea about the issue?
>> > At the end of the email I detail my lab configuration.
>> >
>> > Thanks a lot,
>> > Jérôme
>> >
>> > ---
>> > What I did to get this issue:
>> >
>> > I setup an new OpenStack environment with devstack: everything was
>> > working well (I was able to create / delete LVM volumes).
>> >
>> > I stopped the running cinder-volume, -api, -scheduler processes.
>> >
>> > I updated the cinder directory with:
>> > git fetch https://review.openstack.org/openstack/cinder
>> > refs/changes/47/20347/9 && git checkout FETCH_HEAD
>> >
>> > I updated the cinder database:
>> > cinder-manage db sync
>> >
>> > I updated the /etc/cinder/cinder.conf file:
>> > enabled_backends=backend1,backend2
>> > [backend1]
>> > volume_group = stack-volumes
>> > volume_driver = cinder.volume.drivers.lvm.LVMISCSIDriver
>> > backend_volume_type = lvm
>> > [backend2]
>> > volume_driver = cinder.volume.driver.FakeISCSIDriver
>> > backend_volume_type = fake
>> >
>> > I created 2 new volume types :
>> > cinder type-create lvm
>> > cinder type-create fake
>> >
>> > I started the cinder services :
>> > cinder-api and cinder-scheduler : OK
>> > however, cinder-volume loops indefinitly with :
>> > WARNING cinder.service [-] pid 0 not in child list
>> > INFO cinder.service [-] Child 0 exited with status 0
>>
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
> Hi Jerome,
>
> This is still under development obviously, but your config file isn't quite
> right, try something like this:
>
> multi_backend_support=True
> enabled_backends=lvm-1,lvm-fake
>
> [lvm-1]
> backend_volume_type=lvm
> volume_driver=cinder.volume.drivers.lvm.LVMISCSIDriver
> volume_group=stack-volumes
>
> [lvm-fake]
> backend_volume_type = fake
> volume_driver = cinder.volume.driver.FakeISCSIDriver
>
>
>
>
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>



More information about the OpenStack-dev mailing list