Como redimensionar o disco LVM no Debian 8.6 sem perder dados

4

Eu preciso redimensionar meu primeiro disco (/ dev / xvda) de 40 GB para 80 GB. Estou usando a virtualização XEN e o disco é redimensionado no XenCenter, mas preciso redimensionar suas partições sem perder nenhum dado. A máquina virtual está executando o Debian 8.6.

Disk /dev/xvda: 80 GiB, 85 899 345 920 bajtů, 167 772 160 sektorů
Jednotky: sektorů po 1 * 512 = 512 bajtech
Velikost sektoru (logického/fyzického): 512 bajtů / 512 bajtů
Velikost I/O (minimální/optimální): 512 bajtů / 512 bajtů
Typ popisu disku: dos
Identifikátor disku: 0x5a0b8583

Device     Boot  Start      End  Sectors  Size Id Type
/dev/xvda1        2048   499711   497664  243M 83 Linux
/dev/xvda2      501758 83884031 83382274 39,8G  5 Extended
/dev/xvda5      501760 83884031 83382272 39,8G 8e Linux LVM

Disk /dev/xvdb: 64 GiB, 68 719 476 736 bajtů, 134 217 728 sektorů
Jednotky: sektorů po 1 * 512 = 512 bajtech
Velikost sektoru (logického/fyzického): 512 bajtů / 512 bajtů
Velikost I/O (minimální/optimální): 512 bajtů / 512 bajtů
Typ popisu disku: gpt
Identifikátor disku: 0596FDE3-F7B7-46C6-8CE1-03C0B0ADD20A

Device     Start       End   Sectors Size Type
/dev/xvdb1  2048 134217694 134215647  64G Linux filesystem

Disk /dev/mapper/xenhosting--vg-root: 38,1 GiB, 40 907 046 912 bajtů, 79 896 576 sektorů
Jednotky: sektorů po 1 * 512 = 512 bajtech
Velikost sektoru (logického/fyzického): 512 bajtů / 512 bajtů
Velikost I/O (minimální/optimální): 512 bajtů / 512 bajtů
Disk /dev/mapper/xenhosting--vg-swap_1: 1,7 GiB, 1 782 579 200 bajtů, 3 481 600 sektorů
Jednotky: sektorů po 1 * 512 = 512 bajtech
Velikost sektoru (logického/fyzického): 512 bajtů / 512 bajtů
Velikost I/O (minimální/optimální): 512 bajtů / 512 bajtů
    
por Oldřich Švéda 12.01.2017 / 22:08

2 respostas

8

Isso deve ser relativamente fácil, já que você está usando o LVM:

  1. Primeiro, como sempre, faça um backup.
  2. Redimensione o disco no Xen (você já fez isso; apesar disso, leia novamente a etapa 1).
  3. Use parted para redimensionar a partição estendida ( xvda2 ); execute parted /dev/xvda , depois no parted prompt resizepart 2 -1s para redimensioná-lo para terminar no final do disco (BTW: quit sairá do parted).
  4. Ou (a) crie outra partição lógica ( xvda6 ) com o espaço livre, então:

    1. reinicialize para selecionar as alterações da tabela de partições
    2. pvcreate /dev/xvda6
    3. vgextend xenhosting-vg /dev/xvda6

    ou (b)

    1. estenda xvda5 usando resizepart 5 -1s
    2. reinicialize para selecionar as alterações da tabela de partições
    3. pvresize /dev/xvda5
  5. Finalmente, se você quiser adicionar isso ao seu sistema de arquivos raiz, lvextend -r -l +100%FREE /dev/xenhosting-vg/root . A opção -r para lvextend diz para chamar resize2fs em si.

Outra opção que você não considerou:

Adicione outro disco virtual. Se você puder fazer isso no Xen sem reinicializar o convidado, poderá fazê-lo totalmente on-line (sem reinicializações). Particione o novo disco xvdc (isso não exigirá uma reinicialização, pois ele não está em uso) e, em seguida, continue com pvcreate & vgextend usando /dev/xvdc1 .

    
por 12.01.2017 / 22:43
0

Atualmente, estou executando o Devyu Jessie 1.0 (Estável) em uma VM no ProxMox. A partição que eu precisava estender foi /var/lib montada em /dev/sda5 para elasticsearch. Como isso não era crítico para o SO, eu poderia fazer isso com a VM. Eu apenas garanti que não havia nada usando a partição com lsof . Para conseguir isso, fiz o seguinte:

  1. Verifique a partição para se certificar de que não está ocupada:

    lsof /dev/sda5
    
    • Se você obtiver alguma saída deste comando, deverá determinar o que está usando a partição em questão e encerrar o processo. Aqui está uma referência. Exemplos de Comando LSOF
  2. Desmonte a partição:

    umount /dev/sda5
    
  3. Executar parted

    parted
    
  4. Por dentro dividido:

    resizepart 5 -1s
    
  5. Sair do parted:

    quit
    
  6. Verifique o disco:

    e2fsck -f /dev/sda5
    
  7. Estenda o disco para que o sistema operacional o veja:

    resize2fs /dev/sda5
    
  8. Remontar:

    mount -a. 
    
  9. Verifique se o sistema operacional vê a unidade recém-estendida:

    df -h /dev/sda5
    

Agora tudo deve ser bom para ir. Em uma nota lateral, lvextend emitiu um erro, então, para mim, a rota resize2fs foi o caminho mais simples. HTH.

    
por 17.11.2017 / 16:54