Como posso usar snapshots do LVM no Ubuntu?

19

Instalei o Ubuntu usando estas opções:

  • Apague o disco e instale o Ubuntu
  • Criptografar a nova instalação do Ubuntu
  • Use LVM

Como posso criar snapshots do LVM, para poder reverter as alterações do sistema quando necessário?

Aleksandr Gornostal
fonte

Respostas:

22

Nota: todos os comandos devem ser executados a partir de sudo

Primeiro, reduza o tamanho do seu volume raiz para liberar espaço para um volume de instantâneo

  • Inicializar a partir do Live CD
  • fdisk -l para ver o nome do seu dispositivo.
    Setores finais do dispositivo Tamanho Tipo
    / dev / sda1 2048 1050623 1048576 Sistema EFI 512M
    / dev / sda2 1050624 2050047 999424 488M Sistema de arquivos Linux
    / dev / sda3 2050048 500117503 498067456 237.5G sistema de arquivos Linux
    
    /dev/sda3 No meu caso
  • cryptsetup luksOpen /dev/sda3 crypt1 descriptografar seu volume
  • vgscan --mknodes para encontrar todos os grupos de volumes
    Lendo todos os volumes físicos. Isso pode demorar um pouco...
    Grupo de volumes encontrado "ubuntu-vg" usando o tipo de metadados lvm2
    
  • vgchange -ay para ativar todos os seus grupos de volumes
    2 volumes lógicos no grupo de volumes "ubuntu-vg" agora ativos
    
  • lvreduce -r -L -20G /dev/ubuntu-vg/rootpara reduzir o tamanho do seu volume raiz em 20 Gb. Isso pode demorar um pouco (levou cerca de 4 minutos para mim).
    Esse espaço será usado posteriormente para criar instantâneos do LVM.
  • vgs para ver que você realmente tem 20G de espaço livre
    VG #PV #LV #SN Attr VSize VFree
    ubuntu-vg 1 2 0 wz - n- 230.44g 20.01g
    
  • reboot e remova o Live CD

Crie um instantâneo (por exemplo, ative o modo "experimentação")

Agora, sempre que você quiser fazer algo arriscado com seu sistema, execute o seguinte comando

  • lvcreate -s -n snap -L 20G /dev/ubuntu-vg/root
    Nota: /dev/ubuntu-vg/rooté um volume lógico do qual você deseja obter uma captura instantânea de
  • lvs para ver que o volume foi criado
    LV VG Attr LSize Pool Origin Data% Meta% Log de Movimentos Cpy% Sync Convert
    raiz ubuntu-vg owi-aos --- 201.59g                                                    
    snap ubuntu-vg swi-as --- 20.00g raiz 0,00                                   
    swap_1 ubuntu-vg -wi-ao ---- 15.90g
    
    O instantâneo está ativo a partir do momento em que você executa lvcreate. Agora você pode começar a experimentar coisas novas.

Cenário # 1: você deseja reverter as alterações

  • lvconvert --merge /dev/mapper/ubuntu--vg-snap
    O volume lógico ubuntu-vg / root contém um sistema de arquivos em uso.
    Não é possível mesclar sobre o volume de origem aberta.
    A mesclagem do instantâneo ubuntu-vg / snap ocorrerá na próxima ativação do ubuntu-vg / root.
    
  • reboot

Cenário # 2: você deseja persistir alterações

  • lvremove /dev/mapper/ubuntu--vg-snap

Em conclusão

Você basicamente precisa executar lvcreatepara iniciar o processo e, em seguida, executar lvconvert --mergeou lvremoveencerrá-lo.

Lembre-se de que, quando o instantâneo está ativo, devido à estratégia Copy-On-Write, todas as alterações são salvas nesses 20Gb de espaço (ou em qualquer valor que você definir). Uma maneira de verificar a capacidade restante é examinar a coluna de lvscomando % de dados .

Aleksandr Gornostal
fonte
É bom ouvir :) Obrigado @ cl-netbox #
Aleksandr Gornostal
Você não precisa reduzir o sistema de arquivos antes de executar lvreduceem seu contêiner?
Mark
@ -rFlag de Mark faz isso #
Aleksandr Gornostal
É seguro executar lvconvert --mergequando o sistema de arquivos está montado ou você precisa fazê-lo no LiveCD?
22718 CharlesB
1
@CharlesB sim, você deve executá-lo quando estiver montado #
Aleksandr Gornostal