Extender partição LVM sem down time » HowTo Online
« Treinamento gratuito de Nagios
LPIC2 – atualização à vista ( versão4.5)! »
Extender partição LVM sem down time	Categorias: Sistema, Uncategorized
Por Adonis Tarcio	E ai pessoal, hoje vou explicar nesse artigo como extender uma partição LVM sem down time (sem precisar reiniciar ou parar o servidor).
Eu nao vou abordar a criacao e funcionamento das particoes LVM, mas sim manipular uma em um servidor de producao. O processo pode variar um pouco dependendo da sua distribuicao.
Para esse artigo foi utilizado um servidor virtualizado no VMWare.
VMWare VSphere Client (Em ingles)
LVM version: 2.02.95(2) (2012-03-06)
Partições LVM previamente configuradas
Adicionando um novo disco ao servidor
Nesse primeiro passo eu vou adicionar um novo disco na maquina virtual, Apesar de utilizar VMWare nesse exemplo o mesmo se aplica a qualquer outro virtualizador (VirtualBox, Hyper-V etc).
Para adicionar um disco numa nova particao clique com o botao direito em cima da maquina virtual e click em: 'Edit Settings' e entao em 'Add' e selecione 'Hard Disk' e pressione 'Next'
Selecione 'Create new virtual disk' e clique 'next'
Selecione o tamanho do disco e onde ele sera armazenado. Nesse exemplo eu estou adicionando apenas 10Gb.
Clique em avancar e em 'Advanced Options' selecione o 'Virtual Device Node' (geralmente e a opcao default). Verifique o sumario se esta tudo em ordem e clique em 'finish'.
Extendendo a particao LVM no Linux
No Linux quando um novo disco e' adicionado dessa forma ele nao e' reconhecido automaticamente. Se voce digitar 'fdisk -l' voce pode ver que o novo disco nao foi identificado. Se voce reinicar o servidor ele vai ser identificado, Mas nao e' isso que nos queremos. Abaixo exemplo do resultado do comando 'fdisk -l'.
Para que o novo disco seja visto pelo sistema sem precisar reiniciar o servidor, voce pode forcar os discos para serem escaneados com o seguinte comando:
O 'host2' pode variar de acordo com o numero de discos na maquina etc. Voce pode usar o mesmo comando para os outros hosts no mesmo caminho Apos inserir esse comando voce pode checar o resultado com 'fdisk -l' novamente.
Se por algum motivo o disco nao aparecer, voce pode checar os seus dispositivos SCSI com o seguinte comando:
E entao reescanear o dispositvo SCSI correto:
Agora com o novo disco identificado, nos temos que particionar ele como LVM. entao para isso usamos o comando fdisk:
Dentro do fdisk temos que criar a particao. Para isso pressione 'n' para criar uma nova particao. Selecione 'p' para criar uma particao primaria e nas proximas opcoes como 'Partition Number', 'First Sector' and 'Last Sector' voce pode deixar como padrao (primeira particao, primeiro setor e ultimo setor) para usar o disco inteiro.
Apos criar a particao precisamos mudar o tipo da particao para LVM. Para isso pressione 't' no menu principal e insira o codigo '8e' para mudar o tipo da particao para LVM (se tiver alguma duvida voce pode verificar a lista de tipos de particoes colocando a letra L).
Entao grave a mudanca com a opcao 'w'.
Agora podemos verificar as mudancas no novo disco com 'fdisk -l' novamente
Agora precisamos criar o volume fisico na particao com o comando 'pvcreate'.
Agora verifique o 'volume group' que voce quer extender com o comando 'vgdisplay'. Nesse exemplo o nome do volume group e 'data'.
Como podemos ver, o 'volume group' data possui 25Gb e nenhum expado para ser expandido.
Entao para expandirmos o volume group utilizamos o comando 'vgextend' passando como parametros o nome do volume group e a particao a ser adicionado ao grupo.
vgextend data /dev/sdc1
Agora se voce rodar o comando 'vgdisplay' novamente vai ver que o grupo tem 10Gb de espaco livre para ser alocado.
Voce tambem pode utilizar o comando 'pvscan' para verificar quais discos estao sendo usados em cada volume group e tamanho/espaco livre de cada um.
O proximo passo e extender o volume logico que e a particao final utilizada pelo sistema.
Para isso verifique o nome do volume logico a ser extendido:
Nesse exemplo o volume logico tambem e chamado 'data'.
Para extender o volume logico utilizamos o comando 'lvextend' passando como parametros o caminho para o volume logico e disco/particao a ser utilizado:
lvextend /dev/data/data /dev/sdc1
Agora se voce utilizar o comando 'vgdisplay' novamente voce vai ver que o tamanho do volume foi aumentado e nao tem nenhum espaco mais para ser alocado.
Porem, se voce verificar o tamanho das particoes com o comando 'df -h' vai perceber que nada foi alterado ainda.
Por isso precisamos usar o progama 'resize2fs' para redimensionar a particao:
resize2fs /dev/data/data
Apos rodar o comando o redimensionamento da particao terminar voce pode verificar novamente com 'df -h'.
Come voces podem ver a particao foi extendida em tempo real sem precisar reinicar ou parar nenhum servico e o novo espaco alocado ja pode ser utilizado.
Espero que isso ajude voces a resolver o problema de disco cheio quando o seu servidor de monitoramento te informar que os seus discos estao ficando sem espaco.
Quer saber mais sobre servidor de monitoramento e como prevenir isso? Verifique aqui mesmo nos cursos de Nagios e Zabbix =)