背景引入 :
针对于 挂载 , 大家有没有思考过一个问题,如果我们需要挂载的文件或访问的远程数据甚至只是挂载一些设备,如果太多的话,数量很大的话,那 光每次挂载 敲的 mount 命令,都得敲很多遍啊, 会不会觉得很麻烦~?
那有的同学就会说,你一次性挂载完不就行了,
那还有个问题就是,你挂载的这些东西,你能保证每时每刻都在用嘛 ???
你这个设备或文件挂载完后,有可能用完之后,就不需要了,甚至有可能就用这一次,以后的长时间里都不会用呢 ??
那是不是就占用空间,浪费资源了 ???
所以,就提出一个需求
===>>>
就是 当批量的设备或文件需要挂载时,我们形成自动化的挂载,即需要时就挂载,不需要时
自己就自动卸掉了,即按需挂载 ~!!!
那什么叫不需要呢 ??
===>>>
就是说,不访问挂载目录,只要退出挂载目录它就自动卸掉了,只要使用 cd 命令进这
个 共享目录了,它自己就又自动挂载上了;
既按需使用同时也节省资源 ~!!!!!!!
那怎么实现这个 需求呢 ??
===>>>
这就引入 我们今天要讲的点 ---- 自动挂载服务 ( Autofs )
产生原因 :
# 在一般 NFS 文件系统的使用过程中,如果客户端要使用服务端所提供的文件系统,可以
在 /etc/fstab 中设置开机时自动挂载,也可以在登录系统后手动利用 mount 命令来挂载
( 但是,手动就伴随着 系统重启就会失效 。)
# 由于网络的问题,NFS 服务器与客户端的连接不会一直存在,当我们挂载了 NFS 服务器之
后,任何一方脱机都可能造成另一方等待超时,如果在资源挂载后长期不使用,也会造成
服务器硬件资源的浪费。
# 为了解决这一问题,就提出下列想法 :
* 当客户端在有使用 NFS 文件系统的需求时才让系统自动挂载
* 当 NFS 文件系统使用完毕后 ( autofs 默认自动卸载时间为 300秒 即5 分钟 ),让NFS自
动卸载。
( 这 300秒 的意义就是, 举个例子,其实有的时候,使用完之后,立刻就卸掉好像也不太
好,所以我们就设置了这个延迟时间,这个时间过了之后,就会自动卸载掉。 )
# autofs 自动挂载服务可以帮我们解决这一问题,该服务是运行在客户端的一种 Linux 系统守
护进程,在用户需要使用该文件系统时才会去动态挂载,从而节约了网络资源和服务器的硬
件资源。
( Autofs 它是一个软件,它就可以帮我们解决上面的需求,可以实现 按需挂载;
所以,它能实现我们的需求有一个很大的原因就是, Autofs 是有一个守护进程的,而且它
是肯定会有个守护进程的,不然它怎么知道你需要的时候就可以立即给你挂载呢 ??
这个守护进程 一直在监听 所有的共享目录,只要你 cd 命令进到这个共享目录里,它立刻
就会给你挂载上,一直常驻内存,被动的监听着用户的访问,按照需要实现动态挂载~!)
那它也是个软件,所以,我们先安装下
安装 :
服务端 :
[root@server ~]# yum install autofs -y # 服务端 Autofs安装
客户端 :
[root@node1 ~]# yum install autofs -y # 客户端 安装
# 我们在 客户端 服务端 都装了 Autofs ;
其实,一般情况下,服务端是不需要装 Autofs 的,但是将来服务端也要用客户端的相关数
据,不也就可以用了,不一定 Autofs 是专门用于自动化挂载远程服务的,它也可以自动化挂
载本地 ( 比如自动化挂载本地光盘~~ )
所以,就干脆 客户端 ,服务端 都安装上 ~!!
但是,注意,要是只使用远程的共享目录的话,那就只需要给 客户端 安装就好( 谁访问就给
谁装嘛~!)
定位到 客户端 :
[root@node1 ~]# vim /etc/auto.master
# /etc/auto.master 即是 Autofs 的主配置文件 ( 38 行,大部分都是注释 )
# 上示主配置文件里的内容 最重要的就是 我们做标记的那个 ( /misc /etc/auto.misc )
表示的含义就是 :
* 指明 要挂载的目录是哪个 ( /misc )
* 它的配置文件的路径是什么 ( /etc/auto.misc )
比如,现在有 100 多个设备需要挂载, 那按道理走,是不是就得在主配置文件里,把这100多
个设备全写在里面,那这个主配置文件是不是肯定也就 多了 100 多行, 那这个配置文件就显
得很臃肿 ( 人家本身也就 38 行,一下又多了 100 多行 ) 所以,就会显得比较臃肿~!!
那么,为了不让配置文件不臃肿,将来检索文件效率高一点,所以,就不需要把 这 100 多个
设备的挂载命令写到 这个配置文件里 ,
那怎么办呐 ?
===>>>
就是把 需要挂载的设备 独立的形成一个 子配置文件 ~!!
以 上示 为例 ( /misc /etc/auto.misc )
/misc ===>>>> 就是 挂载的父目录
/etc/auto.misc ===>>>> 被挂载设备的子配置文件
为什么说 /misc 是父目录呢 ??
===>>>
因为 自动挂载 有一个要求 就是 , 有一个父目录 是最好的 ~!!!
比如,要挂载的目录为 test ,那它前面 就必须得 有一级 ,
那一级的父目录 就得写到 主配置文件里,你的被挂载的设备的相关目录就得写
到子配置文件里 ~!!!
注 :
* 父目录不需要 建立,你只需要在主配置文件里起个名字即可
它是自动建立的~!!!
主配置文件分析 :
# 配置文件路径 : /etc/auto.master
# 作用 :
处于 生产环境中的 Linux 服务器,一般会同时管理许多设备的挂载操作。 如果把这些
设备挂载信息都写入到autofs 服务的主配置文件中,无疑会让主配置文件臃肿不堪,
不利于服务执行效率,也不利于日后修改里面的配置内容,则需要将挂载的设备形成
独立配置的子文件,主配置文件只存储配置挂载设置的文件名。
# /etc/auto.master 文件内容格式 : 挂载目录 子配置文件
* 挂载目录 : 不需要实现存在,因为 autofs 会主动建立该目录
* 子配置文件 : 文件名可自定义
* 示例 : /nfs /etc/auto.nfs
( 也不一定必须按照 auto. XXX , 格式命名, 不需要这样 ~!!)
子配置文件分析 :
# 子配置文件由自己创建,内容格式 :
* 本地挂载目录 [ -挂载参数 ] 服务器地址 : 目录
示例 : testmnt 192.168.1.1:/data
* 挂载参数 :
参数 | 功能 |
fg/bg | 当执行挂载时,该挂载行为会在前台( fg ) 还是后台( bg ) 执行,若在前台执行,则 mount 会持续尝试多次挂载,直到成功或 time out 为止; 若为后台执行,则mount 会在后台持续多次进行 mount ,而不会影响到前台的程序运行。 |
soft/hard | hard 表示当 两者之间的任何一台主机脱机,则 RPC 会持续的呼叫,直到对方恢复连接为止。 soft 则表示 RPC 会在 time out 后重复呼叫,而非持续呼叫 |
intr | 当使用上面提到的 hard 方式挂载时,若加上 intr 这个参数,则当 RPC 持续呼叫时,该次的呼叫是可以被中断的 |
rsize/wsize | 读出( rsize ) 与 写入( wsize ) 的区块大小。 这个设置值可以影响客户端与服务器 |