OpenStack: Posso converter um volume em uma imagem?

4

Estou tentando descobrir o caminho de menor resistência no OpenStack para ir de um CD ativo a uma imagem de disco que possa ser usada para implantar novas instâncias de convidado.

Se você inicializar uma instância do OpenStack a partir de um live CD, você pode instalar um SO no disco "efêmero" (que, neste caso, será /dev/vda ) ...

... isso é ótimo, mas não há como criar uma imagem desse disco; o comando image-create tentará (e falhará) capturar o próprio live CD (porque este é o volume de inicialização).

Você pode criar e anexar um novo volume (usando volume-create e volume-attach ) e, em seguida, instalar o sistema operacional nele, mas não parece haver nenhuma maneira de converter esse volume em uma imagem hospedada uso por outras instâncias.

Como administrador, posso obviamente fazer login no host de armazenamento e criar uma nova imagem de relance diretamente do dispositivo de bloco de volume, mas isso não é uma avenida disponível para qualquer pessoa que interaja por meio da API ou GUI da Web.

Existem outras opções disponíveis?

    
por larsks 16.08.2012 / 17:10

4 respostas

5

No Icehouse e mais tarde você pode converter o volume do Cinder para a imagem do Glance com o comando upload-to-image:

cinder upload-to-image <volume> <image-name>
    
por 28.01.2015 / 15:25
0

Eu construí imagens com sucesso para o openstack usando o KVM na minha máquina linux local usando um arquivo de imagem de disco local (raw ou qcow2), convertendo o arquivo de imagem em um qcow2 compactado e carreguei isso com relance.

Algumas dicas:

  1. você precisará do cloud-init ou de um script /etc/rc.local ou similar para buscar os metadados da instância (chaves ssh, endereço IP, nome do host, userdata, etc) de http://169.254.169.254/ e configurar a VM com ele.

    O cloud-init funciona melhor no Ubuntu, mas foi portado para o Debian e eu vi uma porta para RH.

  2. Limpando a imagem (apagando logs e histórico de shell, desativando senhas, excluindo /etc/udev/rules.d/70-persistent-net.rules e assim por diante) e preenchendo com zeros a imagem do disco antes fazer um qcow2 comprimido para fazer upload é uma boa ideia. Você pode facilmente reduzir a imagem de uma VM com um disco de 10 GB para 300 a 500 MB, o que é mais rápido para carregar e mais rápido para copiar quando a OpenStack inicia uma instância.

A maneira mais simples de zerar o disco é algo como 'dd if = / dev / zero de = / root / junk; rm -f / root / junk '. Alternativamente, você pode desligar a VM, montar o loopback (você pode usar o qemu-nbd se a imagem já for um qcow2) e, em seguida, zerofill-lo. Se o sistema de arquivos for ext2 / 3/4, você pode usar uma ferramenta chamada zerofree para zerofill ( deve ser desmontado ou montado RO). Se for algum outro fs, você pode usar o sfill de secure-delete (a home page do secure-delete desapareceu).

BTW, mesmo que a sua imagem 'fonte' já esteja comprimida qcow2, ainda vale a pena 'convertê-la' em um novo qcow2 comprimido antes de fazer o upload. Isso elimina os dados antigos deixados para trás quando um arquivo é copiado na gravação.

    
por 25.08.2012 / 05:17
0

Maneira simples de converter volume de cinzas em imagem de visualização converter partição LVM para o formato qcow2 com qemu-img.

Exemplo:

sudo qemu-img convert -c -f raw -O qcow2 /dev/stack-volumes/volume-6e4eb1d5-71fa-45a1-9178-ac6611351404 test.img

O próximo passo adiciona uma imagem para ver:

glance image-create --name test_converted --disk-format qcow2 --container-format bare < test.img
    
por 24.02.2013 / 01:05
0

Esta é uma questão antiga, mas o que você quer fazer é usar o kvm para criar uma imagem de disco bruta usando o arquivo cdrom iso e um volume vazio. Então, você pode carregar o disco bruto para ver e usá-lo para inicializar outros.

É assim que você faz uma base Debian, Ubuntu ou outro host linux, por exemplo.

    
por 05.02.2014 / 05:56