[Megoldva] LVM VG, majd partíció méret csökkentése

Fórumok

Sziasztok!

Itt tartok:

pvs
  PV         VG          Fmt  Attr PSize   PFree 
  /dev/sda6  vg_gepneve1 lvm2 a--  694,12g 13,00g

Azt szeretném, hogy a nem allokált PE-kkel kisebb legyen a volume group-om, mert a partíció méretét is csökkenteni szeretném. Ha a PE-k nem folytonosak, akkor valahogy a kisebb címek felé kellene align-olni előbb. Ilyen példát nem láttam a neten.

Hogyan kell ezt?

Update:

Az alignment rendben van, csak az összehúzás kellene.

  --- Physical Segments ---
  Physical extent 0 to 14681:
    Logical volume      /dev/vg_gepneve1/LogVol02
    Logical extents     0 to 14681
  Physical extent 14682 to 15961:
    Logical volume      /dev/vg_gepneve1/LogVol00
    Logical extents     0 to 1279
  Physical extent 15962 to 21795:
    Logical volume      /dev/vg_gepneve1/LogVol01
    Logical extents     0 to 5833
  Physical extent 21796 to 22211:
    FREE

Hozzászólások

Ezek szerint az fs zsugorításon túl vagy.
Alapból az lvm-et nem érdekli a PE-k nem folytonossága. A szabad PE-k lehetnek össze vissza is. (ha több vinyód/particiód van)
Tehát: 1 fs resize (mindig kisebbre mint amire szükséged lesz a végén)
2 lv resize (lásd man és/vagy lvresize --help) (kicsit többet zsugorítasz mint ami kell)
3 vg resize (lásd man és/vagy vgresize --help) (kicsit többet zsugorítasz mint ami kell)
4 pv resize (lásd man és/vagy pvresize --help) (kicsit többet zsugorítasz mint ami kell)
5 kiszámolás után kicsi (lásd man és/vagy vgresize --help) ráhagyással partició resize.
Utána visszafele mindent (5,4,3,2,1) a rendelkezésre álló helyig resize.
Persze mentésed legyen. Elvileg az lvm nem enged hibás méretet megadni, de biztos ami biztos.
Lehet van egyszerűbb módszer is. Én így csináltam legutóbb is.

---------------------------------------------------------------
Ritkán szólok hozzá dolgokhoz. Így ne várj tőlem interakciót.

Köszönöm, időközben megoldottam.

A pvresize-zal az volt a bajom, hogy az vagy beletágul a partícióba, vagy pontos méretű (--setphysicalvolumesize) lesz. Én meg azt szerettem volna, hogy úgy méretezzen át, hogy rázsugorodjon az allokált PE-kre.

Minden esetre azt csináltam, hogy megnéztem a PE méretét, az allokált PE-ket, kiszámoltam a kettő szorzatát, s ennél picit többet mondtam a --setphysicalvolumesize paramétereként. Maradt is elenyésző számú nem allokált physical extent. Utána ebbe beletágítottam az utolsó logical volume-ot, majd a filerendszert. Ezt követően töröltem a partíciót, majd újra létrehoztam úgy, hogy az első szektor maradt, az utolsó pedig 12 GiB-tal hamarabb véget ért, majd csináltam a végére egy swap-et.

Utána mkswap, uuid alapján bejegyzés az fstab-ba.

Úgy látom, vgresize nincs, vgreduce van, de az adott fizikai eszköz eltávolítására való. Itt összesen egy HDD egy partíciójáról volt szó.

Az egész felhajtás onnan indult, hogy a 4 GiB RAM mellé tettem még 4 GiB-ot a barátnőm gépébe, így lett 8 GiB RAM, de a swap csak 4 GiB volt, s azt szerettem volna, hogy ne okozzon gondot, ha esetleg hibernálásra kerülne sor. Így nagyobb swap-et akartam. Ehhez viszont az LVM-ben lévő jó nagy /var-ból csippentettem le.

A két swap összeolvasztása nem triviális, mert ugyan a partíció határokat át tudom számolni, ugyanakkor az LVM-et tartalmazó partíció adatát is mozgatni kellene. Ezzel viszont az a baj, hogy a forrás és cél területek át vannak lapolódva, tehát ha hátrafelé akarom mozgatni, akkor hátulról előrefelé kell jönni a pointerekkel.

Azt nem tudom, hogy a dd odafigyel-e az átlapolt területekre, de félő, hogy nem. Írhattam volna bash scriptet, amelyik 12 GiB-nál kisebb blokkokban mozgat elölről hátra úgy, hogy a blokkok pointere hátulról előre mozog, mert akkor a blokkok között garantáltan nincs átlapolás, viszont, ha valamit elszámolok, elírok, annyi az adatoknak, mentésre meg most nem volt lehetőség. Ezért inkább két swap lett, a Linux tudja kezelni.

Szerk.: És persze, amíg kb. 700 GB-ot átmozgatok ugyanazon HDD-ről ugyanarra a HDD-re, az nagyon sok idő lett volna.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE