[Openstack] Is it possible to start Trove instance without volume?

Heinonen, Johanna (NSN - FI/Espoo) johanna.heinonen at nsn.com
Fri Jun 6 04:13:04 UTC 2014


Hi,

I tried the option b mentioned below. Device_path = None seemed to have no effect but the exception.LocalStorageNotSpecified(flavor=flavor_id) was raised (/usr/lib/python2.7/dist-packages/trove/instance/models.py). The same effect was with value False. The only way I could proceed was to explicitly replace ephemeral_support to False in the code (models.py. line 630->):


#            if ephemeral_support and flavor.ephemeral == 0:
		 if False and flavor.ephemeral == 0:
                raise exception.LocalStorageNotSpecified(flavor=flavor_id)


Now I am able to start trove instance - almost. I am using custom made image (no cloudinit) where I have installed trove-guestagent and database.
Nova starts the VM and I am able to log in to it. I see that the guest-agent process is started and connected to AMQP server. However, the trove instance stays forever in the BUILD state. I guess that the reason is that the instance does not send the instance id in the heartbeat message (Instance ID is None in the log trace below). What is the way that guest-agent could learn the instance uuid of its own? Should it be injected to the instance somehow?



2014-06-05 23:10:07.155 14445 DEBUG trove.openstack.common.rpc.amqp [-] received {u'_context_domain': None, u'_context_request_id': u'req-22f10ab2-98cc-4932-b533-68c9d0633a18', u'args': {u'instance_id': None, u'payload': {u'service_status': u'running'}, u'sent': 1401988196.1104}, u'_context_read_only': False, u'_unique_id': u'f082fab2d9c241cea5b776a84eeb7320', u'_context_user_identity': u'admin - - - -', u'_context_show_deleted': False, u'_context_tenant': None, u'_context_auth_token': '<SANITIZED>', u'_context_project_domain': None, u'_context_is_admin': False, u'version': u'1.0', u'_context_marker': None, u'_context_instance_uuid': None, u'_context_user': u'admin', u'_context_user_domain': None, u'namespace': None, u'method': u'heartbeat', u'_context_limit': None} _safe_log /usr/lib/python2.7/dist-packages/trove/openstack/common/rpc/common.py:280
2014-06-05 23:10:07.156 14445 DEBUG trove.openstack.common.rpc.amqp [-] unpacked context: {'instance_uuid': None, 'read_only': False, 'domain': None, 'show_deleted': False, 'user_identity': u'admin - - - -', 'project_domain': None, 'auth_token': '<SANITIZED>', 'is_admin': False, 'user': u'admin', 'request_id': u'req-22f10ab2-98cc-4932-b533-68c9d0633a18', 'marker': None, 'limit': None, 'user_domain': None, 'tenant': None} _safe_log /usr/lib/python2.7/dist-packages/trove/openstack/common/rpc/common.py:280
2014-06-05 23:10:07.157 14445 DEBUG trove.conductor.manager [req-22f10ab2-98cc-4932-b533-68c9d0633a18 admin - - - -] Instance ID: None heartbeat /usr/lib/python2.7/dist-packages/trove/conductor/manager.py:76
2014-06-05 23:10:07.158 14445 DEBUG trove.conductor.manager [req-22f10ab2-98cc-4932-b533-68c9d0633a18 admin - - - -] Payload: {u'service_status': u'running'} heartbeat /usr/lib/python2.7/dist-packages/trove/conductor/manager.py:77
2014-06-05 23:10:07.161 14445 ERROR trove.openstack.common.rpc.amqp [req-22f10ab2-98cc-4932-b533-68c9d0633a18 admin - - - -] Exception during message handling
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.amqp Traceback (most recent call last):
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/trove/openstack/common/rpc/amqp.py", line 440, in _process_data
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.amqp     **args)
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/trove/openstack/common/rpc/dispatcher.py", line 172, in dispatch
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.amqp     result = getattr(proxyobj, method)(ctxt, **kwargs)
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/trove/conductor/manager.py", line 79, in heartbeat
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.amqp     instance_id=instance_id)
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.amqp   File "/usr/lib/python2.7/dist-packages/trove/db/models.py", line 99, in find_by
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.amqp     cls.__name__)
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.amqp ModelNotFoundError: InstanceServiceStatus Not Found
2014-06-05 23:10:07.161 14445 TRACE trove.openstack.common.rpc.amqp

I am using the ubuntu1404 trove packages.

Regards,
Johanna


-----Original Message-----
From: ext Mark Kirkwood [mailto:mark.kirkwood at catalyst.net.nz] 
Sent: Tuesday, June 03, 2014 9:28 AM
To: openstack at lists.openstack.org
Subject: Re: [Openstack] Is it possible to start Trove instance without volume?

On 30/05/14 21:44, Heinonen, Johanna (NSN - FI/Espoo) wrote:
> Hi,
> Is it possible to start trove instance in icehouse without volume
> support (cinder)?
> There is a parameter in trove.conf and trove-taskmanager.conf files
> called "trove_volume_support" but if I give value False to this and try
> to create trove instance I got the following error:
> trove create testmongo 2 --size=2 --databases=testDB --users test:password
> ERROR: Volume support is not enabled.
> BR
> Johanna
>

I have not experimented with launching instances w/o cinder support 
myself yet, however I see from comments in 
https://bugs.launchpad.net/trove/+bug/1194597/ that you might need to 
either:

a) have an ephemeral volume /dev/vdb setup in the chosen flavor (or 
similar) or
b) set device_path = None as well as trove_volume_support = False

Cheers

Mark

_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to     : openstack at lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack




More information about the Openstack mailing list