O LVM gerencia as unidades de disco. Ele permite que várias unidades e partições sejam combinadas em grupos de volumes maiores; ajuda na produção de cópias de segurança por meio de um instantâneo e permite o redimensionamento dinâmico do volume. Ele também pode fornecer espelhamento semelhante a uma matriz RAID 1.
Uma discussão completa do LVM está além do escopo desta introdução, mas os conceitos básicos são apresentados abaixo.
Para executar qualquer dos comandos apresentados aqui, o pacote
LVM2-2.03.18 precisa estar instalado. Todos os
comandos precisam ser executados como o(a) usuário(a) root
.
O gerenciamento de discos com LVM é realizado usando os seguintes conceitos:
Esses são discos físicos ou partições, como /dev/sda3 ou /dev/sdb.
Esses são grupos nomeados de volumes físicos que podem ser manipulados pelo(a) administrador(a). O número de volumes físicos que compõem um grupo de volumes é arbitrário. Os volumes físicos podem ser adicionados ou removidos dinamicamente a partir de um grupo de volumes.
Os grupos de volumes podem ser subdivididos em volumes lógicos. Cada volume lógico pode então ser formatado individualmente como se fosse uma partição normal do Linux. Os volumes lógicos podem ser redimensionados dinamicamente pelo(a) administrador(a) de acordo com a necessidade.
Para dar um exemplo concreto, suponha que você tenha dois discos de 2
TB. Suponha também que uma quantidade realmente grande de espaço seja
exigida para uma base de dados muito grande, montada em /srv/mysql
. É assim que o conjunto inicial de
partições se pareceria:
Partição Uso Tamanhp Tipo da Partição
/dev/sda1 /boot 100MB 83 (Linux)
/dev/sda2 / 10GB 83 (Linux)
/dev/sda3 swap 2GB 82 (Swap)
/dev/sda4 LVM remainder 8e (LVM)
/dev/sdb1 swap 2GB 82 (Swap)
/dev/sdb2 LVM remainder 8e (LVM)
Primeiro, inicialize os volumes físicos:
pvcreate /dev/sda4 /dev/sdb2
Um disco inteiro pode ser usado como parte de um volume físico, mas esteja ciente de que o comando pvcreate destruirá qualquer informação de partição nesse disco.
Em seguida, crie um grupo de volumes chamado lfs-lvm:
vgcreate lfs-lvm /dev/sda4 /dev/sdb2
O situação do grupo de volumes pode ser verificada executando-se o comando vgscan. Agora crie os volumes lógicos. Como existe cerca de 3.900 GB disponíveis, deixe cerca de 900 GB livres para expansão. Observe que o volume lógico chamado mysql é maior que qualquer disco físico.
lvcreate --name mysql --size 2500G lfs-lvm lvcreate --name home --size 500G lfs-lvm
Finalmente, os volumes lógicos podem ser formatados e montados. Neste exemplo, o sistema de arquivos jfs (jfsutils-1.1.15) é usado para o propósito de demonstração.
mkfs -t ext4 /dev/lfs-lvm/home mkfs -t jfs /dev/lfs-lvm/mysql mount /dev/lfs-lvm/home /home mkdir -p /srv/mysql mount /dev/lfs-lvm/mysql /srv/mysql
Possivelmente seja necessário ativar esses volumes lógicos, para que
apareçam em /dev
. Todos eles podem ser
ativados ao mesmo tempo emitindo-se, como o(a) usuário(a)
root
:
vgchange -a y
Um volume lógico LVM pode hospedar um sistema de arquivos raiz, mas
exige o uso de um initramfs (sistema de arquivos RAM inicial). O
initramfs proposto em “A respeito do initramfs” permite
passar o volume LVM na chave root=
da linha de comando do núcleo.
Se não usar um initramfs, [então existe uma condição de corrida no
systemd impedindo a montagem de
volumes lógicos por meio de /etc/fstab
.
Você precisa criar uma unidade “mount” (veja-se systemd.mount(5)), como no
seguinte exemplo, que monta o diretório /home
automaticamente na inicialização:
cat > /etc/systemd/system/home.mount << EOF
[Unit]
Description=Monta o volume lvm /dev/lfs-lvm/home em /home
[Mount]
What=/dev/lfs-lvm/home
Where=/home
Type=ext4
Options=default
[Install]
WantedBy=multi-user.target
EOF
O nome da unidade precisa ser o nome do ponto de montagem com o caractere `/' substituído por `-', omitindo o inicial.
Em seguida, a unidade precisa ser habilitada com:
systemctl enable home.mount
Para mais informação a respeito do LVM, veja-se o LVM HOWTO e as páginas de manual do lvm. Um bom e detalhado guia está disponível a partir da RedHat®, embora às vezes ele faça referência a ferramentas proprietárias.