Contêiner LxD na unidade externa não iniciando em outro host

0

Eu tenho sistemas operacionais idênticos (Ubuntu 16.04) rodando em 2 hosts, com atualizações de SO idênticas.

Eu também tenho o serviço LxD idêntico instalado (via sudo apt-get install lxd ) e configurado (via sudo lxd init ) em ambos os hosts.

Agora, para economia de espaço, portabilidade / continuidade de trabalho (porque esses dois hosts estão em locais físicos diferentes, atrás de seus próprios firewalls que eu não controle), eu pensei, por que não instalar todos minhas imagens e containers LxD em uma unidade externa que eu poderia conectar em um host ou outro, de forma intercambiável.

Para isso, instalei as imagens desejadas, configurei os contêineres desejados no Host A e copiei as pastas /var/lib/lxd , /var/log/lxd e /var/cache/lxd (e seu conteúdo) para a unidade externa.

Quando eu conectei o drive externo no Host B, eu pude realmente ver minhas listas de container de imagens e (paradas) do Host A bem. Eu poderia até mesmo lançar novos containers no Host B de imagens originais do Host A.

Mas quando no Host B eu tentei iniciar um contêiner, foo , originalmente iniciado e interrompido no Host A, recebi o seguinte erro:

$ lxc start foo
error: Error calling 'lxd forkstart foo /var/lib/lxd/containers /var/log/lxd/foo/lxc.conf': err='exit status 1'
  lxc 20161217084040.956 ERROR lxc_start - start.c:lxc_spawn:1162 - failed to set up id mapping
  lxc 20161217084041.013 ERROR lxc_start - start.c:__lxc_start:1354 - failed to spawn 'foo'
  lxc 20161217084041.564 ERROR lxc_conf - conf.c:run_buffer:347 - Script exited with status 1
  lxc 20161217084041.564 ERROR lxc_start - start.c:lxc_fini:555 - failed to run post-stop hooks for container 'foo'.
  lxc 20161217084041.566 ERROR lxc_conf - conf.c:userns_exec_1:4334 - Error setting up child mappings
  lxc 20161217084041.566 ERROR lxc_cgfsng - cgroups/cgfsng.c:recursive_destroy:983 - Error destroying /sys/fs/cgroup/systemd//lxc/foo
  lxc 20161217084041.568 ERROR lxc_conf - conf.c:userns_exec_1:4334 - Error setting up child mappings
  lxc 20161217084041.568 ERROR lxc_cgfsng - cgroups/cgfsng.c:recursive_destroy:983 - Error destroying /sys/fs/cgroup/pids//lxc/foo
  lxc 20161217084041.569 ERROR lxc_conf - conf.c:userns_exec_1:4334 - Error setting up child mappings
  lxc 20161217084041.569 ERROR lxc_cgfsng - cgroups/cgfsng.c:recursive_destroy:983 - Error destroying /sys/fs/cgroup/net_cls//lxc/foo
  lxc 20161217084041.571 ERROR lxc_conf - conf.c:userns_exec_1:4334 - Error setting up child mappings
  lxc 20161217084041.571 ERROR lxc_cgfsng - cgroups/cgfsng.c:recursive_destroy:983 - Error destroying /sys/fs/cgroup/hugetlb//lxc/foo
  lxc 20161217084041.573 ERROR lxc_conf - conf.c:userns_exec_1:4334 - Error setting up child mappings
  lxc 20161217084041.573 ERROR lxc_cgfsng - cgroups/cgfsng.c:recursive_destroy:983 - Error destroying /sys/fs/cgroup/cpu//lxc/foo
  lxc 20161217084041.575 ERROR lxc_conf - conf.c:userns_exec_1:4334 - Error setting up child mappings
  lxc 20161217084041.575 ERROR lxc_cgfsng - cgroups/cgfsng.c:recursive_destroy:983 - Error destroying /sys/fs/cgroup/freezer//lxc/foo
  lxc 20161217084041.576 ERROR lxc_conf - conf.c:userns_exec_1:4334 - Error setting up child mappings
  lxc 20161217084041.576 ERROR lxc_cgfsng - cgroups/cgfsng.c:recursive_destroy:983 - Error destroying /sys/fs/cgroup/cpuset//lxc/foo
  lxc 20161217084041.578 ERROR lxc_conf - conf.c:userns_exec_1:4334 - Error setting up child mappings
  lxc 20161217084041.578 ERROR lxc_cgfsng - cgroups/cgfsng.c:recursive_destroy:983 - Error destroying /sys/fs/cgroup/blkio//lxc/foo
  lxc 20161217084041.580 ERROR lxc_conf - conf.c:userns_exec_1:4334 - Error setting up child mappings
  lxc 20161217084041.580 ERROR lxc_cgfsng - cgroups/cgfsng.c:recursive_destroy:983 - Error destroying /sys/fs/cgroup/devices//lxc/foo
  lxc 20161217084041.581 ERROR lxc_conf - conf.c:userns_exec_1:4334 - Error setting up child mappings
  lxc 20161217084041.581 ERROR lxc_cgfsng - cgroups/cgfsng.c:recursive_destroy:983 - Error destroying /sys/fs/cgroup/memory//lxc/foo
  lxc 20161217084041.583 ERROR lxc_conf - conf.c:userns_exec_1:4334 - Error setting up child mappings
  lxc 20161217084041.583 ERROR lxc_cgfsng - cgroups/cgfsng.c:recursive_destroy:983 - Error destroying /sys/fs/cgroup/perf_event//lxc/foo

Try 'lxc info --show-log foo' for more info

Perguntas:

Existem algumas informações específicas de hardware do host em que o contêiner é originalmente lançado codificado na cópia serializada em disco do contêiner (como RAM, endereço MAC), tornando impossível iniciar o contêiner em outro host com um pouco especificações diferentes de hardware?

O que mais posso fazer pelo meu caso de uso de contêineres portáteis por meio de um disco rígido externo?

    
por Harry 17.12.2016 / 05:13

1 resposta

1

Os números para vários nomes de login em /etc/subuid e /etc/subgid em meus 2 hosts não estavam correspondendo, por isso a falha de tempo de execução ao iniciar o contêiner no host não foi originalmente criada (ou lançada).

Depois que eu criei esses arquivos nos dois hosts de maneira idêntica, consegui iniciar os contêineres muito bem.

Nota para os desenvolvedores do LxD: Uma mensagem de erro de alto nível e mais fácil de usar do LxD, com dicas para as possíveis causas, seria uma adição bem-vinda a este excelente software!

    
por 24.12.2016 / 13:54