Linux LVM: move espaço livre de um grupo de volumes para outro

1

Acabei de ler "Como você pode realocar espaço de um grupo de volume para outro grupo de volume no Linux?" Como você pode realocar espaço de um grupo de volume para outro grupo de volume no Linux? Mas ainda estou confuso.

Eu herdei o gerenciamento de um NAS Linux construído com um case supermicro de 16 discos, uma placa RAID 3ware 9650 e o Centos 5. Existem três unidades de ataque de 2,73 TB criadas pela placa 3ware; auto-carving para 1.5TB é habilitado, então Centos vê seis volumes físicos.

Esses 6 PVs são organizados em grupos de 2 volumes e um dos VGs (volgroup1) possui 2.15TB de espaço livre. Eu preciso mover os 2.15TB livres para o outro VG (volgroup2) Então eu preciso designar 2.15TB a partição ext3 no volume lógico "mmedia0", sem interromper qualquer outro sistema de arquivos / LV.

A saída dos comandos relevantes do LVM segue.

Obrigado antecipadamente Guido


[root@lt-nas1 ~]# pvscan
  PV /dev/sdd1   VG volgroup2   lvm2 [1.50 TB / 0    free]
  PV /dev/sdf1   VG volgroup2   lvm2 [1.50 TB / 0    free]
  PV /dev/sdg1   VG volgroup2   lvm2 [1.23 TB / 0    free]
  PV /dev/sdb1   VG volgroup1   lvm2 [1.50 TB / 1.00 TB free]
  PV /dev/sdc1   VG volgroup1   lvm2 [1.22 TB / 24.00 GB free]
  PV /dev/sde1   VG volgroup1   lvm2 [1.23 TB / 1.12 TB free]
  Total: 6 [8.18 TB] / in use: 6 [8.18 TB] / in no VG: 0 [0   ]

[root@lt-nas1 ~]# vgs
  VG        #PV #LV #SN Attr   VSize VFree
  volgroup1   3   5   0 wz--n- 3.95T 2.15T
  volgroup2   3   3   0 wz--n- 4.23T    0

[root@lt-nas1 ~]# lvs
  LV               VG        Attr   LSize    Origin Snap%  Move Log Copy%  Convert
  cli-bak          volgroup1 -wi-ao  515.88G
  fatt-dig         volgroup1 -wi-ao   10.00G
  fil-ut           volgroup1 -wi-ao  220.00G
  homes            volgroup1 -wi-ao  100.00G
  serv-bak         volgroup1 -wi-ao 1000.00G
  esxp-bak         volgroup2 -wi-ao    3.73T
  lt-services      volgroup2 -wi-ao   10.00G
  mmedia0          volgroup2 -wi-ao  501.97G


[root@lt-nas1 ~]# pvdisplay -m
  --- Physical volume ---
  PV Name               /dev/sdd1
  VG Name               volgroup2
  PV Size               1.50 TB / not usable 31.88 MB
  Allocatable           yes (but full)
  PE Size (KByte)       32768
  Total PE              49151
  Free PE               0
  Allocated PE          49151
  PV UUID               dj86xG-bVvy-e2KS-dxCb-oDTB-vqfB-oIFEFn

  --- Physical Segments ---
  Physical extent 0 to 32767:
    Logical volume      /dev/volgroup2/esxp-bak
    Logical extents     89404 to 122171
  Physical extent 32768 to 33087:
    Logical volume      /dev/volgroup2/lt-services
    Logical extents     0 to 319
  Physical extent 33088 to 49150:
    Logical volume      /dev/volgroup2/mmedia0
    Logical extents     0 to 16062

  --- Physical volume ---
  PV Name               /dev/sdf1
  VG Name               volgroup2
  PV Size               1.50 TB / not usable 29.98 MB
  Allocatable           yes (but full)
  PE Size (KByte)       32768
  Total PE              49151
  Free PE               0
  Allocated PE          49151
  PV UUID               VzrYLh-qzGP-JlfN-WtUn-39Li-mq4Z-M4AlkY

  --- Physical Segments ---
  Physical extent 0 to 49150:
    Logical volume      /dev/volgroup2/esxp-bak
    Logical extents     0 to 49150

  --- Physical volume ---
  PV Name               /dev/sdg1
  VG Name               volgroup2
  PV Size               1.23 TB / not usable 27.98 MB
  Allocatable           yes (but full)
  PE Size (KByte)       32768
  Total PE              40253
  Free PE               0
  Allocated PE          40253
  PV UUID               w2AczV-NUC1-K6xj-Qom6-NsNb-0mXk-o9a63M

  --- Physical Segments ---
  Physical extent 0 to 40252:
    Logical volume      /dev/volgroup2/esxp-bak
    Logical extents     49151 to 89403

  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               volgroup1
  PV Size               1.50 TB / not usable 31.88 MB
  Allocatable           yes
  PE Size (KByte)       32768
  Total PE              49151
  Free PE               32832
  Allocated PE          16319
  PV UUID               Kilk0G-0qxl-ft2w-8iU7-abaa-u1n2-d9EHiO

  --- Physical Segments ---
  Physical extent 0 to 32767:
    FREE
  Physical extent 32768 to 39167:
    Logical volume      /dev/volgroup1/fil-ut
    Logical extents     0 to 6399
  Physical extent 39168 to 39231:
    FREE
  Physical extent 39232 to 39871:
    Logical volume      /dev/volgroup1/fil-ut
    Logical extents     6400 to 7039
  Physical extent 39872 to 49150:
    Logical volume      /dev/volgroup1/cli-bak
    Logical extents     0 to 9278

  --- Physical volume ---
  PV Name               /dev/sdc1
  VG Name               volgroup1
  PV Size               1.22 TB / not usable 16.80 MB
  Allocatable           yes
  PE Size (KByte)       32768
  Total PE              39997
  Free PE               768
  Allocated PE          39229
  PV UUID               EAtHL7-wraU-DdRP-d9Fq-xdrU-Wyf0-8PlCqj

  --- Physical Segments ---
  Physical extent 0 to 31999:
    Logical volume      /dev/volgroup1/serv-bak
    Logical extents     0 to 31999
  Physical extent 32000 to 32767:
    FREE
  Physical extent 32768 to 39996:
    Logical volume      /dev/volgroup1/cli-bak
    Logical extents     9279 to 16507

  --- Physical volume ---
  PV Name               /dev/sde1
  VG Name               volgroup1
  PV Size               1.23 TB / not usable 14.18 MB
  Allocatable           yes
  PE Size (KByte)       32768
  Total PE              40253
  Free PE               36733
  Allocated PE          3520
  PV UUID               I1RUAu-P8Sw-waPF-b8u1-0szV-lR9D-hY1DvA

  --- Physical Segments ---
  Physical extent 0 to 32767:
    FREE
  Physical extent 32768 to 33087:
    Logical volume      /dev/volgroup1/fatt-dig
    Logical extents     0 to 319
  Physical extent 33088 to 33887:
    FREE
  Physical extent 33888 to 37087:
    Logical volume      /dev/volgroup1/homes
    Logical extents     0 to 3199
  Physical extent 37088 to 40252:
    FREE
    
por Guido Brasletti 19.10.2015 / 15:13

1 resposta

0

Como você só pode mover um PV inteiro de um VG para outro, não será possível mover todo o espaço livre de um VG para o outro. Mas você pode chegar lá parte do caminho:

Primeiro, mova todos os dados em um dos seus PVs para outro PV:

pvmove -v /dev/sdb1

Isto irá começar a mover os dados para os outros PVs, longe de sdb1. A opção -v também irá garantir que você veja algumas informações sobre o progresso. Quando o movimento terminar, você poderá removê-lo do grupo de volume:

vgreduce -a

Isso relatará algo como removing /dev/sdb1 from volgroup1 (desculpe, já faz um tempo e não tenho uma máquina para testar). Você pode adicionar isso ao outro VG:

vgextend volgroup2 /dev/sdb1

Depois disso, volgroup2 deve ter o espaço em sdb1 adicionado a ele.

Você pode repetir esta operação com sde1; depende da quantidade de espaço livre restante em volgroup1 após o primeiro movimento (estou com preguiça de fazer os cálculos necessários ;-). Também recomendaria mover todos os seus dados para um único grupo de volumes; no entanto, fazer isso exigirá que você crie um novo LV em volgroup2, crie um sistema de arquivos nele, monte-o, use rsync ou similar para mover a data e, em seguida, destrua o antigo. Claramente, esta é uma operação mais arriscada.

    
por 19.10.2015 / 16:41