pvremove(8)

Från Wiki.linux.se -Linux wikipedia på Svenska.
Hoppa till navigering Hoppa till sök

NAMN

pvmove — flytta extents från en fysisk volym till en annan

SYNOPSIS

pvmove position_args
    [ option_args ]
    [ position_args ]

BESKRIVNING

pvmove flyttar allokerade fysiska extents (PE) på en käll-PV till en eller flera mål-PV:er.

Du kan valfritt ange en käll-LV. I så fall flyttas endast extents som används av den LV:n till lediga, eller uttryckligen angivna, extents på mål-PV:n.

Om ingen mål-PV anges används de normala allokeringsreglerna för VG:n.

Om pvmove avbryts av någon anledning, till exempel att maskinen kraschar, kan du köra pvmove igen utan några PV-argument för att återuppta operationer som var igång från senaste checkpoint.

Alternativt kan du när som helst använda abort-flaggan för att avbryta operationen. Den slutliga placeringen av LV:er efter ett avbrott beror på om flaggan --atomic användes.

Fler än en pvmove kan köras samtidigt om de flyttar data från olika käll-PV:er. Ytterligare pvmove kommer dock att ignorera LV:er som redan håller på att ändras, så en del data kanske inte flyttas.

ANVÄNDNING

Flytta PV-extents

pvmove PV
    [ -A|--autobackup y|n ]
    [ -n|--name LV ]
    [    --alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit ]
    [    --atomic ]
    [    --noudevsync ]
    [    --reportformat basic|json ]
    [ COMMON_OPTIONS ]
    [ PV ... ]

Fortsätt eller avbryt pågående pvmove-operationer

pvmove
    [ COMMON_OPTIONS ]

Vanliga flaggor för kommandot

[ -b|--background ]
[ -i|--interval Number ]
[    --abort ]

Vanliga flaggor för lvm

[ -d|--debug ]
[ -h|--help ]
[ -q|--quiet ]
[ -t|--test ]
[ -v|--verbose ]
[ -y|--yes ]
[    --commandprofile String ]
[    --config String ]
[    --devices PV ]
[    --devicesfile String ]
[    --driverloaded y|n ]
[    --journal String ]
[    --lockopt String ]
[    --longhelp ]
[    --nohints ]
[    --nolocking ]
[    --profile String ]
[    --version ]

FLAGGOR

--abort
Avbryt alla pågående pvmove-operationer.
Om en pvmove startades med flaggan --atomic kommer alla LV:er att ligga kvar på käll-PV:n.
Annars kommer segment som redan har flyttats att ligga kvar på mål-PV:n, medan segment som ännu inte flyttats blir kvar på käll-PV:n.
--alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit
Bestämmer allokeringspolicy när kommandot behöver allokera Physical Extents (PE) från VG:n.
Varje VG och LV har en allokeringspolicy som kan ändras med vgchange eller lvchange, eller åsidosättas på kommandoraden.
normal använder vanliga sunt-förnuft-regler, till exempel att inte placera parallella stripes på samma PV.
inherit använder VG:ns policy för en LV.
contiguous kräver att nya PE placeras intill befintliga PE.
cling placerar nya PE på samma PV som befintliga PE i samma stripe av LV:n.
Om det finns tillräckligt med PE för en allokering men normal inte använder dem, kommer anywhere att använda dem även om prestandan blir sämre, till exempel genom att placera två stripes på samma PV.
Valfria positions-PV-argument på kommandoraden kan också användas för att begränsa vilka PV:er kommandot får använda för allokering.
Se lvm(8) för mer information om allokering.
--atomic
Gör en pvmove-operation atomisk, vilket säkerställer att alla berörda LV:er flyttas till mål-PV:n, eller att ingen av dem gör det om operationen avbryts.
-A, --autobackup y|n
Anger om metadata ska säkerhetskopieras automatiskt efter en ändring.
Det rekommenderas starkt att detta är aktiverat.
Se vgcfgbackup(8) för mer information.
-b, --background
Om operationen kräver polling gör denna flagga att kommandot returnerar innan operationen är klar, och polling sker i bakgrunden.
--commandprofile String
Kommandoprofil att använda för kommandokonfiguration.
Se lvm.conf(5) för mer information om profiler.
--config String
Konfigurationsinställningar för kommandot.
Dessa åsidosätter inställningar i lvm.conf(5).
Strängargumentet använder samma format som lvm.conf(5), eller kan använda sektion/fält-syntax.
Se lvm.conf(5) för mer information om konfiguration.
-d, --debug
Sätt debugnivå.
Upprepa 1 till 6 gånger för att öka detaljnivån i meddelanden till loggfil och/eller syslog, om detta är konfigurerat.
--devices PV
Enheter som kommandot får använda.
Denna flagga kan upprepas eller ta en kommaseparerad lista med enheter.
Detta åsidosätter devices-filen.
--devicesfile String
En fil som listar enheter som LVM ska använda.
Filen måste finnas i /etc/lvm/devices/ och hanteras med kommandot lvmdevices(8).
Detta åsidosätter inställningarna devices/devicesfile och devices/use_devicesfile i lvm.conf(5).
--driverloaded y|n
Om satt till n försöker kommandot inte använda device-mapper.
Avsett för test och felsökning.
-h, --help
Visa hjälptext.
-i, --interval Number
Rapportera förlopp med jämna mellanrum.
--journal String
Registrera information i systemd-journalen.
Detta sker utöver information som aktiveras av inställningen log/journal i lvm.conf.
Möjliga värden:
  • command — registrera information om kommandot
  • output — registrera standardutdata
  • debug — registrera fullständig felsökningsinformation
--lockopt String
Används för att skicka specialalternativ till lvmlockd.
Se lvmlockd(8) för mer information.
--longhelp
Visa lång hjälptext.
-n, --name String
Flytta endast extents som tillhör den angivna LV:n.
--nohints
Använd inte hints-filen för att hitta enheter för PV:er.
Kommandot kan då behöva läsa fler enheter för att hitta PV:er.
Standardinvalidering av hints-filen sker fortfarande när det behövs.
--nolocking
Inaktivera låsning.
--noudevsync
Inaktiverar udev-synkronisering.
Processen väntar inte på notifieringar från udev.
Den fortsätter oavsett eventuell udev-bearbetning i bakgrunden.
Använd endast detta om udev inte körs eller har regler som ignorerar de enheter som LVM skapar.
--profile String
Alias för --commandprofile eller --metadataprofile, beroende på kommando.
-q, --quiet
Undertryck utdata och loggmeddelanden.
Åsidosätter --debug och --verbose.
Upprepa en gång för att även undertrycka alla frågor där svaret annars hade blivit nej.
--reportformat basic|json
Åsidosätter aktuellt utdataformat för rapporter, som annars definieras globalt via inställningen report/output_format i lvm.conf(5).
basic är det ursprungliga formatet med kolumner och rader.
Om det finns mer än en rapport per kommando prefixas varje rapport med sitt rapportnamn för identifiering.
json producerar rapportutdata i JSON-format.
Se lvmreport(7) för mer information.
-t, --test
Kör i testläge.
Kommandon uppdaterar inte metadata.
Detta görs genom att all skrivning av metadata inaktiveras, men kommandot returnerar ändå framgång.
Det kan leda till ovanliga felmeddelanden i flerstegsoperationer om ett verktyg försöker läsa tillbaka metadata som det tror har ändrats men som inte har gjort det.
-v, --verbose
Sätt verbose-nivå.
Upprepa 1 till 4 gånger för att öka detaljnivån i meddelanden till stdout och stderr.
--version
Visa versionsinformation.
-y, --yes
Fråga inte efter bekräftelse interaktivt utan anta alltid svaret ja.
Använd med stor försiktighet.

VARIABLER

PV
Namn på fysisk volym, en enhetssökväg under /dev.
För kommandon som hanterar fysiska extents kan ett PV-positionsargument normalt ta ett suffix som anger ett intervall, eller flera intervall, av fysiska extents (PE).
När första PE utelämnas används början av enheten.
När sista PE utelämnas används slutet.
Start- och slutintervall, inklusive ändpunkter:
PV[:PE-PE]...
Start och längd, räknat från 0:
PV[:PE+PE]...
String
Se flaggbeskrivningen för information om strängens innehåll.
Size[UNIT]
Storlek är ett numeriskt indatafält som accepterar en valfri enhet.
Indataenheter behandlas alltid som bas-2-värden, oavsett versaler eller gemener. Till exempel betyder både k och K värdet 1024.
Möjliga enheter:
  • b eller B — byte
  • s eller S — sektorer om 512 byte
  • k eller K — KiB
  • m eller M — MiB
  • g eller G — GiB
  • t eller T — TiB
  • p eller P — PiB
  • e eller E — EiB

MILJÖVARIABLER

Se lvm(8) för information om miljövariabler som används av lvm.

Exempelvis kan LVM_VG_NAME normalt användas i stället för en obligatorisk VG-parameter.

ANTECKNINGAR

pvmove fungerar enligt följande:

  1. En tillfällig pvmove-LV skapas för att lagra information om alla dataflyttar som krävs.
  2. Varje LV i VG:n genomsöks efter sammanhängande data som behöver flyttas enligt kommandoradsargumenten. För varje datadel som hittas läggs ett nytt segment till i slutet av pvmove-LV:n. Detta segment fungerar som en tillfällig mirror för att kopiera data från den ursprungliga platsen till en nyallokerad plats. Den ursprungliga LV:n uppdateras så att den använder det nya tillfälliga mirror-segmentet i pvmove-LV:n i stället för att läsa data direkt.
  3. VG-metadata uppdateras på disk.
  4. Det första segmentet i pvmove-LV:n aktiveras och börjar spegla den första delen av datan. Endast ett segment speglas åt gången eftersom detta vanligtvis är effektivare.
  5. En daemon kontrollerar upprepade gånger förloppet med angivet tidsintervall. När den upptäcker att den första tillfälliga speglingen är synkroniserad bryter den speglingen så att endast den nya platsen används för dessa data, och skriver en checkpoint i VG-metadata på disk. Därefter aktiveras speglingen för nästa segment i pvmove-LV:n.
  6. När det inte finns fler segment att spegla tas den tillfälliga LV:n bort och VG-metadata uppdateras så att LV:erna återspeglar de nya dataplaceringarna.

Observera att denna nya process inte stöder den ursprungliga LVM1-typen av metadata på disk. Metadata kan konverteras med vgconvert(8).

Som standard kommer pvmove att spegla ett helt LV-segment åt gången. Om processen avbryts, till exempel vid systemkrasch eller strömavbrott, innan segmentet är helt speglat, måste hela segmentet speglas igen när pvmove startas om.

För mycket stora segment kan detta innebära betydande omarbete.

Inställningen allocation/pvmove_max_segment_size_mb i lvm.conf(5) kan användas för att begränsa maximal mängd data som speglas i en enskild operation.

När detta värde sätts till något annat än noll delar pvmove upp stora segment i mindre delar av den angivna storleken, i MiB, speglar varje del för sig och uppdaterar metadata mellan delarna. Detta säkerställer att högst en del behöver speglas om efter ett avbrott.

Exempelvis begränsar värdet 10240 varje speglingsoperation till 10 GiB.

Standardvärdet 0 betyder att ingen begränsning används och att hela segment speglas på en gång.

Om flaggan --atomic används används en något annorlunda metod för flytten.

Även då skapas en tillfällig pvmove-LV som lagrar information om alla dataflyttar som krävs. Den tillfälliga LV:n innehåller alla segment från de olika LV:er som behöver flyttas. I detta fall allokeras dock också en identisk LV med samma antal segment, och en spegling skapas för att kopiera innehållet från den första tillfälliga LV:n till den andra.

Efter att en fullständig kopia har skapats tas de tillfälliga LV:erna bort och segmenten på mål-PV:n lämnas kvar.

Om ett avbrott sker under flytten kommer alla LV:er som flyttas att ligga kvar på käll-PV:n.

EXEMPEL

Flytta alla fysiska extents som används av vanliga LV:er på den angivna PV:n till lediga fysiska extents någon annanstans i VG:n.

pvmove /dev/sdb1

Använd en specifik mål-PV när fysiska extents flyttas.

pvmove /dev/sdb1 /dev/sdc1

Flytta extents som tillhör en enskild LV.

pvmove -n lvol1 /dev/sdb1 /dev/sdc1

I stället för att flytta innehållet på en hel enhet går det att flytta ett intervall av fysiska extents, till exempel nummer 1000 till 1999 inklusive på den angivna PV:n.

pvmove /dev/sdb1:1000-1999

Ett intervall av fysiska extents kan också anges som start+längd. Till exempel med start från PE 1000. Eftersom räkningen börjar från 0 syftar detta på PE nummer 1001 till 2000 inklusive.

pvmove /dev/sdb1:1000+1000

Flytta ett intervall av fysiska extents till en specifik PV, som måste ha tillräckligt många lediga extents.

pvmove /dev/sdb1:1000-1999 /dev/sdc1

Flytta ett intervall av fysiska extents till specifika nya extents på en ny PV.

pvmove /dev/sdb1:1000-1999 /dev/sdc1:0-999

Om källa och mål ligger på samma disk krävs allokeringspolicyn anywhere.

pvmove --alloc anywhere /dev/sdb1:1000-1999 /dev/sdb1:0-999

Den del av en specifik LV som finns inom ett intervall av fysiska extents kan också väljas ut och flyttas.

pvmove -n lvol1 /dev/sdb1:1000-1999 /dev/sdc1

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)

KOLOFON

Denna sida är en del av projektet lvm2 (Logical Volume Manager 2).

Information om projektet finns på:

http://www.sourceware.org/lvm2/

Om du vill rapportera fel i manualsidan, se:

https://github.com/lvmteam/lvm2/issues

Denna sida hämtades från projektets uppströms Git-arkiv:

git://sourceware.org/git/lvm2.git

den 2026-01-16.

Vid den tidpunkten var datumet för den senaste commit som hittades i arkivet 2025-12-23.

Om du upptäcker renderingsproblem i denna HTML-version av sidan, eller anser att det finns en bättre eller mer uppdaterad källa till sidan, eller har rättelser eller förbättringar till informationen i denna kolofon, som inte är en del av den ursprungliga manualsidan, skicka e-post till:

man-pages@man7.org

Sidslut

Orginalhemsidan på Engelska :https://man7.org/linux/man-pages/man8/pvremove.8.html Det här är en maskinöversättning av Linux man sidor 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 webbhotell.