Layout do subvolume BTRFS para VMs e bancos de dados

Layout do subvolume BTRFS para VMs e bancos de dados
“O BTRFS é ótimo para instantâneos e dados de reversão. Ao planejar seu layout de subvolume, você pode ajustar seu instantâneo, protegendo máquinas e bancos de dados virtuais de reversão em todo o sistema. Subvolumes são uma ótima maneira de gerenciar dados importantes.”

Layout plano

Ao executar uma instalação padrão do Ubuntu usando o BTRFS em uma partição, o instalador cria e monta dois subvolumes: @ (localizado em /) e @casa (localizada em /home). Estes são montados na bota via /etc /fstab. Isso é chamado de layout plano e facilita o gerenciamento.

Instantâneos e reversão

Supondo que a configuração do Ubuntu Standard BTRFS, monte seu sistema partição em /mnt:

$ sudo monte /dev /sdx /mnt.

Você verá seus dois subvolumes lá:

Todo o sistema de arquivos raiz está contido dentro @. Para tirar um instantâneo de @ chamado @.instantâneo, nós fazemos:

Para reversão Um subvolume, basta mover/renomear o subvolume antigo e mover/renomear o instantâneo que você deseja usar na localização do antigo subvolume:

$ sudo mv /mnt /@ /mnt /@.quebrado
$ sudo mv /mnt /@.Snapshot /mnt /@

Após uma reinicialização, você estará usando o instantâneo que levou.

Nota antes da reinicialização: /etc/fstab tem entradas para @ e @casa como assim:

““
Uuid = xxxxx / btrfs Mount_Options, subvol =@ 0 0
Uuid = xxxxx /home btrfs Mount_options, subvol =@home 0 0
““

Se as suas entradas /etc /fstab tiverem subvolid nas opções de montagem como essa, essa opção deve ser removida.

““
Uuid = xxxxx / btrfs Mount_Options, subvol =@, subvolid = xxxx 0 0
““

Um ID do subvolume é um identificador único para um subvolume. Quando você substitui um subvolume, o subvolume listado nesse ponto de montagem pode ter o mesmo nome, Mas terá um ID diferente. Se o ID for diferente daquele em /etc /fstab, não será montado. É seguro usar apenas nomes ao montar subvolumes em /etc /fstab, desde que seus subvolumes sejam nomeados exclusivos.

Mariadb

Ao usar o mariadb, seus arquivos de banco de dados viverão em “/var/lib/mariadb.”Ao criar um novo subvolume para esses dados, você protege seu banco de dados de ser tocado em uma reversão do sistema ao reverter @ para um estado anterior.

Primeiro, monte seus BTRFs de nível superior:

$ sudo monte /dev /sdx /mnt

Crie o novo subvolume:

$ sudo btrfs subvolume Create /mnt /@mariadb

Em seguida, monte -o:

$ sudo monte -o subvol =@mariadb/dev/sdx/var/lib/mariadb

Adicione esta entrada ao seu FSTAB e instale o banco de dados:

$ sudo vim /etc /fstab
““
Uuid = xxxxx/var/lib/mariadb btrfs mount_options, subvol =@mariadb 0 0
““
$ sudo apt install mariadb-server

KVM

Da mesma forma, isole todas as máquinas KVM em um subvolume em “/var/lib/libvirt/máquinas:”

$ sudo btrfs subvolume Create /mnt /@kvm
$ sudo monte -o subvol =@kvm/dev/sdx/var/libvirt/máquinas
$ sudo vim /etc /fstab
““
Uuid = xxxx/var/lib/libvirt/máquinas btrfs Mount_options, subvol =@kvm 0 0
““

Se você já possui dados em sua máquina virtual e diretórios de banco de dados, pode fazer backup, substituir o diretório original pelo subvolume que fez e depois restaurar os dados do backup. Não se esqueça de corrigir as permissões sempre que necessário, pois todos os subvolumes recém -criados são de propriedade da raiz:

$ sudo chown -r mysql: mysql/var/lib/mariadb

Conclusão

Agora, quando você precisa reverter @ Para um estado anterior, seu banco de dados e máquinas virtuais serão preservadas em subvolumes separados. As possibilidades de layouts do subvolume são infinitas, e o que eu demonstrei aqui é apenas uma maneira de usar o BTRFS para proteger e preservar seus dados. Qualquer que seja o seu caso de uso, a flexibilidade dos subvolumes BTRFS pode aprimorar os recursos do seu servidor ou estação de trabalho.