LVM

Från Wiki.linux.se
Version från den 25 augusti 2024 kl. 15.25 av Admin (diskussion | bidrag)
Hoppa till navigering Hoppa till sök

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:

  • 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).

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

  • 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


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.