Faaala galera, tudo certo ??
Hoje vamos aprender a aumentar um volume (partição) no Linux usando o gloriosíssimo LVM
A sigla LVM é a abreviação para “Logic Volume Manager”, em português “Gerenciador de volume lógico”, ele gerencia discos e dispositivos de armazenamento em massa. No LVM um volume é o equivalente a uma partição de um disco ex: /dev/sda1, /dev/sda2 e por ae vai.
Atualmente o LVM é muito utilizado em servidores Linux por oferecer uma fantastica capacidade de ajuste dinâmico de seus volumes.
Suponhamos que você queira refazer o desenho de partições de um disco, no método tradicional você teria que primeiramente fazer backup de todos os seus dados, apagar as partições, criar um novo layout para essas novas partições, formatar as partições, reinstalar o sistema operacional e depois de tudo isso, fazer o restore dos dados que você havia feito backup, particularmente não vejo problema nisso, porém usando o conceito de LVM apenas aumentariamos o tamanho do disco e gastariamos acredito 1/4 de tempo.
Se você utilizar LVM estará administrando seu armazenamento em uma camada de abstração, você trabalhará com volumes físicos (PV), grupos de volumes (VG) e volumes lógicos (LV), lembre-se desse nomes pois vamos usar muito eles.
Quando você cria uma partição do disco destinada a uso via LVM esta partição será um PV (Physical Volume), e fará parte de algum VG (Volume Group), já os LV são ‘fatias’ de algum VG.
Um VG pode ser criado com um ou mais PVs e o LVM lhe permite adicionar outros PVs a um VG para aumentar a capacidade de armazenamento quando for necessário, usando esse conceito podemos aumentar e diminur o disco.
Imagine um VG como se fosse um grande HD ou dispositivo de armazenamento composto por vários PVs, a capacidade total de armazenamento de um VG é a soma da capacidade dos PVs associados a ele.
LVs (Logical Volumes) são fatias do seu VG (volume group), imagine que você tem um VG com capacidade de 300 GB, você pode ter 30 LVs de 10GB, 2(dois) LVs de 150GB ou até mesmo 3(tres) LVs de 100GB , isso é configurável, para o sistema operacional linux, um LV equivale a uma partição de um disco, pode ser formatada e montada da mesma forma que uma partição de um disco comum.
A grande vantagem do LVM é que você pode redimensionar VGs e LVs, aumentando ou diminuindo seu tamanho, e se estiver utilizando um sistema de arquivos que suporte resize, algo como ext3 ou ext4, poderá também aumentar e diminuir o sistema de arquivos sem precisar reconstruir todas as partições e reinstalar seu ambiente.
Vantagens
Se o seu /var está quase cheio, e se você estiver utilizando LVM, bastará adicionar um novo PV (Physical Volume) ao VG (Volume Group) que possui o LV (Logical Volume) utilizado para o o ponto de montagem /VAR, após aumentar a capacidade do VG, você poderá com poucos comandos - em poucos minutos - aumentar o tamanho do /var sem grandes impactos em seu ambiente.
Você pode também diminuir um LV que não esteja usando muito espaço para aumentar outro que esteja precisando de espaço, desde que estejam no mesmo VG.
O LVM torna a administração de partições algo muito flexível.
Desvantagens
Um VG é composto por PVs, se um PV quebrar você perde o VG e os LVs, isso pode ser um grande problema, portanto, é importante ter confiança nos discos envolvidos em um ambiente LVM.
Bom agora que ja conhecemos um pouco sobre LVM, vamos fazer um laboratorio bem simples onde, iremos criar um maquina virtual inicialmente com um HD de 12GB depois iremos aumentar esse disco para 50GB.
let's work!!
Para esse laboratorio você vai precisa apenas de uma maquina Virtual com um HD de 12GB, tipo de HD será VDI é o formato nativo do VirtualBox e significa Imagem de Disco Virtual.
Após você instalar a maquina virtual pode ser com a configuração minima mesmo OK, vamos executar alguns comando para certificarmos que realmente nosso HD tem apenas 12GB, lembrando que esse laboratorio fiz usando CentoS 6.3, mas se aplica tambem ao Ubuntu e derivados.
Para isso vamos executar o comando fdisk conforme abaixo
# fdisk -l
Disk /dev/sda: 12.9 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000dc4e2
Dispositivo Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 1567 12069888 8e Linux LVM
Disk /dev/mapper/VolGroup-lv_root: 10.2 GB, 10242490368 bytes
255 heads, 63 sectors/track, 1245 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/VolGroup-lv_swap: 2113 MB, 2113929216 bytes
255 heads, 63 sectors/track, 257 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Perceba que o nosso disco realmente é de 12GB correto, para o "/" foi disponibilizado 10.2GB e para a swap 2.1GB, pois para essa maquina virtual como memoria ram deixei 1024 MB ou se preferir 1GB.
Agora vamos desligar a nossa maquina virtual para podermos aumentar o seu disco para isso execute o comando abaixo:
# shutdown -h now
Após a maquina ter sido desligada vamos aumentar seu disco de 12GB para 50GB, e para isso vamos utilizar uma ferramenta do proprio VirtualBox para isso, essa ferramenta se chama: VBoxManage conforme exemplo abaixo:
# VBoxManage modifyhd /media/dejano/Dados/Vmware/LVM.vdi --resize 50720
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Pronto já aumentamos a nossa maquina virtual de 12GB para 50GB, agora vamos criar os PVs e adicionar esse novo conteudo de disco ao VG correto.
Executando novamente o fdisk veja que o disco realmente aumentou de 12GB para 53.2GB e que o restante continua igual o "/" com 10.2GB e a swap 2.1GB
# fdisk -l
Disk /dev/sda: 53.2 GB, 53183774720 bytes
255 heads, 63 sectors/track, 6465 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000dc4e2
Dispositivo Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 1567 12069888 8e Linux LVM
Disk /dev/mapper/VolGroup-lv_root: 10.2 GB, 10242490368 bytes
255 heads, 63 sectors/track, 1245 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/VolGroup-lv_swap: 2113 MB, 2113929216 bytes
255 heads, 63 sectors/track, 257 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Agora vamos de verdade aumentar o tamanho do nosso disco, existe duas maneiras:
Primeira : Tradicional aumentar o VG adicionando-se varios PVs (Nosso Laboratorio)
Bom como aumentamos nosso disco em teoria existe espaço disponivel, mas ainda não está alocado para uso, sendo assim vamos criar mais uma partição no linux para podermos utilizar esse espaço em disco OK.
# fdisk /dev/sda
Aperte a tecla "m" para ver as opções conforme abaixo:
Aperte a tecla "n" para criamos uma nova partição, ao apertar a tecla "n" será solicitado qual o tipo da partição e = estendida ou p para partição primária em nosso caso vamos usar a letra "p".
Após selecionar o tipo de partição vai ser solicitado o numero desta partição como ja está em uso /dev/sda1 e /dev/sda2 obrigatoriamente temos que criar a partição 3 /dev/sda3 OK.
Então pressione o numero 3 e depois aperte [ENTER] para confirmar cilindro inicial e final conforme figura abaixo:
Após finalizar a criação da nova partição, temos que mudar o seu tipo, como estamos usando LVM precisamos autera-la para LVM também para isso aperte a tecla "t" depois o numero da partição que no nosso caso e 3 e depois perte a tecla "L" para listar todos os tipos, escolha "8e Linux LVM" conforme abaixo:
Após selecionar o tipo de partição e voltar ao menu de comando escolha a letra "w" para salvar nossas configurações.
Pronto já criamos a nossa nova partição para verificarmos basta executar novamente o comando fdisk -l conforma abaixo:
# fdisk -l
Disk /dev/sda: 53.2 GB, 53183774720 bytes
255 heads, 63 sectors/track, 6465 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000dc4e2
Dispositivo Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 1567 12069888 8e Linux LVM
/dev/sda3 1567 6465 39347200+ 8e Linux LVM
Agora vamos dar um boot na maquina:
# reboot
Após o reboot da maquina vamos criar o PV e depois adiciona-lo os VG e depois fazer o resize do disco, para isso siga os passo abaixo:
Criando o PV da partição /dev/sda3
# pvcreate /dev/sda3
Writing physical volume data to disk "/dev/sda3"
Physical volume "/dev/sda3" successfully created
O comando pvscan lista os PVs existem na maquina.
# pvscan
PV /dev/sda2 VG VolGroup lvm2 [11,51 GiB / 0 free]
PV /dev/sda3 lvm2 [37,52 GiB]
Total: 2 [49,03 GiB] / in use: 1 [11,51 GiB] / in no VG: 1 [37,52 GiB]
O comando vgdisplay mostra o VG criado e o seu nome que no caso e "VolGroup" que atualmente está com 11.51GB
# vgdisplay -s
"VolGroup" 11,51 GiB [11,51 GiB used / 0 free]
O comando vgextend vai extender o /dev/sda3 no VG VolGroup
# vgextend VolGroup /dev/sda3
Volume group "VolGroup" successfully extended
Vejam que agora o VG já mudou de tamanho de 11.51GB foi para 49.03GB
# vgdisplay -s
"VolGroup" 49,03 GiB [11,51 GiB used / 37,52 GiB free]
Agora vamos extender o LV para VolGroup-lv_root
# lvextend -l +100%FREE /dev/mapper/VolGroup-lv_root
Extending logical volume lv_root to 47,06 GiB
Logical volume lv_root successfully resized
Fazendo o resize do disco
# resize2fs /dev/mapper/VolGroup-lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 3
Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 12337152 (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_root is now 12337152 blocks long.
Vejam abaixo que o nosso disco tem 53.2GB e agora o nosso "/" contem 50.5 de espaço sendo que inicialmente tinhamos 10.2GB
# fdisk -l
Disk /dev/sda: 53.2 GB, 53183774720 bytes
255 heads, 63 sectors/track, 6465 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000dc4e2
Dispositivo Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 1567 12069888 8e Linux LVM
/dev/sda3 1567 6465 39347200+ 8e Linux LVM
Disk /dev/mapper/VolGroup-lv_root: 50.5 GB, 50532974592 bytes
255 heads, 63 sectors/track, 6143 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/VolGroup-lv_swap: 2113 MB, 2113929216 bytes
255 heads, 63 sectors/track, 257 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
# df -h
Sist. Arq. Size Used Avail Use% Montado em
/dev/mapper/VolGroup-lv_root
47G 692M 44G 2% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 485M 32M 429M 7% /boot
Bom galera espero que tenham gostado.
Até a próxima pessoal !