目次
ケース 1 --- サーバーが共有ディレクトリを作成し、クライアントが自動マウントを実装する
Linux autofs自動マウントサービス
原因
一般的な NFS ファイル システムを使用する過程で、クライアントがサーバーによって提供されるファイル システムを使用したい場合は、起動時に自動的にマウントするように設定することも/etc/fstab
、システムにログインした後にマウントを使用して手動でマウントすることもできます。
ネットワークの問題 により、NFS サーバーとクライアントの間の接続が常に存在するとは限りません。NFS サーバーをマウントした後、どちらかの当事者がオフラインになると、もう一方の当事者がタイムアウトを待機する可能性があります。リソースが長期間使用されない場合、マウントされてから時間が経つと、サーバーのハードウェア リソースが無駄になります。
この問題を解決するために、次のようなアイデアが生まれました。
クライアントがNFS ファイル システムを使用する必要がある場合にのみ、システムの自動マウントを許可します。
NFS ファイル システムの使用が終了したら ( autofs のデフォルトの自動アンマウント時間は 300 秒または 5 分です)、NFS を自動的にアンマウントします。
autofs 自動マウント サービスは、この問題の解決に役立ちます。このサービスは、クライアント上で実行される Linux システム デーモンです。ユーザーがファイル システムを使用する必要がある場合にのみ動的にマウントされるため、ネットワーク リソースとサーバー ハードウェアが節約されます。
インストール
[root@localhost ~]# yum install autofs -y
プロファイル分析
ファイルパス
/etc/auto.master
効果
実稼働環境の Linux サーバーは通常、多くのデバイスのマウント操作を同時に管理します。これらすべてのデバイスのマウント情報を autofs サービスのメイン設定ファイルに書き込むと、間違いなくメイン設定ファイルが肥大化し、サービスの実行効率が低下し、将来の設定内容の変更にも役立ちません。この場合、マウントされたデバイスは、サブファイルを形成するように独立して構成されます。メイン構成ファイルには、構成マウント設定のファイル名のみが保存されます。
etc/auto.master ファイルのコンテンツ形式
マウントディレクトリサブ構成ファイル
マウント ディレクトリ --- autofs がアクティブにディレクトリを作成するため、事前に存在する必要はありません。
サブ設定ファイル --- ファイル名はカスタマイズ可能
例 --- /nfs /etc/auto.nfs
サブ構成ファイルは自分で作成され、コンテンツの形式は次のとおりです。
ローカル マウント ディレクトリ [-mount パラメータ] サーバー アドレス: ディレクトリ
例 --- testmnt 192.168.48.130:/data
マウントパラメータ
パラメータ | 関数 |
---|---|
背景/背景 | マウントを実行するとき、マウントはフォアグラウンド (fg)で実行されますか?それともバックグラウンド (bg)で実行されますか? フォアグラウンドで実行された場合、マウントは成功するかタイムアウトになるまでマウントを試行し続けます。バックグラウンドで実行された場合、マウントはマウントされます。フォアグラウンドでのプログラムの実行に影響を与えることなく、バックグラウンドで複数回実行され続けます。 |
ソフト/ハード | ハードとは、2 つの間のホストがオフラインになった場合でも、相手が接続を復元するまで RPC が呼び出しを続けることを意味します。ソフトの場合、RPC はタイムアウト後に呼び出しを継続せずに繰り返し呼び出します。 |
内部 | 上記のハードメソッドを使用してマウントする場合、intr パラメータを追加すると、RPC が呼び出しを継続したときに呼び出しが中断される可能性があります。 |
rサイズ/wサイズ | 読み取り (rsize) および書き込み (wsize) のブロック サイズ。この設定値はクライアントとサーバーに影響を与える可能性があります |
場合
ケース 1 --- サーバーが共有ディレクトリを作成し、クライアントが自動マウントを実装する
ステップ 1: サーバーホスト上に新しい共有ディレクトリを作成し、nfs 構成ファイルを編集する
[root@localhost ~]# mkdir /data
[root@localhost ~]# chmod -Rf 777 /data/
[root@localhost ~]# ls /data/
[root@localhost ~]# echo "this is test " > /data/file.txt
[root@localhost ~]# ls /data/
file.txt
[root@localhost ~]# vim /etc/exports
#编写以下内容
/data *(rw,sync,all_squash)
ステップ 2: サーバー ホストでサービスを開始する 注: 最初に rpcbind サービスを開始します。
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl start nfs-server
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# systemctl enable nfs-server
ステップ 3: クライアント ノード 1 の操作、自動的にマウントされたメイン構成ファイルを編集する
ディレクトリをローカルにマウントすることを計画します: /nfs/testmnt
[root@localhost ~]# vim /etc/auto.master
# 编辑第7行,修改为如下
/nfs /etc/auto.nfs
# /nfs为最终挂载目录的第一级
# /etc/auto.nfs为自动挂载的自配置文件,文件名任意命名
[root@localhost ~]# showmount -e 192.168.149.128
[root@localhost nfs1]# vim /etc/auto.nfs # 编辑自动挂载的子配置文件
#编辑以下内容
testmnt 192.168.149.128:/data
ステップ 4: クライアント node1 ホストでサービスを再起動する
[root@localhost ~]# systemctl start autofs
[root@localhost ~]# systemctl enable autofs
ステップ 5: クライアント ノード 1 のホスト テスト
[root@localhost nfs]# df -h # 查看系统挂载信息
[root@localhost nfs]# cd /nfs #自动创建该目录
[root@localhost nfs]# ls
[root@localhost nfs]# cd testmnt
[root@localhost testmnt]# ls
file.txt
ケース 2 --- CD を自動的にマウントする
ステップ 1: autofs のメイン構成ファイルとサブ構成ファイルを変更する
# 计划本地光盘挂载目录:/media/cdrom
[root@localhost ~]# vim /etc/auto.master
/media /etc/iso.aa
# /media为计划挂载目录的第一级别
# /etc/iso.aa为子配置文件
ステップ 2: サブ構成ファイルを編集する
[root@localhost ~]# vim /etc/iso.aa
cdrom -fstype=iso9660,ro,nosuid,nodev :/dev/sr0 # 冒号前有空格
ステップ 3: サービスを開始する
[root@localhost ~]# systemctl restart autofs
[root@localhost ~]# systemctl enable autofs
ステップ 4: テスト、注意事項 --- CD が既にマウントされている場合は、最初にアンマウントする必要があります
[root@localhost ~]# df -h # 查看光盘是否已经挂载
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 968M 0 968M 0% /dev/shm
tmpfs 388M 9.5M 378M 3% /run
/dev/mapper/rhel-root 16G 4.2G 12G 27% /
/dev/nvme0n1p1 395M 235M 160M 60% /boot
tmpfs 194M 104K 194M 1% /run/user/0
/dev/sr0 8.5G 8.5G 0 100% /run/media/root/RHEL-9-1-0-BaseOS-x86_64 # 显示已挂载
[root@localhost ~]# umount /dev/sr0 # 先卸载光盘设备
[root@localhost ~]# df -h # 再次查看
[root@localhost ~]# cd /media/
[r[root@localhost media]# cd cdrom # 触发自动挂载
[r[root@localhost cdrom]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 968M 0 968M 0% /dev/shm
tmpfs 388M 9.5M 378M 3% /run
/dev/mapper/rhel-root 16G 4.2G 12G 27% /
/dev/nvme0n1p1 395M 235M 160M 60% /boot
tmpfs 194M 104K 194M 1% /run/user/0
/dev/sr0 8.5G 8.5G 0 100% /media/cdrom # 已经自动挂载