___ answer684722 ___

Desde que postei essa pergunta, fiz esse processo meia dúzia de vezes sem muita dificuldade. Eu pensei em adicionar algumas dicas do que aprendi na esperança de que alguém as encontre úteis:

Tudo o que você precisa fazer é copiar o sistema de arquivos raiz no diretório rootfs do contêiner (/ var / lib / lxc / YOUR_CONTAINER / rootfs / para armazenamento de backup baseado em disco). Excluir / proc, / dev, / sys e / tmp.

Depois:

  • Tornar o fstab vazio no contêiner
  • Garanta um conjunto mínimo de arquivos de dispositivos em / dev. Eu copio os arquivos do dispositivo de um contêiner de amostra que eu criei usando um modelo.
  • Se você vai usar o lxcbr0 para redes, defina a interface de rede para DHCP em / etc / network / interfaces
  • Se você estiver indo para uma interface física, defina a interface para estática ou manual. Se manual, coloque o endereço IP na configuração do contêiner. Não defina para DHCP.
  • Certifique-se de definir um hwaddr na configuração do contêiner. Se você não fizer isso, o LXC irá gerar aleatoriamente um quando o contêiner for carregado, causando muitas entradas ARP antigas em sua rede.
  • leia / usr / share / lxc / templates / lxc-ubuntu. Preste atenção especial à função configure_ubuntu (). Você provavelmente deseja executar a maioria desses comandos no seu contêiner.

Depois que o contêiner estiver ativo, percorra todos os processos no pstree, removendo aqueles que não são necessários em contêineres (udevd, ntpdate, mdadm, etc). Sinta-se à vontade para remover todos os pacotes do kernel.

Aqui está uma configuração de contêiner de amostra para fins de conclusão. Essa configuração é para um host confiável. O contêiner nessa instância é preciso.

%pre%

Se o sistema operacional host for preciso, você também desejará isso em sua configuração. O arquivo comum não estará disponível.

%pre%     
___ qstntxt ___

Existe uma maneira padrão (ou ferramentas padrão) para migrar máquinas físicas para contêineres LXC para o Ubuntu? Eu estou trabalhando com 12.04.5 máquinas. Eu me deparei com

Mas é especificamente para o debian. O procedimento parece ser

  1. copiar sistema de arquivos raiz
  2. excluir arquivos desnecessários
  3. configure o contêiner

Parece um processo fácil, mas eu sou totalmente novo no LXC e espero algo menos propenso a erros. Outra ideia que tive foi criar um contêiner do Ubuntu a partir de um modelo e depois copiar sobre esse sistema de arquivos. Eu aposto que muitos / etc seriam erroneamente derrotados.

    
___

0

Existe uma maneira padrão (ou ferramentas padrão) para migrar máquinas físicas para contêineres LXC para o Ubuntu? Eu estou trabalhando com 12.04.5 máquinas. Eu me deparei com

Mas é especificamente para o debian. O procedimento parece ser

  1. copiar sistema de arquivos raiz
  2. excluir arquivos desnecessários
  3. configure o contêiner

Parece um processo fácil, mas eu sou totalmente novo no LXC e espero algo menos propenso a erros. Outra ideia que tive foi criar um contêiner do Ubuntu a partir de um modelo e depois copiar sobre esse sistema de arquivos. Eu aposto que muitos / etc seriam erroneamente derrotados.

    
por Jeremy 02.10.2015 / 00:19

1 resposta

1

Desde que postei essa pergunta, fiz esse processo meia dúzia de vezes sem muita dificuldade. Eu pensei em adicionar algumas dicas do que aprendi na esperança de que alguém as encontre úteis:

Tudo o que você precisa fazer é copiar o sistema de arquivos raiz no diretório rootfs do contêiner (/ var / lib / lxc / YOUR_CONTAINER / rootfs / para armazenamento de backup baseado em disco). Excluir / proc, / dev, / sys e / tmp.

Depois:

  • Tornar o fstab vazio no contêiner
  • Garanta um conjunto mínimo de arquivos de dispositivos em / dev. Eu copio os arquivos do dispositivo de um contêiner de amostra que eu criei usando um modelo.
  • Se você vai usar o lxcbr0 para redes, defina a interface de rede para DHCP em / etc / network / interfaces
  • Se você estiver indo para uma interface física, defina a interface para estática ou manual. Se manual, coloque o endereço IP na configuração do contêiner. Não defina para DHCP.
  • Certifique-se de definir um hwaddr na configuração do contêiner. Se você não fizer isso, o LXC irá gerar aleatoriamente um quando o contêiner for carregado, causando muitas entradas ARP antigas em sua rede.
  • leia / usr / share / lxc / templates / lxc-ubuntu. Preste atenção especial à função configure_ubuntu (). Você provavelmente deseja executar a maioria desses comandos no seu contêiner.

Depois que o contêiner estiver ativo, percorra todos os processos no pstree, removendo aqueles que não são necessários em contêineres (udevd, ntpdate, mdadm, etc). Sinta-se à vontade para remover todos os pacotes do kernel.

Aqui está uma configuração de contêiner de amostra para fins de conclusão. Essa configuração é para um host confiável. O contêiner nessa instância é preciso.

lxc.include = /usr/share/lxc/config/ubuntu.common.conf
lxc.start.auto=1
lxc.rootfs = /var/lib/lxc/myhost/rootfs
lxc.mount = /var/lib/lxc/myhost/fstab
lxc.utsname = myhost
lxc.arch = amd64

# Network configuration
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.ipv4 = 172.27.3.13/24
lxc.network.ipv4 = 172.27.3.15/24
lxc.network.ipv4.gateway = 172.27.3.1
lxc.network.hwaddr = 52:12:a1:a5:d3:23

Se o sistema operacional host for preciso, você também desejará isso em sua configuração. O arquivo comum não estará disponível.

lxc.devttydir = lxc
lxc.tty = 4
lxc.pts = 1024
lxc.cap.drop = sys_module mac_admin
lxc.pivotdir = lxc_putold
    
por Jeremy 12.10.2015 / 21:37

Tags