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.
Esse pacote é conhecido por construir e funcionar corretamente
usando uma plataforma LFS 12.2.
Informação do Pacote
-
Transferência (HTTP): https://sourceware.org/ftp/lvm2/LVM2.2.03.26.tgz
-
Transferência (FTP):
-
Soma de verificação MD5 da transferência:
276620e7071b4f0ba18b0c5cf2150c79
-
Tamanho da transferência: 2,7 MB
-
Espaço em disco estimado exigido: 38 MB (adicionar 20 MB para
testes; arquivos transitórios podem crescer até cerca de 300
MB no diretório /tmp durante testes)
-
Tempo de construção estimado: 0,3 UPC (adicionar 9 a 48 UPC
para testes, dependendo da velocidade do disco e de se o
dispositivo de bloco de RAM estiver habilitado no núcleo)
Dependências do LVM2
Exigidas
libaio-0.3.113
Opcionais
mdadm-4.3,
Valgrind-3.23.0, Which-2.21, xfsprogs-6.9.0 (todos
quatro possivelmente sejam usados, mas não são exigidos, para
testes),
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.
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
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.