Red Hat Training

A Red Hat training course is available for RHEL 8

12.5. Rastreamento e exibição de volumes finos que foram removidos

Você pode configurar seu sistema para rastrear imagens e volumes lógicos finos que foram removidos, ativando a opção de metadados record_lvs_history no arquivo de configuração lvm.conf. Isto permite que você exiba uma cadeia completa de dependência thinshot que inclui volumes lógicos que foram removidos da cadeia de dependência original e que se tornaram historical volumes lógicos.

Você pode configurar seu sistema para reter volumes históricos por um período de tempo definido especificando o tempo de retenção, em segundos, com a opção lvs_history_retention_time metadados no arquivo de configuração lvm.conf.

Um volume lógico histórico mantém uma representação simplificada do volume lógico que foi removido, incluindo os seguintes campos de relatório para o volume:

  • lv_time_removed: o tempo de remoção do volume lógico
  • lv_time: o tempo de criação do volume lógico
  • lv_name: o nome do volume lógico
  • lv_uuid: a UUID do volume lógico
  • vg_name: o grupo de volume que contém o volume lógico.

Quando um volume é removido, o nome histórico lógico do volume adquire uma hipen como prefixo. Por exemplo, quando se remove o volume lógico lvol1, o nome do volume histórico é -lvol1. Um volume lógico histórico não pode ser reativado.

Mesmo quando a opção de metadados record_lvs_history estiver ativada, você pode evitar a retenção de volumes lógicos históricos em uma base individual ao remover um volume lógico especificando a opção --nohistory do comando lvremove.

Para incluir volumes lógicos históricos na exibição do volume, você especifica a opção -H|--history de um comando de exibição LVM. Você pode exibir uma cadeia completa de dependência fina que inclui volumes históricos, especificando os campos lv_full_ancestors e lv_full_descendants, juntamente com a opção -H.

A série de comandos a seguir fornece exemplos de como você pode exibir e gerenciar volumes lógicos históricos.

  1. Assegure-se de que os volumes históricos lógicos sejam retidos, definindo record_lvs_history=1 no arquivo lvm.conf. Esta opção de metadados não é ativada por padrão.
  2. Digite o seguinte comando para exibir uma fina cadeia de imagens provisionadas.

    Neste exemplo:

    • lvol1 é um volume de origem, o primeiro volume da cadeia.
    • lvol2 é um instantâneo de lvol1.
    • lvol3 é um instantâneo de lvol2.
    • lvol4 é um instantâneo de lvol3.
    • lvol5 é também um instantâneo de lvol3.

      Observe que, embora o comando de exibição do exemplo lvs inclua a opção -H, ainda não foi removido nenhum volume fino e não há volumes lógicos históricos a serem exibidos.

      # lvs -H -o name,full_ancestors,full_descendants
        LV    FAncestors        FDescendants
        lvol1                   lvol2,lvol3,lvol4,lvol5
        lvol2 lvol1             lvol3,lvol4,lvol5
        lvol3 lvol2,lvol1       lvol4,lvol5
        lvol4 lvol3,lvol2,lvol1
        lvol5 lvol3,lvol2,lvol1
        pool
  3. Remova o volume lógico lvol3 da cadeia de instantâneos, depois execute novamente o seguinte comando lvs para ver como os volumes lógicos históricos são exibidos, juntamente com seus antepassados e descendentes.

    # lvremove -f vg/lvol3
      Logical volume "lvol3" successfully removed
    # lvs -H -o name,full_ancestors,full_descendants
      LV     FAncestors         FDescendants
      lvol1                     lvol2,-lvol3,lvol4,lvol5
      lvol2  lvol1              -lvol3,lvol4,lvol5
      -lvol3 lvol2,lvol1        lvol4,lvol5
      lvol4  -lvol3,lvol2,lvol1
      lvol5  -lvol3,lvol2,lvol1
      pool
  4. Você pode usar o campo lv_time_removed para exibir a hora em que um volume histórico foi removido.

    # lvs -H -o name,full_ancestors,full_descendants,time_removed
      LV     FAncestors         FDescendants              RTime
      lvol1                     lvol2,-lvol3,lvol4,lvol5
      lvol2  lvol1              -lvol3,lvol4,lvol5
      -lvol3 lvol2,lvol1        lvol4,lvol5               2016-03-14 14:14:32 +0100
      lvol4  -lvol3,lvol2,lvol1
      lvol5  -lvol3,lvol2,lvol1
      pool
  5. Você pode fazer referência a volumes lógicos históricos individualmente em um comando de exibição, especificando o formato vgname/lvname, como no exemplo a seguir. Observe que o quinto bit no campo lv_attr está configurado para h para indicar que o volume é um volume histórico.

    # lvs -H vg/-lvol3
      LV     VG   Attr       LSize
      -lvol3 vg   ----h-----    0
  6. A LVM não mantém volumes lógicos históricos se o volume não tiver descendente vivo. Isto significa que se você remover um volume lógico no final de uma cadeia de instantâneos, o volume lógico não é retido como um volume lógico histórico.

    # lvremove -f vg/lvol5
      Automatically removing historical logical volume vg/-lvol5.
      Logical volume "lvol5" successfully removed
    # lvs -H -o name,full_ancestors,full_descendants
      LV     FAncestors         FDescendants
      lvol1                     lvol2,-lvol3,lvol4
      lvol2  lvol1              -lvol3,lvol4
      -lvol3 lvol2,lvol1        lvol4
      lvol4  -lvol3,lvol2,lvol1
      pool
  7. Execute os seguintes comandos para remover o volume lvol1 e lvol2 e para ver como o comando lvs exibe os volumes uma vez que eles foram removidos.

    # lvremove -f vg/lvol1 vg/lvol2
      Logical volume "lvol1" successfully removed
      Logical volume "lvol2" successfully removed
    # lvs -H -o name,full_ancestors,full_descendants
      LV     FAncestors           FDescendants
      -lvol1                      -lvol2,-lvol3,lvol4
      -lvol2 -lvol1               -lvol3,lvol4
      -lvol3 -lvol2,-lvol1        lvol4
      lvol4  -lvol3,-lvol2,-lvol1
      pool
  8. Para remover completamente um volume lógico histórico, você pode executar novamente o comando lvremove, especificando o nome do volume histórico que agora inclui o hífen, como no exemplo a seguir.

    # lvremove -f vg/-lvol3
    Historical logical volume "lvol3" successfully removed
    # lvs -H -o name,full_ancestors,full_descendants
      LV     FAncestors    FDescendants
      -lvol1               -lvol2,lvol4
      -lvol2 -lvol1        lvol4
      lvol4  -lvol2,-lvol1
      pool
  9. Um volume histórico lógico é retido enquanto houver uma cadeia que inclua volumes vivos em seus descendentes. Isto significa que a remoção de um volume lógico histórico também remove todos os volumes lógicos da cadeia se nenhum descendente existente estiver ligado a eles, como mostrado no exemplo a seguir.

    # lvremove -f vg/lvol4
      Automatically removing historical logical volume vg/-lvol1.
      Automatically removing historical logical volume vg/-lvol2.
      Automatically removing historical logical volume vg/-lvol4.
      Logical volume "lvol4" successfully removed