recuperação de Openstack Mass / Juju

5

Eu criei o Openstack baseado no MAAS usando juju. Eu criei instâncias, projetos etc. Eu fiz backups de arquivos de configuração de banco de dados e openstack. Estou tentando a recuperação de teste destruindo e removendo o keystone do serviço, apenas para ver se ele era recuperável. Eu também solto o banco de dados de keystone. (É feito o backup) Então, com juju i destruir o keystone antigo que foi quebrado e implantar um novo keystone. Isso realmente me faz funcionar novamente, exceto pelo fato de que todos os projetos (inquilinos) desapareceram e as instâncias não pertencem a nenhum projeto. Então eu restaurar o banco de dados de keystone, mas sem os tokens, mas quando eu faço isso eu recebo um erro no horizonte dizendo-me que o keystone não autorizará o cliente.

Qual seria a melhor maneira de restaurar um nó de keystone quebrado ...? Parece que quando você refaz o keystone com o juju você obtém novos tokens. pode juju de alguma forma injetar os antigos no novo keystone?

    
por Julius 01.05.2013 / 14:21

1 resposta

1

O problema que você está enfrentando é que o charme de keystone armazena algumas informações fora do banco de dados de keystone; especificamente nomes de usuários e senhas para serviços são armazenados localmente no disco, de modo que, quando unidades de serviço adicionais relacionadas ao keystone, o serviço de distorção possa distribuir a senha correta para o usuário solicitado ao serviço relacionado.

Você também encontrará problemas se não tiver fornecido configuração de senha de administrador e token de administrador ao implantar o keystone; as unidades de serviço keystone irão gerá-las aleatoriamente se não forem explicitamente configuradas - assim, elas serão alteradas quando você remover e, em seguida, adicionar uma nova unidade de serviço keystone.

O que você obtém é um conjunto de senhas com hash no banco de dados (criado pela primeira unidade de serviço) que não corresponde às senhas geradas no disco na segunda unidade de serviço de keystone.

O ideal seria consertar isso com algum tipo de recurso genérico de armazenamento de objetos em juju (pense em colocar objeto / objeto-get), mas isso não é um recurso suportado.

Todo o armazenamento em disco de senhas e tokens ocorre em / var / lib / keystone; talvez você possa selecioná-los como parte de um backup da própria unidade de serviço keystone; no entanto, você atingirá as corridas quando adicionar a nova unidade de serviço, pois as relações de serviço serão acionadas antes de você poder restaurar esses arquivos.

Como um dos mantenedores de charlatões do OpenStack, vou pensar um pouco mais e ver se conseguimos algo mais elegante.

    
por jamespage 06.05.2013 / 20:18