Backup LVM · 3 min read · Feb 14, 2026
Eseguire il backup di un ospite LVM XEN contenente LV
Eseguire il backup di un ospite LVM XEN contenente LV
Nel mio lavoro quotidiano, tutte le nostre macchine Linux (tranne 3) sono VM Xen. Volevo un modo per eseguire il backup di queste senza il rischio che i file cambiassero nel frattempo. Per motivi di prestazioni, le sto eseguendo tutte su Volumi Logici.
All’interno di queste VM, il sistema operativo DomU sta ancora utilizzando LVM per vari motivi. Questo crea alcuni problemi per eseguire il backup.
L’idea di base è:
- Creare un Volume Logico snapshot
- Consentire al Dom0 di vedere i Volumi Logici all’interno del Volume Logico (uff).
- Montare i Volumi Logici appena scoperti.
- Eseguire il backup
- Riordinare
Ci sono un paio di assunzioni che ho fatto. Ho assunto che tu abbia utilizzato nomi personalizzati per i Gruppi di Volumi in Dom0 (host) o DomU (guest), o in entrambi. Personalmente, utilizzo sempre un file kickstart per creare i miei DomU, quindi ho impostato il VG principale su XenVG00. Tutti i miei DomU sono in un VG su Dom0 chiamato vg_xen - questo non è però essenziale.
La seconda assunzione è che tu abbia dello spazio libero nel Gruppo di Volumi che contiene le immagini DomU. Non deve essere molto, poiché rimuoveremo il volume snapshot quando avremo finito con esso.
Per prima cosa, dobbiamo creare il nostro snapshot:
[root@dom0 ~]# lvcreate -L 1G -s -n lv_snapshot /dev/vg_xen/lv_xen_snaptestLogical volume “lv_snapshot” createdQuesto crea un volume snapshot chiamato lv_snapshot di un DomU che sta utilizzando un LV Dom0 chiamato lv_xen_snaptest. Questo è utile di per sé poiché ora potresti prendere un’immagine di questo LV. Faccio esattamente questo per il Disaster Recovery (dd if=/dev/vg_xen/lv_snapshot | bzip2 | dd of=/path/to/dr_image.bz2). In uno scenario peggiore, questa immagine potrebbe essere ripristinata in un nuovo Volume Logico, su un nuovo sistema, per eseguire una nuova istanza di Xen.
Tuttavia, ciò che vogliamo fare è accedere ai file in questo snapshot. Poiché il DomU sta utilizzando LVM, questo è purtroppo non banale. Prima dobbiamo usare kpartx per estrarre i dati LV:
[root@dom0 ~]# kpartx -av /dev/vg_xen/lv_snapshotadd map lv_snapshot1 : 0 208782 linear /dev/vg_xen/lv_snapshot 63
add map lv_snapshot2 : 0 20755980 linear /dev/vg_xen/lv_snapshot 208845Puoi vedere che sono stati trovati 2 LV. Poiché lv_snapshot1 è più piccolo, sappiamo che è il file di swap e lv_snapshot2 è il file system /. Ora dobbiamo far vedere a LVM questi LV e attivarli.
[root@dom0 ~]# vgscanReading all physical volumes. This may take a while…
Found volume group “vg_xen” using metadata type lvm2
Found volume group “XenVG00” using metadata type lvm2
Found volume group “VolGroup00” using metadata type lvm2[root@dom0 ~]# vgchange -ay XenVG002 logical volume(s) in volume group “XenVG00” now activeOra che gli LV sono attivi, possiamo montarli come se fossero qualsiasi altro disco.
[root@dom0 ~]# mount /dev/XenVG00/LVroot /mnt/E eseguire qualsiasi comando ci piaccia
[root@dom0 ~]# rsync -avhp /mnt/ /backup/xen_test/Ovviamente ora dobbiamo pulire dopo di noi:
[root@dom0 ~]# umount /mnt
[root@dom0 ~]# vgchange -an XenVG000 logical volume(s) in volume group “XenVG00” now active[root@dom0 ~]# kpartx -d /dev/vg_xen/lv_snapshot
[root@dom0 ~]# lvremove /dev/vg_xen/lv_snapshotDo you really want to remove active logical volume “lv_snapshot”? [y/n]: y
Logical volume “lv_snapshot” successfully removedLa cosa importante qui è che non abbiamo mai messo in pausa la nostra VM, ma siamo stati in grado di eseguire un backup completo di essa.
La dimensione del volume snapshot è la parte difficile qui. Ho utilizzato un LV snapshot da 1G. Per dare un’idea di quanto debba essere grande: quando un’immagine DR del mio wiki è stata presa, compressa e inviata tramite SSH a un’altra macchina per la memorizzazione, l’uso dello snapshot ha raggiunto quasi il 7%.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.