Tentei configurar o Discourse dentro do LXD no Ubuntu Server em um Raspberry Pi 4 com um SSD USB, e ele simplesmente travava e expirava durante as reconstruções. O travamento era pior/mais cedo usando um pool de armazenamento de loopback btrfs e, posteriormente, usando um pool de armazenamento de loopback zfs. A memória era consistente em torno de 1 GB com picos de 3 GB. Os travamentos mantinham o SSH/top responsivos, mas toda a atividade de uso caía para níveis insignificantes, indicando que havia desistido.
Atualmente, a documentação do LXD apenas recomenda definir security.nesting para o valor string true para habilitar o uso do Docker, o que fiz. No entanto, a documentação do LXD também tem uma página para configuração de produção com cerca de 20 configurações que precisam ser alteradas, o que ainda não tentei.
No final, desisti da minha tentativa com o LXD para o Discourse e simplesmente executei o Discourse via Docker na mesma máquina.
Detalhes dos meus esforços aqui:
Estranhamente, o guia do LXD para Docker abaixo recomenda btrfs, apesar de a documentação do LXD desaconselhá-lo, e não parece usar uma partição para ele (no entanto, eles definem algumas configurações extras, instalam outros pacotes em vez de docker.io e anexam o volume btrfs apenas ao Docker), então me pergunto por que tive tantos problemas:
@vmsman, você pode compartilhar mais detalhes sobre sua configuração do LXD, como perfis, pools de armazenamento e quaisquer configurações do sistema que precisaram ser alteradas, já que parece que você teve a configuração mais bem-sucedida até agora:
Para o LXD, algumas coisas que me pergunto:
- Se partições para pools de armazenamento em vez de arquivos de loopback resolveriam os problemas de desempenho o suficiente para que os problemas de travamento desaparecessem.
- Se usar microcloud ou um cluster LXD ajudaria, ou usar ceph como pool de armazenamento.
Ao todo, apesar de não ter conseguido fazer o Discourse funcionar no LXD, estou muito impressionado com o LXD e sua facilidade de uso. Anteriormente, passei meses lutando com o HashiCorp, pois o HashiCorp parece interessado apenas em casos de uso corporativo. Enquanto isso, o LXD simplesmente funciona e as pessoas parecem ser solidárias o suficiente para permitir que pequenas equipes e desenvolvedores independentes progridam.