LVM2-2.03.38

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]

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]

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]

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.

Configurando LVM2

Arquivo de Configuração

/etc/lvm/lvm.conf

Informação de Configuração

A configuração padrão ainda referencia o obsoleto diretório /var/lock. Isso cria um impasse ao tempo da inicialização. Mude isso (como o(a) usuário(a) root):

sed -e '/locking_dir =/{s/#//;s/var/run/}' \
   -i /etc/lvm/lvm.conf

Conteúdo

Aplicativos Instalados: blkdeactivate, dmeventd (opcional), dmsetup, fsadm, lvm, lvmdump e lvm_import_vdo. Existem também numerosos links simbólicos para lvm que implementam funcionalidades específicas
Bibliotecas Instaladas: libdevmapper.so e liblvm2cmd.so; opcional: libdevmapper-event.so, libdevmapper-event-lvm2.so, libdevmapper-event-lvm2mirror.so, libdevmapper-event-lvm2raid.so, libdevmapper-event-lvm2snapshot.so, libdevmapper-event-lvm2thin.so e libdevmapper-event-lvm2vdo.so
Diretórios Instalados: /etc/lvm e /usr/lib/device-mapper (opcional)

Descrições Curtas

blkdeactivate

é um utilitário para desativar dispositivos de bloco

dmeventd

(opcional) é o processo de segundo plano de evento do Device Mapper

dmsetup

é uma ferramenta de baixo nível de gerenciamento de volume lógico

fsadm

é um utilitário usado para redimensionar ou para verificar o sistema de arquivos em um dispositivo

lvm

fornece as ferramentas de linha de comando para LVM2. Os comandos são implementados por meio de links simbólicos para esse aplicativo para gerenciar dispositivos físicos (pv*), grupos de volumes (vg*) e volumes lógicos (lv*)

lvmdump

é uma ferramenta usada para despejar várias informações concernentes ao LVM2

vgimportclone

é usado para importar um VG duplicado (por exemplo, instantâneo de hardware)

libdevmapper.so

contém as funções da API Device Mapper