Como posso executar imagens do Rackspace localmente?

3

Como o título diz, eu regularmente faço o download das minhas imagens Rackspace para backup do meu VPS, no entanto eu estou querendo saber se é possível executá-las localmente no KVM (por exemplo) para executar testes na minha aplicação sem produção de afeto.

    
por edude05 30.05.2012 / 18:08

3 respostas

6

Quase um ano após a pergunta original, acho que tenho um bom procedimento para baixar as imagens do Rackspace e executá-las localmente, em Xen rodando no Ubuntu Precise.

Eu vou escrever os passos aqui, então há uma receita fácil para você seguir se quiser experimentar. Os passos funcionam para linux / Ubuntu domU's pelo menos, para outros YMMV.

(Essas instruções também são postadas em nosso blog em link )

  1. Instale o Ubuntu preciso (12.04 LTS) e siga os passos mencionados em link para configurar seu servidor como um Xen Dom0. Pelo menos certifique-se de ter um 12.04 em execução com xen e xe-tools instaladas, e um grupo de volumes LVM para usar em discos virtuais para seus DomUs.

  2. Vá para a página de servidores na nuvem rackspace ( manage.rackspacecloud.com -> Hosting -> Cloud servers ) e selecione a que você deseja executar localmente. Vá para a guia Images desse servidor. Crie uma imagem sob demanda. (Dependendo da hora em que o servidor foi criado pela primeira vez, a imagem sob demanda irá diretamente para os arquivos em nuvem ou armazenada com o servidor. Se a imagem estiver armazenada com o servidor, você precisará movê-la para arquivos em nuvem após a criação.)

  3. Verifique o nome da imagem nos arquivos da nuvem. Vá para Hosting -> Cloud Files e abra o contêiner cloudservers . Deve haver o arquivo com o nome myservername_YYYYMMDD_XXXXX_cloudserverZZZZZ.tar.gz.0 , e esse é o arquivo que você deseja.

  4. Faça o download da imagem no seu servidor. A maneira mais fácil de fazer isso no Ubuntu 12.04 é usar swift . Para instalar, apenas sudo apt-get install swift . Em seguida, execute-o como swift -A https://auth.api.rackspacecloud.com/v1.0 -U username -K API_key download cloudservers myservername_YYYYMMDD_XXXXX_cloudserverZZZZZ.tar.gz.0

  5. Quando o download estiver concluído, descompacte o arquivo baixado ( tar zxf myservername_YYYYMMDD_XXXXX_cloudserverZZZZZ.tar.gz.0 ). Quando terminar, você terá os seguintes arquivos:

    image
        -> image.vhd
        -> manifest.ovf
        -> snap.vhd
    

    image.vhd é o que nos interessa, pois contém sua partição raiz do servidor de nuvens.

  6. Para facilitar o trabalho com o arquivo de imagem, convertemo-lo em uma imagem de disco bruta. Isso é feito usando qemu-img (se não estiver disponível em seu sistema, faça sudo apt-get install qemu-utils ). Para converter o image.vhd em algo mais fácil de se trabalhar, faça qemu-img convert -p image.vhd disk.img

  7. Verifique a imagem do disco usando o fdisk. (NOTA: Eu só tenho trabalhado com imagens grandes de 20 GB a partir do rackspace, e minhas anotações são sobre elas. Se você usar outro tamanho, terá que ajustar algumas etapas de acordo!) fdisk -l disk.img deve dar algo como o seguinte:

    Disk sda1.img: 20.4 GB, 20400758784 bytes
    255 heads, 63 sectors/track, 2480 cylinders, total 39845232 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
       Device Boot      Start         End      Blocks   Id  System
    disk.img1   *        2048    39845887    19921920   83  Linux
    

    Observe o deslocamento inicial da primeira partição e o tamanho do setor.

  8. (Opcional) Verifique se a imagem do disco está ok. Para isso, montamos o loopback e simplesmente vemos que ele funciona.

    mkdir tmp
    mount -o loop,offset=1048576 disk.img tmp/
    ls -la tmp
    (The offset above is start for the first partition * sector size) 
    

    Isso lhe dá uma indicação de que o disco está ok. Então desmonte a imagem. umount tmp

  9. Crie volumes lógicos e de troca para seu novo DomU. lvcreate -L20G -n myservername-disk vg0 e lvcreate -L2G -Cy -n myservername-swap vg0 . Também inicialize o disco de troca, mkswap /dev/vg0/myservername-swap .

  10. Copie sua imagem de disco para o novo volume lógico. %código%. Os argumentos dd if=disk.img of=/dev/vg0/myservername-disk bs=4096 skip=256 e bs estão lá para obter o deslocamento correto para sua partição. Eu poderia ir com skip , é claro, mas aumentar o tamanho do bloco torna a cópia muito mais rápida. (E 512 * 2048 = 4096 * 256, portanto, não importa o deslocamento.)

  11. Verifique o sistema de arquivos em seu volume lógico (e corrija qualquer erro), redimensione o fs para caber no lv e verifique novamente.

    e2fsck -f /dev/vg0/myservername-disk
    resize2fs -p /dev/vg0/myservername-disk 
    e2fsck -f /dev/vg0/myservername-disk     
    
  12. Verifique as configurações do disco virtual na sua máquina virtual. Isso será necessário para o seu arquivo de configuração do DomU. Monte o volume lógico. %código%. Em seguida, verifique o arquivo fstab e (se existir) o arquivo grub bs=512 skip=2048 .

    more tmp/etc/fstab
    more tmp/boot/grub/menu.lst 
    

    Anote os nomes dos discos para root e swap!

  13. Atualize as configurações de rede do seu DomU. Com o disco virtual ainda montado, edite o arquivo mount /dev/vg0/myservername-disk tmp para algo que se adapte ao seu ambiente local. %código%. Eu geralmente mudo o meu de algo como:

    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
        address 184.106.XXX.YYY
        netmask 255.255.XXX.YYY
        gateway 184.106.XXX.YYY
        dns-nameservers 173.203.XXX.YYY 173.203.XXX.YYY
    
    auto eth1
    iface eth1 inet static
        address 10.179.XXX.YYY
        netmask 255.255.XXX.YYY
    up route add -net 10.176.XXX.YYY0 netmask 255.240.XXX.YYY gw 10.179.XXX.YYY
    down route del -net 10.176.XXX.YYY netmask 255.240.XXX.YYY gw 10.179.XXX.YYY
    up route add -net 10.191.XXX.YYY netmask 255.255.XXX.YYY gw 10.179.XXX.YYY
    down route del -net 10.191.XXX.YYY netmask 255.255.XXX.YYY gw 10.179.XXX.YYY
    

    (para o ambiente do rackspace) para:

    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    # The primary network interface
    auto eth0
    iface eth0 inet dhcp
    

    por apenas usar o dhcp e uma interface de rede virtual e o meu servidor local. Depois dessas mudanças, devemos terminar. Desmonte o disco virtual, menu.lst .

  14. Crie um arquivo de configuração de xen para sua DomU importada, interfaces , e coloque algo assim:

    name = "myservername"
    
    bootloader = '/usr/lib/xen-default/bin/pygrub'
    
    #uncomment the following if you want to boot into single user mode 
    #extra = " single"
    
    vcpus       = '2'
    memory      = '512'
    
    #
    #  Disk device(s). (Use the correct mappings from step 12.) 
    #
    disk        = [
                      'phy:/dev/vg0/myservername-disk,xvda1,w',
                      'phy:/dev/vg0/myservername-swap,xvda2,w',
                  ]
    #
    #  Networking
    #
    vif         = [ 'bridge=xenbr0' ]
    #
    #  Behaviour
    #
    on_poweroff = 'destroy'
    on_reboot   = 'restart'
    on_crash    = 'restart'
    

    Novamente, observe que você deve usar os mesmos nomes de dispositivo para os dispositivos virtuais que você descobriu na etapa 12.

  15. Agora tudo deve estar pronto! Para verificar, crie o domU e conecte um console executando vi tmp/etc/network/interfaces

por 29.05.2013 / 10:52
2

Sim, você pode executá-los, o hipervisor que eles usam é o Xen IIRC. Você também pode baixar e instalar o Openstack e ter sua própria nuvem privada.

    
por 30.05.2012 / 18:34
-1

Aqui está um bom link em "Executar o Rackspace Cloud Server localmente no Hyper-V"

link

    
por 30.05.2012 / 18:39