Como estender o LVM PV para o começo do disco?

5

Eu tenho um servidor com um disco de 2TB, que alguém inicialmente particionou assim:

  • partição primária padrão de 300 GB para arquivos do sistema operacional (CentOS 7).
  • LVM de 1,7 TB com grandes volumes lógicos - para outras necessidades.

Como o tamanho real dos arquivos do sistema operacional é de aproximadamente 400 GB, mais tarde ele foi movido para seu próprio volume lógico no LVM, portanto, essa partição de 300 GB no início do disco não é usada.

Então, eu removi esta partição, e agora quero de alguma forma mover a posição inicial do PV para o início do disco, então ele utilizará todo o espaço em disco. Mas não consigo encontrar nenhuma ferramenta para fazer isso - pvextend só pode estender o PV para o final do disco, não para o começo.

Sim, eu sei que posso adicionar essa partição antiga ao VG como outro PV, mas ter vários PVs em um único disco parece algo muito estranho.

Também sei que posso copiar partições para algum dispositivo externo ou armazenamento em nuvem e, em seguida, apenas recriar o particionamento de disco físico a partir do zero. Mas eu não quero isso por causa do longo tempo de inatividade do servidor.

Então, existe alguma maneira de estender rapidamente o PV para o começo do disco?

    
por rufanov 25.01.2016 / 02:18

1 resposta

10

Se o seu PV existente tiver < 300 GB de dados

Se o seu PV existente tiver menos de 300 GB de dados, você poderá simplesmente realocar esses dados para a frente do disco e usar pvresize . Primeiro, crie um novo pv:

pvcreate /dev/sda1

Altere os dados do pv existente para o novo pv:

pvmove /dev/sda2 /dev/sda1

Remova o antigo pv:

vgreduce myvg /dev/sda2

Agora, use parted ou fdisk ou o que for para redimensionar /dev/sda1 para cobrir todo o disco e, em seguida, use pvresize para estender o pv para cobrir a partição.

Usando um dispositivo externo sem tempo de inatividade

Você pode usar pvmove para realocar seus dados para um dispositivo diferente sem nenhum tempo de inatividade do servidor. Você criaria um novo pv:

pvcreate /dev/sdb

Adicione ao seu vg:

vgextend myvg /dev/sdb

Reposicione os dados de seu pv existente para o novo pv:

pvmove /dev/sda2 /dev/sdb

Remova o seu pv existente do volume:

pvremove /dev/myvg /dev/sda2

Agora, reparticione / dev / sda, crie um novo pv e inverta o processo acima.

    
por 25.01.2016 / 03:56