目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / SUSE Linux Enterprise Serverマニュアル / ストレージ管理ガイド / ネットワークストレージ / autofsによるオンデマンドマウント
適用項目 SUSE Linux Enterprise Server 15 SP6

21 autofsによるオンデマンドマウント

autofsは、指定したディレクトリをオンデマンドベースで自動的にマウントするプログラムです。これは高い効率を実現するためにカーネルモジュールに基づいており、ローカルディレクトリとネットワーク共有の両方を管理できます。これらの自動的なマウントポイントは、アクセスがあった場合にのみマウントされ、非アクティブな状態が一定時間続くとアンマウントされます。このオンデマンドの動作によって帯域幅が節約され、/etc/fstabで管理する静的マウントよりも高いパフォーマンスが得られます。autofsは制御スクリプトですが、automountは実際の自動マウントを実行するコマンド(デーモン)です。

21.1 インストール

デフォルトでは、autofsSUSE Linux Enterprise Serverにインストールされません。その自動マウント機能を利用するには、最初に、次のコマンドを使用してインストールします。

> sudo zypper install autofs

21.2 設定

vimなどのテキストエディタで設定ファイルを編集して、autofsを手動で設定する必要があります。autofsの基本的な設定手順は2つあります。「マスタ」マップファイルを使用する手順と、特定のマップファイルを使用する手順です。

21.2.1 マスタマップファイル

autofsのデフォルトのマスタ設定ファイルは/etc/auto.masterです。その場所を変更するには、/etc/sysconfig/autofs内のDEFAULT_MASTER_MAP_NAMEオプションの値を変更します。次に、SUSE Linux Enterprise Serverのデフォルトのマスタ設定ファイルの内容を示します。

#
# 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).1
#
#/misc  /etc/auto.misc2
#/net -hosts
#
# Include /etc/auto.master.d/*.autofs3
#
#+dir:/etc/auto.master.d
#
# Include central master map if it can be found using
# nsswitch sources.
#
# Note that if there are entries for /net or /misc (as
# above) in the included master map any keys that are the
# same will not be seen as the first read key seen takes
# precedence.
#
+auto.master4

1

自動マウント機能のマップの形式については、autofsのマニュアルページ(man 5 autofs)で多くの貴重な情報が提供されています。

2

デフォルトではコメント化(#)されていますが、これは単純な自動マウント機能のマッピング構文の例です。

3

マスタマップファイルを複数のファイルに分割する必要がある場合、この行のコメント化を解除し、マッピング(サフィックスは.autofs)を/etc/auto.master.d/ディレクトリに配置します。

4

+auto.masterにより、NIS (NISの詳細については、Section 3.1, “Configuring NIS servers”を参照)を使用していてもそのマスタマップが確実に見つかるようになります。

auto.masterのエントリには3つのフィールドがあり、構文は次のとおりです。

mount point      map name      options
mount point

autofsファイルシステムをマウントする基本の場所(/homeなど)。

map name

マウントに使用するマップソースの名前。マップファイルの構文については、21.2.2項 「マップファイル」を参照してください。

options

これらのオプションを指定した場合、指定したマップ内のすべてのエントリにデフォルトとして適用されます。

ヒント
ヒント: 詳細情報

オプションのmap-typeformat、およびoptionsの特定の値の詳細については、auto.masterのマニュアルページ(man 5 auto.master)を参照してください。

auto.masterの次のエントリは、autofsに対し、/etc/auto.smb内を検索して/smbディレクトリにマウントポイントを作成するよう指示します。

/smb   /etc/auto.smb

21.2.1.1 直接マウント

直接マウントは、関連するマップファイル内で指定されたパスにマウントポイントを作成します。auto.masterでマウントポイントを指定するのではなく、マウントポイントフィールドを/-に置き換えます。たとえば、次の行は、autofsに対し、auto.smbで指定された場所にマウントポイントを作成するよう指示します。

/-        /etc/auto.smb
ヒント
ヒント: フルパスを使用しないマップ

ローカルまたはネットワークのフルパスでマップファイルを指定していない場合、マップファイルはネームサービススイッチ(NSS)設定を使用して検索されます。

/-        auto.smb

21.2.2 マップファイル

重要
重要: 他のタイプのマップ

autofsによる自動マウントのマップタイプとしては「ファイル」が最も一般的ですが、他のタイプもあります。マップは、コマンドの出力や、LDAPまたはデータベースのクエリ結果で指定することもできます。マップタイプの詳細については、man 5 auto.masterマニュアルページを参照してください。

マップファイルは、ソースの場所(ローカルまたはネットワーク)と、ソースをローカルにマウントするためのマウントポイントを指定します。マップの全般的な形式はマスタマップと同様です。異なるのは、optionsをエントリの最後ではなくmount pointとlocationの間に記述する点です。

mount point      options      location

マップファイルが実行可能ファイルとしてマークされていないことを確認してください。chmod -x MAP_FILEを実行することにより、実行可能ビットを削除することができます。

mount point

ソースの場所をどこにマウントするかを指定します。ここには、で指定されたベースマウントポイントに追加する1つのディレクトリ名(auto.master「間接」マウント)、またはマウントポイントのフルパス(直接マウント、21.2.1.1項 「直接マウント」を参照)のいずれかを指定できます。

options

関連するエントリのマウントオプションを、カンマで区切ったオプションのリストで指定します。このマップファイルのオプションもauto.masterに含まれている場合、これらが追加されます。

location

ファイルシステムのマウント元の場所を指定します。通常は、標準の表記方法host_name:path_nameによるNFSまたはSMBボリュームです。マウントするファイルシステムが「/」で始まる場合(ローカルの/devエントリやsmbfs共有など)、:/dev/sda1のように、コロン記号「:」のプレフィクスを付ける必要があります。

21.3 操作とデバッグ

このセクションでは、autofsサービスの操作を制御する方法と、自動マウント機能の操作を調整する際に詳細なデバッグ情報を表示する方法の概要について説明します。

21.3.1 autofsサービスの制御

autofsサービスの動作は、systemdによって制御されます。autofs用のsystemctlコマンドの一般的な構文は、次のとおりです。

> sudo systemctl SUB_COMMAND autofs

ここでSUB_COMMANDは以下のいずれかです。

enable

ブート時に自動マウント機能のデーモンを起動します。

start

自動マウント機能のデーモンを起動します。

stop

自動マウント機能のデーモンを停止します。自動マウントポイントにはアクセスできません。

status

autofsサービスの現在のステータスと、関連するログファイルの一部を出力します。

restart

自動マウント機能を停止して起動します。実行中のデーモンをすべて終了し、新しいデーモンを起動します。

reload

現在のauto.masterマップを確認して、エントリに変更があるデーモンを再起動し、新しいエントリがある場合は新しいデーモンを起動します。

21.3.2 自動マウント機能の問題のデバッグ

autofsでディレクトリをマウントする際に問題が発生する場合は、automountデーモンを手動で実行して出力メッセージを確認してください。

  1. autofsを停止します。

    > sudo systemctl stop autofs
  2. 1つの端末から、フォアグラウンドでautomountを手動で実行し、詳細な出力を生成します。

    > sudo automount -f -v
  3. 別の端末から、マウントポイントにアクセスして(たとえば、cdまたはlsを使用して)、自動マウントファイルシステムをマウントしてみます。

  4. 1番目の端末から、automountの出力で、マウントに失敗した理由またはマウントが試行されていない理由についての詳細情報がないかどうかを確認します。

21.4 NFS共有の自動マウント

次の手順は、ネットワーク上で利用可能なNFS共有を自動マウントするようautofsを設定する方法を示しています。この方法は上で説明した情報を利用しています。また、NFSのエクスポートを熟知していることが前提です。NFSの詳細については、第19章 「NFS共有ファイルシステムを参照してください。

  1. マスタマップファイル/etc/auto.masterを編集します。

    > sudo vim /etc/auto.master

    /etc/auto.masterの最後に新しいNFSマウント用の新しいエントリを追加します。

    /nfs      /etc/auto.nfs      --timeout=10

    これは、ベースマウントポイントは/nfsで、NFS共有は/etc/auto.nfsマップで指定されていることをautofsに伝え、非アクティブな状態が10秒間続いたらこのマップ内のすべての共有を自動的にアンマウントするよう指示します。

  2. NFS共有用の新しいマップファイルを作成します。

    > sudo vim /etc/auto.nfs

    通常、/etc/auto.nfsには、各NFS共有に対して別個の行が含まれます。形式については、21.2.2項 「マップファイル」を参照してください。マウントポイントおよびNFS共有のネットワークアドレスを記述する行を追加します。

    export      jupiter.com:/home/geeko/doc/export

    上述の行は、要求があると、jupiter.comホスト上の/home/geeko/doc/exportディレクトリがローカルホスト上の/nfs/exportディレクトリ(/nfsauto.masterマップから取得)に自動マウントされることを意味します。/nfs/exportディレクトリは、autofsによって自動的に作成されます。

  3. 以前に同じNFS共有を静的にマウントしていた場合、必要に応じて/etc/fstabの関連する行をコメント化します。行は次のようになります。

    #jupiter.com:/home/geeko/doc/export /nfs/export nfs defaults 0 0
  4. autofsを再ロードし、動作しているかどうかを確認します。

    > sudo systemctl restart autofs
    # ls -l /nfs/export
    total 20
    drwxr-xr-x  5 1001 users 4096 Jan 14  2017 .images/
    drwxr-xr-x 10 1001 users 4096 Aug 16  2017 .profiled/
    drwxr-xr-x  3 1001 users 4096 Aug 30  2017 .tmp/
    drwxr-xr-x  4 1001 users 4096 Apr 25 08:56 manual/

    リモート共有上にあるファイルのリストを参照できる場合、autofsは機能しています。

21.5 詳細トピック

このセクションでは、autofsの基本的な説明よりも詳しいトピックについて説明します。ここで説明するのは、ネットワーク上で利用可能なNFS共有の自動マウント、マップファイルでのワイルドカードの使用、およびCIFSファイルシステムに固有の情報です。

21.5.1 /net mount point

このヘルパーマウントポイントは、大量のNFS共有を使用する場合に便利です。/netには、ローカルネットワーク上にあるすべてのNFS共有がオンデマンドで自動マウントされます。このエントリはすでにauto.masterファイルに存在しているため、エントリのコメント化を解除してautofsを再起動するだけで済みます。

/net      -hosts
> sudo systemctl restart autofs

たとえば、jupiterという名前のサーバと/exportという名前のNFS共有がある場合、

> sudo cd /net/jupiter/export

コマンドラインで次のように入力してマウントできます。

21.5.2 ワイルドカードを使用したサブディレクトリの自動マウント

個別に自動マウントする必要があるサブディレクトリが含まれるディレクトリがある場合(代表的なケースは、個々のユーザのホームディレクトリが内部にある/homeディレクトリ)、autofsには便利な解決方法が備わっています。

ホームディレクトリの場合は、auto.masterに次の行を追加します。

/home      /etc/auto.home

続いて、/etc/auto.homeファイルに正しいマッピングを追加し、ユーザのホームディレクトリが自動的にマウントされるようにする必要があります。1つの解決方法は、各ディレクトリに対して個別のエントリを作成することです。

wilber      jupiter.com:/home/wilber
penguin      jupiter.com:/home/penguin
tux      jupiter.com:/home/tux
[...]

これは、auto.home内にあるユーザのリストを管理する必要があるため、効率的とはいえません。マウントポイントの代わりにアスタリスク「*」を使用し、マウントするディレクトリの代わりにアンパサンド「&」を使用します。

*      jupiter:/home/&

21.5.3 CIFSファイルシステムの自動マウント

SMB/CIFS共有を自動マウントする場合(SMB/CIFSプロトコルの詳細については、第20章 「Sambaを参照)、マップファイルの構文を変更する必要があります。オプションフィールドに-fstype=cifsを追加し、共有の場所にコロン「:」のプレフィクスを付けます。

mount point      -fstype=cifs      ://jupiter.com/export