Introdução a 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.
Esse pacote é conhecido por construir e funcionar adequadamente
usando uma plataforma LFS 11.3.
Informação do Pacote
-
Transferência (HTTP): https://sourceware.org/ftp/lvm2/LVM2.2.03.18.tgz
-
Transferência (FTP): ftp://sourceware.org/pub/lvm2/LVM2.2.03.18.tgz
-
Soma de verificação MD5 da transferência:
cda7b89ae45ddb4a0cee768645ac9757
-
Tamanho da transferência: 2,6 MB
-
Espaço em disco estimado exigido: 48 MB (adicione 25 MB para
os testes; arquivos transitórios podem crescer até cerca de
800 MB no diretório /tmp durante os testes)
-
Tempo de construção estimado: 0,1 UPC (usando paralelismo =
4; adicione de 9 a 48 UPC para os testes, dependendo da
velocidade do disco)
Dependências do LVM2
Exigida
libaio-0.3.113
Opcionais
mdadm-4.2,
reiserfsprogs-3.6.27, Valgrind-3.20.0, Which-2.21, xfsprogs-6.1.1 (todos os
cinco podem ser usados, porém não são exigidos, para os testes),
thin-provisioning-tools
e vdo
Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/lvm2
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.
Device Drivers --->
[*] Multiple devices driver support (RAID and LVM) ---> [CONFIG_MD]
<*/M> Device mapper support [CONFIG_BLK_DEV_DM]
<*/M> Crypt target support [CONFIG_DM_CRYPT]
<*/M> Snapshot target [CONFIG_DM_SNAPSHOT]
<*/M> Thin provisioning target [CONFIG_DM_THIN_PROVISIONING]
<*/M> Cache target (EXPERIMENTAL) [CONFIG_DM_CACHE]
<*/M> Mirror target [CONFIG_DM_MIRROR]
<*/M> Zero target [CONFIG_DM_ZERO]
<*/M> I/O delaying target [CONFIG_DM_DELAY]
[*] Block devices --->
<*/M> RAM block device support [CONFIG_BLK_DEV_RAM]
Kernel hacking --->
Generic Kernel Debugging Instruments --->
[*] Magic SysRq key [CONFIG_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
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 um
pequeno número de falhas de teste é esperado pelo(a)
desenvolvedor(a). Mais falhas possivelmente acontecam porque
algumas opções do núcleo estão ausentes. Por exemplo, a falta do
alvo do 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 estiver disponível. Alguns testes são
sinalizados como “avisados” se thin-provisioning-tools
não estiver instalado. Uma solução alternativa é a de adicionar os
seguintes sinalizadores a 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
rm -fv /usr/lib/udev/rules.d/69-dm-lvm.rules
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.
rm
.../69-dm-lvm.rules: Sob certas circunstâncias,
essa regra do udev chama systemd-run, que não está
disponível no sysv. Ela realiza ações que, de qualquer maneira, são
feitas por outro script de inicialização; portanto, não é
necessária.