Nosso contêiner de produção travou porque seu pool de armazenamento LXC está sem espaço.
Aqui está dh -h
de dentro do contêiner:
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 82G 78G 2.0G 98% /
Aqui a mesma montagem do sistema host:
/dev/loop0 82G 78G 2.0G 98% /var/lib/lxd/storage-pools/default
Lembro-me de que, um ano atrás, quando estava configurando isso, ele me perguntou se 80 GB para algo que parecia desconhecido seria suficiente e, como não dizia "tamanho do disco do contêiner" e dizia outra coisa, pensei que era melhor confiar no padrão opção. Agora eu sei que é o limite de espaço em disco. Como posso aumentar esse limite agora?
No momento, apenas limpei algum espaço com urgência. A máquina host realmente tem terabytes de espaço em disco.
PS Desculpe por reclamar, mas a documentação do LXC é uma das piores que já vi. Simplesmente não faz sentido para um usuário como eu.
PPS Esqueci que realmente uso LXD, doh. O fato de eu digitar lxc
para fazer qualquer coisa me confundia.
ATUALIZAÇÃO: Intuitivamente, percebi que este comando poderia redimensionar o pool de armazenamento:
# lxc storage set default size 200GB
Mas falha com:
Error: The [size] properties cannot be changed for "btrfs" storage pools
Alguma ideia?
A partir da versão 3.17, o LXD não possui uma maneira integrada de redimensionar os pools de armazenamento com backup de arquivo Btrfs, mas aqui está uma solução alternativa que acabei de criar:
Crescer Online
One-Liner
Conforme desejado, substitua
default
pelo nome do volume de armazenamento e100G
pelo novo tamanho desejado:Explicação
Defina a variável
$STORAGE_POOL
com o nome do pool de armazenamento. No seu caso édefault
:Defina a variável
$NEW_SIZE
com o tamanho que você deseja que o pool de armazenamento tenha:O valor é um número inteiro e uma unidade opcional (exemplo: 10K é 10*1024). As unidades são K,M,G,T,P,E,Z,Y (potências de 1024) ou KB,MB,... (potências de 1000).
Importante: O novo tamanho deve ser maior que o tamanho atual do sistema de arquivos Btrfs. Você perderá todos os dados em seu pool de armazenamento se o tamanho for menor.
No host, encontre o caminho para o arquivo do conjunto de armazenamento Btrfs:
Aumente o arquivo do pool de armazenamento Btrfs:
Avise o(s) dispositivo(s) de loopback sobre o novo tamanho:
Obtenha um ID de processo LXD para que possamos inserir seu namespace de montagem posteriormente:
Obtenha o ponto de montagem Btrfs online:
Por fim, redimensione o sistema de arquivos Btrfs para o tamanho máximo possível:
Para consistência, atualize o banco de dados LXD com o novo tamanho do pool de armazenamento: