quarta-feira, 15 de julho de 2009

Gerenciamento de discos com LVM no HP-UX

Agora vou tentar mostrar o LVM. Eu sei que este assunto é bastante extenso, mas vou adicionar alguns exemplos para se tornar uma leitura agradável e objetiva que é a idéia básica deste blog. Este artigo é para ser como guia passo a passo para criação e gerenciamento com LVM.

O que é LVM “Logical Volume Manager”?

O Logical Volume Manager (LVM) é um subsistema de gerenciamento que controla o espaço em disco e passa muita confiança na hora de adicionar e remover o discos, aumentar filesystems e decrementar tudo on-line. Mas pra isso ser on-line, você terá que verificar se o pacote jfsonline esta instalado.

# swlist | grep -i jfs
B3929CA B.11.11 HP OnLineJFS

Bom, já sabemos que podemos fazer as manutenções on-line.

Abaixo segue os conceitos básicos de VG, LV e PV.

PV = Phisical Volume: O disco físico, que esta alocado no seu sistema operacional.


VG = Volume Group: Grupo de volume, é responsável por agrupar um ou mais discos/Partições (PV -Volumes fisicos). Segue um exemplo de VG temos dois discos e que estão no mesmo VG, isso quer dizer que se os dois discos abaixo tiverem 70Gigabyte, agora nós temos um disco com 140Gigabyte.


Abaixo, temos um exemplo no sistema operacional, para verificar, saber quais são os lvol (que será explicado logo abaixo) que estão criados e quais são os discos que pertence o VG, utilizamos o comando vgdisplay.

# vgdisplay -v /dev/vg00
--- Volume groups ---
VG Name /dev/vg00
VG Write Access read/write
VG Status available
Max LV 255
Cur LV 13
Open LV 13
Max PV 16
Cur PV 2
Act PV 2
Max PE per PV 4350
VGDA 4
PE Size (Mbytes) 8
Total PE 8680
Alloc PE 4222
Free PE 4458
Total PVG 0
Total Spare PVs 0
Total Spare PVs in use 0

--- Logical volumes ---
LV Name /dev/vg00/lvol1
LV Status available/syncd
LV Size (Mbytes) 304
Current LE 38
Allocated PE 76
Used PV 2

LV Name /dev/vg00/lvol2
LV Status available/syncd
LV Size (Mbytes) 12288
Current LE 1536
Allocated PE 3072
Used PV 2

LV Name /dev/vg00/lvol3
LV Status available/syncd
LV Size (Mbytes) 504
Current LE 63
Allocated PE 126
Used PV 2

LV Name /dev/vg00/lvol4
LV Status available/syncd
LV Size (Mbytes) 3000
Current LE 375
Allocated PE 750
Used PV 2

LV Name /dev/vg00/lv_opt_patrol
LV Status available/syncd
LV Size (Mbytes) 504
Current LE 63
Allocated PE 126
Used PV 2

LV Name /dev/vg00/lv_opt_nsm
LV Status available/syncd
LV Size (Mbytes) 504
Current LE 63
Allocated PE 63
Used PV 2

--- Physical volumes ---
PV Name /dev/dsk/c1t0d0
PV Status available
Total PE 8680
Free PE 0
Autoswitch On

PV Name /dev/dsk/c2t0d0
PV Status available
Total PE 8680
Free PE 0
Autoswitch On

PE = Phisical Extends: Extensões físicas, quando você aloca disco em um VG este disco é “quebrado” em pequenos pedaços que você decide qual será o tamanho da PE.



Vamos verificar o disco acima pelo comando pvdisplay -v /dev/dsk/c1t0d0.

# pvdisplay -v /dev/dsk/c0t0d0
--- Physical volumes ---
PV Name /dev/dsk/c1t0d0
VG Name /dev/vg00
PV Status available
Allocatable yes
VGDA 2
Cur LV 9
PE Size (Mbytes) 8
Total PE 8680
Free PE 4458
Allocated PE 4222
Stale PE 0
IO Timeout (Seconds) default
Autoswitch On

Podemos ver que este disco está alocado para o VG00 é o espaço livre é 4458 PE, para você saber quanto isso é em Mbytes você tera que fazer uma conta assim:

PE Size*Free PE então no nosso caso ficaria assim:

8*4458 = 35664 Mbytes ou 35Gbytes

LV = Logical Volume: É o volume lógico, ou seja, é uma partição (lógica) de um VG (Volume físico).


Bom, agora que nós já temos um conceito básico sobre LVM, vamos criar um VG, um LV e um Filesystem.

Primeiro passo, o Reconhecimento disco é muito perigoso. Então vamos prestar muita atenção! Porque se pegar algum disco que esteja alocado em um VG, vamos ter problema. Não pode ter no mesmo disco em dois VGs, por isso teremos que prestar muita atenção!

Para saber quais são os discos no HP-UX, vamos utilizar o comando ioscan:

# ioscan -fnC disk | pg
Class I H/W Path Driver S/W State H/W Type Description
===========================================================================
disk 0 0/0/0/1/0.0.0 sdisk CLAIMED DEVICE HP 70.0GST373453LC
/dev/dsk/c0t0d0 /dev/rdsk/c0t0d0
disk 1 0/0/0/1/0.0.0 sdisk CLAIMED DEVICE HP 70.0GST373453LC
/dev/dsk/c0t1d0 /dev/rdsk/c0t1d0

O comando acima mostrará os discos que estão alocados no sistema operacional.

Para saber se este disco já esta alocado em um VG, nós teremos que usar o comando pvdisplay -v /dev/dsk/c0t1d0, assim teremos certeza que o disco não esta sendo utilizado em nenhum VG.

# pvdisplay -v /dev/dsk/c0t1d0
--- Physical volumes ---
PV Name /dev/dsk/c0t1d0
VG Name
PV Status available
Allocatable yes
VGDA 2
Cur LV 9
PE Size (Mbytes) 8
Total PE 8680
Free PE 8680
Allocated PE 0
Stale PE 0
IO Timeout (Seconds) default
Autoswitch On

Bom, neste caso, o nosso disco não está sendo utilizado em nenhum VG. Como temos certeza disso, vamos para o segundo passo que é a criação de um novo VG.

Dica: Sempre que um analista te pedir para você criar um filesystem para alguma aplicação, verifique se não há uma possibilidade de alocar e criar um VG para aplicação pois lembrando que o VG00 é do sistema operacional.

Vamos criar este VG para o Bando de Dados Oracle. O nome do VG será ora_vg. Poderia ser qualquer nome, mas para ficar mais fácil para a nossa compreensão e administração.

Todos os VGs ficam no diretório que fica no /dev, dentro deste diretório tem o subdiretório no nosso VG que neste caso é o /dev/vg00, dentro dele tem os Lvols.

Vamos começar a criar no nosso VG. Entre no /dev e criar um diretorio com o novo do nosso VG.

#mkdir /dev/ora_vg

Agora temos que criar um volume fisico. Pra isso vamos usar o pvcreate.

#pvcreate /dev/rdsk/c0t1d0

Temos que criar o arquivo especial com o mknod.

#mknod /dev/vgnovo_grupo/grupo c 64 0x020000
onde c que dizer device caracter
onde 64 major number que e um device do vg
onde minor em hexadecimal

#vgcreate -s 32 -e 8192 -p 255 /dev/ora_vg /dev/dsk/c0t1d0
-s pe_size quanto será o PE
-e max_pe maximo PE dentro do seu disco
-p max_pv quanto discos físicos terá neste vg

Vamos verificar como ficou o nosso ora_vg, com o comando vgdisplay -v.

# vgdisplay -v ora_vg
--- Volume groups ---
VG Name /dev/ora_vg
VG Write Access read/write
VG Status available
Max LV 255
Cur LV 13
Open LV 13
Max PV 16
Cur PV 2
Act PV 2
Max PE per PV 4350
VGDA 4
PE Size (Mbytes) 8
Total PE 8680
Alloc PE 0
Free PE 8680
Total PVG 0
Total Spare PVs 0
Total Spare PVs in use 0

Com o comando lvcreate, vamos criar um lvol com o nome lv_oracle.

#lvcreate -L 1024 -n lv_oracle /dev/ora_vg

-L e em Mbytes

-n novo do lvol

Agora vamos criar o Filesystem.

#newfs -F vxfs /dev/ora_vg/rlv_oracle

Agora temos que criar um ponto de montagem que será /oracle.

#mkdir /oracle

Sempre que você criar um filesystem no HP-UX, você terá que colocar no arquivo /etc/fstab. Se você não colocar este novo filesystem no /etc/fstab, quando você reinicializar o servidor, este filesystem não será montado automaticamente, porque quando o servidor está subindo, o sistema operacional verifica quais são os filesystem que ele deve montar.

#vi /etc/fstab

Vamos trocar de usuário e grupo, pois você criou como root.

#chown oracle:dba /oracle

Agora vamos montar o filesystem.

#mount /dev/ora_vg/lv_oracle /oracle

Dicas!

. NUNCA deixe de fazer backup (faça dois, cuidado nunca é demais) antes de alterar uma configuração de LVM.

. Não misture discos SCSI/STORAGE/IDE em um mesmo VG, isso afeta a performance, visto que eles têm velocidades diferentes, se você estiver nesta situação, faça VGs distintos para cada tipo.

Espero ajude. Eu sei que ele ficou um pouco extenso, mas isso é o básico. Se tiver alguma dúvida, pode enviar um e-mail.

2 comentários:

  1. Excelente. Sou especialista em AIX, mas trabalho numa equipe onde temos solaris, hp-ux e aix. Como ficamos de plantão, é preciso conhecer todos os ambientes e estas suas dicas foram maravilhosas para o meu trbalho. A única dúvida que me restou foi a seguinte: Como apresento um disco à máquina e como apresento este disco ao vg. Pelo que entendi o pvcreate apresenta o disco á maquina e o vgcreate cria o vg com o disco. Mas como, por exemplo, adicionar mais um disco ao vg? Muito obrigado e peço a gentileza de me enviar por email uma resposta sobre a minha dúvida! email: marco.a.p.seixas@gmail.com

    ResponderExcluir
  2. Otimo artigo!!!

    Muito parecido com esse aqui!!
    http://imasters.com.br/artigo/4977/linux/gerenciamento-de-discos-com-lvm-no-hp-ux

    Por sinal fui eu que fiz!!!

    Abraços,
    Marcelo Barros

    ResponderExcluir