Openstack Grizzly falha ao provisionar novas VMs

1

Estou executando o Openstack Grizzly no CentOS instalado pela Mirantis Fuel.

[root@controller-20 ~]# cat /etc/redhat-release 
CentOS release 6.4 (Final)

[root@controller-20 ~]# rpm -qa | grep -i openstack-nova
openstack-nova-console-2013.1.1.fuel3.0-mira.2.noarch
openstack-nova-common-2013.1.1.fuel3.0-mira.2.noarch
openstack-nova-scheduler-2013.1.1.fuel3.0-mira.2.noarch
openstack-nova-conductor-2013.1.1.fuel3.0-mira.2.noarch
openstack-nova-objectstore-2013.1.1.fuel3.0-mira.2.noarch
openstack-nova-novncproxy-0.4-8.el6.noarch
openstack-nova-cert-2013.1.1.fuel3.0-mira.2.noarch
openstack-nova-api-2013.1.1.fuel3.0-mira.2.noarch

A topologia é atualmente um nó controlador e três nós de computação, todos em execução no moderno hardware de montagem em rack da Dell. Eu provisionei cerca de 25 VMs hoje antes dos problemas começarem.

Por algum motivo, ao criar / excluir VMs, um IP fixo ficou preso em algum estado indeterminado. Agora estou tendo problemas para criar novas VMs. O Openstack tenta usar IPs que acha que ainda fazem parte de uma VM antiga e não consegue criar a VM.

Minha rede fixa é 10.129.0.0/24.

Aqui está uma lista dos IPs problemáticos da linha de comando nova-manage:

# nova-manage fixed list | grep -E 'network|WARNING' -A 1

network             IP address      hostname        host
10.129.0.0/24       10.129.0.0      None            None
--
WARNING: fixed ip 10.129.0.20 allocated to missing instance
10.129.0.0/24       10.129.0.20     None            None
--
WARNING: fixed ip 10.129.0.23 allocated to missing instance
10.129.0.0/24       10.129.0.23     None            None
--
WARNING: fixed ip 10.129.0.25 allocated to missing instance
10.129.0.0/24       10.129.0.25     None            None
WARNING: fixed ip 10.129.0.26 allocated to missing instance
10.129.0.0/24       10.129.0.26     None            None
WARNING: fixed ip 10.129.0.27 allocated to missing instance
10.129.0.0/24       10.129.0.27     None            None
--
WARNING: fixed ip 10.129.0.30 allocated to missing instance
10.129.0.0/24       10.129.0.30     None            None
WARNING: fixed ip 10.129.0.31 allocated to missing instance
10.129.0.0/24       10.129.0.31     None            None
WARNING: fixed ip 10.129.0.32 allocated to missing instance
10.129.0.0/24       10.129.0.32     None            None
WARNING: fixed ip 10.129.0.33 allocated to missing instance
10.129.0.0/24       10.129.0.33     None            None
WARNING: fixed ip 10.129.0.34 allocated to missing instance
10.129.0.0/24       10.129.0.34     None            None
WARNING: fixed ip 10.129.0.35 allocated to missing instance
10.129.0.0/24       10.129.0.35     None            None
WARNING: fixed ip 10.129.0.36 allocated to missing instance
10.129.0.0/24       10.129.0.36     None            None
WARNING: fixed ip 10.129.0.37 allocated to missing instance
10.129.0.0/24       10.129.0.37     None            None
WARNING: fixed ip 10.129.0.38 allocated to missing instance
10.129.0.0/24       10.129.0.38     None            None
WARNING: fixed ip 10.129.0.39 allocated to missing instance
10.129.0.0/24       10.129.0.39     None            None
WARNING: fixed ip 10.129.0.40 allocated to missing instance
10.129.0.0/24       10.129.0.40     None            None
WARNING: fixed ip 10.129.0.41 allocated to missing instance
10.129.0.0/24       10.129.0.41     None            None
WARNING: fixed ip 10.129.0.42 allocated to missing instance
10.129.0.0/24       10.129.0.42     None            None
WARNING: fixed ip 10.129.0.43 allocated to missing instance
10.129.0.0/24       10.129.0.43     None            None
WARNING: fixed ip 10.129.0.44 allocated to missing instance
10.129.0.0/24       10.129.0.44     None            None
WARNING: fixed ip 10.129.0.45 allocated to missing instance
10.129.0.0/24       10.129.0.45     None            None
WARNING: fixed ip 10.129.0.46 allocated to missing instance
10.129.0.0/24       10.129.0.46     None            None
--
WARNING: fixed ip 10.129.0.48 allocated to missing instance
10.129.0.0/24       10.129.0.48     None            None
WARNING: fixed ip 10.129.0.49 allocated to missing instance
10.129.0.0/24       10.129.0.49     None            None
WARNING: fixed ip 10.129.0.50 allocated to missing instance
10.129.0.0/24       10.129.0.50     None            None
--
WARNING: fixed ip 10.129.0.52 allocated to missing instance
10.129.0.0/24       10.129.0.52     None            None
WARNING: fixed ip 10.129.0.53 allocated to missing instance
10.129.0.0/24       10.129.0.53     None            None
--
WARNING: fixed ip 10.129.0.55 allocated to missing instance
10.129.0.0/24       10.129.0.55     None            None
WARNING: fixed ip 10.129.0.56 allocated to missing instance
10.129.0.0/24       10.129.0.56     None            None
WARNING: fixed ip 10.129.0.57 allocated to missing instance
10.129.0.0/24       10.129.0.57     None            None
--
WARNING: fixed ip 10.129.0.59 allocated to missing instance
10.129.0.0/24       10.129.0.59     None            None
WARNING: fixed ip 10.129.0.60 allocated to missing instance
10.129.0.0/24       10.129.0.60     None            None
WARNING: fixed ip 10.129.0.61 allocated to missing instance
10.129.0.0/24       10.129.0.61     None            None

Eu sei que o IP 10.129.0.20 marca a instanciação da VM que iniciou os problemas. O problema se manifesta em uma falha na provisão de novas VMs.

[root@controller-20 ~]# nova --os-username demetri --os-tenant-name admin --os-auth-url http://localhost:5000/v2.0/ fixed-ip-get 10.129.0.20
OS Password: 
+-------------+---------------+----------+-----------------------+
| address     | cidr          | hostname | host                  |
+-------------+---------------+----------+-----------------------+
| 10.129.0.20 | 10.129.0.0/24 | devdbl9  | compute-21.domain.tld |
+-------------+---------------+----------+-----------------------+

Os comandos nova-manage não oferecem nenhuma ferramenta para recuperar esses IPs. Eu tentei reservar / unreserve mas isso não faz o truque. Além disso, esses IPs são representados em uma nova tabela mysql chamada fixed_ips. Exemplo:

+---------------------+---------------------+------------+-----+--------------+------------+-----------+--------+----------+----------------------+-----------------------+--------------------------------------+---------+
| created_at          | updated_at          | deleted_at | id  | address      | network_id | allocated | leased | reserved | virtual_interface_id | host                  | instance_uuid                        | deleted |
+---------------------+---------------------+------------+-----+--------------+------------+-----------+--------+----------+----------------------+-----------------------+--------------------------------------+---------+

| 2013-08-05 11:10:19 | 2013-10-16 11:32:20 | NULL       |  21 | 10.129.0.20  |          1 |         0 |      0 |        0 |                 NULL | NULL                  | df2e9214-78cf-49d3-b256-e35d48818f29 |       0 |

Para confirmar ainda mais o problema relacionado à rede IP fixa, a UI reflete um endereço IP incremental para a VM, digamos, começando em .21, indo para .22, indo para .23 antes de finalmente falhar com o estado "ERROR". / p>

Tudo isso dizendo, desde que isso começou, a maioria, mas nem todas as tentativas de invocar uma nova VM falham. Como posso resolver isso ainda mais e, por fim, como posso voltar a aprovisionar novas VMs sem problemas?

Obrigado.

    
por dmourati 16.10.2013 / 21:12

1 resposta

0

Consegui rastrear isso em uma instalação com bugs e defeitos do rabbitmq. Os logs do rabbitmq começaram a mostrar erros como:

=ERROR REPORT==== 30-Oct-2013::16:28:11 === connection <0.3821.221>, channel 1 - error: {amqp_error,not_found, "no exchange '75232ec16a7846f1979a93e9371040d0' in vhost '/'", 'basic.publish'}

Eu fiz o upgrade do pacote instalado, rabbitmq-server-2.8.7-2.el6.noarch.rpm, para o pacote hospedado no site rabbitmq, rabbitmq-server-3.2.0-1.noarch.rpm. Agora posso provisionar nós com sucesso!

    
por 01.11.2013 / 19:20