[Openstack-it] (senza oggetto)

Walter Valenti waltervalenti a yahoo.it
Gio 12 Giu 2014 10:50:22 UTC


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



More information about the Openstack-it mailing list