Como redimensionar o disco de uma VM guest do Fedora no VMWare ESXi

6

Como eu redimensiono (especificamente aumento) o tamanho do disco de uma VM guest do Fedora rodando sob o VMWare ESXi 4.1?

Eu tenho uma VM Fedora 16 com um disco formatado lvm2, e eu aumentei o tamanho do disco usando o cliente vSphere de 50 GB para cerca de 250 GB. Eu reiniciei o convidado e ele mostra corretamente esse tamanho usando fdisk -l /dev/sda . No entanto, df -H ainda mostra o tamanho antigo.

Encontrei alguns KB artigos explicando como redimensionar partições para alguns tipos de Linux, mas nada para o Fedora com o ext4. Esse artigo parece implicar que preciso criar uma partição completamente nova e que não posso simplesmente expandir a partição existente. Usando o Gparted, também me impede de simplesmente redimensionar a partição existente. Isso é impossível de fazer no Linux?

Edit: Acontece que a unidade está formatada como LVM2, que aparentemente a maioria das ferramentas do Linux, como GParted, não suporta.

Edit: A partição em volume lógico que eu preciso redimensionar é a partição raiz. Existe alguma maneira de fazer isso sem um LiveCD?

    
por Cerin 30.08.2012 / 17:19

3 respostas

11

Este é um pequeno pedaço de um documento que eu escrevi para uso interno e, embora provavelmente responda em excesso à sua pergunta, eu pensei em colocá-lo aqui, caso seja útil para você ou para outros. .

  1. Faça login na máquina como root ou sudo em cada um dos comandos a seguir, insira fdisk –l , você deverá ver algo assim:

    Disk /dev/sda: 21.1 GB, 21xxxxxxxxx bytes
    255 heads, 63 sectors/track, 5221 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          13      104391   83  Linux
    /dev/sda2              14        2610    20860402+  8e  Linux LVM
    

    Neste caso eu alterei os valores, mas como você pode ver esta máquina tem um único disco virtual raiz de ~ 20GB com duas partições, sda1 e sda2, sda2 é o nosso primeiro volume físico do LVM, veja como o LVM usa um tipo de partição de '8e'.

  2. Agora digite pvdisplay , você verá uma seção para este primeiro PV (sda2) assim:

      --- Physical volume ---
    PV Name               /dev/sda2
    VG Name               rootvg
    PV Size               19.89 GB / not usable 19.30 MB
    Allocatable           yes (but full)
    PE Size (KByte)       32768
    Total PE              636
    Free PE               0
    Allocated PE          636
    PV UUID               PgwRdY-EvCC-b5lO-Qrnx-tkrd-m16k-eQ9beC
    

    Isso mostra que esta segunda partição (sda2) é mapeada para um 'grupo de volumes' chamado 'rootvg'.

  3. Agora podemos aumentar o tamanho do disco virtual usando o vSphere VSClient usual selecionando a VM, escolhendo 'editar configurações' e selecionando 'Disco Rígido 1'. Você pode aumentar o número de 'Tamanho provisionado' - desde que não haja instantâneos no lugar de qualquer maneira - e selecione OK. Isso levará alguns segundos para ser concluído.

  4. Se você voltar para a VM do Linux e entrar

    echo "- - -" > /sys/class/scsi_host/hostX/scan
    

    em que o caractere X provavelmente será zero, ele executará uma nova varredura do barramento SCSI e, em seguida, executará fdisk –l ; você deverá ver algo do tipo;

    Disk /dev/sda: 42.2 GB, 42xxxxxxxxx bytes
    255 heads, 63 sectors/track, 5221 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          13      104391   83  Linux
    /dev/sda2              14        2610    20860402+  8e  Linux LVM
    

    Você verá que o tamanho do disco aumentou, neste caso para ~ 40 GB a partir de ~ 20 GB, mas a tabela de partições permanece a mesma.

  5. Agora precisamos criar uma nova partição LVM, digite parted , você deve ver algo assim:

    GNU Parted 1.8.1
    Using /dev/sda
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted)
    

    Agora você precisará criar uma nova partição para o novo espaço extra, digite 'p' para ver a tabela de partições atual como esta;

    Model: VMware Virtual disk (scsi)
    Disk /dev/sda: 42.9GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    
    Number  Start   End     Size    Type     File system  Flags
     1      32.3kB  107MB   107MB   primary  ext3         boot
     2      107MB   21.5GB  21.4GB  primary               lvm
    

    Em seguida, digite mkpart , depois selecione 'p' para 'Primário', para tipo de sistema de arquivos digite 'ext3', para iniciar, digite um número um pouco maior que a combinação dos dois 'tamanhos' listados acima (ou seja, 107MB + 21.4GB, digamos 21.6GB), para o tipo final do tamanho do disco (ou seja, neste caso, 42.9GB). Uma vez que você pressionar enter, ele criará essa nova partição primária, digite 'p' para mostrar a nova tabela de partição, você verá algo como:

    Model: VMware Virtual disk (scsi)
    Disk /dev/sda: 42.9GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    
    Number  Start   End     Size    Type     File system  Flags
     1      32.3kB  107MB   107MB   primary  ext3         boot
     2      107MB   21.5GB  21.4GB  primary               lvm
     3      21.5GB  42.9GB  21.5GB  primary               ext3
    

    Você verá que a nova partição começou após as duas primeiras e preenche o espaço disponível, infelizmente tivemos que configurá-la para um tipo de 'ext3', então vamos mudar isso.

  6. Digite 't', então o número da partição (no nosso caso 3 como a terceira partição), então para o 'hex code' digite '8e' - uma vez que você tenha feito este tipo 'p' novamente e você deve veja a mudança para 'Linux LVM';

    Disk /dev/sda: 42.9 GB, 42949672960 bytes
    ads, 63 sectors/track, 5221 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
    Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        1          13      104391   83  Linux
    /dev/sda2           14        2610    20860402+  8e  Linux LVM
    /dev/sda3         2611        5221    20972857+  8e  Linux LVM
    
  7. Agora precisamos criar um novo volume físico do LVM nesta nova partição, digite pvcreate /dev/sda3 , isso deve então criar um novo PV do LVM chamado / dev / sda3, tipo pvdisplay para verificar;

    --- Physical volume ---
    PV Name               /dev/sda3
    VG Name              
    PV Size               20.00 GB / not usable 1.31 MB
    Allocatable           no
    PE Size (KByte)       0
    Total PE              0
    Free PE               0
    Allocated PE          0
    PV UUID               gpYPUv-XdeL-TxKJ-GYCa-iWcy-9bG6-tfZtSh
    

    Você deve ver algo semelhante ao acima.

  8. Agora precisamos estender o 'rootvg Volume Group' ou criar um novo para 'grupo de volume' não-root, digite vgdisplay para listar todos os 'grupos de volume', aqui está um exemplo;

    --- Volume group ---
    VG Name               rootvg
    System ID
    Format                lvm2
    Metadata Areas        2
    Metadata Sequence No  19
    VG Access             read/write
    VG Status             resizable
    MAX LV                0
    Cur LV                8
    Open LV               8
    Max PV                0
    Cur PV                2
    Act PV                2
    VG Size               21.3 GB
    PE Size               32.00 MB
    Total PE              1276
    Alloc PE / Size       846 / 26.44 GB
    Free  PE / Size       430 / 13.44 GB
    VG UUID               tGM4ja-k6es-la0H-LcX6-1FMY-6p2g-SRYtfY
    
    • Se você deseja estender o tipo 'rootvg Volume Group' vgextend rootvg /dev/sda3 , depois de pressionar enter, você verá uma mensagem informando que o 'volume group' foi estendido.

    • Se você quiser criar um novo 'grupo de volumes', precisará usar o comando vgcreate - provavelmente, é melhor me ligar para obter ajuda.

    Uma vez estendido, insira vgdisplay novamente para ver que o grupo de volumes 'rootvg' 'foi realmente estendido, como aqui;

    --- Volume group ---
    VG Name               rootvg
    System ID
    Format                lvm2
    Metadata Areas        2
    Metadata Sequence No  19
    VG Access             read/write
    VG Status             resizable
    MAX LV                0
    Cur LV                8
    Open LV               8
    Max PV                0
    Cur PV                2
    Act PV                2
    VG Size               39.88 GB
    PE Size               32.00 MB
    Total PE              1276
    Alloc PE / Size       846 / 26.44 GB
    Free  PE / Size       430 / 13.44 GB
    VG UUID               tGM4ja-k6es-la0H-LcX6-1FMY-6p2g-SRYtfY
    

    Você pode ver que o "tamanho VG" é o esperado.

  9. Agora precisamos estender o 'volume lógico', digite lvdisplay para mostrar nossos 'volumes lógicos', você verá algo como:

    --- Logical volume ---
    LV Name                /dev/rootvg/var
    VG Name                rootvg
    LV UUID                NOP1jF-09Xt-LkX5-ai4w-Srqb-xGka-nYbI2J
    LV Write Access        read/write
    LV Status              available
    # open                 1
    LV Size                3.00 GB
    Current LE             320
    Segments               3
    Allocation             inherit
    Read ahead sectors     auto
    currently set to       256
    Block device           253:2
    

    Se quisermos expandir o sistema de arquivos / var de 3 GB para 10 GB, digite lvextend –L 10G /dev/rootvg/var , agora digite lvdisplay novamente e verá que o 'volume lógico' cresceu para 10 GB;

    --- Logical volume ---
    LV Name                /dev/rootvg/var
    VG Name                rootvg
    LV UUID                NOP1jF-09Xt-LkX5-ai4w-Srqb-xGka-nYbI2J
    LV Write Access        read/write
    LV Status              available
    # open                 1
    LV Size                10.00 GB
    Current LE             320
    Segments               3
    Allocation             inherit
    Read ahead sectors     auto
    currently set to     256
    Block device           253:2
    
  10. Agora, a última coisa que precisamos fazer é aumentar o sistema de arquivos real, isso não tem que usar todo o espaço recém-adicionado pelo caminho. Digite df –h para mostrar os sistemas de arquivos atuais, aqui está um exemplo;

    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/rootvg-root
                          2.0G  1.4G  495M  74% /
    /dev/mapper/rootvg-home
                          248M  124M  113M  53% /home
    /dev/mapper/rootvg-var
                          3.0G  1.1G  1.8G  30% /var
    /dev/mapper/rootvg-usr
                          3.0G  936M  1.9G  34% /usr
    /dev/mapper/rootvg-opt
                          3.0G  811M  2.0G  29% /opt
    

    Se quisermos expandir o sistema de arquivos / var de 3 GB para 10 GB, digite resize2fs /dev/mapper/rootvg-var (ou no CentOS, talvez xfs_growfs /dev/mapper/rootvg-var ou comandos semelhantes, dependendo do tipo de sistema de arquivos). Quando você pressionar Enter, o sistema de arquivos real aumentará, isso pode levar algum tempo. Digite df –h depois de concluído para verificar.

    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/rootvg-root
                          2.0G  1.4G  495M  74% /
    /dev/mapper/rootvg-home
                          248M  124M  113M  53% /home
    /dev/mapper/rootvg-var
                          9.88G  1.1G  8.2G  12% /var
    /dev/mapper/rootvg-usr
                          3.0G  936M  1.9G  34% /usr
    /dev/mapper/rootvg-opt
                          3.0G  811M  2.0G  29% /opt
    

Você já terminou!

    
por 30.08.2012 / 18:52
2

Execute os seguintes passos antes de lvextend

  • #pvcreate / dev / sda3 (para criar um novo volume físico, se você não puder criar, provavelmente não reinicializou após criar a partição)

  • #pvdisplay (para verificar se você criou um novo volume físico)

  • #vgcreate VolGroup / dev / sda3 (para atribuir o VolGroup ao novo volume físico)

  • #lvdisplay (para obter o nome do caminho lógico da partição que você deseja estender)

  • #lvcreate -LxxGB -n root_new VolGroup (para atribuir tamanho lógico e criar um novo volume lógico)

  • #lvextend / dev / mapper / VolGroup-lv_root / dev / sda3 (estenda finalmente a partição raiz (if))

  • #lvdisplay (verifique o tamanho de LV se tiver aumentado ou não)

  • # resize2fs / dev / mapper / VolGroup-lv_root (para redimensionar o sistema de arquivos real)

  • #df -h (verifique se o valor real do sistema de arquivos aumentou ou não)

por 26.11.2012 / 09:49
0

você tem que redimensionar agora

resize2fs /dev/sda

Você deve estar no kernel 2.6, faça isso com o sistema de arquivos montado e o parâmetro ativado para permitir o redimensionamento online. Caso contrário, você precisa primeiro desmontar o dispositivo, redimensioná-lo e montá-lo novamente.

    
por 30.08.2012 / 17:26