Olá pessoal!
Esse post foi criado com a intenção de documentar um passo-a-passo para criar, remover e alterar LV’s (Logical Volumes) em servidores e estações GNU/Linux
1. Criando partição LVM
Vamos localizar o disco de 50 GB adicionado recentemente à VM
root@vm-testes:~# fdisk -l
... Disk /dev/sdb: 50 GiB, 53687091200 bytes, 104857600 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes ...
Vamos utilizar o disco “/dev/sdb” como exemplo
root@vm-testes:~# fdisk /dev/sdb
Vamos criar uma nova partição
Comando (m para ajuda): n
Escolha o tipo de partição
Partition type: p primary (0 primary, 0 extended, 4 free) e extended
Utilizando o sistema de particionamento MBR, somente é possível as quatro primeiras partições de um disco serem primárias.
Select (default p): p
Esta será a primeira partição
Partition number (1-4, default 1): 1
O fdisk agora pergunta qual setor a partição deverá iniciar e em Agora o fdisk me pergunta em qual setor essa partição deve começar e em seguida o último setor, definindo o tamanho, como iremos utilizar todo o disco vamos escolher as opções “default” com a tecla ENTER.
First sector (2048-104857599, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-104857599, default 104857599): Created a new partition 1 of type 'Linux' and of size 50 GiB.
Vamos listar as partições
Comando (m para ajuda): p Disk /dev/sdb: 64.4 GB, 64424509440 bytes 255 heads, 63 sectors/track, 7832 cylinders, total 125829120 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xe61fc21b Device Boot Start End Blocks Id System /dev/sdb1 2048 125829119 62913536 83 Linux
Vamos escolher o tipo da partição
Comando (m para ajuda): t Selected partition 1 Partition type (type L to list all types): 8e Changed type of partition 'Linux' to 'Linux LVM'.
Vamos gravar as alterações no disco
Comando (m para ajuda): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
Vamos listar agora a tabela de partições do disco “/dev/sdb” e veja a criação da partição “/dev/sdb1”
root@vm-testes:~# fdisk -l /dev/sdb
Disk /dev/sdb: 50 GiB, 53687091200 bytes, 104857600 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x5673f5b0 Dispositivo Inicializar Start Fim Setores Size Id Tipo /dev/sdb1 2048 104857599 104855552 50G 8e Linux LVM
2. Criando PV (Physical Volume)
Após criarmos uma partição LVM, vamos criar um PV
root@vm-testes:~# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
Vamos escanear os PVs e perceba que o “/dev/sdb1” foi criado conforme exibe abaixo.
root@vm-testes:~# pvscan
PV /dev/sda5 VG ubuntu-testvm-vg lvm2 [24,52 GiB / 32,00 MiB free] PV /dev/sdb1 lvm2 [50,00 GiB] Total: 2 [74,52 GiB] / in use: 1 [24,52 GiB] / in no VG: 1 [50,00 GiB]
Para maiores detalhes do PV criado utilize o comando “pvdisplay”
root@vm-testes:~# pvdisplay /dev/sdb1
"/dev/sdb1" is a new physical volume of "50,00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 50,00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID spINyj-nfj0-J3Tb-oprJ-ExVl-WSlO-DkVqk3
3. Criando um VG (Volume Group)
Vamos criar o VG de exemplo “vg-teste” conforme abaixo
root@vm-testes:~# vgcreate vg-teste /dev/sdb1
Volume group "vg-teste" successfully created
Vamos escanear os VGs e perceba que o “vg-teste” foi criado conforme exibe abaixo.
root@vm-testes:~# vgscan
Reading all physical volumes. This may take a while... Found volume group "vg-teste" using metadata type lvm2 Found volume group "ubuntu-testvm-vg" using metadata type lvm2
Para maiores detalhes do VG criado utilize o comando “vgdisplay”
root@vm-testes:~# vgdisplay vg-teste
--- Volume group --- VG Name vg-teste System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 50,00 GiB PE Size 4,00 MiB Total PE 12799 Alloc PE / Size 0 / 0 Free PE / Size 12799 / 50,00 GiB VG UUID eZ2jyt-A8tb-e1Lo-bLhn-VYcG-H8qF-ClDMco
4. Adicionando PV (Physical Volume) ao VG (Volume Group)
Vamos adicionar o PV “/dev/sdc1” ao VG “vg-teste” usando o “vgextend” conforme abaixo
root@vm-testes:~# vgextend vg-teste /dev/sdc1
Volume group "vg-teste" successfully extended
5. Criando LV (Logical Volume)
Vamos criar agora o LV “lvubuntu” no VG “vg-teste”
root@vm-testes:~# lvcreate --name lvubuntu --size 40G vg-teste
Ou para criar com 100% do espaço livre do VG
root@vm-testes:~# lvcreate -l 100%FREE -n lvubuntu vg-teste
Logical volume "lvubuntu" created.
Vamos escanear os LVs e perceba que o “lvubuntu” foi criado conforme exibe abaixo.
root@vm-testes:~# lvscan
ACTIVE '/dev/vg-teste/lvubuntu' [40,00 GiB] inherit ACTIVE '/dev/ubuntu-testvm-vg/root' [23,74 GiB] inherit ACTIVE '/dev/ubuntu-testvm-vg/swap_1' [764,00 MiB] inherit
Para maiores detalhes do LV criado no “vg-teste” utilize o comando “lvdisplay”
root@vm-testes:~# lvdisplay vg-teste
--- Logical volume --- LV Path /dev/vg-teste/lvubuntu LV Name lvubuntu VG Name vg-teste LV UUID C8vdEw-oDV3-MfN4-Lb0V-azZa-Mhhe-X2e9rc LV Write Access read/write LV Creation host, time web, 2016-08-10 10:46:51 -0300 LV Status available # open 0 LV Size 40,00 GiB Current LE 10240 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:2
6. Formatando a partição LVM
Vamos agora formatar a partição LVM
root@vm-testes:~# mkfs.ext4 /dev/mapper/vg--teste-lvubuntu
mke2fs 1.42.13 (17-May-2015) Creating filesystem with 10485760 4k blocks and 2621440 inodes Filesystem UUID: aa2a4d29-554d-4dea-9ce8-bacec86a6b5f Cópias de segurança de superblocos gravadas em blocos: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624 Allocating group tables: pronto Gravando tabelas inode: pronto Creating journal (32768 blocks): concluído Escrevendo superblocos e informações de contabilidade de sistema de arquivos: concluído
7. Montando a partição LVM
Vamos criar o diretório que a partição será montada e realizar a montagem
root@vm-testes:~# mkdir -p /dados/lvubuntu
root@vm-testes:~# mount /dev/mapper/vg--teste-lvubuntu /dados/lvubuntu/
8. Configurando fstab
Vamos utilizar o “blkid” para listar o “UUID” da partição
root@vm-testes:~# blkid | grep "lvubuntu"
/dev/mapper/vg--teste-lvubuntu: UUID="aa2a4d29-554d-4dea-9ce8-bacec86a6b5f" TYPE="ext4"
Vamos adicionar a linha abaixo como uma entrada no arquivo “/etc/fstab”
root@vm-testes:~# vim /etc/fstab
UUID=aa2a4d29-554d-4dea-9ce8-bacec86a6b5f /dados/lvubuntu ext4 defaults 0 1
9. Expandindo o LV (Logical Volume)
Vamos desmontar o LV que será estendido
root@vm-testes:~# umount /dados/lvubuntu
Vamos estender o LV com mais 5 GB
root@vm-testes:~# lvextend -L +5GB /dev/mapper/vg--teste-lvubuntu
Size of logical volume vg-teste/lvubuntu changed from 40,00 GiB (10240 extents) to 45,00 GiB (11520 extents). Logical volume lvubuntu successfully resized.
Vamos verificar o LV executando o “e2fsck”
root@vm-testes:~# e2fsck -f /dev/mapper/vg--teste-lvubuntu
e2fsck 1.42.13 (17-May-2015) Passo 1: Verificando inodes, blocks, e os tamanhos. Passo 2: Verificando estrutura directory Passo 3: Checando conectividade com o directory Passo 4: Checando contagens de referência Passo 5: Procurando informações de resumo group /dev/mapper/vg--teste-lvubuntu: 11/2621440 files (0.0% non-contiguous), 209554/10485760 blocks
Vamos agora redimensionar a partição
root@vm-testes:~# resize2fs -p /dev/mapper/vg--teste-lvubuntu
resize2fs 1.42.13 (17-May-2015) Resizing the filesystem on /dev/mapper/vg--teste-lvubuntu to 11796480 (4k) blocks. The filesystem on /dev/mapper/vg--teste-lvubuntu is now 11796480 (4k) blocks long.
Vamos novamente executar o “e2fsck”, porém agora para verificar a partição redimensionada.
root@vm-testes:~# e2fsck -f /dev/mapper/vg--teste-lvubuntu
e2fsck 1.42.13 (17-May-2015) Passo 1: Verificando inodes, blocks, e os tamanhos. Passo 2: Verificando estrutura directory Passo 3: Checando conectividade com o directory Passo 4: Checando contagens de referência Passo 5: Procurando informações de resumo group /dev/mapper/vg--teste-lvubuntu: 11/2949120 files (0.0% non-contiguous), 231139/11796480 blocks
Vamos montar novamente a partição
root@vm-testes:~# mount /dev/mapper/vg--teste-lvubuntu /dados/lvubuntu/
Vamos checar o tamanho da nova partição montada
root@vm-testes:~# df -kh /dev/mapper/vg--teste-lvubuntu
Sist. Arq. Tam. Usado Disp. Uso% Montado em /dev/mapper/vg--teste-lvubuntu 45G 52M 42G 1% /dados/lvubuntu
10. Diminuindo o LV (Logical Volume)
Vamos desmontar o LV que será reduzido
root@vm-testes:~# umount /dados/lvubuntu
Vamos verificar a partição “/dev/mapper/vg–teste-lvubuntu” primeiramente
root@vm-testes:~# e2fsck -f /dev/mapper/vg--teste-lvubuntu
e2fsck 1.42.13 (17-May-2015) Passo 1: Verificando inodes, blocks, e os tamanhos. Passo 2: Verificando estrutura directory Passo 3: Checando conectividade com o directory Passo 4: Checando contagens de referência Passo 5: Procurando informações de resumo group /dev/mapper/vg--teste-lvubuntu: 11/2949120 files (0.0% non-contiguous), 231139/11796480 blocks
Vamos reduzir o tamanho da partição para 40 GB
root@vm-testes:~# resize2fs -p /dev/mapper/vg--teste-lvubuntu 40G
resize2fs 1.42.13 (17-May-2015) Resizing the filesystem on /dev/mapper/vg--teste-lvubuntu to 10485760 (4k) blocks. Iniciar passo 3 (máximo = 360) Varrendo tabela de inodes XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX The filesystem on /dev/mapper/vg--teste-lvubuntu is now 10485760 (4k) blocks long.
Vamos agora reduzir o tamanho do LV para 40 GB e confirmar com “y”
root@vm-testes:~# lvreduce -L 40G /dev/mapper/vg--teste-lvubuntu
WARNING: Reducing active logical volume to 40,00 GiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce lvubuntu? [y/n]: y Size of logical volume vg-teste/lvubuntu changed from 45,00 GiB (11520 extents) to 40,00 GiB (10240 extents). Logical volume lvubuntu successfully resized.
Vamos verificar a partição “/dev/mapper/vg–teste-lvubuntu” novamente
root@vm-testes:~# e2fsck -f /dev/mapper/vg--teste-lvubuntu
e2fsck 1.42.13 (17-May-2015) Passo 1: Verificando inodes, blocks, e os tamanhos. Passo 2: Verificando estrutura directory Passo 3: Checando conectividade com o directory Passo 4: Checando contagens de referência Passo 5: Procurando informações de resumo group /dev/mapper/vg--teste-lvubuntu: 11/2621440 files (0.0% non-contiguous), 209554/10485760 blocks
Vamos montar a partição novamente
root@vm-testes:~# mount /dados/lvubuntu
Vamos checar o tamanho da nova partição montada
root@vm-testes:~# df -kh /dev/mapper/vg--teste-lvubuntu
Sist. Arq. Tam. Usado Disp. Uso% Montado em /dev/mapper/vg--teste-lvubuntu 45G 52M 42G 1% /dados/lvubuntu
11. Removendo um PV (Phisical Volume)
Para remover o disco do VG, utilize o comando abaixo
root@vm-testes:~# vgreduce vg-teste /dev/sdb1
Para remover um disco PV
root@vm-testes:~# pvremove /dev/sdb1
Deixe um comentário