LVM Snapshots Backup and Restore på Linux

i våra tidigare handledning har vi sett att implementering av LVM-volymer kan vara mycket fördelaktigt för att hantera utrymme på din värd.

det logiska Volymhanteringsskiktet exponerar ett API som kan användas för att lägga till eller ta bort utrymme när du vill, medan ditt system körs.

det finns dock en annan nyckelfunktion som exponeras av LVM som kan vara mycket fördelaktig för systemadministratörer : LVM-ögonblicksbilder.

i datavetenskap används ögonblicksbilder för att beskriva tillståndet för ett system vid en viss tidpunkt.

i denna handledning kommer vi att se hur du enkelt kan implementera LVM-ögonblicksbilder.

vi kommer också att se hur du kan säkerhetskopiera ett helt filsystem med hjälp av ögonblicksbilder och återställa det efter behag.

Innehållsförteckning

förutsättningar

för att skapa LVM-ögonblicksbilder måste du självklart ha minst en logisk volym Skapad på ditt system.

om du inte är säker på om detta är fallet eller inte kan du köra kommandot ”lvs” för att visa befintliga logiska volymer.

$ lvs
lista logiska volymer på linux

i den här situationen har vi en logisk volym på 3 GB Skapad på vårt system.

att ha en logisk volym på 3 GB betyder dock inte nödvändigtvis att hela utrymmet används på vårt system.

för att kontrollera den faktiska storleken på din logiska volym kan du kontrollera ditt använda diskutrymme med kommandot ”df”.

$ df -h

notera : din logiska volym måste monteras för att du ska kunna kontrollera det använda utrymmet..

om du inte är säker på att montera logiska volymer eller partitioner, kolla vår handledning om montering av filsystem.

kontrollera storleken på logisk volym på linux

som du kan se här har den logiska volymen en 3 GB kapacitet, men endast 3, 1 MB används på filsystemet.

som ett exempel, låt oss säga att vi vill säkerhetskopiera /etc-mappen på vår server.

$ cp -R /etc /mnt/lv_mount

nu när vår konfigurationsmapp kopieras till vår logiska volym, låt oss se hur vi kan skapa en LVM-ögonblicksbild av detta filsystem.

skapa LVM-ögonblicksbilder med lvcreate

för att skapa en LVM-ögonblicksbild av en logisk volym måste du utföra kommandot ”lvcreate” med alternativet ”- s” för ”snapshot”, alternativet ”- L” med storleken och namnet på den logiska volymen.

Alternativt kan du ange ett namn för din ögonblicksbild med alternativet ”-n”.

$ lvcreate -s -n <snapshot_name> -L <size> <logical_volume>
skapa en LVM-ögonblicksbild med lvcreate

Obs!: Du kan inte skapa snapshot-namn med ”snapshot” i namnet eftersom det är ett reserverat nyckelord.

du måste också se till att du har tillräckligt med utrymme i volymgruppen eftersom ögonblicksbilden skapas i samma volymgrupp som standard.

nu när din ögonblicksbild skapas kan du inspektera den genom att köra kommandot ”lvs” eller kommandot ”lvdisplay” direkt.

$ lvs$ lvdisplay <snapshot_name>
visa LVM-ögonblicksbilder med lvs

som du kan se har den logiska volymen en uppsättning olika attribut jämfört med den ursprungliga logiska volymen :

  • s: för ögonblicksbild, ”o” betyder ursprung för den ursprungliga logiska volymen kopierad till ögonblicksbilden;
  • w: för skrivbar betydelse att din ögonblicksbild har läs-och skrivbehörigheter på den;
  • i: för ”ärvt”;
  • a: för ”tilldelat”, vilket betyder att det faktiska utrymmet är dedikerat till denna logiska volym;
  • o : (i det sjätte fältet) betyder ”öppen” som anger att den logiska volymen är monterad;
  • s : snapshot target type för båda logiska volymerna

nu när din snapshot logical volume skapas måste du montera den för att utföra en säkerhetskopia av filsystemet.

montering av LVM-ögonblicksbild med mount

för att montera en LVM-ögonblicksbild måste du använda kommandot ”mount”, ange hela sökvägen till den logiska volymen och ange monteringspunkten som ska användas.

$ mount <snapshot_path> <mount_point>

låt oss till exempel säga att vi vill montera ”/dev/vg_1/lvol0” till ”/mnt/lv_snapshot” monteringspunkten på vårt system.

för att uppnå det skulle vi köra följande kommando :

$ mount /dev/vg_1/lvol0 /mnt/snapshot

du kan omedelbart verifiera att monteringsoperationen är effektiv genom att köra kommandot ”lsblk” igen.

$ lsblk
montering av en LVM-ögonblicksbild på linux

säkerhetskopiera LVM-ögonblicksbilder

nu när din ögonblicksbild är monterad kan du utföra en säkerhetskopia av den med antingen tar-eller rsync-kommandona.

när du utför säkerhetskopior har du i huvudsak två alternativ : du kan utföra en lokal kopia, eller du kan välja att överföra arkiv direkt till en fjärrbackupserver.

skapa en lokal LVM snapshot backup

det enklaste sättet att säkerhetskopiera en LVM snapshot är att använda kommandot ”tar” med alternativet ”-c” för ”skapa”, alternativet ”z” för att skapa en gzip-fil och ”- f” för att ange en destinationsfil.

$ tar -cvzf backup.tar.gz <snapshot_mount>

i vårt fall, eftersom ögonblicksbilden är monterad på monteringspunkten”/mnt / lv_snapshot”, skulle backup-kommandot vara :

$ tar -cvzf backup.tar.gz /mnt/lv_snapshot

när du kör det här kommandot skapas en säkerhetskopia i din nuvarande arbetskatalog.

skapa och överföra en LVM snapshot backup

i vissa fall äger du en säkerhetskopieringsserver som kan användas för att lagra LVM-säkerhetskopior regelbundet.

för att skapa sådana säkerhetskopior ska du använda kommandot ”rsync”, ange filsystemet som ska säkerhetskopieras samt destinationsservern som ska användas.

# If rsync is not installed already, you will have to install using apt$ sudo apt-get install rsync$ rsync -aPh <snapshot_mount> <remote_user>@<destination_server>:<remote_destination>

om du inte är säker på filöverföringar på Linux bör du kontrollera handledningen vi skrev om ämnet.

låt oss till exempel säga att ögonblicksbilden är monterad på ”/mnt/lv_snapshot” och att vi vill skicka ögonblicksbilden till backupservern som sitter på IP-adressen ”192.168.178.33”.

för att ansluta till fjärrbackupservern använder vi ”kubuntu” – kontot och vi väljer att ha filer lagrade i mappen ”/backups”.

$ rsync -aPh /mnt/lv_snapshot :/backups

nu när din logiska volym snapshot säkerhetskopieras, kommer du att kunna återställa det lätt på begäran.

skapa LVM-säkerhetskopior på distans

återställa LVM ögonblicksbilder

nu när din LVM säkerhetskopieras, kommer du att kunna återställa den på ditt lokala system.

för att återställa en logisk LVM–volym måste du använda kommandot ”lvconvert” med alternativet ”- mergesnapshot” och ange namnet på den logiska volymbilden.

när du använder ”–mergesnapshot” slås ögonblicksbilden samman till den ursprungliga logiska volymen och raderas direkt efter den.

$ lvconvert --mergesnapshot <snapshot_logical_volume>

i vårt fall heter den logiska volymbilden lvol0, så vi skulle köra följande kommando

$ lvconvert --mergesnapshot vg_1/lvol0
sammanfoga ögonblicksbild med lvconvert

som du säkert märkte kan båda enheterna (originalet och ögonblicksbilden inte vara öppna för att sammanfogningsoperationen ska lyckas.

Alternativt kan du uppdatera den logiska volymen för att återaktivera den med de senaste metadata med ”lvchange”

$ lvchange --refresh vg_1/lv_1

när sammanslagningen har lyckats kan du verifiera att din logiska volym har tagits bort från listan över tillgängliga logiska volymer.

$ lvs
visa logiska volymer utan ögonblicksbild

klart!

den logiska volymen ögonblicksbild tas nu bort och ändringarna slogs tillbaka till den ursprungliga logiska volymen.

slutsats

i denna handledning lärde du dig om LVM-ögonblicksbilder, vad de är och hur de kan användas för att säkerhetskopiera och återställa filsystem.

att skapa säkerhetskopior regelbundet är viktigt, särskilt när du arbetar i ett medium till stort företag.

att ha säkerhetskopior och kunna återställa dem enkelt är det bästa sättet att se till att du kommer att kunna förhindra större dataförlust på dina system.

om du är intresserad av Linux – systemadministration har vi ett komplett avsnitt dedikerat till det på webbplatsen, så se till att kolla in det!