18Aug

Hur hanterar och använder LVM( Logical Volume Management) i Ubuntu

I vår tidigare artikel berättade vi vad LVM är och vad du kanske vill använda det för, och idag ska vi gå igenom några av nyckelhanteringsverktygen för LVM så att du är säker när du installerar eller utökar din installation.

Som tidigare sagt är LVM ett abstraktionsskikt mellan operativsystemet och fysiska hårddiskar. Vad det betyder är dina fysiska hårddiskar och partitioner är inte längre knutna till hårddiskarna och partitionerna de bor på.Snarare är hårddiskarna och partitionerna som ditt operativsystem ser kan vara ett antal separata hårddiskar samlade ihop eller i en programvaru RAID.

För att hantera LVM finns GUI-verktyg tillgängliga men för att verkligen förstå vad som händer med din LVM-konfiguration är det troligen bäst att veta vad kommandoradsverktygen är. Detta kommer att vara särskilt användbart om du hanterar LVM på en server eller distribution som inte erbjuder GUI-verktyg.

De flesta kommandon i LVM är mycket lika varandra. Varje giltigt kommando föregås av ett av följande:

  • Fysiskt volym = pv
  • Volymgrupp = vg
  • Logiskt volym = lv

De fysiska volymkommandon är för att lägga till eller ta bort hårddiskar i volymgrupper. Volymgruppskommandon är för att ändra vilken abstrakta uppsättning fysiska partitioner som presenteras för din funktion i logiska volymer. Logiska volymkommandon kommer att presentera volymgrupperna som partitioner så att operativsystemet kan använda det angivna utrymmet.

Nedladdningsbart LVM Cheat Sheet

För att hjälpa dig att förstå vilka kommandon som finns tillgängliga för varje prefix gjorde vi ett LVM-fuskblad. Vi kommer att täcka några av kommandon i den här artikeln, men det finns fortfarande mycket du kan göra som inte kommer att omfattas här.

Alla kommandon på den här listan måste köras som root eftersom du ändrar systemets breda inställningar som påverkar hela maskinen.

( Klicka på miniatyren för en fullstor bild)

Så här visar du aktuell LVM-information

Det första du kan behöva göra är att kontrollera hur din LVM är inställd. S- och displaykommandon fungerar med fysiska volymer( pv), volymgrupper( vg) och logiska volymer( lv) så det är ett bra ställe att börja när man försöker lista ut de aktuella inställningarna.

Displaykommandot formaterar informationen så att det är lättare att förstå än s-kommandot. För varje kommando ser du namnet och sökvägen för pv / vg och det ska också ge information om ledigt och fritt utrymme.

Den viktigaste informationen är PV-namnet och VG-namnet. Med dessa två bitar kan vi fortsätta arbeta med LVM-inställningen.

Skapa ett logiskt volym

Logiska volymer är de partitioner som ditt operativsystem använder i LVM.För att skapa en logisk volym behöver vi först en fysisk volym och en volymgrupp. Här är alla nödvändiga steg för att skapa en ny logisk volym.

Skapa fysisk volym

Vi börjar från början med en helt ny hårddisk utan partitioner eller information om den. Börja med att hitta vilken disk du ska arbeta med.(/dev/ sda, sdb, etc.)

Obs! Kom ihåg att alla kommandon måste köras som root eller genom att lägga till 'sudo' i början av kommandot.

fdisk -l

Om din hårddisk aldrig har formaterats eller partitionerats innan du förmodligen ser något liknande i fdisk-utmatningen. Det här är helt bra eftersom vi ska skapa de nödvändiga partitionerna i nästa steg.

Vår nya disk finns på /dev/ sdb så vi kan använda fdisk för att skapa en ny partition på enheten.

Det finns en uppsjö av verktyg som kan skapa en ny partition med en GUI, inklusive Gparted, men eftersom vi har terminalen öppen redan, använder vi fdisk för att skapa den nödvändiga partitionen.

Från en terminal skriver du följande kommandon:

fdisk /dev/ sdb

Detta kommer att sätta dig i en särskild fdisk-prompt.

Ange kommandon i den ordning som ges för att skapa en ny primär partition som använder 100% av den nya hårddisken och är klar för LVM.Om du behöver ändra partitionsstorleken eller vill ha flera partier föreslår jag att du använder GParted eller läser om fdisk på egen hand.

Varning: Följande steg formaterar din hårddisk. Se till att du inte har någon information på den här hårddisken innan du följer dessa steg.

  • n = skapa ny partition
  • p = skapar primär partition
  • 1 = gör partition den första på disken

Tryck in två gånger för att acceptera standard första cylinder och sista cylindern.

För att förbereda den partition som ska användas av LVM använd följande två kommandon.

  • t = Ändra partitionstyp
  • 8e = Ändra till LVM-partitionstyp

Verifiera och skriv informationen till hårddisken.

  • p = visa partitionsinställningar så att vi kan granska innan du skriver ändringar till disken
  • w = skriv ändringar till disk

Efter dessa kommandon ska fdisk-prompten avslutas och du kommer tillbaka till bash-prompten på din terminal.

Ange pvcreate /dev/ sdb1 för att skapa en fysisk LVM-volym på den partition som vi just skapat.

Du kanske frågar varför vi inte formaterade partitionen med ett filsystem men oroa dig inte, det steget kommer senare.


Skapa volymgrupp

Nu när vi har en partition som är avsedd och den fysiska volymen skapad måste vi skapa volymgruppen. Lyckligtvis tar det bara ett kommando.

vgcreate vgpool /dev/ sdb1

Vgpool är namnet på den nya volymgrupp vi skapade. Du kan namnge det du vill, men det rekommenderas att du lägger vg på etikettens framsida så om du refererar till det senare vet du att det är en volymgrupp.

Skapa logisk volym

För att skapa den logiska volymen som LVM ska använda:

lvcreate -L 3G -n lvstuff vgpool

-L-kommandot anger storleken på den logiska volymen, i detta fall 3 GB, och -n-kommandot hetervolym. Vgpool är refererad så att kommandot lvcreate vet vilken volym som ska hämta utrymmet.

Format och montera det logiska volymen

Ett sista steg är att formatera den nya logiska volymen med ett filsystem. Om du vill ha hjälp med att välja ett Linux-filsystem, läs vårt hur du kan hjälpa dig att välja det bästa filsystemet för dina behov.

mkfs -t ext3 /dev/vgpool/ lvstuff

Skapa en monteringspunkt och montera sedan volymen någonstans där du kan använda den.

mkdir /mnt/ saker
mount -t ext3 /dev/vgpool/ lvstuff /mnt/ grejer

Ändra storlek på ett logiskt volym

En av fördelarna med logiska volymer är att du kan göra dina aktier fysiskt större eller mindre utan att behöva flytta allt till en större hårddisk. I stället kan du lägga till en ny hårddisk och förlänga din volymgrupp i flygningen. Eller om du har en hårddisk som inte används kan du ta bort den från volymgruppen för att krympa din logiska volym.

Det finns tre grundläggande verktyg för att göra fysiska volymer, volymgrupper och logiska volymer större eller mindre.

Obs! Var och en av dessa kommandon måste föregås av pv, vg eller lv beroende på vad du arbetar med.

  • ändra storlek - kan krympa eller expandera fysiska volymer och logiska volymer men inte volymgrupper
  • förlänga - kan göra volymgrupper och logiska volymer större men inte mindre
  • minska - kan göra volymgrupper och logiska volymer mindre men inte större

Låt oss gå igenom ett exempelav hur man lägger till en ny hårddisk till den logiska volymen "lvstuff" som vi just skapat.

Installera och formatera ny hårddisk

För att installera en ny hårddisk följer du stegen ovan för att skapa en ny partition och lägga till ändring är partitionstypen till LVM( 8e).Använd sedan pvcreate för att skapa en fysisk volym som LVM kan känna igen.

Lägg till ny hårddisk till volymgrupp

För att lägga till den nya hårddisken i en volymgrupp behöver du bara veta vad din nya partition är, /dev/ sdc1 i vårt fall och namnet på den volymgrupp du vill lägga till den till.

Detta lägger till den nya fysiska volymen i befintlig volymgrupp.

vgextend vgpool /dev/ sdc1

Utöka logiskt volym

För att ändra storlek på den logiska volymen måste vi säga hur mycket vi vill förlänga efter storlek istället för per enhet. I vårt exempel har vi bara lagt till en 8 GB hårddisk till vår 3 GB vgpool. För att göra detta utrymme användbart kan vi använda lvextend eller lvresize.

lvextend -L8G /dev/vgpool/ lvstuff

Medan det här kommandot kommer att fungera ser du att det faktiskt kommer att ändra storlek på vår logiska volym till 8 GB istället för att lägga till 8 GB till den befintliga volymen som vi ville ha. För att lägga till de senaste 3 tillgängliga gigabyte måste du använda följande kommando.

lvextend -L + 3G /dev/vgpool/ lvstuff

Nu är vår logiska volym 11 GB i storlek.

Utök filsystemet

Den logiska volymen är 11 GB men filsystemet på den volymen är fortfarande bara 3 GB.För att filsystemet ska kunna använda hela 11 GB tillgängliga måste du använda kommandot resize2fs. Bara peka resize2fs till den 11 GB logiska volymen och det kommer att göra magiken för dig.

resize2fs /dev/vgpool/ lvstuff

Obs! Om du använder ett annat filsystem förutom ext3 / 4, se filsystemets resize-verktyg.

Krymp logiskt volym

Om du ville ta bort en hårddisk från en volymgrupp måste du följa ovanstående steg i omvänd ordning och använda lvreduce och vgreduce istället.

  1. ändra storlek på filsystemet( se till att flytta filer till ett säkert område på hårddisken innan du ändrar storlek)
  2. minska logisk volym( istället för + för att förlänga du kan också använda - för att minska efter storlek)
  3. ta bort hårddisken från volymgrupp med vgreduce

Säkerhetskopiera en logisk volym

Snapshots är en funktion som vissa nyare avancerade filsystem följer med, men ext3 / 4 saknar möjligheten att göra snapshots i flygningen. En av de coolaste sakerna om LVM-snapshots är att ditt filsystem aldrig tas offline och du kan ha så många du vill utan att ta upp extra hårddiskutrymme.

När LVM tar en ögonblicksbild tas en bild av exakt hur den logiska volymen ser ut och den bilden kan användas för att göra en kopia på en annan hårddisk. Medan en kopia görs, måste ny information som måste läggas till den logiska volymen skrivas till disken som normalt, men ändringar spåras så att den ursprungliga bilden aldrig blir förstörd.

För att skapa en stillbild behöver vi skapa en ny logisk volym med tillräckligt ledigt utrymme för att hålla ny information som kommer att skrivas till den logiska volymen när vi gör en säkerhetskopia. Om enheten inte skrivs aktivt kan du använda en mycket liten mängd lagringsutrymme. När vi är färdiga med vår backup tar vi bara bort den temporära logiska volymen och den ursprungliga logiska volymen fortsätter som normalt.

Skapa ny stillbild

För att skapa en stillbild av lvstuff använd kommandot lvcreate som tidigare men använd -s flaggan.

lvcreate -L512M -s -n lvstuffbackup /dev/vgpool/ lvstuff

Här skapade vi en logisk volym med endast 512 MB eftersom enheten inte används aktivt.512 MB lagrar alla nya skriv medan vi gör vår backup.

Montera ny stillbild

Precis som tidigare måste vi skapa en monteringspunkt och montera den nya ögonblicksbilden så att vi kan kopiera filer från den.

mkdir /mnt/ lvstuffbackup
montering /dev/vgpool/ lvstuffbackup /mnt/ lvstuffbackup

Kopiera ögonblicksbild och radera logiskt volym

Allt du har kvar är att kopiera alla filer från /mnt/lvstuffbackup/ till en extern hårddisk eller ta bort den så att det är allt i en fil.

Obs! Tar -c ska skapa ett arkiv och -f kommer att ange arkivets plats och filnamn. För hjälp med tjärkommandot använd man tar i terminalen.

tar -cf /home/rothgar/Backup/ lvstuff-ss /mnt/lvstuffbackup/

Kom ihåg att när säkerhetskopieringen äger rum kommer alla filer som skulle skrivas till lvstuff att spåras i den temporära logiska volymen vi skapade tidigare. Se till att du har tillräckligt med ledigt utrymme medan säkerhetskopieringen sker.

När säkerhetskopieringen är klar, avmontera volymen och ta bort den tillfälliga ögonblicksbilden.

omslag /mnt/ lvstuffbackup
lvremove /dev/vgpool/lvstuffbackup/

Radera en logisk volym

För att radera en logisk volym måste du först kontrollera att volymen är ommonterad, och sedan kan du använda lvremove för att radera den. Du kan också ta bort en volymgrupp när de logiska volymerna har raderats och en fysisk volym efter volymgruppen raderas.

Här är alla kommandon med de volymer och grupper vi har skapat.

omslag /mnt/ lvstuff
lvremove /dev/vgpool/ lvstuff
vgremove vgpool
pvremove /dev/ sdb1 /dev/ sdc1

Det bör täcka det mesta av vad du behöver veta för att använda LVM.Om du har lite erfarenhet om ämnet, var noga med att dela din visdom i kommentarerna.