Vad är Logical Volume Manager (LVM), varför behövs det och hur använder jag det? Detta är frågor som jag i denna artikel försöker besvara. Och har du ett Linuxsystem stående där hemma, antingen som desktop eller som server, eller om du tänkt att sätta upp ett nytt Linuxsystem kommer du nog behöva veta detta…
Om du planerar att installera en ny Linux-maskin så är ett starkt tips att ha LVM i åtanke när du startar installationen, sedan kan det vara för sent. LVM står för Logical Volume Manager och är en diskhanterare som ger dig som användare mycket stor flexibilitet och många möjligheter. Håller man bara tungan rätt i mun så är LVM den självklara diskhanteraren att använda idag. LVM frigör dig från begränsningar som utgörs av fysiska hårddiskar och låter dig istället dela upp, slå ihop och administrera diskar i princip hur du vill och när du vill utan någon nedtid på maskinen – allt sker online.
När man stoppar i en ny hårddisk i datorn lägger man till den i en volymgrupp. En volymgrupp kan innehålla oändligt många (LVM2) eller iallafall 255 (LVM1) diskar och man kan, om man vill, skapa flera volymgrupper på en maskin. Begränsningen är att en disk aldrig kan tillhöra mer än en volymgrupp. Varje volymgrupp kan du sedan dela upp i logiska volymer, vilket motsvarar partitioner om man inte använder LVM med den skillnaden att en logisk volym mycket väl kan vara större än en disk. På den logiska volymen skapar man sedan ett filsystem, t.ex. ext4, swap eller vfat.
Om man lägger till två eller fler fysiska diskar i en volymgrupp samtidigt kommer LVM att skapa stripes om 4 MB (självklart inställbart) på dessa. Striping brukar kallas för RAID0 och innebär att man försöker distribuera datat över diskarna så att skrivningar och läsningar görs med så många hårddiskhuvuden som möjligt för att korta svarstiderna. Skulle LVM inte stripea skulle man få egenskapen att allt skrivs och läses på första disken, tills den är full och all ny skrivning hamnar på den andra disken, vilket inte är optimalt prestandamässigt. Med striping skrivs istället 4 MB på ena disken, innan det börjar skriva på andra disken och så vidare.
Vidare kan man med hjälp av LVM skapa speglade diskar eller så skallade snapshots väldigt enkelt. Lägg bara till diskarna med en parameter för hur många spegelkopior du vill ha så fixar det sig i princip själv. Speglade diskar kallas även RAID1, och kombinerar man det med striping får man RAID 1+0 eller RAID10. Snapshot är ett sätt att ta backup, genom att göra en omedelbar spegling, slå isär spegeln och sedan (eventuellt) ta backup på snapshot-kopian till tape eller optisk media.
Men för den vanliga användaren är vi nu lite inne på överkurs. Vi hoppar istället tillbaka några steg. Tänk dig att du bara har en disk på 100GB och märker att den börjar bli full. Du går då ut och köper en ny disk på kanske 500GB och stoppar in den i maskinen. Det tråkiga med det normala sättet att hantera diskar är att du då måste montera den nya disken nånstans och börja flytta över data till den. Med LVM lägger du bara in disken i volymgruppen och utökar den logiska volymen. Sedan utökar du filsystemet att innehålla det nya tillgängliga utrymmet. Smidigt! LVM kan vara en vän även vid installation av ditt nya operativsystem, då du slipper sätta dig i samma situation som jag gjort ett flertal gånger tidigare. Du partitionerar disken och installerar, bara för att efter några månader upptäcka att partitionen som håller din databas håller på att ta slut. I LVM skapar du istället dina logiska volymer men lämnar en viss del av diskutrymmet oallokerat. När du sedan ser att databasdisken, eller någon annan disk börjar bli full så lägger du enkelt in lite av det oallokerade datat i den volym som behöver det bäst.
Jag kanske tjatar, men jag försöker öva in det åt dig eftersom jag vet hur svårt jag själv hade att ta till mig detta när det var nytt för ett tiotal år sedan: Fysiska volymer läggs in i Volymgrupper. Volymgrupper delas upp i Logiska volymer och på de Logiska volymerna skapar du filsystemen du vill kunna utnyttja. Och så här enkelt görs det:
Initiera disken för användning i LVM (pv i kommandot står för Physical Volume):
# pvcreate /dev/sda2
Lägg till disken i volymgrupp som här heter vg_root (vg står för Volume Group):
# vgextend vg_root /dev/sda2
Utöka den logisk volymen lv_root som finns i volymgruppen med det nya tillgängliga datat från sda2 (lv står för Logical Volume):
# lvextend vg_root/lv_root /dev/sda2
Ändra storleken på filsystemet så att det nya datat kan användas (fs = File System):
# fsadm resize vg_root/lv_root
Det enda som tar tid i ovanstående exempel är fsadm, som kan ta några minuter att genomföra beroende på diskstorlek och last på diskarna. För allt det vi gjort nu kan göras online, i ett system som inte tagits ned under en enda sekund. Så här ser det ut när fsadm jobbar:
# fsadm resize vg_root/lv_root
resize2fs 1.41.4 (27-Jan-2009)
Filesystem at /dev/mapper/vg_root-lv_root is mounted on /; on-line resizing required
old desc_blocks = 23, new_desc_blocks = 37
Performing an on-line resize of /dev/mapper/vg_root-lv_root to 151597056 (4k) blocks.
The filesystem on /dev/mapper/vg_root-lv_root is now 151597056 blocks long.
Ytterligare kommandon som kan vara användbara är pvdisplay, vgdisplay och lvdisplay som man kan använda för att titta på resultatet av det man gjort. Släng på flaggan -v så får du ännu mer information. Här nedanför ser du resultatet av vår utökade logiska volym:
# lvdisplay vg_root/lv_root
--- Logical volume ---
LV Name /dev/vg_root/lv_root
VG Name vg_root
LV UUID InXtg2-Kjhp-9GBq-yJL3-IqeA-mwG3-0cF4xb
LV Write Access read/write
LV Status available
# open 1
LV Size 578.30 GB
Current LE 148044
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
Så mycket mer än så behöver man inte veta egentligen. Visserligen är möjligheterna oändliga och det finns miljoner olika sätt att ställa in och konfigurera LVM, vilket kanske är viktigt om du har en hårt lastad server som ska fungera helt optimalt, men man behöver inte krångla till det i onödan. Är det något man undrar över får man god hjälp av kommandonas man-sidor eller genom en enkel sökning på internet.
Fler intressanta bloggar om: LVM, Logical Volume Manager, Linux, LVM2
TweetKanske kan dessa artiklar också vara av intresse?



Senaste kommentarerna