Como redimensionar a partição LVM no Fedora sem LiveCD ou Rebooting

23

Eu tenho uma máquina virtual que recentemente teve sua imagem de disco aumentada de 20 GB para 50 GB, e fdisk -l verifica se a VM pode ver esse novo tamanho. Agora preciso redimensionar minha partição raiz do LVM para preencher os 30 GB extras.

Encontrei vários articles sobre o redimensionamento do LVM, mas os poucos que cobrem o redimensionamento da partição raiz afirmam que você precisa inicializar a partir de um LiveCD. Existe alguma maneira de fazer isso sem derrubar o servidor? O servidor é crítico, por isso gostaria de minimizar o tempo de inatividade.

Editar: saída de fdisk -l :

[root@fedora-host ~]# sudo fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00097c90

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    83886079    41430016   8e  Linux LVM

Disk /dev/mapper/VolGroup-lv_root: 36.1 GB, 36104568832 bytes
255 heads, 63 sectors/track, 4389 cylinders, total 70516736 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_root doesn't contain a valid partition table

Disk /dev/mapper/VolGroup-lv_swap: 6308 MB, 6308233216 bytes
255 heads, 63 sectors/track, 766 cylinders, total 12320768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_swap doesn't contain a valid partition table

Edit: Como eu redimensiono a partição física? O fdisk pode ver o espaço livre, mas não sei como redimensionar a partição primária do LVM para usá-lo. Eu tentei arrancar em um LiveCD e usando o comando parted'd resize , mas tudo o que me é dado é o erro "Não foi possível detectar o sistema de arquivos". Eu encontrei este guia , que diz que preciso deletar a partição e criar uma nova com o tamanho correto, mas isso soa muito perigoso.

Final Edit: O comando resize do Parted é estranhamente incapaz de redimensionar as partições do LVM. Vai saber. Em vez disso, eu simplesmente excluí a partição antiga e criei uma nova com o novo intervalo, conforme descrito no link acima, e redimensionei corretamente a partição LVM. Então segui o conselho abaixo para redimensionar os volumes e sistemas de arquivos dentro da partição LVM.

    
por Cerin 05.09.2012 / 21:25

7 respostas

30

Você pode aumentar um volume lógico on-line. Você teria que desmontá-lo para reduzi-lo (o que requer um LiveCD / Modo de Recuperação).

  1. pvresize /dev/sda2 (supondo que sua partição LVM é sda2 . Substitua conforme necessário.)
  2. lvextend /dev/mapper/root -l+100%FREE (ou, seja qual for o volume lógico da sua raiz.)
  3. resize2fs /dev/mapper/root (assumindo ext2 / 3/4)
por 05.09.2012 / 21:34
2

Seu sistema realmente mudou de 20 para 50 GB? Isso parece muito estranho já que o seu dispositivo sda2 tem ~ 40GB, o lv_root mostra 36GB e o swap mostra 6GB.

Sua saída de fdisk -l mostra o total de setores de /dev/sda is 104857600 . O último setor usado por /dev/sda2 é 83886079 . Isso me diz que você não ajustou o tamanho da partição para usar todo o espaço disponível na unidade. O comando pvresize não altera a tabela de partições. Você precisa alterar a tabela de partições primeiro.

    
por 06.09.2012 / 03:23
1

Instale o gparted. Execute como root (use ssh -X ou x2go se remoto). Selecione a partição. Deve mostrar espaço livre após o final (à direita). Se isso não acontecer, você precisará reinicializar sua máquina virtual para ver o novo tamanho do dispositivo virtual. Isso deve ser um tempo de inatividade mínimo com o systemd.

Clique com o botão direito e selecione redimensionar. Arraste o final para o final do disco. Certifique-se de não tocar no começo. O gparted é capaz de mover uma partição durante o redimensionamento, mas isso, obviamente, destruirá um sistema em execução. Mas movendo o final está bem. Revise a operação pendente que o gparted executará para garantir que você esteja estendendo e não movendo a partição. Clique em aplicar. O gparted irá alterar a partição no disco e, em seguida, emitirá o kernel ioctl para reler a tabela de partição, alterando também o tamanho do dispositivo de bloco ativo. Então, como ele vê que é um PV do LVM, ele executa pvresize para você. Saia do gparted e o vgs agora mostra seu novo espaço.

Eu ouvi rumores de que o parted pode fazer tudo isso sem a sobrecarga de uma GUI, mas eu nunca fui capaz de descobrir o voodoo. O Parted tem que ser uma das piores interfaces CLI que eu já tentei usar.

Não use fdisk, você precisa excluir e realocar a partição para redimensionar e, por padrão, apagará a assinatura do LVM2 na gravação. Acho que vi uma opção "avançada" para desativar esse comportamento destrutivo, mas nunca testei isso.

Você também pode tentar o cfdisk (curses fdisk). Pode ter um redimensionamento de partição utilizável. É fácil executar o pvresize manualmente, e existe um comando para dizer ao kernel para reler a tabela de partições. Mas eu teria que testar para ter certeza de que não apagaria a assinatura LVM como fdisk.

    
por 21.07.2017 / 18:31
0

Se o volume físico do LVM estiver em uma partição, não será possível redimensioná-lo sem reinicializar.

Você pode editar a tabela de partições na unidade, mas o Linux se recusará a usá-la até que você reinicie.

Se você estiver usando o XFS, altere resize2fs para xfs_growfs .

Você pode exibir os PVs que você usa e os LVs no grupo de volumes usando pvs e lvs .

PV no disco bruto

pvresize /dev/sda
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>

PV em uma partição

Primeiro você tem que redimensionar a partição, use parted , fdisk ou ferramenta similar para isso. Lembre-se que essas ferramentas editam somente a descrição onde as partições estão, elas não movem os dados. Em outras palavras, você pode facilmente estender apenas a última partição do disco. Em seguida, reinicie sua máquina e, depois disso, você poderá informar ao LVM que há mais espaço disponível:

pvresize /dev/sda2
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>
    
por 05.09.2012 / 22:28
0

Eu consideraria verificar o ssm (system-storage-manager) se estiver disponível na sua distribuição.

Confira isso para mais informações: link

O

ssm parece facilitar o redimensionamento de volumes lógicos sem a necessidade de fazer tudo sozinho.

Consegui usar para estender minha partição inicial com ela depois de reiniciar o sistema operacional e fazer login como root. (Tive que reiniciar duas vezes no total, mas funcionou no final e agora tenho um extra de 50G disponível na minha / home parition.)

    
por 30.05.2018 / 20:40
0

Depois de combinar 25 howto's, finalmente tenho essa solução. Não requer nenhum CD ao vivo, é totalmente on the fly.

Passo 1. formate a partição com parted (sem gui). Neste exemplo, o tamanho máximo do disco aumentou de 8 GB para 32 GB na caixa virtual.

    # parted
       ....
       Number   Begin   End     Size     Type     FileSystem       Flags
         1      1049kB  1075MB  1074MB   primary  ext4             boot
         2      1075MB  8590MB  7515MB   primary                   lvm
       ....
    (parted) mkpart primary ext2 8590 100%
       ....
       Number   Begin   End     Size     Type     FileSystem       Flags
         1      1049kB  1075MB  1074MB   primary  ext4             boot
         2      1075MB  8590MB  7515MB   primary                   lvm
         3      8590MB  34,4GB  25,8GB   primary  ext2             lba
       ....
    (parted) set 3 lvm on
    (parted) set 3 lba off
    (parted) print
       ....
         3      8590MB  34,4GB  25,8GB   primary  ext2             lvm
       ....
    (parted) quit

Etapa 2. Crie um volume físico com base na nova partição

# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

Etapa 3. Adicione o volume físico ao grupo de volumes. Em um servidor simples, o grupo de volume é chamado fedora.

# vgextend fedora /dev/sda3
  Volume group "fedora" successfully extended

Etapa 4. Adicione o espaço disponível no grupo de volumes ao volume lógico. Em um servidor simples, o volume lógico é chamado de root.

# lvextend -l+100%FREE /dev/fedora/root
  Size of logical volume fedora/root changed from <6,20 GiB (1586 extents) to 30,19 GiB (7729 extents).
  Logical volume fedora/root successfully resized.

Etapa 5. Diga ao sistema de arquivos no volume lógico para usar o espaço extra. No fedora, o sistema de arquivos é o xfs.

Atenção! xfs_growfs usa o ponto de montagem para identificar o sistema de arquivos, não o nome do sistema de arquivos que você encontra na saída df !!!!!!!

O comando 'xfs_growfs / dev / mapper / fedora-root' lhe dirá / dev / mapper / fedora-root não é um sistema de arquivos XFS montado. Se você estiver usando um sistema de arquivos diferente, consulte o link

# xfs_growfs /
    data blocks changed from 1624064 to 7914496

Etapa 6. Aproveite

# df
FileSystem               1K-blocks      Used   Available used% Mounted on
....
/dev/mapper/fedora-root   31647744   6492840    25154904  21% /
/dev/sda1                   999320    125576      804932  14% /boot
....
    
por 31.10.2018 / 10:39
-1

Experimente o testdisk

sudo dnf install testdisk

testdisk sudo

Basta definir criar um arquivo de log Então listará as partições, - selecione a mídia / partição - então digite - e analise - pesquisa rápida - selecione e escreva

    
por 10.08.2015 / 08:24