autofsの設定

2010/02/23PC::Linux/BSD

NFSサーバの公開領域を自動的にマウントさせる仕組みを実装したときのメモ。

環境

  • Debian GNU/Linux 4.0/i386

実装手順

1. autofsパッケージのインストール

# apt-get install autofs
Reading package lists... Done  
Building dependency tree... Done
The following NEW packages will be installed:
  autofs                                     
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 113kB of archives.                                
After unpacking 483kB of additional disk space will be used.  
Get:1 http://ftp.jp.debian.org etch/main autofs 4.1.4-13 [113kB]
Fetched 113kB in 0s (202kB/s)                                   
Selecting previously deselected package autofs.                 
(Reading database ... 35294 files and directories currently installed.)
Unpacking autofs (from .../autofs_4.1.4-13_i386.deb) ...               
Setting up autofs (4.1.4-13) ...                                       

Creating config file /etc/auto.master with new version

Creating config file /etc/auto.misc with new version

Creating config file /etc/auto.net with new version

Creating config file /etc/auto.smb with new version

Creating config file /etc/default/autofs with new version
Starting automounter: loading autofs4 kernel module, no automount maps defined.

2. マスタマップファイルの編集

/etc/auto.master に、最終行を追加。

#
# $Id: auto.master,v 1.4 2005/01/04 14:36:54 raven Exp $
#
# Sample auto.master file
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# For details of the format look at autofs(5).
#/misc  /etc/auto.misc --timeout=60
#/smb   /etc/auto.smb
#/misc  /etc/auto.misc
#/net   /etc/auto.net
/mnt/nfs        /etc/auto.nfs   --timeout=300

上記の例では、以下のように設定しています。

  • マウントベース(NFSサーバのマウントポイントが格納されるディレクトリ): /mnt/nfs
  • マウントベース毎のマップファイル*1: /etc/auto.nfs
  • automountデーモンに渡すオプション: --timeout=300 (5分後に自動的にアンマウントされる)

3. NFS用のマップファイルの作成

/etc/auto.nfs を新規作成します。

nfs-srv   -fstype=nfs,rw,hard,intr,rsize=32768,wsize=32768  192.168.0.1:/data

上記の例では、以下のように設定しています

  • NFSサーバ192.168.0.1の/dataディレクトリをマウントする
  • マウントポイントは/mnt/nfs/nfs-srvとする
  • マウントオプションはrw,hard,intr,rsize=32768,wsize=32768とする *2
  • fstypeでは、ファイルシステムタイプ(nfs)を指定しています

4. automountデーモンの起動

auto.masterを変更後は、automountデーモンに再読み込みさせなければなりません。
手っ取り早く再起動させます。

# /etc/init.d/autofs restart
Stopping automounter: done.
Starting automounter: done.

5. 動作確認

/mnt ディレクトリ内を確認します。

# ls /mnt
nfs

自動的にマウントベースが作成されています。

続けて、/mnt/nfs ディレクトリ内を確認します。

# ls /mnt/nfs

現時点では何もありません。

続けて、カレントディレクトリを/mnt/nfs/nfs-srvに移動してみます。

# cd/mnt/nfs/nfs-srv
/mnt/nfs/nfs-srv#

上記の時点では何もないので、"No such file or directory"と通常であれば怒られるところですが、正常に移動できています。この時点でlsを実行してみればNFSサーバで公開しているファイル類が表示されるはずです。

最後に、mountコマンド等の実行結果で確認してみます。

# mount
中略
automount(pid24357) on /mnt/nfs type autofs (rw,fd=4,pgrp=24357,minproto=2,maxproto=4)
192.168.0.1:/data on /mnt/nfs/nfs-srv type nfs (rw,hard,intr,rsize=32768,wsize=32768,addr=192.168.0.1)

# cat /etc/mtab
中略
automount(pid24357) /mnt/nfs autofs rw,fd=4,pgrp=24357,minproto=2,maxproto=4 0 0
192.168.0.1:/data /mnt/nfs/nfs-srv nfs rw,hard,intr,rsize=32768,wsize=32768,addr=192.168.0.1 0 0

# cat /proc/mounts
中略
automount(pid24357) /mnt/nfs autofs rw,fd=4,pgrp=24357,timeout=300,minproto=2,maxproto=4,indirect 0 0
192.168.0.1:/data /mnt/nfs/nfs-srv nfs rw,vers=3,rsize=32768,wsize=32768,hard,intr,proto=tcp,timeo=600,retrans=2,sec=sys,addr=192.168.0.1 0 0

*1 : 今回だと/mnt/nfs用のマップファイル

*2 : mountコマンドや/etc/fstabに記述するオプションと同じ