domingo, 31 de janeiro de 2010

Entendendo o The Berkeley Automounter Suite of Utilities (BSD AMD)

O assunto sobre compartilhamento de arquivos utilizando NFS já foi comentado aqui no meu blog, e pode ser facilmente encontrado em diversos sites na internet. Hoje eu gostaria de comentar sobre um utilitário nativo do BSD chamado BSD Automounter Suite ou BSD AMD que é utilizado para montagem de compartilhamentos NFS por demanda.

Como isso funciona? Suponhamos que você possua o Servidor A, cujo ip é 192.168.0.1 e que esta compartilhando o diretório documento, que você deseja montar na as estação de trabalho. Em uma operação normal você deveria montar o compartilhamento através do comando mount ou configurando o fstab de sua máquina para que essa montagem fosse automática. Isso funciona bem, porém se torna uma conexão permanente entre estação e servidor que muitas vezes pode ficar ociosa, causando desperdício de processamento.

O BSD AMD funciona da seguinte maneira: configuramos um arquivo em /etc chamando amd.conf. Esse arquivo possui uma estrutura semelhante a do smb.conf, e nele apontamos um diretório que será monitorado pelo AMD, no nosso exemplo /servidores. Configuramos também um arquivo de mapa, por exemplo amd.map, que conterá o mapa de acesso aos servidores, isso é, uma linha de comando composta de variáveis simples, como o diretório base na máquina, uma variável com para o nome de um servidor e uma variável para um compartilhamento. Nesse mapa não iremos colocar qualquer referência a um dos servidores, colocaremos apenas as variáveis, que serão preenchidas pelo automonter depois.

Com isso o serviço configurado e iniciado damos um ls /servidores/A/documentos que nos retorna... opa, todos os arquivos do compartilhamento no servidor A. Se eu dou um ls /servidores/A este me retorna, opa, todos os compartilhamentos desse servidor como se fossem sub-pastas. Agora, se eu dou um ls /servidores/B/financeiro, supondo que eu tenha um servidor chamado B com um compartilhamento do financeiro lá, ele me retorna todos os arquivos desse compartilhamento nesse servidor. Agora se eu não tenho nenhum servidor chamado C e faço um ls /servidores/C/documentos ele não me retorna nada. Entenderam?

Basicamente o que o daemon do Automonter faz é observar um diretório e dentro de uma máscara /diretório/servidor/compartilhamento, ele faz a montagem automática dos mesmos. Bacana, não? O único detalhe a se observar nesse caso é que caso a referência seja feita com base no nome, é preciso que estes estejam explícitos no /etc/hosts.