• Aumentar tamanho da fonte
  • Tamanho da fonte padrão
  • Diminuir tamanho da fonte

Usando autofs com OpenLDAP

Tem se tornado cada vez mais comum o uso de estações Linux em empresas e uma das primeiras preocupações é o acesso a dados compartilhados tanto por estações Windows como por estações Linux de forma transparente.

Pensar em servidor de arquivos para estações Linux nos leva direto ao NFS server, escolha natural em quase todas as redes mistas mas o problema é como otimizar o uso da rede de forma a não gerar gargalos de tráfego com várias estações conectadas ao servidor simultaneamente. É aí que entra o autofs, um serviço de montagem automática de volumes que funciona tanto para servidores remotos como para mídias locais que entra em funcionamento sempre que o acesso seja solicitado e desativa este mapeamento quando o compartilhamento não for mais necessário.

A melhor forma de controle sobre esta configuração é criar um mapa de montagem em um servidor OpenLDAP contendo as informações de todos os mapeamentos disponíveis na rede.

Neste material estou utilizando como exemplo uma estação com Mandriva, e um servidor OpenLDAP 2.2.12 em Debian. Estas configurações podem ser realizadas em qualquer estação ou servidor, bastando para isto ter o schema autofs em seu OpenLDAP e o pacote autofs versão 5 ou superior em sua estação.

Configurando o servidor OpenLDAP para uso do autofs

Caso você não tenha o autofs.schema em sua instalação, você pode criar o arquivo a partir da listagem a seguir:

# autofs.schema
# Depends upon core.schema and cosine.schema
#
# OID Base is 1.3.6.1.4.1.2312.4
#
# Attribute types are under 1.3.6.1.4.1.2312.4.1
# Object classes are under 1.3.6.1.4.1.2312.4.2
# Syntaxes are under 1.3.6.1.4.1.2312.4.3

# Attribute Type Definitions

attributetype ( 1.3.6.1.1.1.1.25 NAME 'automountInformation'
DESC 'Information used by the autofs automounter'
EQUALITY caseExactIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

objectclass ( 1.3.6.1.1.1.1.13 NAME 'automount' SUP top STRUCTURAL
DESC 'An entry in an automounter map'
MUST ( cn $ automountInformation $ objectclass )
MAY ( description ) )

objectclass ( 1.3.6.1.4.1.2312.4.2.2 NAME 'automountMap' SUP top STRUCTURAL
DESC 'An group of related automount objects'
MUST ( ou ) )

# eof

Em seguida você deve acrescentar ao arquivo de configuração do OpenLDAP a seguinte linha:

include         /etc/openldap/schema/autofs.schema 

Em seguida reinicie seu servidor OpenLDAP. Em Debian ou Ubuntu:

# /etc/init.d/slapd restart

Em RedHat, Mandriva, Fedora e outros:

# /etc/init.d/ldap restart

Criando as informações do autofs na base LDAP

O primeiro passo é criar uma unidade que irá armazenar as informações do autofs. Fazendo uma analogia com o uso do autofs em arquivos de configuração, estaremos criando o equivalente ao arquivo auto.master. Para isto utilizaremos o arquivo LDIF a seguir:

dn: ou=auto.master,dc=empresa,dc=com,dc=br
objectClass: top
objectClass: automountMap
ou: auto.master

dn: cn=/ldap,ou=auto.master,dc=empresa,dc=com,dc=br
objectClass: automount
cn: /ldap
automountInformation: ldap://192.168.0.10/ou=auto.indirect,dc=empresa,dc=com,
dc=br

dn: cn=/-,ou=auto.master,dc=empresa,dc=com,dc=br
objectClass: automount
cn: /-
automountInformation: ldap://192.168.0.10/ou=auto.direct,dc=empresa,dc=com,
dc=br

A configuração indireta indica quais compartilhamentos serão mapeados localmente dentro de alguma pasta. Este arquivo LDIF cria este mapa através de uma nova OU e dentro desta a indicação dos compartilhamentos a serem mapeados:

dn: ou=auto.indirect,dc=empresa,dc=com,dc=br
objectClass: top
objectClass: automountMap
ou: auto.indirect

dn: cn=bin,ou=auto.indirect,dc=empresa,dc=com,dc=br
objectClass: automount
cn: bin
automountInformation: servidornfs:/usr/local/bin

dn: cn=etc,ou=auto.indirect,dc=empresa,dc=com,dc=br
objectClass: automount
cn: etc
automountInformation: servidornfs:/usr/local/etc

dn: cn=lib,ou=auto.indirect,dc=empresa,dc=com,dc=br
objectClass: automount
cn: lib
automountInformation: servidornfs:/usr/local/lib

dn: cn=/,ou=auto.indirect,dc=empresa,dc=com,dc=br
objectClass: automount
cn: /
automountInformation: servidornfs:/usr/local/&

Agora vamos cria uma configuração direta, ou seja, os compartilhamentos indicados serão mapeados diretamente na pasta indicada. O arquivo LDIF a seguir cria uma nova OU e indica os compartilhamentos a serem mapeados.

dn: ou=auto.direct,dc=empresa,dc=com,dc=br
objectClass: top
objectClass: automountMap
ou: auto.direct

dn: cn=/servidor/projetos,ou=auto.direct,dc=empresa,dc=com,dc=br
objectClass: automount
cn: /servidor/projetos
automountInformation: servidornfs:/data/projetos

dn: cn=/servidor/imagens,ou=auto.direct,dc=empresa,dc=com,dc=br
objectClass: automount
cn: /servidor/imagens
automountInformation: servidornfs:/data/imagens

dn: cn=/servidor/documentos,ou=auto.direct,dc=empresa,dc=com,dc=br
objectClass: automount
cn: /servidor/documentos
automountInformation: servidor2:/empresa/documentos

Refinando as opções de montagem no OpenLDAP

O atributo automountInformation pode receber, ainda, as opções de montagem do nfs. Se você deseja que o seu mapeamento seja feito em segundo plano e que seja possível interromper o processo, este atributo deve ficar desta forma:

automountInformation: -bg,soft,intr servidor2:/empresa/documentos 

Nesse exemplo as opções representam:

Opção Descrição
bg o processo de montagem será realizado em background.
soft qualquer erro de montagem será reportado ao usuário quando processo atingir o tempo limite.
hard o processo de montagem não poderá ser interrompido e o cliente NFS irá aguardar até que o servidor esteja novamente disponível (esta é a opção default)
intr permite que o usuário interrompa o processo de montagem (ctrl+C)
timeo indica o tempo limite para a operação de montagem do compartilhamento, após este tempo o processo irá retornar um erro ao usuário (default: 10000min)
rsize=8192
wsize=8192
permite uma melhor performance na comunicação NFS ampliando o tamanho do bloco de dados transferido entre o cliente e o servidor de cada vez. Esta opção deve ser utilizada com cuidado pois versões antigas de kernel e algumas placas de rede não funcionam corretamente com grandes pacotes de rede.

Instalando e configurando o autofs na estação

Como estou utilizando um Mandriva na estação, o processo de instalação foi realizado com o urpmi. Recomendo que você atualize sua instação antes de continuar com o processo de instalação, desta forma:

# urpmi --auto-select
# urpmi --auto autofs

Uma vez tendo instalado o autofs devemos realizar pequenas alterações em sua configuração. Estas configurações visam melhorar o desempenho e evitar pesquisas LDAP desnecessárias. Acesse a pasta /etc/autofs e edite o arquivo autofs.conf, deixando com as seguintes opções definidas

# Tempo de inatividade até que o mapeamento seja automaticamente
# desativado (normalmente eu defino isto em 1min)
TIMEOUT=60

# Base de pesquisa no OpenLDAP
SEARCH_BASE="dc=empresa,dc=com,dc=br

# Atributos a serem pesquisados
MAP_OBJECT_CLASS="automountMap"
ENTRY_OBJECT_CLASS="automount"
MAP_ATTRIBUTE="ou"
ENTRY_ATTRIBUTE="cn"
VALUE_ATTRIBUTE="automountInformation"

Aproveite bem...

Marcos Sungaila