Externa snapshots i KVM/QEMU
Att göra externa snapshots med virsh
är relativt enkelt även
om man måste göra en del manuellt arbete. Att vi måste göra en del manuellt
beror på att virsh
för tillfället inte har fullt stöd för externa
snapshots. Interna snapshots fungerar (med filformatet qcow2) utan problem
direkt i virsh
. Men eftersom jag har många virtuella maskiner i raw-format
använder jag istället externa snapshots.
Jag tycker dessutom personligen bättre om externa snapshots av den anledningen att de är just externa. Jag kan kopiera, flytta, radera och göra backup av mina snapshots, helt utan att blanda in originalfilen. En annan positiv sak med externa snapshots är att de går att genomföra live medan den virtuella maskinen körs.
Skapa en snapshot
När jag ska uppdatera systemet i en virtuell maskin till nyare utgåvor brukar jag göra som följer (fall i fall något går snett):
-
Jag gör en extern snapshot av den virtuella maskinen i fråga innan jag påbörjar arbetet med uppdateringar etc:
virsh snapshot-create-as --domain server57 before-upgrade \ --diskspec sda,file=/data/vm-backups/server57-snapshot-before-upgrade.qcow2 \ --disk-only --atomic --no-metadata
-
--domain server57
specificerar den virtuella maskinen vi vill göra snapshoten på. -
before-upgrade
är bara ett internt namn på snapshoten. -
--diskspec sda,file=/data/vm-backups/server57-snapshot-before-upgrade.qcow2
är den kompletta sökvägen där jag vill att snapshot-filen ska lagras. -
--disk-only
innebär att snapshoten enbart kommer att avse själva disken, inte den virtuella maskinens status i sig. -
--atomic
ser till att vi antingen får en helt fungerande snapshot, eller ingen snapshot alls. Det vill säga vi minskar risken att få en trasig snapshot. Antingen fungerar det till 100% eller så fungerar det inte alls. -
--no-metadata
innebär att snapshoten inte registreras i virsh/KVM/QEMU. Detta gör jag för att jag kommer att radera snapshoten manuellt vid ett senare tillfälle. Utan--no-metadata
hade snapshoten då legat kvar i virsh’s lista över snapshots. Om jag tar många snapshots hade listan då snabbt blivit lång, och totalt onödig eftersom filerna är borttagna.
-
-
Jag kontrollerar så att den aktuella backing-enheten (hårddisk-filen) är min nya snapshot, så att jag inte av misstag kör på originaldisken.
virsh domblklist server57
-
Jag genomför uppdatering eller vad det nu är som jag ska göra som är riskabelt.
Slå ihop snapshoten ifall allt gick vägen
Om allt har gått vägen så gör jag en block commit vilket innebär att man slår ihop data i snapshoten med originaldisken.
virsh blockcommit server57 sda --active --verbose --pivot
-
sda
är för SCSI & SATA backends. Använder du istället VirtIO ska du användavda
här. -
--active
anger att commiten sker live. -
--verbose
visar information om förloppet och om något skulle gå snett. -
--pivot
gör så att systemet återgår till originaldisken efter att commiten är klar.
Nu är jag tillbaks på originaldisken igen, och alla ändraring som skedde medan
vi använde snapshoten har blivit commitade till originaldisken. Nu kan jag
manuellt radera snapshoten, den fyller inte längre någon funktion. Eftersom jag
angav --no-metadata
så kommer den inte ligga kvar i listan över snapshots om
jag kör virsh snapshot-list server57
Ta bort snapshoten om något inte gick vägen
Om något däremot inte gick vägen, och jag behöver återgå till originaldisken så ändrar jag bara tillbaks till den. Jag börjar med att stänga av den virtuella maskinen. Därefter editerar XML-filen med kommandot:
virsh edit server57
Det jag behöver ändra i filen är sökvägen till orginaldisken och typ av disk, exempelvis raw om det är detta som originaldisk är.
Starta upp maskinen igen med:
virsh start server57
Nu är jag tillbaks till hur saker och ting var innan jag påbörjade uppdatering eller de ändringar som inte fungerade som tänkt. Mycket smidigt!
Nyhetsbrev
Nyhetsuppdateringar från tidningen direkt till din inkorg, helt kostnadsfritt. Avsluta när du vill.
Relaterade artiklar
-
Avlyssna trafik på servern med Wireshark och TShark
Wireshark är ett ovärderligt verktyg för att felsöka nätverkskonfigurationer, applikationer, API:er, demoner och mycket annat. I kombination med
tshark
kan vi dessutom avlyssna trafiken på en server i realtid. -
Var försiktig med att curl:a skript som root
Att installera program i Linux genom att omdirigera utdata från Curl till skalet är snabbt och smidigt. Men det är ack så farligt om du inte känner till programmet eller dess ursprung.
-
Vidarebefordran av SSH-agenten
SSH agent forwarding, eller vidarebefordran av SSH-agenten, innebär att man kan vidarebefordra SSH-agenten till ett fjärrsystem. På så sätt behöver man inte kopiera sin privata SSH-nyckel till fjärrsystemet, eller skapa flera nycklar för olika system. Men det finns risker med det.
-
Jenkins som ett alternativ till Ansible Tower
Ansible Tower kommer med en stor prislapp, speciellt för ett mindre företag eller en privatperson. AWX å andra sidan är helt fritt, men kräver numera Kubernetes. För den som vill automatisera sina Ansible Playbooks går det dock bra att använda Jenkins som en ersättning för Tower och AWX.
-
Hämta data från API:er med cURL och jq
Med cURL och jq går det att extrahera data från API:er direkt från kommandoraden. Jq är en JSON-tolkare och beskrivs av utvecklarna som sed och awk för JSON.
Senaste nyheterna och inläggen
-
Avlyssna trafik på servern med Wireshark och TShark
Wireshark är ett ovärderligt verktyg för att felsöka nätverkskonfigurationer, applikationer, API:er, demoner och mycket annat. I kombination med
tshark
kan vi dessutom avlyssna trafiken på en server i realtid. -
Mysig stämning på sommarens första demoparty
I helgen var det Reunion 2024 i Kvidinge Folkets hus, sommarens första skånska demoparty. Partyt organiserades av Jesper “Skuggan” Klingvall. På plats fanns ett 30-tal besökare.
-
Sommarens skånska demopartyn
Årets sommar bjuder på två skånska demopartyn. Först ut är Reunion i Kvidinge den 28–30 juni. Därefter är det Pågadata i Örtofta den 9–11 augusti.
-
Riskerna med BankID som ingen pratar om
BankID är ett säkert och smidigt sätt att identifiera sig online. Men i takt med dess ökade popularitet och användning har det blivit en svag länk – en single point of failure – på mer än ett sätt.
-
Polisernas fängelsedomar står fast
Efter tre år är målet mot de två poliser som olovligen tog sig in i en berusad mans bostad i Landskrona och misshandlade honom klart. Högsta domstolen beslutade den sjätte mars att avvisa överklagan. Fängelsedomarna för poliserna står därmed fast.
Utvalda artiklar
-
Mysig stämning på sommarens första demoparty
I helgen var det Reunion 2024 i Kvidinge Folkets hus, sommarens första skånska demoparty. Partyt organiserades av Jesper “Skuggan” Klingvall. På plats fanns ett 30-tal besökare.
-
Datorparty i Landskrona
I helgen höll Syntax Society sitt årliga sommarparty. Platsen var en källarlokal i Landskrona där ett femtontal personer medverkade.
-
Det första Pågadata har ägt rum
I helgen ägde det första Pågadata rum – uppföljaren till Gubbdata. Platsen var Folkets Hus i Kvidinge. Organisatör av partyt var Johan “z-nexx” Osvaldsson med hjälp från Jesper “Skuggan” Klingvall. Partyt hade över 100 anmälda deltagare.
-
Även hovrätten fäller poliserna för att ha satt dit oskyldig
Hovrätten fastställer straffet för de två poliser som förra året dömdes till vardera ett års fängelse av Lunds tingsrätt för att ha misshandlat och satt dit en oskyldig man. De båda poliserna ska även betala skadestånd till mannen.
-
Retroloppis i Påarp
Idag var det retroloppis hos Andreas Nilsson i Påarp. På baksidan av huset fanns hundratals spel uppradade på långa bord. Trots friska vindar och sval temperatur var loppisen välbesökt.
CyberInfo Sverige är ett it- och medieföretag i nordvästra Skåne som tillhandahåller böcker, utbildningar, nyheter och konsulttjänster inom Linux, säkerhet och programmering.
CyberInfo Sverige är godkänd för F-skatt, är momsregistrerat och innehar
utgivningsbevis för webbplatsen www.cyberinfo.se.