O que é o lvmetad e por que eu iria querer ou precisar usá-lo?

28

Eu tenho um servidor Gentoo com o LVM rodando em cima de uma matriz RAID que venho usando há vários anos. Recentemente, atualizei o LVM para 2.02.109 (não lembro qual versão era anterior) e recebi uma mensagem durante a atualização:

* Make sure to enable lvmetad in /etc/lvm/lvm.conf if you want
* to enable lvm autoactivation and metadata caching.

Eu entendo que pode habilitá-lo através da criação use_lvmetad = 1de /etc/lvm/lvm.conf.

Mas por que eu precisaria desse recurso? Meu entendimento é que ele trabalha com regras do udev para manter o estado do LVM em um cache, para que as ferramentas do LVM não precisem varrer volumes para obter essas informações. Só que minha pequena matriz não pode se beneficiar desse tipo de recurso? Em que circunstâncias eu quero / preciso usá-lo?

Steve Kalemkiewicz
fonte

Respostas:

1

Descrição

Na página do manual lvmetad :

lvmetad é um daemon de armazenamento em cache de metadados para o LVM. O daemon recebe notificações das regras do udev (que devem ser instaladas para que o LVM funcione corretamente quando o lvmetad estiver em uso). Por meio dessas notificações, o lvmetad possui uma imagem atualizada e consistente dos grupos de volumes disponíveis no sistema. Por padrão, o lvmetad, mesmo se estiver executando, não é usado pelo LVM. Veja lvm.conf (5).


Olhar para isso um pouco mais de perto merece outra definição. A Wikipedia afirma:

Um sistema de arquivos com registro no diário é um sistema de arquivos que monitora as alterações que serão feitas em um diário (geralmente um log circular em uma área dedicada do sistema de arquivos) antes de enviá-las ao sistema de arquivos principal. No caso de uma pane no sistema ou falha de energia, esses sistemas de arquivos são mais rápidos para colocar novamente online e menos propensos a serem corrompidos.


Raciocínio

Não vou entrar em uma explicação detalhada do LVM, pois o OP já entende os benefícios. Como tal, explicarei apenas por que o registro no diário foi adicionado. As versões mais antigas do LVM não tinham daemon de registro no diário, o que significa que, se o sistema travasse, o único diário que poderia ser usado estava no volume físico (disco rígido). Isso cria um problema quando o volume lógico abrange várias extensões nos Grupos de volumes lógicos que abrangem vários volumes físicos.

Se metade de uma transação do diário existir em um volume físico e a outra metade existir em outro volume físico, o diário transacional não poderá confirmar alterações nos dois volumes físicos, porque os volumes físicos não entendem que fazem parte de um grupo de volumes , porque a transação o log existe apenas no volume físico.

É aí que o novo daemon entra em cena. Agora, em vez de um log de diário para cada volume físico, o LVM pode criar um log de diário e criar uma seção para ele no grupo de volumes, reservado apenas para o diário. Depois disso, todo o log de transações pode ser encontrado e reproduzido no nível do Grupo de Volume.

eyoung100
fonte
14
Sua resposta parece sugerir que o lvmetad fornece um serviço para o sistema de arquivos em execução, permitindo que ele faça o registro no diário corretamente. Mas outras fontes apenas dizem que ele armazena em cache informações sobre o layout LVM para o conjunto de ferramentas de linha de comando lvm. Seria bom apoiar sua versão com algumas fontes.
Pavel Šimerda
8
Eu tenho que repetir o ceticismo de @ PavelŠimerda. O manual lvmetad não diz nada sobre o registro no diário. Sem mencionar que seria uma violação de camadas se o LVM começasse a tomar conhecimento do diário (pois isso significa que ele precisa estar ciente de quais sistemas de arquivos estão com diário e quais não estão, e precisa saber qual sistema de arquivos está no topo ). Também não vejo razão para ter um diário de um sistema de arquivos espalhado por vários volumes físicos seria um problema. Isso acontece o tempo todo com outras tecnologias como RAID 0.
Dan Moulding
29

A partir deste link :

Normalmente, cada comando LVM emite uma varredura de disco para localizar todos os volumes físicos relevantes e ler os metadados do grupo de volumes. No entanto, se o daemon de metadados estiver em execução e ativado, essa varredura cara poderá ser ignorada ... Isso pode economizar uma quantidade significativa de E / S e reduzir o tempo necessário para concluir as operações do LVM, principalmente em sistemas com muitos discos.

Portanto, você o executaria para aumentar o desempenho das operações de gerenciamento e status do LVM, ao custo do desempenho da inicialização e aumentar a complexidade. O nível de aumento de desempenho é maior quando há mais discos no sistema.

Matthew Sharp
fonte