Estamos executando uma instalação maior do Discourse em uma configuração de VPS que basicamente funciona muito bem para nós. Em termos de desempenho de CPU/Mem, temos folga. Espaço em disco, no entanto, é um problema - não no dia a dia, mas quando se trata de atualizar o Postgres, por exemplo (a atualização 13->15 está pendente por causa disso), não temos espaço e não podemos expandir facilmente.
Eu sei que existem outras opções para a atualização do postgres, mas considere isso mais como uma pergunta geral.
Estamos rodando na Hetzner, onde o armazenamento de rede está facilmente disponível para uso temporário.
No nosso servidor de teste, estou brincando com a possibilidade de fazê-lo funcionar temporariamente - primeiro para restaurar um backup do site ativo e, posteriormente, para testar a atualização do Postgres. Até agora, não obtive sucesso.
Eu já tentei usar symlinking, mas percebi que não funcionou e também li em algum lugar que não é a maneira recomendada. Também tentei mover o compartilhamento /shared de /var/discourse/shared/standalone para /mnt/ext-storage/standalone e movi os arquivos para lá - infelizmente, não sem problemas. Nem consigo terminar a construção.
Existe alguma maneira que funcione para esses tipos de casos? Estou ciente de que o desempenho da unidade é muito pior do que a unidade local, mas não estou planejando executar o fórum nela. Eu realmente gostaria de ter uma maneira confortável de usá-la para certos cenários.
Se o seu objetivo é fazer a atualização, a coisa mais fácil é iniciar uma nova VM e migrar para ela. Você pula a necessidade de atualizar o banco de dados e obtém um novo SO em sua VM, o que você provavelmente precisará fazer de qualquer maneira.
Se seus backups estiverem no s3, é muito simples congelar o antigo, fazer um backup e restaurar o backup na nova máquina.
Se o hetzner tiver algum tipo de IP permanente que possa ser atribuído a servidores diferentes, você nem precisará alterar o DNS.
Você vai querer saber que pode construir um novo servidor para que, se algum dia precisar por algum motivo, você consiga. Esta é uma chance perfeita para praticar.
Na verdade, esta não é uma opção. De qualquer forma, não está ficando sem espaço para as necessidades do dia a dia. Além disso, estamos em um espaço de disco de 600 GB no momento e usando ~50%. Não há uma opção maior - pelo menos não na Hetzner.
É por isso que eu estava explicitamente pedindo o disco externo.
Eu não estava sugerindo mudar para um disco maior, apenas obter um novo servidor exatamente como aquele. Instale o Discourse, restaure seu banco de dados.
Essa é uma pergunta muito boa.
Sim. Cada reconstrução cria um novo contêiner e cada um deles ocupa espaço. Se você nunca fez isso, poderia liberar dezenas de GB.
Nosso guia de atualização inclui um guia para o seu caso de uso exato.
Adicionamos essa opção para pessoas que estão na mesma situação que você. Apenas certifique-se de armazenar um backup fora do local antes de tentar isso!
Pode ser útil manter seus uploads, ou, digamos, /var/discourse/shared/web_only em armazenamento de rede. Você precisa editar o arquivo yml para apontar para ele em vez de usar um link simbólico (o link simbólico não funciona porque o contêiner não consegue acessar o local para o qual seu link simbólico aponta).
Então, se você mudar para uma nova VM, poderá apenas remontar esse armazenamento de rede em vez de copiá-lo.
Não recomendo armazenamento de rede para o banco de dados, pois é mais lento.
Acho que vale a pena detalhar o que está sendo usado. O tamanho real do seu banco de dados pode não ser tão grande, se a maior parte do seu uso for de uploads, e é apenas a parte do banco de dados que exige talvez 3x o espaço durante a atualização.
Uma coisa que você pode verificar é o tamanho relativo de um backup com downloads em comparação com um backup sem downloads.
Ou, use a linha de comando. Aqui está uma saída do meu fórum, bastante pequeno:
Eu deveria ter sido mais preciso inicialmente, mas não esperava receber um feedback tão amplo.
Nossos uploads e backups estão no S3. O tamanho do banco de dados no sistema ativo é de cerca de 230 GB agora. Os backups compactados têm cerca de 25 GB, eu acho.
Eu acho que deveria. Não está claro o que o aciona. Acho que fazer um extra não prejudica e pode economizar algum espaço. É recomendado após a atualização se você a fizer no local. Já vi limpar um espaço considerável algumas vezes.
Se o seu banco de dados tem 230 GB, eu definitivamente o restauraria em um novo servidor. O tempo de inatividade para ler e escrever 230 GB será significativo.