LVM: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
 
(4 mellanliggande sidversioner av samma användare visas inte)
Rad 1: Rad 1:
=== LVM "Logical Volume Manager" ===
== LVM(8) — Systemadministrationsmanual ==
är ett verktyg som tillåter för hantering av lagringsenheter på ett flexibelt sätt. Med LVM kan du skapa, ändra och radera logiska volymer eller partitioner på hårddiskar och andra lagringsenheter utan att behöva stänga av systemet. Detta ger en större flexibilitet jämfört med traditionella partitioneringsmetoder.


Några av de viktigaste funktionerna med LVM inkluderar möjligheten att:
=== NAMN ===
'''lvm''' — LVM2-verktyg


* Ändra storlek på volymer: Du kan utöka eller minska storleken på logiska volymer dynamiskt, vilket är praktiskt när dina lagringsbehov förändras.
=== SYNOPSIS ===
* Snapshots: Möjlighet att ta ögonblicksbilder (snapshots) av systemet vid en viss tidpunkt, vilket kan vara användbart för backup och återställning.
'''lvm''' [kommando|fil]
* Striping och mirroring: Förbättra prestanda genom att stripa data över flera fysiska enheter eller öka dataredundans genom att spegla data på två eller fler enheter.


Genom att använda LVM kan SysOpen och användare hantera diskutrymme mer effektivt och flexibelt, anpassa lagringskonfigurationer efter behov utan att förlora data eller drifttid.
=== BESKRIVNING ===
Den Logiska Volymhanteraren (LVM) tillhandahåller verktyg för att skapa virtuella blockenheter från fysiska enheter. Virtuella enheter kan vara lättare att hantera än fysiska enheter och kan ha funktioner som går utöver vad de fysiska enheterna själva erbjuder. En Volymgrupp (VG) är en samling av en eller flera fysiska enheter, var och en kallad en Fysisk Volym (PV). En Logisk Volym (LV) är en virtuell blockenhet som kan användas av systemet eller applikationer. Varje datablock i en LV lagras på en eller flera PV i VG, enligt algoritmer implementerade av Device Mapper (DM) i kärnan.


Kommandoverktyget '''lvm''' och andra kommandon som listas nedan är de kommandoradsverktyg som används för LVM. En separat manualbeskrivning beskriver varje kommando i detalj.


Att använda LVM (Logical Volume Manager) i Linux är ett kraftfullt sätt att hantera lagringsutrymmet mer flexibelt jämfört med traditionella partitioneringsmetoder. Med LVM kan du enkelt ändra storleken på volymer, skapa snapshots och hantera lagringsenheter över flera fysiska diskar. Här är en grundläggande guide för att komma igång med LVM:
Om '''lvm''' anropas utan argument visas en readline-prompt (förutsatt att det kompilerades med readline-stöd). LVM-kommandon kan anges interaktivt vid denna prompt med readline-funktioner inklusive historik och komplettering av kommandonamn och alternativ. Se '''readline(3)''' för detaljer.


==== Installera LVM ====
Om '''lvm''' anropas med '''argv[0]''' satt till namnet på ett specifikt LVM-kommando (t.ex. genom att använda en hård eller mjuk länk) fungerar det som det kommandot.
Först och främst, se till att LVM är installerat på ditt system. På de flesta Linux-distributioner kan du installera LVM med ditt pakethanteringssystem. Till exempel, på Ubuntu eller Debian-baserade system, kör:


Vid anrop kräver '''lvm''' att endast de standardfilbeskrivarna '''stdin''', '''stdout''' och '''stderr''' är tillgängliga. Om andra hittas stängs de och meddelanden utfärdas som varnar om läckan. Denna varning kan undertryckas genom att sätta miljövariabeln '''LVM_SUPPRESS_FD_WARNINGS'''.


<code>sudo apt update && sudo apt install lvm2</code>
Där kommandon tar VG- eller LV-namn som argument är det fullständiga sökvägsnamnet valfritt. En LV som heter "lvol0" i en VG som heter "vg0" kan specificeras som "vg0/lvol0". Om en lista över VG:er krävs men lämnas tom, ersätts en lista över alla VG:er. Om en lista över LV:er krävs men en VG anges, ersätts en lista över alla LV:er i den VG:n. Så '''lvdisplay vg0''' visar alla LV:er i "vg0". Taggar kan också användas - se '''--addtag''' nedan.


==== Förbereda Fysiska Volymen ====
En fördel med att använda det inbyggda skalet är att konfigurationsinformation lagras internt mellan kommandon.
För att använda en disk eller partition med LVM, måste du först konvertera den till en "fysisk volym" (PV). Anta att du vill använda `/dev/sda1` som en del av ditt LVM-system, kör då:


En fil som innehåller ett enkelt skript med ett kommando per rad kan också anges på kommandoraden. Skriptet kan också köras direkt om den första raden är '''#!''' följt av den absoluta sökvägen till '''lvm'''.


<code>sudo pvcreate /dev/sda1</code>
Ytterligare bindestreck inom alternativnamn ignoreras. Till exempel accepteras både '''--readonly''' och '''--read-only'''.


=== INBYGGDA KOMMANDON ===
Följande kommandon är inbyggda i '''lvm''' utan att länkar normalt skapas i filsystemet för dem:


Du kan kontrollera statusen för dina fysiska volymer med `pvdisplay`.
* '''config''' - Samma som '''lvmconfig(8)''' nedan.
* '''devtypes''' - Visa de erkända inbyggda blockenhetstyperna.
* '''dumpconfig''' - Samma som '''lvmconfig(8)''' nedan.
* '''formats''' - Visa erkända metadataformat.
* '''fullreport''' - Rapportera information om PV:er, PV-segment, VG:er, LV:er och LV-segment, allt på en gång.
* '''help''' - Visa hjälptexten.
* '''lastlog''' - Visa loggrapporten för senaste kommando som kördes i LVM-skalet om kommandologgrapportering är aktiverad.
* '''lvpoll''' - Slutför '''lvmpolld'''-operationer (internt kommando).
* '''segtypes''' - Visa erkända logiska volymsegmenttyper.
* '''systemid''' - Visa system-ID som för närvarande är inställt på denna värd.
* '''tags''' - Visa eventuella taggar som definierats på denna värd.
* '''version''' - Visa versionsinformation.


==== Skapa Volymgruppen ====
=== KOMMANDON ===
En volymgrupp (VG) är en pool av lagringsutrymme som består av en eller flera fysiska volymer. Du kan skapa en volymgrupp med `vgcreate` kommandot. Till exempel, för att skapa en volymgrupp som heter `vg01` med `/dev/sda1`, kör:
Följande kommandon implementerar kärnfunktionaliteten i LVM:


* '''[[pvchange]]''' - Ändra attribut för en fysisk volym.
* '''[[pvck]]''' - Kontrollera metadata för en fysisk volym.
* '''[[pvcreate]]''' - Initiera en disk eller partition för användning av LVM.
* '''[[pvdisplay]]''' - Visa attribut för en fysisk volym.
* '''[[pvmove]]''' - Flytta fysiska extenter.
* '''[[pvremove]]''' - Ta bort en fysisk volym.
* '''[[pvresize]]''' - Ändra storlek på en disk eller partition som används av LVM2.
* '''[[pvs]]''' - Rapportera information om fysiska volymer.
* '''[[pvscan]]''' - Skanna alla diskar efter fysiska volymer.
* '''[[vgcfgbackup]]''' - Säkerhetskopiera volymgruppens beskrivningsområde.
* '''[[vgcfgrestore]]''' - Återställ volymgruppens beskrivningsområde.
* '''[[vgchange]]''' - Ändra attribut för en volymgrupp.
* '''[[vgck]]''' - Kontrollera metadata för en volymgrupp.
* '''[[vgconvert]]''' - Konvertera metadataformatet för en volymgrupp.
* '''[[vgcreate]]''' - Skapa en volymgrupp.
* '''[[vgdisplay]]''' - Visa attribut för volymgrupper.
* '''[[vgexport]]''' - Gör volymgrupper okända för systemet.
* '''[[vgextend]]''' - Lägg till fysiska volymer till en volymgrupp.
* '''[[vgimport]]''' - Gör exporterade volymgrupper kända för systemet.
* '''[[vgimportclone]]''' - Importera och döp om duplicerad volymgrupp (t.ex. en hårdvarusnapshot).
* '''[[vgimportdevices]]''' - Lägg till PV:er från en VG till enhetsfilen.
* '''[[vgmerge]]''' - Slå samman två volymgrupper.
* '''[[vgmknodes]]''' - Återskapa volymgruppens katalog och logiska volymens specialfiler.
* '''[[vgreduce]]''' - Minska en volymgrupp genom att ta bort en eller flera fysiska volymer.
* '''[[vgremove]]''' - Ta bort en volymgrupp.
* '''[[vgrename]]''' - Byt namn på en volymgrupp.
* '''[[vgs]]''' - Rapportera information om volymgrupper.
* '''[[vgscan]]''' - Skanna alla diskar efter volymgrupper.
* '''[[vgsplit]]''' - Dela en volymgrupp i två och flytta eventuella logiska volymer från en volymgrupp till en annan genom att flytta hela fysiska volymer.
* '''[[lvchange]]''' - Ändra attribut för en logisk volym.
* '''[[lvconvert]]''' - Konvertera en logisk volym från linjär till spegling eller snapshot.
* '''[[lvcreate]]''' - Skapa en logisk volym i en befintlig volymgrupp.
* '''[[lvdisplay]]''' - Visa attribut för en logisk volym.
* '''[[lvextend]]''' - Utöka storleken på en logisk volym.
* '''[[lvmconfig]]''' - Visa konfigurationsinformationen efter att '''[[lvm.conf]](5)''' och andra konfigurationsfiler har laddats.
* '''[[lvmdevices]]''' - Hantera enhetsfilen.
* '''[[lvmdiskscan]]''' - Skanna efter alla enheter synliga för LVM2.
* '''[[lvmdump]]''' - Skapa LVM2-informationsdumpningar för diagnostiska ändamål.
* '''[[lvreduce]]''' - Minska storleken på en logisk volym.
* '''[[lvremove]]''' - Ta bort en logisk volym.
* '''[[lvrename]]''' - Byt namn på en logisk volym.
* '''[[lvresize]]''' - Ändra storleken på en logisk volym.
* '''[[lvs]]''' - Rapportera information om logiska volymer.
* '''[[lvscan]]''' - Skanna (alla diskar) efter logiska volymer.


<code>sudo vgcreate vg01 /dev/sda1</code>
Följande LVM1-kommandon är inte implementerade i LVM2:
* '''[[lvmchange]]''', '''[[lvmsadc]]''', '''[[lvmsar]]''', '''[[pvdata]]'''. För prestandamått, använd '''[[dmstats]](8)''' eller för att manipulera kärnans device-mapper-drivrutin som används av LVM2 direkt, använd '''[[dmsetup]](8)'''.


Använd `vgdisplay` för att visa information om dina volymgrupper.
=== GILTIGA NAMN ===
De giltiga tecknen för VG- och LV-namn är: a-z, A-Z, 0-9, +, _, ., -.


==== Skapa Logiska Volymen ====
VG-namn får inte börja med ett bindestreck. Namnet på en ny LV får inte heller börja med ett bindestreck. Om konfigurationsinställningen '''metadata/record_lvs_history''' är aktiverad innebär dock ett LV-namn med ett bindestreck som prefix att LV:en har tagits bort men fortfarande spåras eftersom det utgör en del av historiken för minst en LV som fortfarande finns kvar. Detta hjälper till att registrera anor för tunna snapshots även efter att vissa länkar i kedjan har tagits bort. En hänvisning till den historiska LV "lvol1" i VG "vg00" skulle vara "vg00/-lvol1" eller bara "-lvol1" om VG redan är inställd. (Den senare formen måste föregås av '''--''' för att avsluta kommandoradsalternativsbearbetningen innan detta argument nås.)
Inom en volymgrupp kan du skapa en eller flera logiska volymer (LV). Det här är de "partitioner" som du faktiskt kommer att formatera och montera. För att skapa en logisk volym, använd `lvcreate`. Till exempel, för att skapa en logisk volym som heter `lv01` inom `vg01` med en storlek av 10GB, kör:


<code>sudo lvcreate -L 10G -n lv01 vg01</code>
Det finns också olika reserverade namn som används internt av '''lvm''' och som inte kan användas som LV- eller VG-namn. En VG kan inte heta något som existerar i '''/dev/''' vid skapandet, och den kan inte heller heta '.' eller '..'. En LV kan inte heta '.', '..', 'snapshot' eller 'pvmove'. LV-namnet får inte heller innehålla något av följande strängar: '_cdata', '_cmeta', '_corig', '_iorig', '_mimage', '_mlog', '_pmspare', '_rimage', '_rmeta', '_tdata', '_tmeta', '_vdata', '_vorigin' eller '_wcorig'. En katalog med namnet på varje Volymgrupp skapas under '''/dev''' när någon av dess Logiska Volymer aktiveras. Varje aktiv Logisk Volym är tillgänglig från denna katalog som en symbolisk länk som leder till en enhetsnod. Länkar eller noder i '''/dev/mapper''' är endast avsedda för internt bruk och det exakta formatet och escapingen kan förändras mellan versioner och distributioner. Andra programvaror och skript bör använda formatet '''/dev/VolumeGroupName/LogicalVolumeName''' för att minska risken för att behöva ändras när programvaran uppdateras. Om du behöver bearbeta nodnamnen i '''/dev/mapper''', kan du använda '''dmsetup splitname''' för att separera originalnamnet på VG, LV och interna lagernamn.


Du kan se dina logiska volymer med `lvdisplay`.
=== UNIKA NAMN ===
VG-namn bör vara unika. '''vgcreate''' ger ett fel om det angivna VG-namnet matchar ett befintligt VG-namn. Det finns dock fall där olika VG:er med samma namn kan visas för LVM, t.ex. efter att diskar har flyttats eller filter har ändrats.


==== Formatera och Montera den Logiska Volymen ====
När VG:er med samma namn existerar kommer kommandon som arbetar på alla VG:er att inkludera alla VG:er med samma namn. Om det tvetydiga VG-namnet anges på kommandoraden kommer kommandot att ge ett fel. Felet anger att flera VG:er existerar med det angivna namnet. För att bearbeta en av VG:erna specifikt bör alternativet '''--select''' användas med UUID för den avsedda VG:n: '''--select vg_uuid=<uuid>'''.
Nu när du har skapat en logisk volym, kan du formatera den med ett filsystem och sedan montera den. Till exempel, för att formatera `lv01` med ext4 och montera den:


Ett undantag är om alla utom en av VG:erna med det delade namnet är främmande (se '''lvmsystemid(7)'''). I detta fall antas den VG som inte är främmande vara den avsedda VG:n och bearbetas.


<code>sudo mkfs.ext4 /dev/vg01/lv01</code>
LV-namn är unika inom en VG. Namnet på en historisk LV kan inte återanvändas förrän den historiska LV:n själv har tagits bort eller bytt namn.


<code>sudo mount /dev/vg01/lv01 /mnt/myvolume</code>
=== ALLOKERING ===
När en operation behöver allokera Fysiska Extenter för en eller flera Logiska Volymer fortsätter verktygen enligt följande:


Först genererar de den kompletta uppsättningen ej allokerade Fysiska Extenter i Volymgruppen. Om några intervall av Fysiska Extenter anges i slutet av kommandoraden övervägs endast ej allokerade Fysiska Extenter inom dessa intervall på de angivna Fysiska Volymerna.


Byt ut `/mnt/myvolume` med den katalog där du vill montera volymen.
Sedan försöker de varje allokeringspolicy i tur och ordning, med början med den striktaste policyn (kontinuerlig) och slutar med den allokeringspolicy som anges med '''--alloc''' eller som standard för den specifika Logiska Volymen eller Volymgruppen i fråga. För varje policy, från den lägsta numrerade Logiska Extenten i det tomma Logiska Volymutrymmet som behöver fyllas, allokerar de så mycket utrymme som möjligt enligt de restriktioner som åläggs av policyn. Om mer utrymme behövs går de vidare till nästa policy.


==== Hantera LVM ====
Restriktionerna är följande:


===== Ändra storlek på en logisk volym: =====
* '''Kontinuerlig''' kräver att den fysiska platsen för varje Logisk Extent som inte är den första Logiska Extenten i en Logisk Volym är intill den fysiska platsen för den Logiska Extent som omedelbart föregår den.
Du kan utöka eller minska storleken på en logisk volym med `lvextend` eller `lvreduce`.


===== Skapa snapshots =====
* '''Cling''' kräver att den Fysiska Volym som används för varje Logisk Extent som läggs till en befintlig Logisk Volym redan används av minst en Logisk Extent tidigare i den Logiska Volymen. Om konfigurationsparametern '''allocation/cling_tag_list''' är definierad, betraktas två Fysiska Volymer som matchande om någon av de listade taggarna finns på båda Fysiska Volymerna. Detta tillåter grupper av Fysiska Volymer med liknande egenskaper (t.ex. deras fysiska plats) att taggas och behandlas som ekvivalenta för allokeringsändamål.
LVM tillåter dig att skapa [[snapshots]] av dina logiska volymer, vilket kan vara användbart för säkerhetskopior.


===== Ta bort volymer =====
När en Logisk Volym är strimlad eller speglad tillämpas ovanstående restriktioner oberoende på varje strimma eller spegelbild (ben) som behöver utrymme.
Om du inte längre behöver en logisk volym, kan du ta bort den med `lvremove`.


LVM är ett kraftfullt verktyg som erbjuder mycket flexibilitet, men det är också komplicerat. Se till att du förstår de kommandon du använder och deras effekter, särskilt när det gäller att ändra storlek på och ta bort volymer, eftersom felaktiga åtgärder kan leda till datarförlust. För djupare förståelse och avancerade funktioner, kolla in `man` sidorna för de olika LVM-kommandona (`man pvcreate`, `man vgcreate`, `man lvcreate`, etc.).
* '''Normal''' väljer inte en Fysisk Extent som delar samma Fysiska Volym som en Logisk Extent redan allokerad till en parallell Logisk Volym (dvs. en annan strimma eller spegelbild/ben) vid samma förskjutning inom den parallella Logiska Volymen.
[[Kategori:Filssystem]]
 
[[Kategori:LVM]]
Vid allokering av en spegel-logg samtidigt som Logiska Volymer för att hålla spegeldata kommer '''Normal''' först försöka välja olika Fysiska Volymer för loggen och datan. Om det inte är möjligt och konfigurationsparametern '''allocation/mirror_logs_require_separate_pvs''' är satt till 0 tillåts loggen dela Fysisk Volym med en del av datan.
 
Vid allokering av tunna poolmetadata gäller liknande överväganden som för en spegellogg i föregående stycke baserat på värdet av konfigurationsparametern '''allocation/thin_pool_metadata_require_separate_pvs'''.
 
Om du förlitar dig på någon layoutbeteende utöver det som dokumenteras här, var medveten om att det kan förändras i framtida versioner av koden.
 
Om du till exempel anger två tomma Fysiska Volymer på kommandoraden som har ett identiskt antal lediga Fysiska Extenter tillgängliga för allokering, överväger den aktuella koden att använda var och en av dem i den ordning de listas, men det finns ingen garanti för att framtida utgåvor kommer att behålla den egenskapen. Om det är viktigt att få en specifik layout för en viss Logisk Volym, bör du bygga upp den genom en sekvens av '''lvcreate(8)''' och '''lvconvert(8)''' steg så att de restriktioner som beskrivs ovan tillämpas på varje steg och verktygen inte har något handlingsutrymme för layouten.
 
För att visa hur allokeringsprocessen för närvarande fungerar i ett specifikt fall, läs debugloggutmatningen, till exempel genom att lägga till '''-vvvv''' till ett kommando.
 
=== LOGISKA VOLYM TYPER ===
Vissa logiska volymtyper är enkla att skapa och kan göras med ett enda '''lvcreate(8)'''-kommando. De linjära och strimlade logiska volymtyperna är exempel på detta. Andra logiska volymtyper kan kräva mer än ett kommando för att skapa. Cache ('''lvmcache(7)''') och tunna provisioneringar ('''lvmthin(7)''') är exempel på detta.
 
=== DIAGNOSTIK ===
Alla verktyg returnerar en statuskod på noll vid framgång eller en icke-nollkod vid fel. De icke-nollkoderna skiljer endast mellan de breda kategorierna av oidentifierade kommandon, problem med att bearbeta kommandoradsargument och andra fel. Eftersom LVM är under aktiv utveckling, ändras koden som används i ett specifikt fall ibland mellan utgåvor. Meddelandetext kan också ändras.
 
=== MILJÖVARIABLER ===
* '''HOME''' - Katalogen som innehåller '''.lvm_history''' om det interna readline-skalet anropas.
* '''LVM_OUT_FD''' - Filbeskrivare som används för gemensam utmatning från LVM-kommandon.
* '''LVM_ERR_FD''' - Filbeskrivare som används för felutmatning från LVM-kommandon.
* '''LVM_REPORT_FD''' - Filbeskrivare som används för rapportutmatning från LVM-kommandon.
* '''LVM_COMMAND_PROFILE''' - Namn på standardkommandoprofil som ska användas för LVM-kommandon. Denna profil åsidosätts av direkt användning av '''--commandprofile'''-kommandoradsalternativ.
* '''LVM_RUN_BY_DMEVENTD''' - Denna variabel är normalt inställd av dmeventd-plugin för att informera LVM2-kommandot om att det körs från dmeventd-plugin så att LVM2 vidtar vissa extra åtgärder för att undvika kommunikation och dödlägen med dmeventd.
* '''LVM_SYSTEM_DIR''' - Katalog som innehåller '''lvm.conf(5)''' och andra LVM-systemfiler. Standard är "/etc/lvm".
* '''LVM_SUPPRESS_FD_WARNINGS''' - Undertryck varningar om oväntade filbeskrivare som skickas till LVM.
* '''LVM_SUPPRESS_SYSLOG''' - Undertryck kontakt med syslog.
* '''LVM_VG_NAME''' - Volymgruppens namn som antas för varje referens till en Logisk Volym som inte specificerar en sökväg. Inte inställd som standard.
* '''LVM_LVMPOLLD_PIDFILE''' - Sökvägen till filen som lagrar '''lvmpolld'''-process-ID.
* '''LVM_LVMPOLLD_SOCKET''' - Sökvägen till socketen som används för att kommunicera med '''lvmpolld'''.
* '''LVM_LOG_FILE_EPOCH''' - En sträng med upp till 32 bokstäver som läggs till loggfilens namn och följt av process-ID och en starttidsstämpel som använder detta formatsträng '''_%s_%d_%llu'''. När den är inställd loggas varje process till en separat fil.
* '''LVM_LOG_FILE_MAX_LINES''' - Om fler än detta antal rader skickas till loggfilen avbryts kommandot. Automatiserade tester använder detta för att avsluta loopande kommandon.
* '''LVM_EXPECTED_EXIT_STATUS''' - Statusen som förväntas när processen avslutas. Använd '''>N''' för att matcha vilken status som helst större än N. Om den faktiska utgångsstatusen matchar och en loggfil producerades, raderas den. '''LVM_LOG_FILE_EPOCH''' och '''LVM_EXPECTED_EXIT_STATUS''' tillsammans tillåter automatiserade testscripts att kassera ointressant loggdata.
* '''LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES''' - Används för att undertrycka varningsmeddelanden när den konfigurerade låsningen är känd för att vara otillgänglig.
* '''DM_ABORT_ON_INTERNAL_ERRORS''' - Avbryt bearbetningen om koden upptäcker ett icke-fatal internt fel.
* '''DM_DISABLE_UDEV''' - Undvik interaktion med udev. LVM hanterar de relevanta noderna i '''/dev''' direkt.
* '''DM_DEBUG_WITH_LINE_NUMBERS''' - Förprependrar källfilnamn och kodradnummer med libdm-debugging.
 
=== FILER ===
* '''/etc/lvm/lvm.conf'''
* '''$HOME/.lvm_history'''
 
=== SE ÄVEN ===
* '''[[lvm]](8)''', '''[[lvm.conf]](5)''', '''[[lvmconfig]](8)''', '''[[lvmdevices]](8)'''
* '''[[pvchange]](8)''', '''[[pvck]](8)''', '''[[pvcreate]](8)''', '''[[pvdisplay]](8)''', '''[[pvmove]](8)''', '''[[pvremove]](8)''', '''[[pvresize]](8)''', '''[[pvs]](8)''', '''[[pvscan]](8)'''
* '''[[vgcfgbackup]](8)''', '''[[vgcfgrestore]](8)''', '''[[vgchange]](8)''', '''[[vgck]](8)''', '''[[vgcreate]](8)''', '''[[vgconvert]](8)''', '''[[vgdisplay]](8)''', '''[[vgexport]](8)''', '''[[vgextend]](8)''', '''[[vgimport]](8)''', '''[[vgimportclone]](8)''', '''[[vgimportdevices]](8)''', '''[[vgmerge]](8)''', '''[[vgmknodes]](8)''', '''[[vgreduce]](8)''', '''[[vgremove]](8)''', '''[[vgrename]](8)''', '''[[vgs]](8)''', '''[[vgscan]](8)''', '''[[vgsplit]](8)'''
* '''[[lvcreate]](8)''', '''[[lvchange]](8)''', '''[[lvconvert]](8)''', '''[[lvdisplay]](8)''', '''[[lvextend]](8)''', '''[[lvreduce]](8)''', '''[[lvremove]](8)''', '''[[lvrename]](8)''', '''[[lvresize]](8)''', '''[[lvs]](8)''', '''[[lvscan]](8)'''
* '''[[lvm-fullreport]](8)''', '''[[lvm-lvpoll]](8)''', '''[[blkdeactivate]](8)''', '''lvmdump(8)'''
* '''[[dmeventd]](8)''', '''[[lvmpolld]](8)''', '''[[lvmlockd]](8)''', '''[[lvmlockctl]](8)''', '''[[cmirrord]](8)''', '''[[lvmdbusd]](8)''', '''[[fsadm]](8)'''
* '''[[lvmsystemid]](7)''', '''[[lvmreport]](7)''', '''[[lvmcache]](7)''', '''[[lvmraid]](7)''', '''[[lvmthin]](7)''', '''[[lvmvdo]](7)''', '''[[lvmautoactivation]](7)'''
* '''[[dmsetup]](8)''', '''[[dmstats]](8)''', '''[[readline]](3)'''
 
=== COLOFON ===
Denna sida är en del av '''lvm2'''-projektet (Logisk Volymhanterare 2). Information om projektet finns på ⟨http://www.sourceware.org/lvm2/⟩. Om du har en felrapport för denna manual sida, se ⟨https://github.com/lvmteam/lvm2/issues⟩. Denna sida hämtades från projektets uppströms-Git-repository ⟨git://sourceware.org/git/lvm2.git⟩ den 14 juni 2024. (Vid den tidpunkten var datumet för den senaste committen som hittades i repositoryn den 11 juni 2024.) Om du upptäcker några renderingsproblem i denna HTML-version av sidan, eller om du tror att det finns en bättre eller mer uppdaterad källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i denna '''COLOFON''' (som inte är en del av den ursprungliga manualsidan), skicka ett mail till '''man-pages@man7.org'''.
 
'''Red Hat, Inc.'''
: LVM TOOLS 2.03.25(2)-git (16 maj 2024)
<-- lvm(8)
= Sidslut =
<hr>
Det här är en maskinöversättning av linux kommando manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
<BR><BR>Tack till [https://datorhjalp.se Datorhjälp] som har  sponsrat Linux.se med webserver.

Nuvarande version från 25 augusti 2024 kl. 15.36

LVM(8) — Systemadministrationsmanual

NAMN

lvm — LVM2-verktyg

SYNOPSIS

lvm [kommando|fil]

BESKRIVNING

Den Logiska Volymhanteraren (LVM) tillhandahåller verktyg för att skapa virtuella blockenheter från fysiska enheter. Virtuella enheter kan vara lättare att hantera än fysiska enheter och kan ha funktioner som går utöver vad de fysiska enheterna själva erbjuder. En Volymgrupp (VG) är en samling av en eller flera fysiska enheter, var och en kallad en Fysisk Volym (PV). En Logisk Volym (LV) är en virtuell blockenhet som kan användas av systemet eller applikationer. Varje datablock i en LV lagras på en eller flera PV i VG, enligt algoritmer implementerade av Device Mapper (DM) i kärnan.

Kommandoverktyget lvm och andra kommandon som listas nedan är de kommandoradsverktyg som används för LVM. En separat manualbeskrivning beskriver varje kommando i detalj.

Om lvm anropas utan argument visas en readline-prompt (förutsatt att det kompilerades med readline-stöd). LVM-kommandon kan anges interaktivt vid denna prompt med readline-funktioner inklusive historik och komplettering av kommandonamn och alternativ. Se readline(3) för detaljer.

Om lvm anropas med argv[0] satt till namnet på ett specifikt LVM-kommando (t.ex. genom att använda en hård eller mjuk länk) fungerar det som det kommandot.

Vid anrop kräver lvm att endast de standardfilbeskrivarna stdin, stdout och stderr är tillgängliga. Om andra hittas stängs de och meddelanden utfärdas som varnar om läckan. Denna varning kan undertryckas genom att sätta miljövariabeln LVM_SUPPRESS_FD_WARNINGS.

Där kommandon tar VG- eller LV-namn som argument är det fullständiga sökvägsnamnet valfritt. En LV som heter "lvol0" i en VG som heter "vg0" kan specificeras som "vg0/lvol0". Om en lista över VG:er krävs men lämnas tom, ersätts en lista över alla VG:er. Om en lista över LV:er krävs men en VG anges, ersätts en lista över alla LV:er i den VG:n. Så lvdisplay vg0 visar alla LV:er i "vg0". Taggar kan också användas - se --addtag nedan.

En fördel med att använda det inbyggda skalet är att konfigurationsinformation lagras internt mellan kommandon.

En fil som innehåller ett enkelt skript med ett kommando per rad kan också anges på kommandoraden. Skriptet kan också köras direkt om den första raden är #! följt av den absoluta sökvägen till lvm.

Ytterligare bindestreck inom alternativnamn ignoreras. Till exempel accepteras både --readonly och --read-only.

INBYGGDA KOMMANDON

Följande kommandon är inbyggda i lvm utan att länkar normalt skapas i filsystemet för dem:

  • config - Samma som lvmconfig(8) nedan.
  • devtypes - Visa de erkända inbyggda blockenhetstyperna.
  • dumpconfig - Samma som lvmconfig(8) nedan.
  • formats - Visa erkända metadataformat.
  • fullreport - Rapportera information om PV:er, PV-segment, VG:er, LV:er och LV-segment, allt på en gång.
  • help - Visa hjälptexten.
  • lastlog - Visa loggrapporten för senaste kommando som kördes i LVM-skalet om kommandologgrapportering är aktiverad.
  • lvpoll - Slutför lvmpolld-operationer (internt kommando).
  • segtypes - Visa erkända logiska volymsegmenttyper.
  • systemid - Visa system-ID som för närvarande är inställt på denna värd.
  • tags - Visa eventuella taggar som definierats på denna värd.
  • version - Visa versionsinformation.

KOMMANDON

Följande kommandon implementerar kärnfunktionaliteten i LVM:

  • pvchange - Ändra attribut för en fysisk volym.
  • pvck - Kontrollera metadata för en fysisk volym.
  • pvcreate - Initiera en disk eller partition för användning av LVM.
  • pvdisplay - Visa attribut för en fysisk volym.
  • pvmove - Flytta fysiska extenter.
  • pvremove - Ta bort en fysisk volym.
  • pvresize - Ändra storlek på en disk eller partition som används av LVM2.
  • pvs - Rapportera information om fysiska volymer.
  • pvscan - Skanna alla diskar efter fysiska volymer.
  • vgcfgbackup - Säkerhetskopiera volymgruppens beskrivningsområde.
  • vgcfgrestore - Återställ volymgruppens beskrivningsområde.
  • vgchange - Ändra attribut för en volymgrupp.
  • vgck - Kontrollera metadata för en volymgrupp.
  • vgconvert - Konvertera metadataformatet för en volymgrupp.
  • vgcreate - Skapa en volymgrupp.
  • vgdisplay - Visa attribut för volymgrupper.
  • vgexport - Gör volymgrupper okända för systemet.
  • vgextend - Lägg till fysiska volymer till en volymgrupp.
  • vgimport - Gör exporterade volymgrupper kända för systemet.
  • vgimportclone - Importera och döp om duplicerad volymgrupp (t.ex. en hårdvarusnapshot).
  • vgimportdevices - Lägg till PV:er från en VG till enhetsfilen.
  • vgmerge - Slå samman två volymgrupper.
  • vgmknodes - Återskapa volymgruppens katalog och logiska volymens specialfiler.
  • vgreduce - Minska en volymgrupp genom att ta bort en eller flera fysiska volymer.
  • vgremove - Ta bort en volymgrupp.
  • vgrename - Byt namn på en volymgrupp.
  • vgs - Rapportera information om volymgrupper.
  • vgscan - Skanna alla diskar efter volymgrupper.
  • vgsplit - Dela en volymgrupp i två och flytta eventuella logiska volymer från en volymgrupp till en annan genom att flytta hela fysiska volymer.
  • lvchange - Ändra attribut för en logisk volym.
  • lvconvert - Konvertera en logisk volym från linjär till spegling eller snapshot.
  • lvcreate - Skapa en logisk volym i en befintlig volymgrupp.
  • lvdisplay - Visa attribut för en logisk volym.
  • lvextend - Utöka storleken på en logisk volym.
  • lvmconfig - Visa konfigurationsinformationen efter att lvm.conf(5) och andra konfigurationsfiler har laddats.
  • lvmdevices - Hantera enhetsfilen.
  • lvmdiskscan - Skanna efter alla enheter synliga för LVM2.
  • lvmdump - Skapa LVM2-informationsdumpningar för diagnostiska ändamål.
  • lvreduce - Minska storleken på en logisk volym.
  • lvremove - Ta bort en logisk volym.
  • lvrename - Byt namn på en logisk volym.
  • lvresize - Ändra storleken på en logisk volym.
  • lvs - Rapportera information om logiska volymer.
  • lvscan - Skanna (alla diskar) efter logiska volymer.

Följande LVM1-kommandon är inte implementerade i LVM2:

GILTIGA NAMN

De giltiga tecknen för VG- och LV-namn är: a-z, A-Z, 0-9, +, _, ., -.

VG-namn får inte börja med ett bindestreck. Namnet på en ny LV får inte heller börja med ett bindestreck. Om konfigurationsinställningen metadata/record_lvs_history är aktiverad innebär dock ett LV-namn med ett bindestreck som prefix att LV:en har tagits bort men fortfarande spåras eftersom det utgör en del av historiken för minst en LV som fortfarande finns kvar. Detta hjälper till att registrera anor för tunna snapshots även efter att vissa länkar i kedjan har tagits bort. En hänvisning till den historiska LV "lvol1" i VG "vg00" skulle vara "vg00/-lvol1" eller bara "-lvol1" om VG redan är inställd. (Den senare formen måste föregås av -- för att avsluta kommandoradsalternativsbearbetningen innan detta argument nås.)

Det finns också olika reserverade namn som används internt av lvm och som inte kan användas som LV- eller VG-namn. En VG kan inte heta något som existerar i /dev/ vid skapandet, och den kan inte heller heta '.' eller '..'. En LV kan inte heta '.', '..', 'snapshot' eller 'pvmove'. LV-namnet får inte heller innehålla något av följande strängar: '_cdata', '_cmeta', '_corig', '_iorig', '_mimage', '_mlog', '_pmspare', '_rimage', '_rmeta', '_tdata', '_tmeta', '_vdata', '_vorigin' eller '_wcorig'. En katalog med namnet på varje Volymgrupp skapas under /dev när någon av dess Logiska Volymer aktiveras. Varje aktiv Logisk Volym är tillgänglig från denna katalog som en symbolisk länk som leder till en enhetsnod. Länkar eller noder i /dev/mapper är endast avsedda för internt bruk och det exakta formatet och escapingen kan förändras mellan versioner och distributioner. Andra programvaror och skript bör använda formatet /dev/VolumeGroupName/LogicalVolumeName för att minska risken för att behöva ändras när programvaran uppdateras. Om du behöver bearbeta nodnamnen i /dev/mapper, kan du använda dmsetup splitname för att separera originalnamnet på VG, LV och interna lagernamn.

UNIKA NAMN

VG-namn bör vara unika. vgcreate ger ett fel om det angivna VG-namnet matchar ett befintligt VG-namn. Det finns dock fall där olika VG:er med samma namn kan visas för LVM, t.ex. efter att diskar har flyttats eller filter har ändrats.

När VG:er med samma namn existerar kommer kommandon som arbetar på alla VG:er att inkludera alla VG:er med samma namn. Om det tvetydiga VG-namnet anges på kommandoraden kommer kommandot att ge ett fel. Felet anger att flera VG:er existerar med det angivna namnet. För att bearbeta en av VG:erna specifikt bör alternativet --select användas med UUID för den avsedda VG:n: --select vg_uuid=<uuid>.

Ett undantag är om alla utom en av VG:erna med det delade namnet är främmande (se lvmsystemid(7)). I detta fall antas den VG som inte är främmande vara den avsedda VG:n och bearbetas.

LV-namn är unika inom en VG. Namnet på en historisk LV kan inte återanvändas förrän den historiska LV:n själv har tagits bort eller bytt namn.

ALLOKERING

När en operation behöver allokera Fysiska Extenter för en eller flera Logiska Volymer fortsätter verktygen enligt följande:

Först genererar de den kompletta uppsättningen ej allokerade Fysiska Extenter i Volymgruppen. Om några intervall av Fysiska Extenter anges i slutet av kommandoraden övervägs endast ej allokerade Fysiska Extenter inom dessa intervall på de angivna Fysiska Volymerna.

Sedan försöker de varje allokeringspolicy i tur och ordning, med början med den striktaste policyn (kontinuerlig) och slutar med den allokeringspolicy som anges med --alloc eller som standard för den specifika Logiska Volymen eller Volymgruppen i fråga. För varje policy, från den lägsta numrerade Logiska Extenten i det tomma Logiska Volymutrymmet som behöver fyllas, allokerar de så mycket utrymme som möjligt enligt de restriktioner som åläggs av policyn. Om mer utrymme behövs går de vidare till nästa policy.

Restriktionerna är följande:

  • Kontinuerlig kräver att den fysiska platsen för varje Logisk Extent som inte är den första Logiska Extenten i en Logisk Volym är intill den fysiska platsen för den Logiska Extent som omedelbart föregår den.
  • Cling kräver att den Fysiska Volym som används för varje Logisk Extent som läggs till en befintlig Logisk Volym redan används av minst en Logisk Extent tidigare i den Logiska Volymen. Om konfigurationsparametern allocation/cling_tag_list är definierad, betraktas två Fysiska Volymer som matchande om någon av de listade taggarna finns på båda Fysiska Volymerna. Detta tillåter grupper av Fysiska Volymer med liknande egenskaper (t.ex. deras fysiska plats) att taggas och behandlas som ekvivalenta för allokeringsändamål.

När en Logisk Volym är strimlad eller speglad tillämpas ovanstående restriktioner oberoende på varje strimma eller spegelbild (ben) som behöver utrymme.

  • Normal väljer inte en Fysisk Extent som delar samma Fysiska Volym som en Logisk Extent redan allokerad till en parallell Logisk Volym (dvs. en annan strimma eller spegelbild/ben) vid samma förskjutning inom den parallella Logiska Volymen.

Vid allokering av en spegel-logg samtidigt som Logiska Volymer för att hålla spegeldata kommer Normal först försöka välja olika Fysiska Volymer för loggen och datan. Om det inte är möjligt och konfigurationsparametern allocation/mirror_logs_require_separate_pvs är satt till 0 tillåts loggen dela Fysisk Volym med en del av datan.

Vid allokering av tunna poolmetadata gäller liknande överväganden som för en spegellogg i föregående stycke baserat på värdet av konfigurationsparametern allocation/thin_pool_metadata_require_separate_pvs.

Om du förlitar dig på någon layoutbeteende utöver det som dokumenteras här, var medveten om att det kan förändras i framtida versioner av koden.

Om du till exempel anger två tomma Fysiska Volymer på kommandoraden som har ett identiskt antal lediga Fysiska Extenter tillgängliga för allokering, överväger den aktuella koden att använda var och en av dem i den ordning de listas, men det finns ingen garanti för att framtida utgåvor kommer att behålla den egenskapen. Om det är viktigt att få en specifik layout för en viss Logisk Volym, bör du bygga upp den genom en sekvens av lvcreate(8) och lvconvert(8) steg så att de restriktioner som beskrivs ovan tillämpas på varje steg och verktygen inte har något handlingsutrymme för layouten.

För att visa hur allokeringsprocessen för närvarande fungerar i ett specifikt fall, läs debugloggutmatningen, till exempel genom att lägga till -vvvv till ett kommando.

LOGISKA VOLYM TYPER

Vissa logiska volymtyper är enkla att skapa och kan göras med ett enda lvcreate(8)-kommando. De linjära och strimlade logiska volymtyperna är exempel på detta. Andra logiska volymtyper kan kräva mer än ett kommando för att skapa. Cache (lvmcache(7)) och tunna provisioneringar (lvmthin(7)) är exempel på detta.

DIAGNOSTIK

Alla verktyg returnerar en statuskod på noll vid framgång eller en icke-nollkod vid fel. De icke-nollkoderna skiljer endast mellan de breda kategorierna av oidentifierade kommandon, problem med att bearbeta kommandoradsargument och andra fel. Eftersom LVM är under aktiv utveckling, ändras koden som används i ett specifikt fall ibland mellan utgåvor. Meddelandetext kan också ändras.

MILJÖVARIABLER

  • HOME - Katalogen som innehåller .lvm_history om det interna readline-skalet anropas.
  • LVM_OUT_FD - Filbeskrivare som används för gemensam utmatning från LVM-kommandon.
  • LVM_ERR_FD - Filbeskrivare som används för felutmatning från LVM-kommandon.
  • LVM_REPORT_FD - Filbeskrivare som används för rapportutmatning från LVM-kommandon.
  • LVM_COMMAND_PROFILE - Namn på standardkommandoprofil som ska användas för LVM-kommandon. Denna profil åsidosätts av direkt användning av --commandprofile-kommandoradsalternativ.
  • LVM_RUN_BY_DMEVENTD - Denna variabel är normalt inställd av dmeventd-plugin för att informera LVM2-kommandot om att det körs från dmeventd-plugin så att LVM2 vidtar vissa extra åtgärder för att undvika kommunikation och dödlägen med dmeventd.
  • LVM_SYSTEM_DIR - Katalog som innehåller lvm.conf(5) och andra LVM-systemfiler. Standard är "/etc/lvm".
  • LVM_SUPPRESS_FD_WARNINGS - Undertryck varningar om oväntade filbeskrivare som skickas till LVM.
  • LVM_SUPPRESS_SYSLOG - Undertryck kontakt med syslog.
  • LVM_VG_NAME - Volymgruppens namn som antas för varje referens till en Logisk Volym som inte specificerar en sökväg. Inte inställd som standard.
  • LVM_LVMPOLLD_PIDFILE - Sökvägen till filen som lagrar lvmpolld-process-ID.
  • LVM_LVMPOLLD_SOCKET - Sökvägen till socketen som används för att kommunicera med lvmpolld.
  • LVM_LOG_FILE_EPOCH - En sträng med upp till 32 bokstäver som läggs till loggfilens namn och följt av process-ID och en starttidsstämpel som använder detta formatsträng _%s_%d_%llu. När den är inställd loggas varje process till en separat fil.
  • LVM_LOG_FILE_MAX_LINES - Om fler än detta antal rader skickas till loggfilen avbryts kommandot. Automatiserade tester använder detta för att avsluta loopande kommandon.
  • LVM_EXPECTED_EXIT_STATUS - Statusen som förväntas när processen avslutas. Använd >N för att matcha vilken status som helst större än N. Om den faktiska utgångsstatusen matchar och en loggfil producerades, raderas den. LVM_LOG_FILE_EPOCH och LVM_EXPECTED_EXIT_STATUS tillsammans tillåter automatiserade testscripts att kassera ointressant loggdata.
  • LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES - Används för att undertrycka varningsmeddelanden när den konfigurerade låsningen är känd för att vara otillgänglig.
  • DM_ABORT_ON_INTERNAL_ERRORS - Avbryt bearbetningen om koden upptäcker ett icke-fatal internt fel.
  • DM_DISABLE_UDEV - Undvik interaktion med udev. LVM hanterar de relevanta noderna i /dev direkt.
  • DM_DEBUG_WITH_LINE_NUMBERS - Förprependrar källfilnamn och kodradnummer med libdm-debugging.

FILER

  • /etc/lvm/lvm.conf
  • $HOME/.lvm_history

SE ÄVEN

COLOFON

Denna sida är en del av lvm2-projektet (Logisk Volymhanterare 2). Information om projektet finns på ⟨http://www.sourceware.org/lvm2/⟩. Om du har en felrapport för denna manual sida, se ⟨https://github.com/lvmteam/lvm2/issues⟩. Denna sida hämtades från projektets uppströms-Git-repository ⟨git://sourceware.org/git/lvm2.git⟩ den 14 juni 2024. (Vid den tidpunkten var datumet för den senaste committen som hittades i repositoryn den 11 juni 2024.) Om du upptäcker några renderingsproblem i denna HTML-version av sidan, eller om du tror att det finns en bättre eller mer uppdaterad källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i denna COLOFON (som inte är en del av den ursprungliga manualsidan), skicka ett mail till man-pages@man7.org.

Red Hat, Inc.

LVM TOOLS 2.03.25(2)-git (16 maj 2024)

<-- lvm(8)

Sidslut


Det här är en maskinöversättning av linux kommando manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.