Introdução ao LVM2
O pacote LVM2 é um conjunto de
ferramentas que gerenciam partições lógicas. Ele permite a extensão
completa de sistemas de arquivos transversalmente entre vários
discos físicos e partições de disco e fornece crescimento dinâmico
ou redução de partições lógicas, espelhamento e instantâneos de
baixo consumo de armazenamento.
Nota
Esse pacote é conhecido por construir e
funcionar adequadamente usando-se uma plataforma LFS 13.0.
Informação do Pacote
-
Transferência (HTTP): https://sourceware.org/ftp/lvm2/LVM2.2.03.38.tgz
-
Transferência (FTP):
-
Soma de verificação MD5 da transferência:
a661c55b5a1fcaa068b9e4a561c35f36
-
Tamanho da transferência: 2,9 MB
-
Espaço em disco estimado exigido: 56 MB (adicionar até 300 MB
para arquivos transitórios para testes no diretório /tmp)
-
Tempo de construção estimado: 0.4 SBU (add 9 to 48 SBU for
tests, depending on disk speed and options enabled in the
kernel)
Dependências do LVM2
Exigidas
libaio-0.3.113
Opcionais para testes
btrfs-progs-6.17.1, dosfstools-4.2,
jfsutils-1.1.15, mdadm-4.4, parted-3.6, Valgrind-3.26.0, Which-2.23, xfsprogs-6.18.0,
reiserfsprogs, thin-provisioning-tools
e vdo
Configuração do Núcleo
Habilite as seguintes opções na configuração do núcleo e recompile
o núcleo:
Nota
Existem várias outras opções do Device Mapper no núcleo além das
listadas abaixo. Para obter resultados razoáveis ao executar os
testes de regressão, todas precisam ser habilitadas, seja
internamente ou como um módulo. Todos os testes expirarão se a
chave Magic SysRq não estiver habilitada.
Além disso, a maioria dos pacotes opcionais para os testes exige
opções de núcleo que são necessárias. Se os pacotes opcionais ou
as opções deles de núcleo não estiverem instalados, os testes
serão sinalizados como ou falhos ou ignorados em uma maneira
inconsistente.
Device Drivers --->
[*] Block devices ---> [BLK_DEV]
<*/M> RAM block device support [BLK_DEV_RAM]
[*] Multiple devices driver support (RAID and LVM) ---> [MD]
<*/M> Device mapper support [BLK_DEV_DM]
<*/M> Crypt target support [DM_CRYPT]
<*/M> Snapshot target [DM_SNAPSHOT]
<*/M> Thin provisioning target [DM_THIN_PROVISIONING]
<*/M> Cache target (EXPERIMENTAL) [DM_CACHE]
<*/M> Mirror target [DM_MIRROR]
<*/M> Zero target [DM_ZERO]
<*/M> I/O delaying target [DM_DELAY]
Kernel hacking --->
Generic Kernel Debugging Instruments --->
[*] Magic SysRq key [MAGIC_SYSRQ]
Instalação do LVM2
Instale LVM2 executando os
seguintes comandos:
PATH+=:/usr/sbin \
./configure --prefix=/usr \
--enable-cmdlib \
--enable-pkgconfig \
--enable-udev_sync &&
make
Os testes usam udev para
sincronização de volume lógico, de forma que as regras LVM do udev
e alguns utilitários precisam ser instalados antes de se executar
os testes. Se você estiver instalando o LVM2 pela primeira vez e não quiser instalar o
pacote completo antes de executar os testes, [então] o conjunto
mínimo de utilitários pode ser instalado executando as seguintes
instruções como o(a) usuário(a) root:
make -C tools install_tools_dynamic &&
make -C udev install &&
make -C libdm install
Os testes precisam da habilidade para criar e remover nós de
dispositivos no diretório /tmp. Em sistemas systemd, o padrão é o
de montar /tmp com a opção nodev. Em vez de desabilitar esse
comportamento permanentemente (uma vez que existem razões válidas
de segurança para se fazer isso), remonte o sistema de arquivos
/tmp temporariamente como o(a) usuário(a) root:
mount -o remount,dev /tmp
Para testar os resultados, emita, como o(a) usuário(a) root:
LC_ALL=en_US.UTF-8 make check_local
Alguns testes possivelmente travem. Nesse caso, eles podem ser
pulados adicionando-se S=<nome_do_teste> ao
comando make. Outros
alvos estão disponíveis e podem ser listados com make -C test help. Os tempos de
teste são muito dependentes da velocidade do(s) disco(s) e do
número de opções de núcleo habilitadas.
Os testes não implementam a possibilidade de “falha esperada” e
algumas falhas de testes são esperadas pelo fluxo de
desenvolvimento.
-
A maioria dos testes falhará se o núcleo não tiver todos os
controladores de dispositivo listados acima.
-
Mais falhas possivelmente ocorram por causa de algumas opções
do núcleo estarem ausentes. Por exemplo, a carência do alvo
mapeador de dispositivos dm-delay explica algumas falhas.
-
Alguns testes possivelmente falhem se existir espaço livre
insuficiente disponível na partição com o diretório /tmp.
Pelo menos um teste falha se 16 TB não estiverem disponíveis.
-
Alguns testes são sinalizados com “warned” se
thin-provisioning-tools
não estiver instalado. Uma solução alternativa é a de
adicionar os seguintes sinalizadores ao configure:
--with-thin-check= \
--with-thin-dump= \
--with-thin-repair= \
--with-thin-restore= \
--with-cache-check= \
--with-cache-dump= \
--with-cache-repair= \
--with-cache-restore= \
Alguns testes possivelmente travem. Eles podem ser removidos se
necessário, por exemplo: rm
test/shell/lvconvert-raid-reshape.sh. Os testes
geram um monte de mensagens do núcleo, que possivelmente
sobrecarreguem seu terminal. Você consegue desabilitá-los emitindo
dmesg -D antes de
executar os testes (não se esqueça de emitir dmesg -E quando os testes forem
concluídos).
Nota
As verificações criam nós de dispositivo no diretório /tmp. Os
testes falharão se /tmp for montado com a opção nodev.
Agora, como o(a) usuário(a) root:
make install
make install_systemd_units
Explicações do Comando
PATH+=:/usr/sbin: O
caminho precisa conter /usr/sbin para
detecção adequada da ferramenta do sistema pelo script configure. Essa instrução garante
que PATH seja configurada adequadamente, mesmo se você construir
como um(a) usuário(a) sem privilégios.
--enable-cmdlib: Essa chave
habilita a construção da biblioteca compartilhada de comandos. É
exigida ao se construir o processo de segundo plano de evento.
--enable-pkgconfig: Essa
chave habilita a instalação de arquivos de suporte pkg-config.
--enable-udev_sync: Essa
chave habilita a sincronização com o processamento Udev.
--enable-dmeventd: Essa chave habilita
a construção do processo de segundo plano de evento Device Mapper.
make
install_systemd_units: Isso é necessário para
instalar uma unidade que ativa volumes lógicos na inicialização.
Não é instalada por padrão.