Copiando um servidor físico em execução para o Virtual Box

7

Eu tenho um servidor rodando o Ubuntu 10.04. Como quero testar alguns trabalhos de manutenção, como a atualização para o 12.04, pensei em criar uma cópia da VM do servidor usando o Virtual Box. Eu não tenho acesso físico ao servidor, então considerei as seguintes opções: eu faço

  • dd 'de todo o disco rígido para uma imagem não processada no meu pc e, em seguida, criando um VDI fora da imagem dd bruta.
  • Instalando a mesma versão do ubuntu, instale a atualização e monte o VDI localmente e rincronize o sistema de arquivos do servidor para o VDI montado, criando uma cópia lógica do servidor.

A solução de rsync é um pouco mais complicada, mas parece economizar largura de banda e permite que eu crie uma "cópia" do servidor com configuração ligeiramente diferente (por exemplo, disco menor).

Qual você acha que é a melhor maneira de fazer isso? Um dos métodos acima? Diferente?

    
por Guy 28.12.2012 / 13:09

2 respostas

3

A utilização de rsync revelou-se mais problemática do que eu pensava inicialmente:

  1. O comando precisa ser executado como root na máquina remota.
  2. Eu não não habilitei o login raiz remoto.
  3. O sistema de arquivos é baseado no LVM e foi um incômodo montar a partição raiz real da VM dentro do LVM no arquivo VDI.

Por essas razões, acabei com um processo de duas etapas:

  1. Copie todos os arquivos da máquina remota para a máquina host local.
  2. Copie os arquivos para o convidado.

Eu finalmente fui com o básico tar , embora eu pudesse ter usado rdiffdir fornecido por duplicity para economizar alguma largura de banda.

Eu comecei configurando um túnel SSH que eu poderia usar para encapsular os arquivos tar para que eu não tivesse que gravar o arquivo no sistema de arquivos que eu estava copiando.

local$ ssh user@remote -R 3000:localhost:3000
loacl$ nc -l 3000 > filesystem.tar.gz
remote$ sudo tar -vcz / --exclude={/dev,/proc,/sys,/tmp} | nc localhost 3000

Isso criou um arquivo tar de todo o sistema de arquivos em minha máquina host local. O próximo passo foi descompactá-lo no convidado:

guest$ cd /
guest$ nc -l 3000 | sudo tar -xvz
local$ nc guest_ip 3000 < filesystem.tar.gz 

No meu caso /etc/fstab referenciou sistemas de arquivos por seus UUIDs, então tive que atualizá-lo com a saída de guest$ sudo blkid . Eu também tive que atualizar as configurações de rede em /etc/udev/rules.d/70-persistent-net.rules (nomes de interface) e /etc/network/interfaces (endereços IP).

    
por Guy 29.12.2012 / 20:33
2

É verdade que a abordagem dd ou a criação de uma imagem de outra forma do servidor provavelmente terá problemas de largura de banda caso você tenha acesso remoto apenas ao servidor.

Instalar o servidor Ubuntu 10.04 em uma VDI apenas para poder copiar uma instalação existente também não é realmente necessário (mas pode economizar alguma largura de banda).

Deixe-me sugerir a seguinte abordagem:

  • Crie uma máquina virtual com um disco rígido virtual vazio de tamanho desejado.
  • Inicialize a VM com qualquer sistema live (Ubuntu) de um arquivo .iso.
  • Particione o disco rígido (inclua o sinalizador de inicialização e formate com o mesmo sistema de arquivos que seu servidor antigo possui).
  • Monte esta partição no seu ambiente ao vivo.
  • Copie todos os arquivos do servidor antigo para a partição ainda vazia da sua VM

    rsync -avze ssh user@host:/ /<mountpoint>
    
  • Instalar o Grub resp. Grub2 para o MBR da unidade VDI agora preenchida.

  • Reinicialize.
por Takkat 28.12.2012 / 14:18