LVM2-2.03.22

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 corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://sourceware.org/ftp/lvm2/LVM2.2.03.22.tgz

  • Transferência (FTP): ftp://sourceware.org/pub/lvm2/LVM2.2.03.22.tgz

  • Soma de verificação MD5 da transferência: a97cf533222a5760225dbd26c3982ca6

  • Tamanho da transferência: 2,6 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,1 UPC (usando paralelismo = 4; 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

Exigida

libaio-0.3.113

Opcionais

mdadm-4.2, reiserfsprogs-3.6.27, Valgrind-3.21.0, Which-2.21, xfsprogs-6.4.0 (todos os cinco podem ser usados, porém não são exigidos, para os testes), 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.

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]

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