Ícone do site Blog do Edivaldo – Informações e Notícias sobre Linux

Statsfs – um novo sistema de arquivos em RAM para estatísticas de kernel

Conheça e entenda como funciona o Statsfs, um novo sistema de arquivos em RAM para estatísticas de kernel, que em alguns meses deve ser mesclado no kernel mainline.

No ano passado, Paolo Bonzini, um Distinguished Engineer da Red Hat, propôs um novo sistema de arquivos chamado statsfs para o kernel Linux.

Statsfs – um novo sistema de arquivos em RAM para estatísticas de kernel

Diferente de outros sistemas de arquivos convencionais, o statsfs visa reunir e exibir estatísticas para os subsistemas do kernel Linux.

Mais tarde, Greg Kroah-Hartman, líder do mantenedor do kernel do Linux, gostou da ideia e concordou em prosseguir. Então, no final do mês passado, Emanuele Giuseppe Esposito, estagiário de engenharia da Red Hat, finalmente empurrou uma série de patches de implementação para revisão.

Os subsistemas de kernel Linux compreendem principalmente cinco componentes principais: Processor scheduler, Memory management unit (MMU), Virtual file system (VFS), Networking, e Inter-process communication unit.

Mas, como ele afirma, atualmente, ele não tem uma maneira comum de exibir suas estatísticas do kernel para o espaço do usuário.

No entanto, os subsistemas manipulam as estatísticas por conta própria e as armazenam de alguma forma, como arquivos.

Portanto, a ideia do sistema de arquivos ‘statsfs’ foi proposta como um sistema independente separado da API do kernel para cuidar das estatísticas do subsistema do kernel Linux.

Ele armazena cada dado estatístico como um arquivo na hierarquia de pastas desejada, definida pela API statsfs. Os arquivos podem ser lidos ou excluídos se o modo de arquivo estiver definido para isso.

O novo sistema de arquivos statsfs contém vários componentes e conceitos que se unem para funcionar como um único sistema de arquivos. Vamos dar uma olhada em alguns elementos importantes.

Statsfs – um novo sistema de arquivos em RAM para estatísticas de kernel

Começando com o básico, o statsfs consiste em dois conceitos: “valores” (para arquivos) e “fontes” (para diretórios).

Os valores representam uma quantidade única de dados, como o número de saídas da VM, a quantidade de memória usada por alguma estrutura de dados e o comprimento da tabela de hash mais longa.

Para servir as estatísticas aos usuários finais no sysfs, o statsfs mapeia fontes com diretórios e valores para arquivos e o monta na origem raiz, ou seja, um sistema de arquivos virtual em /sys/kernel/stats.

A partir daqui, o espaço do usuário solicita valores que invocam implicitamente a API statsfs.

Aqui neste patch, você pode encontrar todas as funções e interfaces da API statsfs.

Statsfs para substituir KVM Debugfs

Outros subsistemas do Kernel como o KVM também podem usar a API statsfs para criar uma fonte, adicionar fontes/valores/agregados filhos e registrá-la no fs virtual.

O Statsfs visa uma API mais ou menos estável com um sistema de arquivos e um ponto de montagem separados (/sys/kernel/stats).

Até o KVM (máquina virtual baseada em kernel) seria o primeiro usuário do statsfs que expõe suas estatísticas nos debugfs, mas limitado pelos patches de bloqueio de segurança.

O Statsfs recebeu uma boa resposta dos desenvolvedores do kernel que revisaram a primeira versão. Eles também sugeriram vários outros métodos e correções que poderiam ser incluídos para torná-lo melhor.

Emanuele também enviou uma segunda revisão de patches com todas as melhorias sugeridas na versão anterior. Por exemplo, substituindo a função ‘statsfs’ anterior e os nomes de arquivo por ‘stats_fs’ para evitar confusão com o nome da função “statfs” existente.

A partir de agora, o código está aberto para revisão e os desenvolvedores estão adicionando comentários. Definitivamente levará mais alguns meses para ser mesclado no kernel mainline.

O que está sendo falado no blog

Blog do Edivaldo – Informações e Notícias sobre Linux

Ir para o topo