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

    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 LVMs nyckelhanteringsverktyg så att du är säker när du installerar eller utökar din installation.

    Som tidigare sagt är LVM ett abstraktionslager mellan ditt operativsystem 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 RAID-programvara.

    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 av kommandona i LVM är mycket lika varandra. Varje giltigt kommando föregås av ett av följande:

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

    De fysiska volymkommandon är för att lägga till eller ta bort hårddiskar i volymgrupper. Volymgruppkommandon ä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 är 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. De s och visa kommandon arbetar 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 nuvarande inställningarna.

    De visa Kommandot formaterar informationen så att det är lättare att förstå än s kommando. 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 kommer att vara PV-namnet och VG-namnet. Med dessa två bitar av information kan vi fortsätta arbeta med LVM-inställningen.

    Skapa en logisk 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 det. 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 partitioneras innan du förmodligen kommer se något så här 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 mängd 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ärpartition 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 partitionen 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 = ändras till LVM-partitionstyp

    Verifiera och skriv informationen till hårddisken.

    • p = visa partition setup så vi kan granska innan du skriver ändringar till disken
    • w = skriv ändringar till disken

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

    Stiga på 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 utsedd och fysisk volym 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 en 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 det här fallet 3 GB, och kommandot -n anger volymen. Vgpool refereras så att kommandot lvcreate vet vilken volym som ska hämta utrymmet.

    Formatera och montera den 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 volymen någonstans där du kan använda den.

    mkdir / mnt / stuff
    montera -t ext3 / dev / vgpool / lvstuff / mnt / stuff

    Ändra storlek på en logisk 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. Istä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 exempel på 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å volymgruppen du vill lägga till den till.

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

    vgextend vgpool / dev / sdc1

    Förläng 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öka 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.

    Krympa logiskt volym

    Om du vill 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 volymgruppen med vgreduce

    Säkerhetskopiera ett logiskt volym

    Snapshots är en funktion som vissa nyare avancerade filsystem kommer 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 ögonblicksbild 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 aktivt skrivs 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 ögonblicksbild

    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 ögonblicksbild

    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
    mount / dev / vgpool / lvstuffbackup / mnt / lvstuffbackup

    Kopiera ögonblicksbild och radera logiskt volym

    Allt du behöver göra ä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 kommer att skapa ett arkiv och -f ska ange plats och filnamn i arkivet. För hjälp med tjärkommandot använd man tjära i terminalen.

    tjära -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.

    omount / 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.

    omount / 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 erfarenhet av ämnet, var noga med att dela din visdom i kommentarerna.