目的
autofsデーモンを利用してデバイスとリモート共有を自動マウントする方法を学びます。
要件
- autofsパッケージをインストールして構成ファイルを編集するためのroot権限
難易度
簡単
はじめに
外部USBドライブやリモートNFS
などのデバイスを手動でマウントおよびアンマウントします またはSamba
共有は、マシンを管理するときに実行する面倒なタスクになる可能性があります。 autofs
デーモンは、必要に応じてファイルシステムを自動的にマウントし、指定された期間後にファイルシステムをアンマウントするのに役立ちます。このチュートリアルでは、オートマウンターに関連する基本的な概念と、それを構成する方法について説明します。
自動インストール
最初に行うことは、 autofs
をインストールすることです パッケージ。公式のCentOS7およびRhel7リポジトリで利用できるため、 yum
を使用するだけです。 それを取得するためのパッケージマネージャー:
$ sudo yum install autofs
次のステップは、 autofs
を開始することです デーモンを起動し、起動時に有効にします:
$ sudo systemctl enable --now autofs
autofsデーモンの構成
autofsデーモンは、それぞれ独自の目的を持ついくつかのファイルを操作することによって構成されます。基本的に私たちがしなければならないことは、デーモンにいくつかの指示を提供して、デーモンがマウントポイントとデバイスをどのように管理するかを知らせることです(これは私たちが map
と呼ぶものです )、およびオプションで、その動作を変更するために使用できるオプションのセット。それらの構成ファイルとは何か、そしてそれがそれらの役割であるかを見てみましょう。
/ etc / sysconfig/autofsファイル
/ etc / sysconfig / autofs
fileは、 autofs
のメイン構成ファイルです。 デーモンであり、そのグローバル設定が含まれています。これは、CentOS7.5のデフォルトインストールのファイルコンテンツです:
# # Init syatem options # # If the kernel supports using the autofs miscellanous device # and you wish to use it you must set this configuration option # to "yes" otherwise it will not be used. # USE_MISC_DEVICE="yes" # # Use OPTIONS to add automount(8) command line options that # will be used when the daemon is started. # #OPTIONS="" #
13行目のコメントを削除し、コマンドライン引数を文字列の形式で OPTIONS
の値として渡すことで、デーモンの動作を変更できます。 変数。
例を見てみましょう。デーモンがファイルシステムを自動的にアンマウントするまでのデフォルトの時間間隔を変更するとします。デフォルト値は300
です。 秒または5分。 autofsマニュアルを読むことにより( automount(8)
)、このパラメータを変更するには、-timeout
を使用する必要があることがわかります。 オプション。パラメータとして、 seconds
で表される時間間隔を取ります。 :
-t , --timeout Set the global minimum timeout, in seconds, until directories are unmounted. The default is 10 minutes. Setting the timeout to zero disables umounts completely. The internal program default is 10 minutes, but the default installed configuration overrides this and sets the timeout to 5 minutes to be consistent with earlier autofs releases.
たとえば、デフォルトのアンマウントタイムアウトを10分に変更したいとします。これにより、 / etc / sysconfig / autofs
を変更する必要があります。 ファイル:
OPTIONS="--timeout=600"
変更を保存した後、新しい構成を有効にするためにデーモンを再起動する必要があります。 systemctl
でデーモンのステータスを確認することで、新しいタイムアウトオプションがどのように採用されたかを確認できます。 :
$ systemctl status autofs autofs.service - Automounts filesystems on demand [...] CGroup: /system.slice/autofs.service └─6452 /usr/sbin/automount --timeout=600 --foreground --dont-check-daemon [...]
/etc/auto.masterファイル
auto.master
ファイルにはオートマウンターのマスターマップ
が含まれているため、非常に重要です。 。各マップは、マウントポイントを、マウントするファイルシステムが記述されている構成ファイルに関連付けているため、基本的に別のマップを記述します。マップは次の構文を使用して作成されます:
<mountpoint> <configuration file> <options>
構成は、指定された mountpoint
であることをデーモンに通知します 指定された構成ファイル
に設定されたマップによって管理されます 、提供されたオプションを適用します。これにより、グローバルオプションをオーバーライドできます(これは、たとえば、マウントポイントごとに特定のアンマウントタイムアウトを提供する場合に役立ちます)。具体的な例を見てみましょう。ファイルの7行目を見ると、次のマップが表示されます。
/misc /etc/auto.misc
この構成は、 / misc
を指定します マウントポイントは、 /etc/auto.misc
で説明されているマッピングに関心があります ファイル。それらのマップがどのように構成されているかを見てみましょう。
/etc/auto.miscファイル
/etc/auto.master
で見たように ファイル、 / misc
マウントポイントは/etc/auto.misc
に関連付けられています 構成ファイル。次に、デバイスのマップがどのように定義されているかを理解するために、それを調べます。これはファイルのデフォルトの内容です:
# # This is an automounter map and it has the following format # key [ -mount-options-separated-by-comma ] location # Details may be found in the autofs(5) manpage cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom [...]
構成に使用される構文は次のとおりです。
<key> <mount options> <filesystem>
最初に指定する必要があるのは、 key
です。 。 間接マップ
の場合、このパラメータの値が使用されます (マップの種類はすぐに異なります)メインマウントポイントの下に存在しない場合に作成されるサブディレクトリの名前(この場合は / misc
) 。 / dev / cdrom
したがって、デバイスは / misc / cd
に自動的にマウントされます ディレクトリ。
提供する2番目の要素は、適用する必要のあるマウントオプションのリストです。この例では、 -fstype
オプションは、 ro
とともにファイルシステムタイプを指定するために使用されています 、 nosuid
およびnodev
。
最後に、ファイルシステムの場所を指定する必要があります。この場合、これはローカルパスであるため、プレフィックスとして:
を付ける必要があります。 (コロン)文字。
リモートのNFS
の場合 共有するには、 192.168.1.39:/ srv / nfs_share
と記述します。 代わりに、 192.168.1.39
はリモートマシンのアドレス(ホスト名も使用できます)であり、 / srv / nfs_share
はその上の共有ディレクトリのパスです。
samba共有を参照する場合は、代わりに -fstype =cifs
を指定する必要があります。 オプションとして、リモートマシンのIPと共有ディレクトリのパスを次の形式で指定します。
://192.168.1.39/srv/samba_share
間接、直接、ホストマップ
間接マップ
について言及しました 前に、さまざまなタイプのマップについて詳しく見ていきましょう。使用できるマップには、 direct
の3種類があります。 、間接
およびホストマップ:間接マップ
の例 / misc
の/etc/auto.masterファイルで見たものです マウントポイント。
key
があるため、マップは間接と呼ばれます 構成ファイルで指定されたパラメーター( /etc/auto.misc
この場合)マウントポイント( / etc / misc
)に関連付けられています )、ファイルシステム(:/ dev / cdrom
)があるマウントポイントを基準にしたディレクトリの名前として使用されます この例では)がマウントされます。
ダイレクトマップ
、auto.masterファイルでは常に次の構文で指定されます:
/- /etc/auto.misc
/-
の場合 マップのマウントポイントとして使用されます。つまり、直接マップを使用しています。この場合、 key
マウントポイントに関連付けられた構成ファイルで使用される構文の要素は、絶対パスである必要があります。したがって、上記の例では、次のように記述します。
/cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
最後に、ホストマップ
を見つけることができます /etc/auto.masterファイルの13行目の例:
/net -hosts
このようなマップはデフォルトで定義されています。それはどのように機能しますか?ホストマップが指定されると、オートマウンターは指定されたマウントポイント( / net
)の下にサブディレクトリを作成します この場合) / etc / hosts
にリストされているマシンごとに NFS
をエクスポートします シェア。これは、 /etc/auto.net
のおかげで可能です。 スクリプト。これから検討します。各共有ディレクトリは、デフォルトで nosuid
を使用してマウントされます。 およびnodev
オプション。
/etc/auto.netおよび/etc/auto.smbスクリプト
autofs
には2つの非常に便利なスクリプトが含まれています インストール: /etc/auto.net
および/etc/auto.smb
。これらのスクリプトは基本的に、それぞれ showmount
のラッパーです。 およびsmbclient
利用可能なNFSおよびSamba共有を検出するために使用されるプログラム。オートマウンターで使用できる形式で結果が生成されます。
/etc/auto.net
スクリプトを使用して、概要を把握し、NFS共有を読み取ることができます。検索するサーバーのホスト名またはIPアドレスを引数として指定することで、スクリプトを呼び出すことができます。
$ sudo /etc/auto.net 192.168.1.39
ここで、共有が見つかったと想像してください。このコマンドは、次のような出力を返します。
/shared 192.168.1.39:/shared
これは、IP 192.168.1.39のマシンでは、 / shared
を意味します。 ディレクトリはNFSを介して共有されます。 hosts map
に基づく /etc/auto.masterファイルで、 /net/192.168.1.39/shared
の共有にアクセスできることがわかりました。 。これは、前に述べたように、hostsマップを使用する場合、NFS共有をエクスポートする/ etc / hostsファイル内の各マシンについて、/netの下に作成されたサブディレクトリであるためです。
/etc/auto.smb
同様の方法で動作します。 NFS共有の場合と同様に、ネットワーク内のsamba共有をオートマウンターによって自動的にマウントする場合、最初に行う必要があるのは、このマップを /etc/auto.master
> ファイル:
/cifs /etc/auto.smb
マップを追加したら、デーモンを再起動する必要があります:
sudo systemctl restart autofs
この時点で、 /etc/auto.smb
に感謝します スクリプト、ネットワーク内の1つ以上のsmb共有をエクスポートするマシンごとに、ディレクトリが / cifs
の下に作成されます。 。たとえば、IPが192.168.122.32のマシンに、 / srv / samba
があるとします。 sambaを介して共有されるディレクトリ。確認したい場合は、 /etc/auto.smb
を実行できます。 そのマシンのIPに対するスクリプト。出力は次のとおりです:
$ /etc/auto.smb 192.168.122.32 -fstype=cifs,guest \ "/sambadir" "://192.168.122.32/sambadir"
前に述べたように、スクリプトは smbclient
のラッパーです。 、およびオートマウンターが使用できる出力を生成します。共有ディレクトリは、ローカルファイルシステムで、自動的に作成された /cifs/192.168.122.32/
内で利用できるようになります。 ディレクトリ:
$ ls /cifs/192.168.122.32 sambadir
レイジーマウントとアンマウント
作成されるマウントポイントの数を最適化するために、オートマウンターはレイジーマウント
と呼ばれる手法を使用します 。デバイスが利用可能または検出されるとすぐにマウントする代わりに、ユーザーがファイルシステムにアクセスしようとするまで待機します。その後、マウント操作が実行されます。アンマウントプロセスでも同じことが起こります。指定されたタイムアウト後にデバイスが自動的にアンマウントされます。