Denna guide omfattar såväl hur man lägger till en befintlig fil, som utgör en virtuell maskins (VM) filsystem, till en volymgrupp som en egen logisk volym (LV), och hur man skapar en logisk volym av det bibliotek som innehåller filer som utgör en virtuell maskins filsystem. Man kan antingen använda en befintlig volymgrupp eller skapa en ny. Notera att en partition endast kan tillhöra en volymgrupp (VG). Man skapar en ny volymgrupp, exempelvis virtual-machines, med programmet vgcreate.
vgcreate VolumeGroupName /dev/harddrive1 /dev/harddrive2
Fortsättningsvis benämns en fil som utgör en virtuell maskins (VM) filsystem för disk image. I förklaringar och exempel nedan används volymgruppen VolGroupHypervisor.
För att skapa en säkerhetskopia av en LV som omfattar en hel hårddisk läs denna artikeln.
Tillbaka till toppen.För att kunna göra säkerhetskopior av sina disk images under drift av den virtuella maskinen, måste varje disk image eller biblioteket där de finns lagade vara en egen LV. För att skapa dessa logiska volymer måste man först se till att de aktuella virtuella maskinerna ej är i drift.
Om man avser att skapa en LV för varje disk image använder man följande kommando.
DETTA FUNGERAR INTE! FÖRST MÅSTE MAN SKAPA DEN LOGISKA VOLYMEN.
dd if=/var/lib/libvirt/images/myVM.img of=/dev/VolGroupHypervisor/myVM
Avser man att skapa en logisk volym av biblioteket där man har sina disk images lagrade skapar man först en LV, och därefter monterar man det aktuella biblioteket.
lvdisplay
HÄR MÅSTE EN TEXTRUTA MED DESSA KOMMANDON FINNAS.
Jag tror backup proceduren går till enligt nedan men återstållningen fungera rinte.
# Create the new logical volume lvcreate -L4M -n ha1 centos dd if=/var/lib/libvirt/images/myVM.img of=/dev/centos/ha1 bs=512K # Create the snapshot lvcreate -L4M -s -n /dev/centos/ha1-snapshot /dev/centos/ha1 # Make a backup of the snapshot dd if=/dev/centos/ha1-snapshot of=/backups/myVM.img bs=512K # Once this is completed, discard the (no longer needed) snapshot lvremove /dev/centos/ha1-snapshot # Restore with dd dd if=/backups/myVM.img of=/dev/centos/ha1 bs=512K dd if=/dev/centos/ha1 of=/var/lib/libvirt/images/myVM.img bs=512KTillbaka till toppen.
Oavsett vilken av ovanstående metoder man väljer för att se till att sina disk images finns inom en LV, måste man alltid skapa en snapshot LV, där säkerhetskopiorna i form av snapshots skall lagras.
Man använder kommandot lvcreate för att skapa sin snapshot LV.
lvcreate volumeargument(t.ex. -L) volumesize -s -n snapshot_name path_to_logicalvolume
Exempel:
lvcreate -L 10G --snapshot --name images_snapshot /dev/mapper/VMs-images.
Eller kan man välja att göra en linjär logisk volym
VARFÖR SKULLE MAN VILJA GÖRA EN LINJÄR LV?
Använd kommanot lvdisplay för att se att den nya logiska snapshot volymen är skapad.
lvdisplay
Vi vill montera /dev/VMs/images_snapshot på /mnt/backups/images_snapshots. Så vi måste skapa mappen för det först:
mkdir -p /mnt/backups/images_snapshot
Sen monteras snapshoten volymen:
mount /dev/VMs/images_snapshot /mnt/backups/images_snapshot/
Lista snapshotet:
ls -l /mnt/backups/images_snapshot/
Snapshot volymen har framgångsrikt blivit skapad.
Tillbaka till toppen.MAN BÖR NOG FÖRST BORTSE FRÅN ATT TOMMA BLOCK MAN FÖREKOMMA, OCH VIDAREUTVECKLA SAKER OCH TING OCH VISA HUR MAN KAN GÖR AOM MAN INTE VILL HA TOMMA BLOCK.
MAN BÖR FÖRTYDLIGA OM DE AKTUELLA KOMMANDONA AVSER ATT MAN GÖR EN LOGISK VOLYM AV VARJE DISK IMAGE ELLER OM MAN AVSER ATT MAN GÖR EN LOGISK VOLYM AT MAPPEN DÄR MAN HAR SINA DISK IMAGE LAGRADE..
Man vill inte göra en backup med GB av tomma block, så då gör man en sparse fil som output utav backupen. dd stödjer INTE skapandet av sparse filer, men cp GÖR det. Så om man pipar outputen utav dd till cp med flaggan -sparse=always. Målet utav cp i kommandot nedanför är /proc/self/fd/0 vilket är standard inmatning. Det sista delen av kommandot nedanför är sökvägen där sparse skivavbildsfilen förverkligas.
time dd if=/dev/VolGroupHypervisor/myVmBackup| cp --sparse=always /proc/self/fd/0/mnt/backups/images_snapshots\VmLiveImageSparse.img
Exempel:
time dd if=/dev/mapper/VMs-images| cp --sparse=always /proc/self/fd/0 /mnt/backups/images_snapshot/centosMailBackup.imgTillbaka till toppen.
Avmontera snapshotvolymen: Gå först till cd /
umount /dev/VMs/images_snapshot
Montera sedan snapshotvolymen igen mount -o nouuid /dev/VMs/images_snapshot /var/lib/libvirt/images
Men i de flesta guider så sägs det att lvremove ska funka men i vårt fall ger det: "Logical volume VMs/images_snapshot contains a filesystem in use."
Följande kommando avmonterar (-f avmonterar snapshotvolymen utan godkännande, annars kommer scriptet att stanna upp och vänta på användarens inmatning).
**VARNING**
Se till att den korreka Logiska Volymen som är specifiserad är SNAPSHOT volymen.lvremove -f /dev/VolGroupHypervisor/myVmBackup
Exempel:
lvremove -f /dev/VMs/imagesTillbaka till toppen.
#!/bin/bash
# Create an LVM snapshot
lvcreate -L 10G -s -n backmyVm /dev/VolGroupHypervisor/myVm
# Note: "/proc/self/fd/0" = "standard input"
time dd if=/dev/VolGroupHypervisor/backupmyVm|cp --sparse=always /proc/self/fd/0 /mnt/LUN/CentOS-6.4_VMs/www_LiveImageSparse-`date +%Y%m%d`.img &
# Pause the script until the backup which was backgrounded has completed
wait $!
# the "-f" switch ("force") is necessary as the script will hang waiting for user input without it
lvremove -f /dev/VolGroupHypervisor/backupmyVm
exit
Tillbaka till toppen.
Stäng ner servern som du just gjorde en block-level kopia på, när den är nerstängd, starta kopian som nyss gjordes och kolla nagios och loggar. Kolla även bootloggen.
Kolla storleken på Sprase Imagen: Man kan se att man har sparat data här med hjälp av cp med sparse alternativet.
NOTIS: Använd du för att kolla storleken, likväl ls kommer att rapportera den sparsifierade backupen som samma storlek som den icke-sparsifierade image filen.
Icke sparsifierad dd image av VM:et
du -csh myVm_20130311.imgTillbaka till toppen.
81G myVm_20130311.img
81G total
Om VM:et har kraschat, återställa det är enkelt, använd dd för att föra in backupen in i den Logiska Volymen på hypervisorn:
dd if=/mnt/LUN/VM_Backups/myVmLiveImageSparse.img of=/dev/VolGroupHypervisor/myVM
Exempel:
dd if=/mnt/backups/images_snapshot/centosMailBackup.img of=/dev/mapper/VMs-imagesDelar av guiden är byggd på information i från denna blogpost.
Här finns hjälp för vid felsökning.
Vid montering:
mount -o nouuid källsökväg monteringspunkt
Exempel:
mount -o nouuid /mnt/usb /dev/sdc1
Detta kommando för man köra varje gång och montera varje gång om man inte genererar nytt UUID.
Just detta kommando kan enbart användas om disken är formaterad med filsystemet XFS. Annars kan man används tune2fs som har stöd för: ext2,ext3,ext4. För kommandon kan man kolla här.
xfs_admin -U generate källsökväg till disken
Exempel:
xfs_admin -U generate /dev/sda1
options för xfs_admin
-l (litet L) – prints the current file system label.
-L – changes the file system’s label.
-U – changes the file system’s UUID.
Om man får Input/output error. Likt fdisk: cannot open /dev/mapper/VMs-images_snapshot: Input/output error kör då kommanot lvs.
LV | VG | Attr | LSize | Pool | Origin | Data% | Meta% | Move | Log | Cpy%Sync | Convert |
images | VMs | owi-aos--- | 100.00m | ||||||||
images_snapshot | VMs | swi-Ios--- | 100.00m | images | 100.00 | ||||||
root | centos | -wi-ao---- | 7.57g | ||||||||
swap | centos | -wi-ao---- | 924.00m |
Börjar Attr raden för snapshot med S så är det fel på snapshotet. Börjar raden däremot med s så är det fungerande. Som man kan se så är %snapshot 100%, vilket innebär att allt COW utrymme är använt.
Tillbaka till toppen.PE = Physical Extent
PV = Physical Volume
LV = Logical Volume
LE = Logical Extent
VG = Volume Group
LVM = Logical Volyme Manager
UUID = Universally Unique IDentifier
Kommandon med förklaring.