Movendo o armazenamento de apoio do contêiner LXC

3

Eu tenho um monte de contêineres LXC rodando em uma máquina. Todos eles têm seus rootfs no local padrão /var/lib/lxc/*/rootfs . Este diretório vive em uma partição bastante pequena no host. Eu tenho uma partição muito maior montada em /home .

Existe uma opção para mover o armazenamento de apoio para /home ? De preferência por contêiner.

Eu sei que poderia ter feito isso antes Eu tinha alguns contêineres em execução ( lxc-create -P PATH ). Mas agora eles estão em alta e não quero perdê-los.

    
por harm 11.03.2015 / 14:53

4 respostas

3

rootfs é a opção de configuração. Se o contêiner estiver parado, você poderá mover o diretório de apoio para onde desejar e especificar isso no arquivo de configuração:

lxc.rootfs = /home/utsname

Isso provavelmente é melhor do que usar um link simbólico.

O LXC também permite o backup de arquivos. Você pode usar dispositivos de bloco e imagens brutas.

Fonte: link

    
por 21.03.2015 / 15:21
2

Eu pessoalmente prefiro uma abordagem diferente. Dado que a parte OS dos containers é relativamente pequena (max. 2GB um servidor jessie debian com muitos serviços rodando, cerca de 3Gb trabalhando uma imagem Ubuntu com desktop remoto), deixo o SO residir em / var / lib / lxc e uso uma partição separada para os dados do contêiner.

Isso é feito simplesmente modificando o arquivo / var / lib / lxc / container / fstab:

/mnt/data/container-data/ /var/lib/lxc/container/rootfs/home/        none    bind    0       0

Crie as pastas (fonte e destino) no host principal, pare seu contêiner, mova seus dados e reinicie o contêiner!

No caso acima, ambos os diretórios residem em uma partição / mnt / data no host lxc, no meu caso um disco grande.

Existem muitas vantagens associadas a este método: dividir o sistema operacional e os dados permitem que você copie e inicie rapidamente contêineres de teste quando tiver que realizar tarefas perigosas (ex: "aptitude -f dist-upgrade"):

  • pare o container (as partições no fstab serão removidas do diretório / var / lib / lxc / container / rootfs /):

    lxc-stop -n container
    
  • copie o contêiner:

    mkdir /var/lib/lxc/containertest
    rsync -Pavv /var/lib/lxc/container/ /var/lib/lxc/containertest/
    

Lembre-se de modificar adequadamente / var / lib / lxc / containertest / config e / var / lib / lxc / containertest / fstab

  • inicie o novo containertest, trabalhe com ele e veja os resultados!

    lxc-start -n containertest
    

Além disso, respondendo às suas preocupações, você não deve se preocupar em não ter feito isso antes : uma das grandes vantagens do lxc é sua versatilidade!

    
por 26.08.2015 / 12:55
1

Me chame de preguiçoso - mas por que mexer com os arquivos de configuração se você pudesse (ligar) montar seu diretório grande em / var / lib / lxc?

Simplesmente desligue seus contêineres, mova as coisas para / home / lxc / whatever e ligue-as de volta - pronto!

    
por 05.02.2016 / 08:23
1

Melhor alterar o caminho de todos os novos contêineres por padrão:

# vim /etc/lxc/lxc.conf
lxc.lxcpath=/media/other/programs/OS/containers/

Todos os contêineres estarão no diretório /media/other/programs/OS/containers/

Todos os contêineres antigos são movidos por mv e editar configurações para eles, como esse link

    
por 19.10.2016 / 20:43

Tags