Idealmente, eu gostaria de criar uma imagem qcow2 de um VPS, de dentro de uma instância em execução desse VPS. Não tenho certeza se isso é possível, mas acho que não.
O problema é que meu provedor de VPS me permite criar imagens de backup, mas não há como exportar essa imagem (ela só pode ser usada para restaurar um VPS para um estado anterior ou para criar novas instâncias de VPS). Eles estão executando o VMware, se for relevante. Eles têm uma "solução de backup", que envolve instalar (e pagar mensalmente) Acronis, mas não tenho certeza de como isso funciona ou o que realmente me dá.
Eu tenho outras opções para backups 'quentes' ou estou apenas tentando rsync todo o servidor (Ubuntu 22.04) (menos arquivos pseudo/virtuais?) para meu próprio armazenamento local e esperando o melhor?
É tecnicamente possível, mas o método mais simples (ler de /dev/sda) não será um dump "congelado no tempo" adequado, será um sistema de arquivos possivelmente inconsistente que precisaria de reparos.
Ajudaria se sua próxima instância de servidor tivesse LVM, que oferece suporte a snapshots atômicos que podem ser transferidos com segurança (e depois destruídos) enquanto o servidor continua em execução. Com os instantâneos do LVM, em vez de criar imagens de /dev/sda, você poderá criar imagens de /dev/mapper/algo que está congelado no tempo.
Ainda melhor seria usar um sistema de arquivos que tenha instantâneos em nível de arquivo embutidos (por exemplo, Btrfs ou ZFS, ou talvez XFS em um futuro próximo), pois Btrfs e ZFS já possuem ferramentas de backup baseadas em instantâneos, como
zfs send
.Mas se os instantâneos não estiverem disponíveis - apenas rsync em todo o sistema e, em seguida, rsync-lo novamente. A 2ª execução será mínima e pegará tudo o que mudou durante a 1ª execução; você pode repetir mais algumas vezes até que não haja mais alterações.
Além disso, mesmo sem instantâneos, alguns sistemas de arquivos podem ser congelados em execução
fsfreeze
- todas as chamadas de gravação são pausadas para que você possa sincronizar com segurança todos os arquivos, pois eles não serão alterados até que afsfreeze -u
seja executado. (Tenha cuidado, pois isso também pode fazer com que novas tentativas de login sejam interrompidas se o serviço SSH tentar gravar em arquivos de log.)Lembre-se de que muitos serviços de banco de dados exigem ferramentas específicas para fazer um backup "quente" (por exemplo, LMDB pode precisar de mdb_copy), mas isso se aplica igualmente a instantâneos de nível VPS como a rsync ou LVM, portanto, nada de novo.
Nota: Em vez de excluir manualmente /dev, /proc, etc. considere que todos eles são sistemas de arquivos separados e seriam excluídos automaticamente usando
--one-file-system
.