Eu configurei o Devstack em 3 servidores com IPs 10.10.1.51,10.10.1.53 e 10.10.1.54. Configurei o devstack no servidor 53 (IP 10.10.1.53) como a célula pai / api e configurei a openstack em 51 e 54 como células filhas. Eu habilitei as células especificando enable_service n-cell nos respectivos arquivos localrc. O nova.conf no pai é o seguinte:
[DEFAULT]
# Swap out the compute_api class so actions are proxied to nova-cells service.
compute_api_class=nova.compute.cells_api.ComputeCellsAPI
[cells]
name=api
enable=true
cell_type=api
nova.conf na célula filha1 é a seguinte:
[GLOBAL]
# Disable quota checking in child cells. Let API cell do it exclusively.
quota_driver=nova.quota.NoopQuotaDriver
[cells]
enable=true
name=cell1 # something unique per child cell
cell_type=compute
nova.conf na célula filha2 é a seguinte:
[GLOBAL]
# Disable quota checking in child cells. Let API cell do it exclusively.
quota_driver=nova.quota.NoopQuotaDriver
[cells]
enable=true
name=cell1 # something unique per child cell
cell_type=compute
Temos as seguintes informações do servidor de coelhos na célula pai:
rabbit_host = 10.10.1.53 rabbit_port = 5672 rabbit_username = admin rabbit_password = senha rabbit_virtual_host = api_vhost
E na célula filha chamada 'cell1', temos as seguintes informações do servidor de coelhos:
rabbit_host = 10.10.1.54 rabbit_port = 5673 rabbit_username = admin rabbit_password = senha rabbit_virtual_host = cell1_vhost
E na célula filha chamada 'cell2', temos as seguintes informações do servidor do coelho:
rabbit_host = 10.10.1.51 rabbit_port = 5673 rabbit_username = admin rabbit_password = senha rabbit_virtual_host = cell2_vhost
Depois disso, executei os seguintes comandos na célula da API para falar sobre seus filhos:
>nova-manage cell create --name=cell1 --cell_type=child --username=admin --password=password --hostname=10.10.1.51 --port=5673 --virtual_host=cell1_vhost --woffset=1.0 --wscale=1.0
>nova-manage cell create --name=cell2 --cell_type=child --username=admin --password=password --hostname=10.10.1.54 --port=5673 --virtual_host=cell1_vhost --woffset=1.0 --wscale=1.0
O comando a seguir foi executado nas duas células-filhas para informá-las sobre seus pais:
>nova-manage cell create --name=api --cell_type=parent --username=admin --password=password --hostname=10.10.1.53 --port=5672 --virtual_host=api_vhost --woffset=1.0 --wscale=1.0
n-cell-child e n-cell-region foram reiniciados em todas as 3 sessões de pilha. n-cell-region de todas as 3 sessões de pilha deu um erro dizendo:
2014-07-24 12:54:01.633 ERROR oslo.messaging._drivers.impl_rabbit [req-5154ff13-4f6f-4582-8a44-d42941e9a4bc None None] AMQP server 10.10.1.53:5672 closed the connection. Check login credentials: Socket closed
As telas n-cell-child em ambas as células filhas apresentaram o seguinte erro:
2014-07-24 12:57:11.579 ERROR oslo.messaging._drivers.impl_rabbit [req-ba63e502-f099-4e55-a8e9-297390f5598f None None] AMQP server on 10.10.1.54:5672 is unreachable: [Errno 111] ECONNREFUSED. Trying again in 30 seconds.
No entanto, não há erro na tela n-cell-child da célula pai. O broker AMQP em execução é o rabbitmq-server em todos os 3 servidores. Verifiquei a listagem de usuários no rabbitmq e as credenciais parecem estar bem.
Qualquer ajuda na depuração do erro seria apreciada. Obrigado antecipadamente!