segunda-feira, 9 de abril de 2012

Procedimento para gerenciar a LVM no HP-UX

Artigo original em LinuxAjuda

Quando voce instala a maquina ja e possivel definir o numero de filesystems desejados e o tamanho de cada um. Porem, com o passar do tempo, dependendo dos recursos de disco consumidos pela sua aplicacao, ou devido a compra de discos adicionais, torna-se necessario alterar a configuracao inicial: ou voce aumenta o tamanho de um filesystem, ou o diminui, ou cria novos filesystems.

Vamos reforcar alguns conceitos de uma forma bem simples antes de prosseguirmos com os exemplos:


VG == Volume Group: e o grupo de volumes de disco configurados na maquina. Em cada VG voce pode incluir 1 ou mais discos.


LVOL == Logical Volume: e a particao do disco. Quando voce criar o disco em um VG, deve particiona-lo (em 1 ou mais "pedacos").


File System: depois de particionado o disco, voce podera criar um sistema de arquivos para montar em um diretorio.

OBS.: Se voce precisar usar um "raw device", basta criar o VG e o LVOL (nao precisa criar o filesystem).


Queremos tambem ressaltar algumas observacoes importantes:


- O barra (/), onde esta o "/dev/vg00/lvol1", nao pode ser modificado, ou seja, nao e possivel aumentar e nem diminuir o seu
tamanho. Para altera-lo, e necessario uma reinstalacao do Sistema Operacional.


- Voce pode alterar os volumes, atraves do SAM ou manualmente, com excecao do /usr (se estiver em um volume logico separado do "/"), o qual deve ser alterado apenas manualmente.


- Para alterar os volumes logicos (lvols), eles devem estar desmontados.


- Nunca deixe de fazer backup regularmente e principalmente antes de qualquer alteracao na configuracao do LVM.
A seguir listamos 8 exemplos de duvidas que ocorrem com mais frequencia:


A - Como criar um novo VG;
B - Como remover um VG;
C - Como incluir um disco novo em um VG ja existente;
D - Como excluir um disco de um VG;
E - Como criar um novo LVOL;
F - Como remover um LVOL;
G - Como aumentar o tamanho de um LVOL;
H - Como diminuir o tamanho de um LVOL.

A - ) COMO CRIAR UM NOVO VG:

Nesse exemplo supomos que voce tinha apenas 1 disco configurado na maquina e agora vai criar um novo VG para o segundo disco (um disco novo):


1) Execute o comando "ioscan" para saber o endereco do disco:

# /usr/sbin/ioscan -fC disk
Class I H/W Path Driver S/W State H/W Type Description
================================================================
disk 1 52.5.0 disc3 CLAIMED DEVICE HP C2474S
disk 0 52.6.0 disc3 CLAIMED DEVICE HP C2247M1

Observe que temos um disco no endereco 6 e outro no endereco 5.

2) Verifique qual dos dois esta alocado no(s) VG(s) existente(s):


# /sbin/vgdisplay -v | grep "PV Name"


PV Name /dev/dsk/c0t6d0

Observe que realmente so temos um disco alocado em VG. Note que esse disco e o dispositivo "c0t6d0", o qual esta no endereco 6.


O disco de endereco 5 e o de dispositivo "c0t5d0".


3) Crie um novo VG para o novo disco:
# mkdir /dev/vg01
# mknod /dev/vg01/group c 64 0x010000 |_> esse valor nao pode ser repetido
# /sbin/pvcreate /dev/rdsk/c0t5d0
# /sbin/vgcreate /dev/vg01 /dev/dsk/c0t5d0

B - ) COMO REMOVER UM VG:


Assumimos nesse exemplo que voce tem dois discos no VG01 e esse VG tem dois LVOLs criados:

1) Devemos, em primeiro lugar, desmontar os filesystems do VG em questao:


# /usr/sbin/umount /dev/vg01/lvol1
# /usr/sbin/umount /dev/vg01/lvol2

2) Agora, vamos remover os LVOLs criados para ele:


# /sbin/lvremove -f /dev/vg01/lvol1 /dev/vg01/lvol2


3) Em seguida, descobrimos quais discos fazem parte do VG01, para removermos:


# /sbin/vgdisplay -v vg01 | grep "PV Name"
PV Name /dev/dsk/c0t5d0
PV Name /dev/dsk/c0t4d0

4) Verificamos nesse exemplo que temos dois discos no VG01.
Devemos remover "quase todos os discos" do VG01 (somente deixamos um):

# /sbin/vgreduce /dev/vg01 /dev/dsk/c0t4d0

5) Restando apenas um disco no VG, basta remove-lo:

# /sbin/vgremove /dev/vg01

C - ) COMO INCLUIR UM DISCO NOVO EM UM VG JA EXISTENTE:


Assumimos nesse exemplo que voce somente tem o VG00, com um disco.
Vamos incluir o novo disco nesse mesmo VG:
1) Execute o comando "ioscan" para saber o endereco do disco:
# /usr/sbin/ioscan -fC disk
Class I H/W Path Driver S/W State H/W Type Description
================================================================
disk 1 52.5.0 disc3 CLAIMED DEVICE HP C2474S
disk 0 52.6.0 disc3 CLAIMED DEVICE HP C2247M1

Observe que temos um disco no endereco 6 e outro no endereco 5.

2) Verifique qual dos dois esta alocado no(s) VG(s) ja existente(s):

# /sbin/vgdisplay -v | grep "PV Name"
PV Name /dev/dsk/c0t6d0

Observe que realmente so temos um disco alocado em VG. Note que esse disco e o dispositivo "c0t6d0", o qual esta no endereco 6.

O disco de endereco 5 e o de dispositivo "c0t5d0".


3) Agora e so inclui-lo no VG00:

# /sbin/pvcreate /dev/rdsk/c0t5d0
# /sbin/vgextend /dev/vg00 /dev/dsk/c0t5d0

D - ) COMO EXCLUIR UM DISCO DE UM VG:
Assumimos nesse exemplo que voce tem dois discos no VG01 e esse VG tem dois LVOLs criados. O disco a ser removido e o de endereco 4. Tome o seguinte cuidado: pode ser que um determinado LVOL esteja ocupando uma parte de cada disco. Nesse caso, esse LVOL e perdido.

1) Devemos, em primeiro lugar, desmontar os filesystems do VG em questao:

# /usr/sbin/umount /dev/vg01/lvol1
# /usr/sbin/umount /dev/vg01/lvol2


2) E necessario descobrir quais LVOLs fazem parte do disco de endereco 4:

# /sbin/lvdisplay -v /dev/vg01/lvol2 | pg

--- Logical volumes ---
...
--- Distribution of logical volume ---
PV Name LE on PV PE on PV
/dev/dsk/c0t5d0 12 12
/dev/dsk/c0t4d0 40 40
||
\\==========> essa e a informacao que nos interessa.
--- Logical extends ---
...
# /sbin/lvdisplay -v /dev/vg01/lvol1 | pg
--- Logical volumes ---
...
--- Distribution of logical volume ---
PV Name LE on PV PE on PV
/dev/dsk/c0t5d0 12 12
||
\\==========> essa e a informacao que nos interessa.
--- Logical extends ---
...
Observe que nos comandos acima conseguimos visualizar que o LVOL2 ocupa dois discos e o LVOL1 ocupa apenas um. O LVOL que esta ocupando o disco a ser removido e o LVOL2.

3) Agora vamos remover o LVOL que ocupa o disco em questao:

# /sbin/lvremove -f /dev/vg01/lvol2

4) Livre de LVOLs, basta remover o disco do VG:

# /sbin/vgreduce /dev/vg01 /dev/dsk/c0t4d0

E - ) COMO CRIAR UM NOVO LVOL:

Nao se esqueca que para criar um LVOL, o VG ja deve estar previamente criado. Nesse exemplo assumimos que o VG01 ja esta criado, ja possui o LVOL1 e agora queremos usar o restante de seu espaco para criar outro LVOL (lvol2).

1) Primeiro devemos descobrir se ha espaco desalocado no VG e quanto de espaco ainda ha disponivel:

# /sbin/vgdisplay vg01 | grep Free
Free PE 25

Se o numero resultante desse comando for 0, significa que nao sera possivel criar um novo LVOL.

2) Vamos criar um LVOL com 25 extensoes (que tem 4Mb cada uma). O tamanho em bytes e de (25 * 4) == 100Mb.

# /sbin/lvcreate -l 25 vg01

OBS.: O novo lvol e um numero sequencial, a partir do ultimo criado. Como so tinhamos o LVOL1, o proximo a ser criado e
o LVOL2.


3) Se voce for usar um Raw Device, ou alocar essa area para swap fisico, nao deve criar o sistema de arquivos. Porem, se voce quiser usar esse LVOL para um sistema de arquivos, para montar em um diretorio, deve cria-lo da seguinte forma:

# /usr/sbin/newfs -F vxfs /dev/vg01/rlvol2

4) Para monta-lo, ja deve existir o diretorio destino (e vazio!):

# mkdir /mnt

# /usr/sbin/mount /dev/vg01/lvol2 /mnt

5) Para que o sistema de arquivos seja montado automaticamente durante o boot e necessario inclui-lo no arquivo /etc/fstab:

# vi /etc/fstab

/dev/vg01/lvol2 /mnt vxfs delaylog 0 2

OBS.: Verifique no manual a sintaxe da fstab para conhecer mais detalhes.

F - ) COMO REMOVER UM LVOL:

Assumimos nesse exemplo a remocao do LVOL2 que esta no VG01:

1) Desmonte o LVOL em questao:

# /usr/sbin/umount /dev/vg01/lvol2

2) Remova o LVOL:

# /sbin/lvremove -f /dev/vg01/lvol2

3) Nao se esqueca de remove-lo da tabela "/etc/fstab", antes de resetar a maquina.

G - ) COMO AUMENTAR O TAMANHO DE UM LVOL:
Assumimos nesse exemplo o aumento do tamanho do LVOL2, que esta no VG01. Atualmente ele tem 572Mb e incluiremos nesse LVOL mais 40Mb.

LEMBRETE: nao e possivel aumentar o barra ("/"), que esta no LVOL1 do VG00!!!

1) Verifique se ha espaco disponivel no VG, a fim de inclui-lo no LVOL em questao:

# /sbin/vgdisplay vg01 | grep Free
Free PE 25

Se o numero resultante desse comando for 0, significa que nao sera possivel aumentar um LVOL.

Nesse caso temos 25 extensoes (de 4Mb cada uma), totalizando entao 100Mb ainda disponiveis.

Como queremos apenas 40Mb, usamos 10 extensoes (40 / 4 = 10).

2) Desmonte o LVOL em questao:

# /usr/sbin/umount /dev/vg01/lvol2

3) Garanta que o LVOL esta realmente desmontado, atraves do comando "mount": nao deve aparecer a linha desse LVOL.

4) Vamos agora descobrir quantas extensoes de 4Mb temos alocadas atualmente no LVOL:

# /sbin/lvdisplay -v /dev/vg01/lvol2 | grep Current
Current LE 143

5) Totalizamos agora o novo numero de extensoes logicas:
143 + 10 = 153
| | |
| | |-------> total de extensoes (=> 153 * 4 = 612Mb).
| |-------------> total que temos intencao de adicionar
| (=> 10 * 4 = 40Mb)
|------------------> total de extensoes atualmente

(=> 143 * 4 = 572Mb)
 

Dessa forma chegamos a um novo tamanho de 612Mb.

6) Vamos agora aumentar o tamanho do LVOL:

# /sbin/lvextend -l 153 /dev/vg01/lvol2

7) Depois de aumentado o tamanho do LVOL, precisamos aumentar o tamanho do sistema de arquivos para compatibilizar os tamanhos:


# /usr/sbin/extendfs –F vxfs /dev/vg01/rlvol2


8) Por ultimo, e so montar novamente o LVOL e usa-lo ja com o novo tamanho!

H - ) COMO DIMINUIR O TAMANHO DE UM LVOL:
Assumimos nesse exemplo a diminuicao do LVOL2 que esta no VG01. Hoje, o LVOL2 esta com 612Mb e queremos deixa-lo com apenas 500Mb.

LEMBRETE: nao e possivel diminuir o tamanho do barra ("/"), que esta no LVOL1 do VG00!!!
1) Em primeiro lugar devemos fazer um backup do diretorio onde esta montado o LVOL2, pois ao diminuirmos o seu tamanho, perderemos os dados:

# cd /diretorio
# find . -print | cpio -ocvB > /dev/rmt/c0t0d0BEST

2) Em seguida, desmontamos o LVOL:

# cd / ; umount /dev/vg01/lvol2

3) Garanta que o LVOL esta realmente desmontado, atraves do comando "mount": nao deve aparecer a linha desse LVOL.

4) Como o LVOL esta com 612Mb e queremos diminui-lo para 500Mb, devemos calcular o numero de extensoes contidas em 500Mb:


calcule: 500 / 4 = 125

5) Reduza agora o tamanho do LVOL:

# /sbin/lvreduce -l 125 /dev/vg01/lvol2

6) Crie um novo sistema de arquivos (pois nao e possivel apenas diminuir o tamanho do sistema de arquivos):

# /usr/sbin/newfs -F vxfs /dev/vg01/rlvol2

7) Monte o filesystem e restaure os dados do backup:

# mount /dev/vg01/lvol2 /diretorio

# cd /diretorio

# cpio -icvdumB < /dev/rmt/c0t0d0BEST

GERENCIAMENTO DO LVOL COM ADVANCED JFS

1. Como aumentar o tamanho do lvol:

Atencao: Para os procedimentos abaixo E' necessario que o pacote HP OnLine JFS Advanced VxFS esteja instalado.

1.1 - Verifique se existe espaco disponivel no vg00:

# /sbin/vgdisplay -v vg00 |grep Free
Free PE 178

Se o numero mostrado for 0, indica que o seu vg nao tem espaco disponivel para criar um novo lvol.
Atencao: Note que no item anterior, nos desmontamos o lvol; nesse caso, com o pacote instalado, nao E' necessario.
1.2 - Como queremos aumentar o lvol para o tamanho de 140MB, podemos utilizar:

# /sbin/lvextend -L 140 /dev/vg00/lvol10

Logical volume "/dev/vg00/lvol10" has been successfully extended. Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/vg00.conf

1.3 - Aumente o tamanho do sistema de arquivos para compatibilizar o tamanho:

# /usr/sbin/fsadm -F vxfs -b 143360 /teste
fsadm: /dev/vg00/rlvol10 is currently 102400 sectors - size will be increased
onde:
-b (total lvol * 1024)
1.4 - Para confirmar que o lvol foi realmente aumentado, pode-se executar:

#/usr/bin/bdf
ou
#/usr/sbin/lvdisplay /dev/vg00/lvol10

2. Reduzindo o tamanho do lvol
2.1 - Tire backup do lvol (por seguranca).
2.2 - Nao E' necessario desmontar o lvol.
2.3 - Reduzindo o lvol:

# /usr/sbin/fsadm -F vxfs -b 102400 /teste
fsadm: /dev/vg00/rlvol10 is currently 155648 sectors - size will be reduced

#/usr/sbin/lvreduce -L 100 /dev/vg00/lvol10
Then a logical volume is reduced useful data might get lost; do you really want the command to proceed (y/n) : y Logical volume "/dev/vg00/lvol10" has been successfully reduced. Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/vg00.conf

2.4 - Para confirmar que o lvol foi realmente aumentado, pode-se
executar:
#/usr/bin/bdf
ou
#/usr/sbin/lvdisplay -v /dev/vg00/lvol10

Nenhum comentário:

Postar um comentário