[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