0

I have 3 RAID arrays in my server, mapped to 2 PVs in my lvm2 setup.

apollo:~# pvs
  PV         VG      Fmt  Attr PSize PFree
  /dev/sda1  apollo  lvm2 a-   3.64T    0 
  /dev/sda2  apollo  lvm2 a-   1.14T    0 
  /dev/sdb   apollo1 lvm2 a-   2.05T    0 
apollo:~# lvs
  LV        VG      Attr   LSize   Origin Snap%  Move Log Copy% 
  lvol0     apollo  -wi-ao   4.77T                              
  ling-ling apollo1 -wi-ao 895.41G                              
  lvol0     apollo1 -wi-ao   1.17T                              
  lvol1     apollo1 -wi-a-  32.00M                              

I want to remove the LV "ling-ling" to free up some space, however I want to expand lvol0 with that free space, which is residing on the other VG.

Is there a way in LVM to allocate a percentage of a PV to different VGs without repartitioning? The only solution I can think of is to repartition /dev/sdb but I would prefer not to, since this is a live server.

Thanks :)

bobinabottle
  • 579
  • 2
  • 7
  • 19

3 Answers3

1

No. VGs consume PVs whole.

Ignacio Vazquez-Abrams
  • 45,939
  • 6
  • 79
  • 84
0

If you want to split a drive/LUN between VGs, you'd have to create two partitions and a PV on each. This has a number of drawbacks, not least of which is that you'd need to destroy the PVs and repartition to change the layout!

Rodger
  • 609
  • 4
  • 6
0

Other than repartitioning the drive there is no clean way to get exactly what you wanted.

A quick and dirty solution is to create a LV and use that as a PV. This is not something used much and as such was not tested a lot, so you may run into problems for example with activation at boot. This could be as simple as:

vgextend apollo /dev/apollo1/ling-ling

Other alternative is to use vgmerge and make single VG apollo:

vgmerge apollo apollo1

You should update any links in fstab (if using device names and not LABEL/UUID)

Martian
  • 1,100
  • 8
  • 8