Sto provando Trove su devstack (icehouse/stable). Ho creato un'immagine usando Ubuntu 14.04, installandoci sopra mysql5.5 e trove-guestagent. Questo è il file /etc/trove/trove-guestagent.conf [DEFAULT] verbose = False debug = True bind_host =163.162.63.25 bind_port = 8779 rabbit_host=163.162.63.25 rabbit_port=5672 rabbit_password=devstack api_extensions_path = trove/extensions/routes nova_proxy_admin_user = admin nova_proxy_admin_pass = devstack nova_proxy_admin_tenant_name = admin trove_auth_url = http://163.162.63.25:5000/v2.0 datastore_registry_ext = mysql:trove.guestagent.datastore.mysql.manager.Manager datastore_manager = mysql root_grant = ALL root_grant_option = True control_exchange = trove # ============ Logging information ============================= log_dir = /var/log/trove/ log_file = guestagent.log # Users to ignore for user create/list/delete operations ignore_users = os_admin ignore_dbs = lost+found, mysql, information_schema # Strategy information for backups backup_namespace = trove.guestagent.strategies.backup.mysql_impl # Additional commandline options to be passed to the backup runner (by strategy). For example: # backup_runner_options = InnoBackupEx:--no-lock, MySQLDump:--events --routines --triggers restore_namespace = trove.guestagent.strategies.restore.mysql_impl storage_strategy = SwiftStorage storage_namespace = trove.guestagent.strategies.storage.swift backup_swift_container = database_backups backup_use_gzip_compression = True backup_use_openssl_encryption = True backup_aes_cbc_key = "default_aes_cbc_key" backup_use_snet = False backup_chunk_size = 65536 backup_segment_max_size = 2147483648 L'istanza raggiunge sia MQ che le API trove, in esecuzione sulla macchina "devstack". Sull'agent non sembra in effetti esserci alcun problema. Dai log vedo: INFO trove.guestagent.datastore.mysql.service [-] Service Status is RUNNING. Nei log di trove-conductor invece mi appare in continuazione questo errore: 2014-06-12 12:27:20.345 DEBUG trove.conductor.manager [req-843f9ee6-f6e6-4c11-a3da-cf57e77e66a1 admin None] Instance ID: None from (pid=31646) heartbeat /opt/stack/trove/trove/conductor/manager.py:76 2014-06-12 12:27:20.345 DEBUG trove.conductor.manager [req-843f9ee6-f6e6-4c11-a3da-cf57e77e66a1 admin None] Payload: {u'service_status': u'running'} from (pid=31646) heartbeat /opt/stack/trove/trove/conductor/manager.py:77 2014-06-12 12:27:20.348 DEBUG trove.openstack.common.rpc.amqp [req-843f9ee6-f6e6-4c11-a3da-cf57e77e66a1 admin None] >>>>>>>>CASO D from (pid=31646) _process_data /opt/stack/trove/trove/openstack/common/rpc/amqp.py:461 2014-06-12 12:27:20.348 ERROR trove.openstack.common.rpc.amqp [req-843f9ee6-f6e6-4c11-a3da-cf57e77e66a1 admin None] Exception during message handling 2014-06-12 12:27:20.348 TRACE trove.openstack.common.rpc.amqp Traceback (most recent call last): 2014-06-12 12:27:20.348 TRACE trove.openstack.common.rpc.amqp File "/opt/stack/trove/trove/openstack/common/rpc/amqp.py", line 441, in _process_data 2014-06-12 12:27:20.348 TRACE trove.openstack.common.rpc.amqp **args) 2014-06-12 12:27:20.348 TRACE trove.openstack.common.rpc.amqp File "/opt/stack/trove/trove/openstack/common/rpc/dispatcher.py", line 172, in dispatch 2014-06-12 12:27:20.348 TRACE trove.openstack.common.rpc.amqp result = getattr(proxyobj, method)(ctxt, **kwargs) 2014-06-12 12:27:20.348 TRACE trove.openstack.common.rpc.amqp File "/opt/stack/trove/trove/conductor/manager.py", line 79, in heartbeat 2014-06-12 12:27:20.348 TRACE trove.openstack.common.rpc.amqp instance_id=instance_id) 2014-06-12 12:27:20.348 TRACE trove.openstack.common.rpc.amqp File "/opt/stack/trove/trove/db/models.py", line 99, in find_by 2014-06-12 12:27:20.348 TRACE trove.openstack.common.rpc.amqp cls.__name__) 2014-06-12 12:27:20.348 TRACE trove.openstack.common.rpc.amqp ModelNotFoundError: InstanceServiceStatus Not Found Il problema è l'Instance ID valorizzata a None. Questa è la procedura che ho seguito per il test: 1) Creato un nuovo datastore: trove-manage datastore_update mysql "" 2) Creata una versione del datastore: trove-manage datastore_version_update mysql 5.5 mysql b8e336db-6a80-4c72-b041-634c94e0b9cb mysql-server-5.5 1 (tutto su una linea). dove b8e336db-6a80-4c72-b041-634c94e0b9cb è l'ID dell'immagine. 3) Aggiornato il datastore con la versione: trove-manage datastore_update mysql 5.5 4) Lanciata l'esecuzione di un'istanza trove: #!/bin/bash netid=`neutron net-show private_adm | sed -ne 's/|[[:space:]]\+id[[:space:]]\+|[[:space:]]\+\(.\+\)[[:space:]]\+|/\1/p'` trove create testtrove 3 \ --size 1 \ --datastore mysql \ --datastore_version 5.5 \ --nic net-id=$netid Sull'istanza (VM) creata oltre ad essere in esecuzione correttamente il guestagent, viene iniettato il file /etc/guest_info e viene creato un volume e attaccato alla VM. Ho provato a seguire il flusso del codice per capire da dove nasce l'errore, ma francamente è troppo complesso come debug. Qualcuno ha esperienze in merito? Grazie Walter