Como estender a partição PV on-line do Linux após o crescimento do disco virtual

12

O VMware permite estender o tamanho de um disco virtual on-line - quando a VM está em execução. As próximas etapas esperadas para o sistema Linux são:

  1. estenda a partição: exclua e crie uma maior com fdisk
  2. estenda o tamanho do PV com pvresize
  3. use extensões gratuitas para lvresize operations
  4. e, em seguida, resize2fs para o sistema de arquivos

Mas estou preso no primeiro passo: fdisk e sfdisk ainda exibem o tamanho antigo do disco.

Meu disco é um disco virtual SCSI conectado graças ao controlador LSI Logic virtual.

Como atualizar o tamanho do disco virtual e as informações da tabela de partições disponíveis no kernel do Linux sem reinicializar ?

Até onde eu sei, todas as etapas são possíveis para um Windows em execução, sem reinicialização e mesmo sem ações do usuário, graças às ferramentas VMWare. No Linux, espero fazer todas as etapas on-line e já sei que as etapas 2, 3 e 4 funcionam on-line. Mas o primeiro - alterar o tamanho da partição declarado na tabela de partições (ainda) parece exigir uma reinicialização.

Atualização: Meu sistema é um Debian Lenny com kernel 2.6.26 e o disco que eu estendi é o disco principal com um grande PV contendo o LV "root" para "/".

    
por Yves Martin 10.04.2012 / 13:45

7 respostas

9

Você pode fazer isso sem reiniciar. pvresize não redimensiona o volume físico até que a partição seja atualizada com o espaço adicionado. Você deve fdisk a partição e recriá-lo com o novo tamanho total do disco, depois que você pode digitalizar novamente as unidades para ver o espaço extra em primeiro lugar.

Mais informações: link

    
por 08.10.2012 / 22:04
11

A outra resposta fornecida não resolve sua dúvida, identifiquei o comando correto para verificar novamente um disco já conectado.

Precisamos verificar novamente o disco já conectado. Primeiro, identifique qual disco você deseja redigitalizar.

ls /sys/class/scsi_disk/

No meu exemplo, vejo um link simbólico chamado 0:0:0:0 , portanto, verificamos novamente este disco scsi.

echo '1' > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan

Eu apenas estendi meu disco VMware também e tive que vasculhar outras respostas para encontrar o comando correto. Espero que isso salvará os futuros pesquisadores de tentativas fúteis.

    
por 03.12.2014 / 17:33
4

Tanto quanto o sistema de arquivos raiz / estiver montado no disco que foi redimensionado, a tabela de partição e o tamanho do disco não serão atualizados por uma nova análise SCSI com o Linux 2.6.26.

Eu realmente espero que seja melhor em breve com novas versões do kernel.

Então eu tive que:

  • reinicialize pela primeira vez para ver o novo tamanho do disco em fdisk
  • elimine a antiga partição PV original em fdisk
  • crie uma entrada de partição com o mesmo número e inicie o setor até o final do disco
  • reinicialize uma segunda vez OU execute partprobe do pacote parted somente se / não estiver montado lá
  • Agora posso executar pvresize para obter novo espaço livre, lvextend e resize2fs para alocar mais espaço para um sistema de arquivos

Eu tenho recomendado simplesmente descartar aquela tabela de partições antiga e executar pvcreate diretamente no dispositivo, já que o Grub2 é capaz de carregar uma imagem do kernel diretamente de um sistema de arquivos em uma partição LVM. Mas essa configuração não é óbvia em todos os instaladores de distribuição.

Atualização: Acabei de verificar com o Debian GNU / Linux Jessie 8.2 executando o kernel 3.16 e parted 3.2, o partprobe agora é bem-sucedido após a edição da tabela de partições com cfdisk sem reinicialização. pvresize funciona imediatamente depois.

Se você deseja estender um PV armazenado como partição lógica do PC, por exemplo /dev/sda5 na partição primária estendida /dev/sda2 , não use fdisk , mas prefira parted :

parted /dev/sda2 -1
parted /dev/sda5 -1
pvresize /dev/sda5
    
por 10.05.2012 / 16:21
3

Você precisa redigitalizar os discos antes de poder criar a partição maior.

Em Centos, você pode fazer isso

ls /sys/class/scsi_host

depois para cada host

echo "- - -" > /sys/class/scsi_host/host#/scan

(substitua # pelo número)

Há também mais um passo para o que está acima, o qual está expandindo ext ou qualquer sistema de arquivos que você esteja usando depois de ter redimensionado a partição.

Você ainda terá que desmontar essa partição em algum momento. O que tendemos a fazer é adicionar um segundo disco vmware e usar lvm para se estender para o novo disco (e reduzir o antigo se for um substituto), pois isso permite que todo o processo aconteça ao vivo.

    
por 10.04.2012 / 14:00
1

Você não nos forneceu detalhes suficientes para informar os comandos exatos necessários, mas basicamente precisará usar o comando lvextend para estender o volume lógico, depois o comando e2fsck e, em seguida, o resize2fs comando para realmente expandir seu sistema de arquivos. Cada um desses comandos precisará de parâmetros adicionais, especificamente informações de dispositivo e sistema de arquivos, que não podemos fornecer, mas você precisará conhecê-los, basta usar a opção --help para cada comando para informá-lo como usá-los especificamente, mais você provavelmente acabará usando os comandos pvdisplay , lvdisplay e mount para ajudar a preencher esses parâmetros.

    
por 10.04.2012 / 14:00
0

Como resposta atualizada, no Ubuntu 16.04.1, consegui fazer o seguinte para redimensionar um volume de 1024 GB para 1,4 TB:

echo '1' > /sys/class/scsi_disk/32\:0\:1\:0/device/rescan
pvresize /dev/sdb
lvextend -l +100%FREE /dev/nvr01-opt/opt
resize2fs /dev/nvr01-opt/opt

Não foi necessário fdisk e o espaço ficou imediatamente disponível.

    
por 08.12.2016 / 14:24
0

Ninguém postou um conjunto completo de comandos, então aqui vamos nós:

# the following steps are for adding a new HDD
apt install scsitools
rescan-scsi-bus
pvcreate /dev/sdX
vgextend /dev/vgname /dev/sdx
lvextend -l +100%FREE /dev/vgname/root 
resize2fs /dev/vgname/root

#if resizing existing HDD
fdisk /dev/sdX
create new partition
pvcreate /dev/sdXn
vgextend /dev/vgname /dev/sdXn
lvextend -l +100%FREE /dev/vgname/root 
resize2fs /dev/vgname/root
    
por 08.12.2016 / 15:29