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.
-
Assegure-se de que os volumes históricos lógicos sejam retidos, definindo
record_lvs_history=1
no arquivolvm.conf
. Esta opção de metadados não é ativada por padrão. 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 delvol1
. -
lvol3
é um instantâneo delvol2
. -
lvol4
é um instantâneo delvol3
. lvol5
é também um instantâneo delvol3
.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
-
Remova o volume lógico
lvol3
da cadeia de instantâneos, depois execute novamente o seguinte comandolvs
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 poolVocê 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 poolVocê 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 parah
para indicar que o volume é um volume histórico.#
lvs -H vg/-lvol3
LV VG Attr LSize -lvol3 vg ----h----- 0A 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 poolExecute os seguintes comandos para remover o volume
lvol1
elvol2
e para ver como o comandolvs
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 poolPara 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 poolUm 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