Como posso reduzir um Volume Lógico e realocar o espaço liberado em uma nova partição na mesma unidade?

4

Eu tenho uma unidade, sda. Tem duas partições:

sda1: /boot
sda2: LVM managed in Volume Group volgrp01

volgrp01 contém os seguintes volumes lógicos:

lv_root (30 GB)
lv_swap (8 GB)
lv_scratch (430 GB)

O que eu quero fazer é reduzir lv_scratch para 50 GB e realocar os 380 GB recém-liberados em uma nova partição, sda3 (que depois adicionarei a outro grupo de volume).

Anexei uma imagem do meu desejado ANTES e DEPOIS. Eu estou bem no meio de aprender sobre o LVM e, embora eu possa compreender a idéia de redimensionar Volumes Lógicos dentro de um Grupo de Volume, não tenho certeza de como alguém realocaria esse espaço em uma nova partição.

Estou usando o RHEL6.

    
por CptSupermrkt 27.03.2014 / 22:45

2 respostas

6

Etapa 1: faça backups.

Eu sei, a maioria das pessoas pula esta etapa, mas você está fazendo alterações que podem resultar em perda de dados se você errar, e você está recebendo orientações de um estranho aleatório na Internet. Você é responsável pela segurança dos seus dados. Eu não sou.

Etapa 2: reduza o sistema de arquivos em lv_scratch . Se for um sistema de arquivos ext2 / 3/4, desmonte-o e use resize2fs ; se for outra coisa, você precisará procurar documentação sobre o redimensionamento desse tipo de sistema de arquivos.

Por exemplo:

resize2fs /dev/volgrp01/lv_scratch 50G

Quando estiver pronto (supondo que você esteja usando resize2fs ), ele informará o novo tamanho do sistema de arquivos em bytes. Anote esse número, porque você pode usá-lo para uma verificação de segurança na próxima etapa.

Etapa 3: reduza o volume lógico usando lvreduce .

  • Se você quiser ser simples, use lvreduce --size 50G volgrp01/lv_scratch .
  • Se você quiser ser mais cauteloso ao não encolher o LV para um tamanho menor que o sistema de arquivos que ele contém, verifique o tamanho da extensão física do seu grupo de volumes usando vgdisplay volgrp01 e calcule quantas extensões físicas são necessárias para manter o tamanho do byte do seu sistema de arquivos (usando 1MB = 1048576 bytes ). Em seguida, especifique esse número usando a opção --extents em vez de --size 50G .

Como alternativa, você pode pular a etapa 1 e usar a opção lvreduce -r para redimensionar o sistema de arquivos automaticamente. Isso pode ser mais fácil, mas eu não tenho experiência pessoal com isso para saber como ele é confiável.

Neste ponto, eu recomendaria executar fdisk -f no seu /dev/volgrp01/vg_scratch apenas para ter certeza de que ele está intacto. Se você receber algum erro sobre "acesso além do fim do dispositivo", isso significa que você diminuiu muito o LV e precisa lvextend antes de continuar.

Etapa 4: reduza o volume físico usando pvresize .

pvresize --setphysicalvolumesize 88G /dev/sda2

Você não precisa de uma verificação extra de segurança aqui, pois pvresize se recusará a reduzir o volume físico para um tamanho pequeno demais para seus volumes lógicos existentes. Mas se os tamanhos dos seus outros LVs não forem múltiplos exatos de 1 GB, o 88G pode ser muito pequeno e você pode precisar usar um valor diferente.

Etapa 5: reduza a partição sda2 usando fdisk .

Execute fdisk /dev/sda e, em seu prompt, execute p para ver suas partições existentes. Anote o número do setor inicial de sua partição sda2 . Em seguida, elimine a partição sda2 - isto não toca nos dados reais, apenas remove o registo de onde começa e termina - e cria um novo sda2 com o mesmo sector inicial (isto é vital) e um tamanho de 88G. O código do tipo da partição deve ser 8e , "Linux LVM".

Se você quiser ser mais cauteloso - e eu recomendo que você o faça, especialmente se tiver que especificar um tamanho diferente para o pvresize anterior - verifique o tamanho do PE e o PE total do seu volume físico usando pvdisplay /dev/sda2 e multiplique-os para encontrar o tamanho do volume físico em bytes (novamente usando 1MB = 1048576 bytes). Em seguida, subtraia o número do setor inicial da nova partição sda2 do seu final, adicione 1 para que o último setor seja contado e multiplique pelo tamanho do setor do disco (que deve ser de 512 ou 4096 bytes). Certifique-se de que os dois resultados coincidem.

Agora crie sua nova partição sda3 , salve suas alterações e saia de fdisk . Se você receber uma mensagem sobre a necessidade de reinicializar para que a alteração entre em vigor, reinicialize.

    
por 28.03.2014 / 02:01
0

Não tenho certeza se isso funcionará - eu só aumentei pv. E de qualquer forma, NÃO TENTE NOS DADOS VALIOSOS A MENOS QUE TENHA BACKUP READÁVEL.

  1. Use uma ferramenta específica do FS (se houver) para redimensionar o FS em lv_scratch

  2. lvresize -L 50G /dev/volgrp01/lv_scratch

  3. pvresize --setphysicalvolumesize 88G /dev/sda2

  4. Redimensione seu / dev / sda2 (não tenho certeza se é possível com o parted / cfdisk etc, pode ser que você precise de algum outro editor de partições)

  5. Crie uma nova partição, crie um novo pv, crie um grupo de volumes, etc.

Verifique todos os números ao redimensionar como se você reduzisse seu volume lógico ou físico mais do que FS, você pode acabar com FS quebrado e dados perdidos, geralmente é melhor deixar algum espaço não utilizado em caso de confusão.

    
por 28.03.2014 / 01:38