Criando grupo de volume no charme de Nova-volume Juju

1

É necessário configurar um grupo de volumes antes de implantar o encanto Juju da nova-volume? Eu estou tentando instalar o Openstack localmente no meu Ubuntu VM em execução no modo local (lxc) e obter um erro que o volume físico não existe ou o loopback não é encontrado. Olhando para os ganchos, não consigo ver se ele tenta criar o grupo de volumes de loopback.

A mensagem de erro de loopback do log de depuração juju é mostrada aqui:

2012-05-24 11:30:53,876 unit:nova-volume/4: hook.output INFO: Processing triggers for initramfs-tools ...
2012-05-24 11:30:56,306 unit:nova-volume/4: hook.output ERROR: losetup: Could not find any loop device. Maybe this kernel does not know
       about the loop device? (If so, recompile or 'modprobe loop'.)
2012-05-24 11:30:56,307 unit:nova-volume/4: hook.output ERROR: 
2012-05-24 11:30:56,311 unit:nova-volume/4: hook.output ERROR: failed to setup loop device for /var/lib/nova-volumes/my-vol.img
2012-05-24 11:30:56,524 unit:nova-volume/4: unit.hook.api INFO: ERROR: failed to get device for /var/lib/nova-volumes/my-vol.img|2G
2012-05-24 11:30:56,526 unit:nova-volume/4: hook.output INFO: {}
2012-05-24 11:30:56,547 unit:nova-volume/4: hook.output DEBUG: hook install exited, exit code Traceback (most recent call last):
Failure: juju.errors.CharmInvocationError: Error processing '/var/lib/juju/units/nova-volume-4/charm/hooks/install': exit code 1.
.
2012-05-24 11:30:56,548 unit:nova-volume/4: hook.executor DEBUG: Hook error: /var/lib/juju/units/nova-volume-4/charm/hooks/install Error processing '/var/lib/juju/units/nova-volume-4/charm/hooks/install': exit code 1.
2012-05-24 11:30:56,552 unit:nova-volume/4: statemachine DEBUG: unitworkflowstate:  executing error transition error_install, Error processing '/var/lib/juju/units/nova-volume-4/charm/hooks/install': exit code 1.
2012-05-24 11:30:56,577 unit:nova-volume/4: statemachine DEBUG: unitworkflowstate: transition error_install (None -> install_error) {}
2012-05-24 11:30:56,587 unit:nova-volume/4: statemachine DEBUG: unitworkflowstate: transition complete error_install (state install_error) {}
2012-05-24 11:30:56,605 unit:nova-volume/4: juju.agents.unit DEBUG: Configuration Changed
2012-05-24 11:30:56,606 unit:nova-volume/4: juju.agents.unit DEBUG: Configuration updated on service in a non-started state
2012-05-24 11:30:56,611 unit:nova-volume/4: juju.agents.unit INFO: No upgrade flag set.
    
por Matt McClean 24.05.2012 / 09:51

1 resposta

2

Fazer isso acontecer no LXC é um pouco complicado. Primeiro, você precisa garantir que o host suporte loopback e LVM e tenha os módulos apropriados carregados. Em seguida, algumas etapas manuais precisam ser concluídas:

Primeiro, conceda acesso ao contêiner aos vários nós de dispositivos que o losetup e o LVM precisam, especificamente / dev / loop [0-9], / dev / loop-control e / dev / mapper / control.

Em /usr/share/pyshared/juju/lib/lxc/data/lxc.conf, adicione o seguinte:

lxc.cgroup.devices.allow = c 10:236 rwm
lxc.cgroup.devices.allow = c 10:237 rwm
lxc.cgroup.devices.allow = b 7:* rwm

Em seguida, você também precisará criar manualmente o nó do dispositivo de controle de loop de alguma forma dentro do contêiner. Se você já tiver implantado uma unidade e o Juju tiver um modelo para o ambiente, você pode fazer isso no diretório / dev desse modelo, por exemplo:

sudo mknod /var/lib/lxc/adam-sample-0-template/rootfs/dev/loop-control c 10 237

O nó do dispositivo / dev / mapper / controller será criado quando o LVM for instalado.

Como alternativa, você pode modificar o encanto do volume nova para fazer isso automaticamente durante o gancho de instalação. Infelizmente, não conheço uma maneira de o Juju ou o LXC pré-autorizar e preencher o diretório / dev de novos contêineres com dispositivos exigidos pelo encanto. Até que esses tipos de recursos ocorram, o charme da nova-volume (e provavelmente a nova-computing também) provavelmente requererá um trabalho desajeitado como esse para garantir que eles funcionem corretamente em contêineres LXC.

    
por adam_g 07.06.2012 / 21:53