Adicionando um novo disco a um volume LVM2 online

Quando já se tem um Volume configurado, adicionar um disco ao Grupo do Volume com o sistema e com o LVM online facilita a vida.

Atenção
Executar comandos como root pode ser perigoso para o sistema. Por isso tenha cuidado!
Alerta
Essa página contém comandos que podem INUTILIZAR seu sistema inteiro!
Execute-os por sua conta e risco.

Estou partindo do princípio que seu sistema possua:

  • Um volume LVM já criado
  • O sistema de Arquivo é EXT3
  • Um ou mais novos discos adicionados

Inicializando o disco extra

# fdisk -l
Disk /dev/sdd: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdd doesn't contain a valid partition table
O disco /dev/sdd não possui nenhuma partição criada, esse é nosso HD que adicionaremos ao volume LVM existente.
# fdisk /dev/sdd
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
Image:Info.png
Nota
O disco foi todo utilizado, portanto nas duas opções First cylinder e Last cylinder foi apertado <ENTER> como opção Default.
First cylinder (1-130, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
Using default value 130
Command (m for help): t
Selected partition 1
Image:Info.png
Nota
8e corresponde a Linux LVM
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Listando os volumes disponíveis

Modo resumido
# vgdisplay -s
"system" 13.84 GB  [13.78 GB  used / 64.00 MB free]
Modo detalhado
# vgdisplay
  --- Volume group ---
  VG Name               system
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               13.84 GB
  PE Size               32.00 MB
  Total PE              443
  Alloc PE / Size       441 / 13.78 GB
  Free  PE / Size       2 / 64.00 MB
  VG UUID               1NVjXy-d54s-62br-R31k-R8VA-iAAJ-4BzPXa

Listando os volumes lógicos

É necessário sabermos qual volume lógico queremos aumentar.

# lvdisplay -a
  --- Logical volume ---
  LV Name                /dev/system/root
  VG Name                system
  LV UUID                M1uLX3-2W4u-3Pkv-4sM2-lg3b-duPt-dhxbQb
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                11.91 GB
  Current LE             381
  Segments               2
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:0

  --- Logical volume ---
  LV Name                /dev/system/var
  VG Name                system
  LV UUID                BOQbWB-lhIp-mRNX-mPzm-CLsG-lwno-mAkQiW
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                1.88 GB
  Current LE             60
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:1

Vamos aumentar o /dev/system/root

Adicionando o novo disco ao Volume

Agora que vimos qual é o volume que vamos expandir, iremos realizar os procedimentos para aumentar o tamanho do volume online.

Antes de utlizarmos o disco como um volume físico (physical volume), temos que inicializá-lo.

# pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created

Adicionar o disco inicilizado ao volume existente.

# vgextend system /dev/sdd1
  /dev/cdrom: open failed: Read-only file system
  /dev/cdrom: open failed: Read-only file system
  Attempt to close device '/dev/cdrom' which is not open.
  Volume group "system" successfully extended

Extendendo o volume com o novo disco

Executando novamente o comando “vgdisplay” será nos informado quanto de espaço temos disponível.

# vgdisplay
  --- Volume group ---
  VG Name               system
  System ID
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  7
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               14.81 GB
  PE Size               32.00 MB
  Total PE              474
  Alloc PE / Size       441 / 13.78 GB
  Free  PE / Size       33 / 1.03 GB
  VG UUID               1NVjXy-d54s-62br-R31k-R8VA-iAAJ-4BzPXa

Repare no campo  Free PE / Size , existe 1.03GB livres que corresponde ao novo disco adicionado.

Com essa informações, podemos expandir o volume  “system.

# lvextend -L+1.03G /dev/system/root
  Extending logical volume root to 12.94 GB
  Logical volume root successfully resized
# vgdisplay
  --- Volume group ---
  VG Name               system
  System ID
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  8
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               14.81 GB
  PE Size               32.00 MB
  Total PE              474
  Alloc PE / Size       474 / 14.81 GB
  Free  PE / Size       0 / 0
  VG UUID               1NVjXy-d54s-62br-R31k-R8VA-iAAJ-4BzPXa

Não existe mais espaço livre para ser alocado. Tudo está alocado.

Image:Alerta2.png
Aviso
Se você está utlizando um kernel antigo, talvez não suporte aumentar o filesystem  ext3 online.A versão do programa resize2fs 1.35 (28-Feb-2004) também não tem esse suporte.

# resize2fs /dev/system/root
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/system/root is mounted on /; on-line resizing required
Performing an on-line resize of /dev/system/root to 3391488 (4k) blocks.
The filesystem on /dev/system/root is now 3391488 blocks long.
Antes
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/system-root
                       13G  3.5G  7.5G  30% /
Depois
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/system-root
                       13G  3.5G  8.5G  30% /
Share this post

7 comments

Join the conversation
  • Marco - 20/10/2009 reply

    Tenho algumas dúvidas:

    – Cenário: 2 servidores UNIX AIX em cluster. Preciso aumentar um filesystem utilizado pelo banco de dados do informix, contudo o VG não tem mais nenhuma PP livre e portanto preciso adicionar um disco livre do storage.

    1- Como verifico se existe, no storage, algum disco livre?

    2- Como adicionar este disco livre ao VG, de forma que o cluister identifique este novo disco?

    3- Ao aumentar o VG, consigo extender meu filesystem. Como fazer para o cluster identificar isto, bem como o informix também?

    Por hora é o bastante!
    Desde já agradeço pela ajuda!

    Fabio Kühl Lima - 20/10/2009 reply

    Marco,

    A sua primeira pergunta não ficou muito clara, deduzi que você está se referindo à LUNs alocadas para ambos os nós no cluster, porém que não estão sendo utilizadas. De qualquer forma, esse é o ponto de menor importância, pois caso não seja essa a questão, você terá de alocar novas LUNs no Storage e reconhecê-los nos dois servidores, com o comando cfgmgr.

    Levando então em consideração que existe zone para os dois servidores no disco que não está sendo utilizado, o primeiro passo é identificar quais discos estão em uso e quais estão disponíveis. Verificamos isso com o comando

    # lspv

    A saída é bem simples, porém com as informações que precisamos. Por exemplo:

    hdisk0 000c35aa661d7fa7 rootvg active
    hdisk1 000c35aa8e0ef386 rootvg active
    hdisk4 000c35aaadad779e None
    hdisk5 000c35aaadad78b0 None

    A primeira coluna informa o device path, a segunda e mais importante é o ID do disco, única em ambos os nós (nunca utilize para fins de identificação o device path, que pode diferir entre os nós), e a terceira informa o nome do VG ao qual o disco faz parte. Precisamos de um disco que não esteja sendo utilizado em nenhum Volume Group em ambos os nós. Vamos pegar como exemplo o terceiro disco da lista:

    hdisk4 000c35aaadad779e None

    Depois de certificado que esse é realmente o disco que precisamos para extender o VG, tudo fica simples com o smit:

    # smit cl_admin

    Selecione “Cluster Logical Volume Manager” -> “Characteristics of a Shared Volume Group” -> “Add a VOlume to a Shared Volume Group”.

    Basta alimentar com as informações corretas que o procedimento será replicado para o outro nó.

    Sendo assim, podemos resumir as respostas às suas duvidas conforme segue:

    1 – Utilize o comando lspv para identificar quais discos comuns aos dois nós devem ser utilizados em Shared VGs;

    2 – Após zone correto no Frame (FC), o reconhecimento dos discos deve ser realizado em cada nó com o comando cfgmgr. O Extend do VG (adicionar os novos discos ao VG) deve ser realizado através do smit cl_admin

    3 – Realizando com sucesso o extend do VG, voce terá PPs livres para alocar nos Logical Volumes conforme demanda, como por exemplo, para o Filesystem do Informix. Basta realizar os procedimentos de extend online do filesystem (se tiver alguma dúvida com relação a esse topico, favor postar nova dúvida).

    Espero ter ajudado.

    Um abraço.

    Fabio

  • Victor - 01/08/2013 reply

    EXCELENTE artigo,muito bem explicado. Devidamente adicionado aos meus favoritos. Parabéns!!!!!!!!!

  • Fernando - 16/08/2013 reply

    É preciso desmontar a partição que se quer extender?

    Daniel Kühl Lima - 16/08/2013 reply

    Opa, nao eh necessario desmontar o filesystem, se voce estiver com a ultima versao do e2fsprogs.

    Fernando - 16/08/2013 reply

    Ok, testei aqui e funcionou perfeitamente. Muito obrigado!

  • Rafael Supertramp - 01/02/2017 reply

    cara sensacional, foi o melhor artigo que eu achei parabéns!

Leave a Reply Cancel