Como importar contêineres LXC de um zpool lxc do ZFS usado anteriormente?

0

Estou usando todas as configurações padrão do lxc com o ZFS como backstore.

O que significa que eu tenho um zpool lxc e criei contêineres com lxc-create -B zfs -n ubuntu-base -t ubuntu

Agora, a raiz fs ficou sem espaço porque eu estava testando o lxc com o ZFS e um zpool criado a partir de um arquivo.

Anexei uma unidade virtual à VM /dev/sdb , exportei o zx lxc existente e criei um novo zpool lxc com /dev/sdb

Em seguida, importou o antigo lpool zx como lxc-old Em seguida, usei zfs send de todos os conjuntos de dados de lxc-old a lxc , destruído lxc-old

Agora, lxc-ls -f não mostra mais nenhum contêiner existente, mas o zfs mostra os conjuntos de dados

root@lxc:~# lxc-ls -f root@lxc:~#

root@lxc:~# zfs list NAME USED AVAIL REFER MOUNTPOINT lxc 5.40G 45.1G 19K /lxc lxc/clamav 679M 45.1G 870M /var/lib/lxc/clamav/rootfs lxc/hadoop 541M 45.1G 710M /var/lib/lxc/hadoop/rootfs lxc/hulk 1.11G 45.1G 1.26G /var/lib/lxc/hulk/rootfs lxc/mongodb 1.03G 45.1G 1.16G /var/lib/lxc/mongodb/rootfs lxc/mongodb2 1.03G 45.1G 1.16G /var/lib/lxc/mongodb/rootfs lxc/python 48.2M 45.1G 185M /var/lib/lxc/python/rootfs lxc/slamdata 427M 45.1G 576M /var/lib/lxc/slamdata/rootfs lxc/splunk 172M 45.1G 324M /var/lib/lxc/splunk/rootfs lxc/ubuntu-base 229M 45.1G 210M /var/lib/lxc/ubuntu-base/rootfs lxc/ubuntu-base@python 1K - 151M - lxc/ubuntu-base@mongodb 1K - 151M - lxc/ubuntu-base@slamdata 1K - 151M - lxc/ubuntu-base@hulk 1K - 151M - lxc/ubuntu-base@splunk 1K - 151M - lxc/ubuntu-base@hadoop 17.0M - 187M - lxc/ubuntu-base@new 1K - 210M - lxc/ubuntu-base@clamav 1K - 210M -

Não sei exatamente como obter o lxc para ver os contêineres existentes no novo zpool lxc

    
por naisanza 31.03.2016 / 01:24

2 respostas

1

O motivo pelo qual "perdi" todos os meus contêineres era o que eu suspeitava anteriormente, faltando o arquivo config .

Quando o ZFS é usado como backstore e um novo contêiner é criado, como /var/lib/lxc/clamav/rootfs , apenas o diretório rootfs está contido no backstore (ZFS)

O arquivo config é armazenado no caminho /var/lib/lxc/<container>/config , que não está armazenado no backstore.

A solução é criar um conjunto de dados com um ponto de montagem de /var/lib/lxc/

root@lxc:~# zfs list NAME USED AVAIL REFER MOUNTPOINT lxc 11.4G 37.5G 526M /lxc lxc/_configs 44K 37.5G 44K /var/lib/lxc/ lxc/_share 252K 37.5G 252K /usr/share/lxc/

Problema resolvido.

    
por naisanza 21.04.2016 / 09:51
0

Estou dando uma espiada no escuro, mas tente o seguinte. Percebi que no seu zfs list você tem o seguinte:

NAME                       USED  AVAIL  REFER  MOUNTPOINT
lxc                       5.40G  45.1G    19K  /lxc
...

Talvez seu novo conjunto de dados lxc precise ser montado em /var/lib/lxc .

zfs set mountpoint=/var/lib/lxc lxc
    
por fideli 19.04.2016 / 02:36