Usando LVM para gerenciar volumes físicos, grupos de volumes e volumes lógicos - Preparação do Objetivo RHCSA
Como parte da preparação para o exame RHCSA, já aprendemos como gerenciar partições em disco. As partições são úteis para separar o espaço em disco (por exemplo, separando arquivos relacionados ao banco de dados dos arquivos relacionados ao servidor web), mas temos uma solução muito mais flexível que pode separar ou agregar espaço de armazenamento.
Esta solução é chamada LVM, Logical Volume Manager. O LVM nos permite ver vários discos como um sistema de arquivos, superando assim as limitações do site de um disco físico. Também podemos criar espelhamento de software em discos para proteger os dados gravados no sistema de arquivos. Neste tutorial abordaremos o básico: gerenciaremos as três camadas do LVM, volumes físicos, grupos de volumes e volumes lógicos.
Neste tutorial você aprenderá:
Como criar e remover volumes físicos
Como atribuir volumes físicos a grupos de volumes
-
Como criar e excluir volumes lógicos
Criando novo volume físico com LVM.
Com o LVM, temos três camadas construídas umas sobre as outras: volumes físicos
(pv), que são muito parecidos com partições, marcadas apenas para uso do LVM. Podemos criar um volume físico a partir de uma partição de disco ou de um disco bruto inteiro. Se pretendemos usar um disco apenas como volume físico do LVM, não precisamos criar uma partição nele primeiro. A próxima camada é um grupo de volumes
(vg). Como o nome sugere, é simplesmente o agrupamento de volumes físicos. Nesta camada podemos agregar todo o espaço do volume físico subjacente em uma unidade de armazenamento maior. Acima dos grupos de volumes podemos criar a camada final, volumes lógicos
(lv). Eles podem conter sistemas de arquivos, nos quais podemos armazenar nossos dados.
Uma das principais características do LVM é que podemos adicionar outro volume físico a um grupo de volumes dinamicamente e também modificar o tamanho de um volume lógico enquanto o sistema está em execução. Portanto, se ficarmos sem espaço, poderemos escalar sem desligar o sistema.
As abreviaturas das camadas são bons lembretes quando lidamos com LVM. Todos os comandos que funcionam em diferentes camadas começam com estas abreviaturas, por exemplo, se trabalharmos com volumes físicos, o comando para criar um será pvcreate
, o comando para listar os volumes físicos existentes será pvdisplay
e assim por diante. Mesmo que precisemos fazer isso com pouca frequência, é fácil adivinhar ou encontrar o comando correto, pois essa convenção de nomenclatura é consistente em todas as camadas.
Para este tutorial, adicionamos aos discos 2 GB de tamanho cada para nossa máquina de laboratório. Eles são reconhecidos como /dev/sdb
e /dev/sdc
em nosso sistema, enquanto /dev/sda
contém o sistema operacional, que nós não tocará durante as etapas a seguir.
Como criar e remover volumes físicos
Como criar volume físico
Para criar um volume físico, usaremos pvcreate
. Criaremos um volume físico de 2 GB em sdb
e em sdc
.
# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created.
Podemos verificar se fizemos certo listando nossos volumes físicos. Usaremos pvdisplay
.
# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name rhel
PV Size <14.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 3583
Free PE 0
Allocated PE 3583
PV UUID rfezEa-GlgW-jWUX-Zixs-Ydw0-EsZS-nk3JDH
"/dev/sdb" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID V2PUv4-O9eQ-jFvQ-UmQf-dmq3-caF9-xmxYGj
"/dev/sdc" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID PWTs7Q-x3wD-RyXj-ertn-Sh2N-CiXb-ayDc1q
A máquina do laboratório já usa LVM em sua configuração padrão (assim como a maioria das distribuições hoje em dia), é por isso que /dev/sda2
é mostrado. Estamos interessados nos nossos dois novos volumes físicos, que agora podemos verificar.
Como remover o volume físico
Para deletar um volume físico, temos o comando pvremove
. Não remova um volume físico que contenha dados necessários.
# pvremove /dev/sdc
Labels on physical volume "/dev/sdc" successfully wiped.
Como atribuir volumes físicos a grupos de volumes
Criando grupo de volumes a partir de volumes físicos.
Depois de recriar o volume físico sdc
eliminado, temos tudo o que precisamos para criar um grupo de volumes que possa conter um volume lógico. Poderíamos criar um “grupo” de volume que tenha apenas um volume físico – que é o caso exato do sda2
padrão – mas para demonstrar a agregação de armazenamento, usaremos nossos novos volumes físicos para criar um grupo de volumes chamado “dados” que possui 4 GB de espaço em disco disponível.
Podemos criar um grupo de volumes com vgcreate
. Tudo o que precisamos é especificar o nome do VG e os volumes físicos que serão membros do grupo de volumes.
# vgcreate data /dev/sdb /dev/sdc
Volume group "data" successfully created
Podemos listar as propriedades do nosso novo grupo de volumes com vgdisplay
.
# vgdisplay data
--- Volume group ---
VG Name data
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 3.99 GiB
PE Size 4.00 MiB
Total PE 1022
Alloc PE / Size 0 / 0
Free PE / Size 1022 / 3.99 GiB
VG UUID CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA
Observe o tamanho do VG próximo a 4 GB, soma dos dois volumes físicos. Não será exatamente a soma dos volumes, pois algum espaço é reservado para metadados.
Como criar e excluir volumes lógicos
Além de um grupo de volumes, podemos criar volumes lógicos que, por sua vez, podem conter sistemas de arquivos. A instalação padrão em muitas distribuições separa o armazenamento desta forma, por exemplo, os dados do usuário são mantidos no volume lógico /home
e os logs do sistema são armazenados no volume /var
. Caso um usuário preencha o volume inicial, o sistema geral ainda será capaz de gravar logs e, portanto, seus serviços continuarão a ser executados enquanto o administrador do sistema pode lidar com o usuário que enlouqueceu.
Como criar um volume lógico
Criaremos dois volumes lógicos, o primeiro denominado “banco de dados” com 2 GB de tamanho, o outro denominado “servidor web” com 500 MB de espaço em disco. Como você pode imaginar pelos exemplos acima, o comando que usaremos é lvcreate
.
# lvcreate -L 2G -n database data
Logical volume "database" created.
# lvcreate -L 500M -n webserver data
Logical volume "webserver" created.
Podemos exibir nossas propriedades de volume com lvdisplay
, ou podemos listar todos os nossos volumes lógicos se não fornecermos um argumento para lvdisplay
. Embora isso possa fornecer uma saída demorada em alguns sistemas, é útil em um ambiente desconhecido, pois os caminhos dos volumes podem variar dependendo da distribuição e da versão.
# lvdisplay /dev/data/database
--- Logical volume ---
LV Path /dev/data/database
LV Name database
VG Name data
LV UUID D7f9An-G0dd-kEGw-OGrP-HZlA-dQlX-yBbQbi
LV Write Access read/write
LV Creation host, time rhel8rhcsa, 2019-12-28 16:53:24 +0100
LV Status available
# open 0
LV Size 2.00 GiB
Current LE 512
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
# lvdisplay /dev/data/webserver
--- Logical volume ---
LV Path /dev/data/webserver
LV Name webserver
VG Name data
LV UUID 7Ldt79-aw0i-Oydm-4d0I-JaVe-Zd8m-xKpvrD
LV Write Access read/write
LV Creation host, time rhel8rhcsa, 2019-12-28 16:53:38 +0100
LV Status available
# open 0
LV Size 500.00 MiB
Current LE 125
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
Se verificarmos nosso grupo de volumes neste ponto, podemos notar o espaço que os volumes lógicos ocupam do grupo de volumes.
# vgdisplay data
--- Volume group ---
VG Name data
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 3.99 GiB
PE Size 4.00 MiB
Total PE 1022
Alloc PE / Size 637 / <2.49 GiB
Free PE / Size 385 / 1.50 GiB
VG UUID CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA
Como criar volume lógico no sistema RHEL Linux
Como excluir um volume lógico
Para liberar espaço ou reorganizar volumes, podemos descartar volumes lógicos com lvremove
.
Não remova volumes lógicos que contenham dados valiosos. Fazer isso destruirá os dados do volume.