Como alterar um sistema de partições físicas para o LVM?

7

Eu tenho um servidor com Debian que tem 3 partições físicas cobrindo todo o disco: boot, root y swap. Agora quero substituir essas partições por partições LVM. Eu sei como instalar o Debian com o LVM no começo, mas neste caso eu não posso instalar o sistema no começo porque o provedor me obtém um servidor com acesso remoto e o sistema instalado desta maneira.

Como posso alterar essas partições usando apenas uma conexão ssh e possivelmente outro servidor remoto onde colocar alguns dados temporais?

    
por Daniel Hernández 13.12.2012 / 16:41

4 respostas

-1

Você não pode substituí-los em um servidor em execução apenas com /, / boot e < swap > partições. A única maneira de fazer isso é desmontar a partição /, reduzi-la e criar uma nova partição LVM no final, mas como você só tem acesso ssh remoto, não é possível encolher uma partição montada ao vivo sem corrupção de dados. / p>     

por 13.12.2012 / 16:59
15

Uma rápida atualização do meu lado. Contexto: hoje entrei em um servidor dedicado instalado com esquema de partição física ao invés de LVM. Havia 3 partições:

/ boot (ext4) - 512M / (ext4) - 730G swap - 8G

Devido à natureza de não ter acesso ao console, o objetivo final era converter a partição raiz existente em LVM.

Considerando que o ext4 não é encolhível, a única maneira era reutilizar a partição swap como raiz temporária. Eu também decidi configurar o root temporário com o LVM para ter certeza de que o processo pode funcionar da maneira certa.

Primeiro foi a troca:

swapoff -a

Em seguida, redimensionou a partição via parted (originalmente foi iniciada de 742 a 750):

parted
resize 3 742 744

e criou uma partição para o LVM:

mkpart primary ext2 744 750
set 4 lvm on

Criação de PV / VG / LV / sistema de arquivos para a raiz temporária:

pvcreate /dev/sda4
vgcreate VolGroup00 /dev/sda4
lvcreate -L 5.73G -n tmproot VolGroup00
mkfs.ext4 /dev/VolGroup00/tmproot

O próximo passo foi copiar a raiz para o local temporário:

mount /dev/VolGroup00/tmproot /media
rsync -ravzxq / /media/

Depois que tudo estava lá, a entrada para o sistema de arquivos raiz em / media / etc / fstab também teve que ser alterada:

/dev/VolGroup00/tmproot /                       ext4    defaults        1 1

Quase lá, o último e vamos dizer que a parte mais indesejada sem acesso ao console foi modificar o /boot/grub/grub.conf:

entrada original:

title CentOS (2.6.32-279.22.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-279.22.1.el6.x86_64 ro root=UUID=e769af21-d9e1-455f-a6a7-7a9c84d8cbea rd_NO_LUKS LANG=en_US.UTF-8  KEYBOARDTYPE=pc KEYTABLE=hu rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-279.22.1.el6.x86_64.img

entrada modificada:

title CentOS (2.6.32-279.22.1.el6.x86_64) LVM
insmod lvm
kernel /vmlinuz-2.6.32-279.22.1.el6.x86_64 ro LANG=en_US.UTF-8  KEYBOARDTYPE=pc KEYTABLE=hu SYSFONT=latarcyrheb-sun16 crashkernel=auto dolvm root=/dev/mapper/VolGroup00-tmproot panic=10 
#rd_NO_DM rd_NO_MD rd_NO_LUKS
initrd /initramfs-2.6.32-279.22.1.el6.x86_64.img

Apenas para estar no lado seguro: o insmod lvm foi adicionado junto com o parâmetro dolvm para o kernel e o caminho da raiz também foi alterado para root = / dev / mapper / VolGroup00-tmproot. Importante usar o caminho / dev / mapper / neste momento. Como um depósito de segurança, também adicionei o parâmetro panic = 10 e não alterei a entrada de inicialização padrão no cabeçalho. Em vez disso, tentei dizer ao grub para inicializar com a nova configuração apenas uma vez e, em caso de falha, a entrada original poderia funcionar:

grub
savedefault --default=1 --once

E finalmente:

reboot

Tudo bem para mim na primeira vez, então eu repeti todo o procedimento com a criação de um novo grupo de volume no topo da partição raiz original e finalmente consegui a raiz no lugar certo usando o LVM.

Espero que isso ajude.

    
por 20.02.2013 / 03:00
1

Ele poderia configurar um sistema de resgate intermediário na partição de swap (desativada anteriormente) (trabalho de destruição de nervos a ser feito se você não tiver um RAC na máquina) e trabalhar a partir daí. Além disso, existem ferramentas de redimensionamento online para determinados sistemas de arquivos, e depois a partição é reduzida e a reinicialização é um caso de KWYD, mas é possível.

    
por 14.12.2012 / 04:10
1

Nada é impossível no Linux, mas você teria que ser determinado e louco para tentar o que descreve. Lembre-se de que, se você tiver acesso SSH, há uma boa chance de perder o acesso ao servidor se cometer algum erro. Se você tiver um console "serial" remoto e um comutador de energia virtual, isso pode ajudar um pouco. Dito isso, se você tem uma nova instalação sem dados a perder, por que não tentar? Eu encontrei um tutorial para converter remotamente um sistema Linux para RAID1 ; as etapas que você tentaria para o LVM seriam análogas.

Primeiro, vamos considerar a necessidade de espaço de armazenamento temporário. Supondo que você não tenha um segundo disco no servidor, você pode diminuir as partições existentes usando parted . Naturalmente, isso requer que suas partições de inicialização e raiz usem menos da metade do disco, e elas devem usar um sistema de arquivos encolhível. (XFS e JFS, por exemplo, não são encolhíveis.)

Após encolher suas partições existentes, você pode criar um volume físico LVM no espaço liberado, um grupo de volumes e volumes lógicos dentro dele. Replicar seus sistemas de arquivos. (Ao replicar seu sistema de arquivos raiz, você deve matar tudo exceto sshd e, idealmente, estar no modo de usuário único. Você provavelmente terá que usar rsync em vez de dd desde que esteja replicando um sistema de arquivos montado.) p>

Em seguida, você prepararia um initrd com suporte ao LVM e instruiria o GRUB a inicializar o novo sistema, conforme descrito no tutorial de Warren Togami. Depois de fazer isso, é simples excluir os sistemas de arquivos antigos usando parted e aumentando os volumes de LVM.

Boa sorte! Deixe-nos saber se funcionou!

    
por 14.12.2012 / 06:18

Tags