You are not logged in.

#1 2023-03-13 02:27:27

CTA
Member
Registered: 2023-03-02
Posts: 5

LVM snapshot merge only completes after second reboot

I'm trying to set up automated LVM snapshots of / (for system rollback) on my new-ish Arch install. As a first step, I wanted to make sure I could manually create and manipulate snapshots. But I've encountered an issue: when I merge a root snapshot, it doesn't fully merge until I do two reboots. After the first reboot, it appears to merge successfully on a file system level--any newly created files are gone and the old ones are back--but lsblk still shows the snapshot. Only after a second reboot does this snapshot disappear. Why might this be, and how might I fix it?

Logs from an example run are shown below.

First boot:

# lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
nvme0n1             259:0    0  3.6T  0 disk 
├─nvme0n1p1         259:1    0  512M  0 part 
├─nvme0n1p2         259:2    0  3.2T  0 part 
│ ├─MainVolGrp-root 254:2    0   20G  0 lvm  /
│ ├─MainVolGrp-swap 254:4    0   64G  0 lvm  [SWAP]
│ └─MainVolGrp-home 254:5    0  3.1T  0 lvm  /home
├─nvme0n1p3         259:3    0   16M  0 part 
├─nvme0n1p4         259:4    0  128G  0 part 
├─nvme0n1p5         259:5    0    1G  0 part 
└─nvme0n1p6         259:6    0   64G  0 part 

# lvs
  LV   VG         Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home MainVolGrp -wi-ao---- <3.10t                                                    
  root MainVolGrp -wi-ao---- 20.00g                                                    
  swap MainVolGrp -wi-ao---- 64.00g 

# lvcreate -L20G -n snap-root -s MainVolGrp/root
  Logical volume "snap-root" created.

# lsblk
NAME                          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
nvme0n1                       259:0    0  3.6T  0 disk 
├─nvme0n1p1                   259:1    0  512M  0 part 
├─nvme0n1p2                   259:2    0  3.2T  0 part 
│ ├─MainVolGrp-root-real      254:0    0   20G  0 lvm  
│ │ ├─MainVolGrp-root         254:2    0   20G  0 lvm  /
│ │ └─MainVolGrp-snap--root   254:3    0   20G  0 lvm  
│ ├─MainVolGrp-snap--root-cow 254:1    0   20G  0 lvm  
│ │ └─MainVolGrp-snap--root   254:3    0   20G  0 lvm  
│ ├─MainVolGrp-swap           254:4    0   64G  0 lvm  [SWAP]
│ └─MainVolGrp-home           254:5    0  3.1T  0 lvm  /home
├─nvme0n1p3                   259:3    0   16M  0 part 
├─nvme0n1p4                   259:4    0  128G  0 part 
├─nvme0n1p5                   259:5    0    1G  0 part 
└─nvme0n1p6                   259:6    0   64G  0 part 

# lvs
  LV        VG         Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home      MainVolGrp -wi-ao---- <3.10t                                                    
  root      MainVolGrp owi-aos--- 20.00g                                                    
  snap-root MainVolGrp swi-a-s--- 20.00g      root   0.01                                   
  swap      MainVolGrp -wi-ao---- 64.00g 

# ls /opt

# touch /opt/newfile

# ls /opt
newfile

# lvconvert --merge MainVolGrp/snap-root
  Delaying merge since origin is open.
  Merging of snapshot MainVolGrp/snap-root will occur on next activation of MainVolGrp/root.

# reboot

Journalctl - https://0x0.st/Hi6f.txt

Second boot:

# lsblk
NAME                          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
MainVolGrp-snap--root         254:3    0   20G  0 lvm  
nvme0n1                       259:0    0  3.6T  0 disk 
├─nvme0n1p1                   259:1    0  512M  0 part 
├─nvme0n1p2                   259:2    0  3.2T  0 part 
│ ├─MainVolGrp-root-real      254:0    0   20G  0 lvm  
│ │ └─MainVolGrp-root         254:2    0   20G  0 lvm  /
│ ├─MainVolGrp-snap--root-cow 254:1    0   20G  0 lvm  
│ │ └─MainVolGrp-root         254:2    0   20G  0 lvm  /
│ ├─MainVolGrp-swap           254:4    0   64G  0 lvm  [SWAP]
│ └─MainVolGrp-home           254:5    0  3.1T  0 lvm  /home
├─nvme0n1p3                   259:3    0   16M  0 part 
├─nvme0n1p4                   259:4    0  128G  0 part 
├─nvme0n1p5                   259:5    0    1G  0 part 
└─nvme0n1p6                   259:6    0   64G  0 part 

# lvs
  LV   VG         Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home MainVolGrp -wi-ao---- <3.10t                                                    
  root MainVolGrp Owi-aos--- 20.00g             0.00                                   
  swap MainVolGrp -wi-ao---- 64.00g                                                    

# ls /opt

# reboot

Journalctl - https://0x0.st/Hi6O.txt

Third boot:

# lsblk
NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
nvme0n1             259:0    0  3.6T  0 disk 
├─nvme0n1p1         259:1    0  512M  0 part 
├─nvme0n1p2         259:2    0  3.2T  0 part 
│ ├─MainVolGrp-root 254:2    0   20G  0 lvm  /
│ ├─MainVolGrp-swap 254:4    0   64G  0 lvm  [SWAP]
│ └─MainVolGrp-home 254:5    0  3.1T  0 lvm  /home
├─nvme0n1p3         259:3    0   16M  0 part 
├─nvme0n1p4         259:4    0  128G  0 part 
├─nvme0n1p5         259:5    0    1G  0 part 
└─nvme0n1p6         259:6    0   64G  0 part 

# lvs
  LV   VG         Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home MainVolGrp -wi-ao---- <3.10t                                                    
  root MainVolGrp -wi-ao---- 20.00g                                                    
  swap MainVolGrp -wi-ao---- 64.00g                                                    

Journalctl - https://0x0.st/Hi6V.txt

Please let me know if I should include any more information. And thank you!

Last edited by CTA (2023-03-13 15:01:26)

Offline

#2 2023-03-13 07:21:42

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 76,354

Offline

Board footer

Powered by FluxBB