Criar, aumentar e reduzir partições LVM by Vitor Panizza

Fala pessoal, tudo bem?

Hoje vamos aprender como criar e gerenciar uma LVM, vamos ao que interessa:

supondo que temos inserimos dois discos vazios no seu servidor físico ou virtual, ou até mesmo na nuvem (que é o meu caso), vamos identificar se eles já foram reconhecidos pelo SO, vamos dar o comando fdisk -l


Disk /dev/sdd: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000


Disk /dev/sdc: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000


no meu caso, apenas listei os discos novos que foram detectados, veja que nos mostra o caminho da pasta /dev ao qual está referenciando nossos discos (sdc e sdd).

Primeiro vamos criar os volumes fisicos

pvcreate /dev/sdc && pvcreate /dev/sdd

Resultado:

  Physical volume "/dev/sdc" successfully created
  Physical volume "/dev/sdd" successfully created


depois de criado os volumes físicos, vamos criar o grupo de volumes ao qual vai somar o tamanho de todos os discos, daremos o nome dele de LVM.

vgcreate LVM /dev/sdc /dev/sdd

Resultado:

 Volume group "LVM" successfully created

daremos o comando vgdisplay para listar os detalhes do VG

vgdisplay

Resultado:

 --- Volume group ---
  VG Name               LVM
  System ID
  Format                lvm2
  Metadata Areas        2
  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                2
  Act PV                2
  VG Size               19.99 GiB
  PE Size               4.00 MiB
  Total PE              5118
  Alloc PE / Size       0 / 0
  Free  PE / Size       5118 / 19.99 GiB
  VG UUID               dT26ye-ztf6-9cdj-RlGG-LLBq-0bS5-TsyV6s

Veja que o tamanho é de 20GB, a soma dos dois discos de 10GB

agora vamos criar os volumes lógicos LV chamado PART1 e PART2, essas são as partições que o sistema irá reconhecer, vamos criar dois volumes de 700M e depois vamos aumentar, para simular a vida real, quando se tem um disco que está cheio e precisa ser aumentado.

lvcreate -L +700M LVM -n PART1

lvcreate -L +700M LVM -n PART2



agora temos que criar o sistema de arquivos nos volumes criados

mkfs.ext4 /dev/LVM/PART1 $$ mkfs.ext4 /dev/LVM/PART2


lvdisplay

Resultado:

 --- Logical volume ---
  LV Path                /dev/LVM/PART1
  LV Name                PART1
  VG Name                LVM
  LV UUID                nBfHpg-mbQZ-cah1-MVDz-eOVU-ooig-ckQrH0
  LV Write Access        read/write
  LV Creation host, time page, 2017-11-03 12:23:46 +0000
  LV Status              available
  # open                 0
  LV Size                700.00 MiB
  Current LE             175
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/LVM/PART2
  LV Name                PART2
  VG Name                LVM
  LV UUID                BJqsyl-7f0x-Letj-2Acf-DmDr-0CIV-z5GE6p
  LV Write Access        read/write
  LV Creation host, time page, 2017-11-03 12:23:58 +0000
  LV Status              available
  # open                 0
  LV Size                700.00 MiB
  Current LE             175
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

feito isso basta montar, vamos criar duas pastas, PASTA1 e PASTA2 e vamos montar nossas partições nelas:

mkdir PASTA1 PASTA2

mount -t ext4 /dev/LVM/PART1 PASTA1
mount -t ext4 /dev/LVM/PART2 PASTA2


agora vamos ver a partição montada no sistema:

df -h

Resultado:

/dev/mapper/LVM-PART1
                      673M  712K  638M   1% /home/vitor/PASTA1
/dev/mapper/LVM-PART2
                      673M  712K  638M   1% /home/vitor/PASTA2

Veja que o caminho da partição montada é o /dev/mapper/* esse é o arquivo que referência a partição LVM montada, isso será importante quando formos redimensionar a partição.


Redimensionando a partição

Vamos agora aumentar as partições, não há necessidade de desmontar a partição, iremos fazer com ela online.

primeiro teremos que extender o LV

lvextend -L+1G /dev/LVM/PART1

Resultado:

Size of logical volume LVM/PART1 changed from 700.00 MiB (175 extents) to 1.68 GiB (431 extents).
  Logical volume PART1 successfully resized.



lvextend -L+1G /dev/LVM/PART2

Resultado:

Size of logical volume LVM/PART2 changed from 700.00 MiB (175 extents) to 1.68 GiB (431 extents).
  Logical volume PART2 successfully resized.

Agora o pulo do gato, se você simplesmente der um df -h verá que a partição continua sendo de 700M, isso porque a partição que foi instanciada possui um arquivo de configuração independente, depois que aumentamos o LV basta agora aumentarmos a partição em si, o arquivo da partição fica em:

/dev/mapper/LVM-PART1

/dev/mapper/LVM-PART2

então vamos usar o comando resize2fs + caminho da partição:

resize2fs /dev/mapper/LVM-PART1

resize2fs /dev/mapper/LVM-PART2

Resultado:

resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/LVM-PART1 is mounted on /home/vitor/PASTA1; on-line re                                             sizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/mapper/LVM-PART1 to 441344 (4k) blocks.
The filesystem on /dev/mapper/LVM-PART1 is now 441344 blocks long.

[root@page vitor]# resize2fs /dev/mapper/LVM-PART2
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/LVM-PART2 is mounted on /home/vitor/PASTA2; on-line re                                             sizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/mapper/LVM-PART2 to 441344 (4k) blocks.
The filesystem on /dev/mapper/LVM-PART2 is now 441344 blocks long.

Vamos conferir com df -h

/dev/mapper/LVM-PART1
                      1.7G  1.1M  1.6G   1% /home/vitor/PASTA1
/dev/mapper/LVM-PART2
                      1.7G  1.1M  1.6G   1% /home/vitor/PASTA2

Pronto a partição está aumentada.


Agora vamos diminuir a partição, uma tarefa que pode vir a ser necessária no dia-a-dia

antes de reduzir, é extremamente necessário desfragmentar o disco em questão, isso pode gerar perdas, antes de fazer isso, efetue um backup, exitem ótimos comandos para isso como o DD ou até mesmo o CPIO, não iremos abordar isso aqui.

****DESMONTE AS PARTIÇÕES******

umount /home/vitor/PASTA1
umount /home/vitor/PASTA2

Vamos checar os partições para ver se tem erros:

e2fsck /dev/mapper/LVM-PART1
e2fsck /dev/mapper/LVM-PART2

Resultado:

e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

      11 inodes used (0.01%)
       0 non-contiguous files (0.0%)
       0 non-contiguous directories (0.0%)
         # of inodes with ind/dind/tind blocks: 0/0/0
         Extent depth histogram: 1
   10938 blocks used (2.48%)
       0 bad blocks
       1 large file

       0 regular files
       2 directories
       0 character device files
       0 block device files
       0 fifos
       0 links
       0 symbolic links (0 fast symbolic links)
       0 sockets
--------
       2 files
e2fsck -f -v /dev/mapper/LVM-PART2
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

      11 inodes used (0.01%)
       0 non-contiguous files (0.0%)
       0 non-contiguous directories (0.0%)
         # of inodes with ind/dind/tind blocks: 0/0/0
         Extent depth histogram: 1
   10938 blocks used (2.48%)
       0 bad blocks
       1 large file

       0 regular files
       2 directories
       0 character device files
       0 block device files
       0 fifos
       0 links
       0 symbolic links (0 fast symbolic links)
       0 sockets
--------
       2 files


Vamos primeiro reduzir o tamanho da partição montada, temos que indicar o tamanho final da partição no final do comando, lembre-se, o tamanho deve ser superior ao tamanho utilizado.

resize2fs /dev/mapper/LVM-PART1 700M
resize2fs /dev/mapper/LVM-PART2 700M

Monte novamente as partições e de um df -h para ver os novos tamanhos:

/dev/mapper/LVM-PART1
                      673M  712K  639M   1% /home/vitor/PASTA1
/dev/mapper/LVM-PART2
                      673M  712K  639M   1% /home/vitor/PASTA2

Nesse momento, a partição está diminuida, porém o LV continua com o tamanho original, precisamos diminuir ele também.

Vamos diminuir o LV agora:

O processo é o mesmo que aumentar porém ao invés de usarmos o lvextend vamos usar o lvreduce:

 lvreduce -L -1G /dev/LVM/PART1

  WARNING: Reducing active and open logical volume to 700.00 MiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LVM/PART1? [y/n]: y
  Size of logical volume LVM/PART1 changed from 1.68 GiB (431 extents) to 700.00 MiB (175 extents).
  Logical volume PART1 successfully resized.


 lvreduce -L -1G /dev/LVM/PART2
  
WARNING: Reducing active and open logical volume to 700.00 MiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LVM/PART2? [y/n]: y
  Size of logical volume LVM/PART2 changed from 1.68 GiB (431 extents) to 700.00 MiB (175 extents).
  Logical volume PART2 successfully resized.


pronto, vamos rodar o lvscan para ver o resultado final:

lvscan

Resultado:

 ACTIVE            '/dev/LVM/PART1' [700.00 MiB] inherit
  ACTIVE            '/dev/LVM/PART2' [700.00 MiB] inherit


Com isso terminamos o nosso trabalho, nos vemos no próximo episódio , FLWWWWWW



Autor: Vitor Hugo Panizza dos Santos
Contato: victorhs557@hotmail.com
Projetos:1198201-8551
Godevops Seu canal no youtube










Comentários

Postagens mais visitadas deste blog

Criando usuários e dando permissões no Postgree SQL

Converter certificado digital pfx para pem

Configurando o modo WORKER no Apache - CENTOS