Por que o Samba precisa do módulo VFS?

0

Eu me deparei com essa foto quando aprendi samba. Estou confuso com o módulo VFS nesta imagem.

  1. Por que precisamos desse módulo VFS no servidor samba em vez de passar diretamente a chamada do sistema pretendido para a biblioteca C? Eu entendo no lado do cliente que precisamos de um cifs.ko ou smbfs para o kernel entender o sistema de arquivos montado.

    Por exemplo, quando o cliente deseja ler um arquivo. Ele passa o comando de protocolo correspondente para o servidor pela rede. E a placa Ethernet do servidor irá recebê-lo e transmitir para a camada de aplicação. Então o protocolo CIFS na camada de aplicação interpretará este comando e o passará para a biblioteca c que eventualmente levará à chamada do sistema sys_read (). E neste procedimento o VFS parece desnecessário.

  2. Este módulo é obrigatório? Se não, como posso verificar se está compilado?

Obrigado

Suplemento:

A imagem tem como objetivo descrever a arquitetura do processo smbd. Ele quer expressar que o smbd possui uma arquitetura multiprocessos e de encadeamento único. Eu vi isso em um artigo que compara o Samba 3.0 e outro servidor CIFS chamado Likewise.

    
por sliter 07.10.2011 / 17:02

5 respostas

1

4 horas sem resposta, então adicionarei meu palpite: pode ser uma camada que traduza caminhos físicos (como /var/samba/share1/dir/file ) em lógico ( share1\dir\file ), junto com conversões de nome de arquivo necessárias , verificações de permissão e assim por diante. Como tal, é necessário e não opcional.

A implementação de protocolo por si só pode ser algo que já opera nos caminhos lógicos e simplesmente coloca tudo o que pode encontrar no VFS em um fio.

    
por 07.10.2011 / 21:58
1

Não está totalmente claro o que o diagrama deve mostrar. Mas todas as chamadas do sistema de arquivos no Linux são tratadas pelo VFS. Nesse sentido, o VFS é o bit do kernel que atende as chamadas do sistema. Mas, como você, não sei por que o diagrama diz que o VFS cria um syscall de bloqueio.

Mas sua explicação também está incorreta. Se por cliente você quer dizer alguma coisa na camada de aplicação, então o Samba deve ser transparente. Ele apenas acha que está acessando outro sistema de arquivos e usará o syscalls padrão para fazer isso (isto é, através do VFS). O kernel então rotearia essas chamadas pela rede.

    
por 07.10.2011 / 22:49
0

Acho que os módulos VFS estendem a funcionalidade de um sistema de arquivos posix.

link

Por exemplo, o suporte para atributos estendidos para um determinado sistema de arquivos é opcional. No entanto, você pode ativar / desativar seletivamente.

    
por 26.06.2015 / 04:34
0

Como a Vink disse, os módulos VFS adicionam funcionalidade. Aqui estão alguns exemplos. Você pode adicionar um

  • módulo de scanner de vírus que verifica cada arquivo à medida que está sendo escrito,

  • módulo da lixeira de reciclagem que move todos os arquivos excluídos para uma lixeira de reciclagem em vez de excluí-los

  • Módulo de auditoria que registra todos os acessos aos arquivos para que eles tenham tocado no que pode ser determinado.

  • módulo do sistema de arquivos ceph que conecta diretamente o compartilhamento ao ceph distribuídos sistema de arquivos sem ter que montar localmente a estrutura do ceph naquela máquina.

  • etc ...

Além disso, esses módulos podem ser empilhados, combinando suas funcionalidades.

    
por 19.01.2016 / 16:44
0

O módulo VFS é uma camada de abstração que fornece uma interface consistente para diferentes implementações do sistema de arquivos.

Virtual file system

A virtual file system (VFS) or virtual filesystem switch is an abstraction layer on top of a more concrete file system. The purpose of a VFS is to allow client applications to access different types of concrete file systems in a uniform way. A VFS can, for example, be used to access local and network storage devices transparently without the client application noticing the difference. ...

O SAMBA e todos os processos de espaço do usuário precisam do módulo VFS para obter os sistemas de arquivos reais.

    
por 19.01.2016 / 17:23