aotofs配置和挂载本地目录及nfs使用详细说明【aotofs即自动挂载】

autofs(自动挂载)

自动挂载介绍

假设系统中存在这样的一条规则:就某个指定的外部设备/dev/xx 和某个挂载点 /yy 关联在一起,此时/dev/xx 是不是挂载到/yy里了,我们不考虑,但是用户只要访问/yy,系统就认为你要访问/dev/xx了,那么系统就会自动把/dev/xx挂载到/yy里去。

运行方式:
在这里插入图片描述
当我们访问/iso/dvd这个目录的时候,就会触发autofs,把本机的/dev/cdrom自动的挂载到/ios/dvd里去。
因为在auto.master里我们指定了父目录/iso,所以/iso里原有的东西都会被隐藏。

配置本地挂载autofs

服务安装【autofs】

自动挂载本地文件方法
创建这样的规则,首先要安装autofs:yum -y install autofs

配置文件编辑

编辑文件:vim /etc/auto.master
在这里插入图片描述
注:上面中的模版其实可以不要后缀的,只是有个后缀方便一眼看出文件的类型。
然后因为上图中/etc/auto.aa这个模版不存在,所以需要拷贝一份模版:cp /etc/auto.misc /etc/auto.aa(如果你熟悉,其实可以不需要拷贝模版的,直接编辑该文件即可) ,编辑/etc/auto.aa文件:
下面的路径设置原则是这样的,如果需要共享的路径划lv了,用lvdisplay命令查看,把对应目录的路径复制过来即可,如果没有划lv,直接用lsblk查看就可以了【需要在前面加一个/dev/
在这里插入图片描述
注:上图中lv文件名错误:正确应该是/dev/cl/lv3,lvdisplay可以查看:
在这里插入图片描述
下面图对上面权限和lv查看的附加说明。
在这里插入图片描述
下面放代码展示

[root@centos76_2 ~]# vim /etc/auto.aa
#
# 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这行是默认存在的,可以参考这行添加,摈弃可以不用注释掉
cd              -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom 
file1           -fstype=xfs,rw                  :/dev/centos/home
#子目录文件名	      设置文件格式和权限				这是路径,填写方式上面已经说明了

使用本地挂载

  • 创建一个文件用来挂载共享文件 【和上面配置本地挂载同一台服务器】
    mkdir /test

  • 测试 :先在光盘没有挂载的情况下在父目录中随意创建几个文件,待会访问的时候看父目录中内容是否会被隐藏,创建好文件以后重启服务并设置开机启动:

  • systemctl restart autofs ,systemctl enable autofs
    在这里插入图片描述

  • 重新进入父目录【/etc/auto.master里面定义的父目录】,并且查看是否有文件挂载:mount |grep -v grep |grep -v auto | grep 设备名
    在这里插入图片描述

  • 虽然现在里面什么都没有,但我们可以直接访问子目录,如果是懵的,看下图【这是第二次做的实验图,和下面实验图没有关系,只是放这解释这个位置关系而已】
    在这里插入图片描述

  • 现在访问/test/file 目录【能看到定义目录的内容,并且也自动挂载这个文件了】【重启autofs服务,重新进目录这里面的记录又没了】:
    在这里插入图片描述
    上面的是本地挂载的方法。

  • 下面是我第二次跟着上面做的实验,这一次使用访问均正常,但是挂载没内容,不知道为啥【问题记录,以后能处理了来记录原因】

[root@centos76_2 test]# systemctl restart autofs
[root@centos76_2 test]# cd -
/root
[root@centos76_2 ~]# cd /test
[root@centos76_2 test]# ls 
[root@centos76_2 test]# cd file1
[root@centos76_2 file1]# ls
andy  ccx  ccx1  ccx2  ccx3  centos  CentOS-7.6-x86_64-DVD-1810.iso  hero1  hero2  superman1  superman2
[root@centos76_2 file1]# pwd #路径是配置路径
/test/file1
[root@centos76_2 file1]# 
[root@centos76_2 file1]# ls /home/ #内容和/home一致没问题
andy  ccx  ccx1  ccx2  ccx3  centos  CentOS-7.6-x86_64-DVD-1810.iso  hero1  hero2  superman1  superman2
[root@centos76_2 file1]# df -Th | grep test #就是没有自动挂载,奇了个怪了
[root@centos76_2 file1]# 

自动挂载NFS共享方法

nfs服务端配置

nfs的服务端配置我这边博客有详细说明的,去这看:NFS【文件共享】服务端配置和客户端使用详细说明【包含基于kerberos的nfs配置】

下面我只是做一下简单说明。

服务安装

安装nfs服务:yum -y install nfs*
开启并设置开机自启:systemctl start nfs ,systemctl enable nfs ,查看状态是否是active:systemctl status nfs
在这里插入图片描述

配置文件编辑

编辑分享文件:vi /etc/exports ,在里面定义分享文件:目录*(rw,sync) 注:*是所有ip均可访问 也可以指定ip,如: 目录 0.0.0.0(rw,sync)
在这里插入图片描述
重启服务:systemclt restart nfs
查看分享文件:showmount -e 当前ip
在这里插入图片描述
【如果出现报错:clnt_create:RPC:Unknown host ,需要添加解析:vi /etc/hosts , 添加ip地址和主机名即可】
报错后添加解析截图:
在这里插入图片描述
新建共享目录:mkdir /bb,然后把外挂磁盘 挂载到当前目录 mount *** /bb【比如挂载镜像到这个目录,如果没有挂载的也可以不用挂载】,这里为了方便演示,就在/bb中随意新建几个文件即可:
在这里插入图片描述

nfs普通挂载

放这呢,只是让你知道一下nfs的普通挂载方式而已。这个是需要手动卸载的,卸载方法是umount 挂载点

[root@centos76_1 ~]# mkdir /date
[root@centos76_1 ~]# showmount -e 192.168.59.129
Export list for 192.168.59.129:
/bb       *
/root/ccx 192.168.59.130,192.168.59.128
[root@centos76_1 ~]# mount 192.168.59.129:/root/ccx /date
[root@centos76_1 ~]# df -Th| grep date
192.168.59.129:/root/ccx nfs4       50G  3.7G   47G    8% /date
[root@centos76_1 ~]# 
[root@centos76_1 ~]# umount /date #卸载
[root@centos76_1 ~]# mount 192.168.59.129:/root/ccx /date #挂载已经没了
[root@centos76_1 ~]#

客户端自动挂载配置

安装服务【autofs】

到客户端服务器设置:
先安装autofs:yum -y install autofs

编辑配置文件

  • 这里面涉及的父目录和模版同上面的”使用本地挂载“,如果下面看不懂的,上去看“使用本地挂载”里面的说明,这就不做详细说明了

  • 编辑:vi /etc/auto.master ——/-(意思是不定义父目录) /etc/auto.xx(也可以不要后缀)
    在这里插入图片描述

  • 后缀名如果不是.misc的,cp一份模版:cp /etc/auto.misc /etc/auto.xx(熟悉可以不用cp模版,直接手敲)
    然后打开这个模版:vi /etc/auto.xx
    在这里插入图片描述

  • 完整代码展示

[root@centos76_1 test]# vim /etc/auto.master
# 下面第二行为我创建的,/-是没有父目录。
/misc   /etc/auto.misc
/-      /etc/auto.xx                                                                                                           
[root@centos76_1 test]# cp /etc/auto.misc /etc/auto.xx #拷贝模版
[root@centos76_1 test]# vim /etc/auto.xx
#添加格式如下第二行,cd行可以不用注释的
cd              -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
/xx/ns          -fstype=nfs,rw                  192.168.59.129:/bb

自动挂载nfs

  • 这个其实和本地挂载是一样的,只是类别变成nfs了而已。
  • 为了看出区别:先mkdir /xx并在里面生成若干文件,然后重启服务:systemctl restart autofs,就会自动生成定义的文件了,访问的就是分享ip中定义文件中的内容
    在这里插入图片描述
[root@centos76_1 test]# 
[root@centos76_1 test]# mkdir /xx
[root@centos76_1 test]# cd /xx
[root@centos76_1 xx]# touch xx{1..5}
[root@centos76_1 xx]# ls
xx1  xx2  xx3  xx4  xx5
[root@centos76_1 xx]# df -h | grep bb #现在没有bb挂载的挂载点
[root@centos76_1 xx]# systemctl restart autofs
[root@centos76_1 xx]# cd - #如果不重新进入这个目录,可能会看不到共享的目录
/
[root@centos76_1 /]# cd -
/xx
[root@centos76_1 xx]# ls #已经有ns这个文件了【如果没有直接ls ns 就会出现了】
ns  xx1  xx2  xx3  xx4  xx5
[root@centos76_1 xx]# cd ns
[root@centos76_1 ns]# ls #文件是共享的没错
bb1  bb2  bb3  bb4  bb5  bb6
[root@centos76_1 ns]# df -h | grep bb #自动挂载了
192.168.59.129:/bb         50G  3.7G   47G    8% /xx/ns
[root@centos76_1 ns]# 

自定义自动挂载的卸载时间【客户端上设置】

  • nfs优势

    • 使用cifs【samba】方式的多用户挂载,不论所否使用共享资源,共享目录都挂载着的【nfs的手动挂载也是一直挂载的】,这样很占用内存。
    • 想要达到使用共享资源时,共享目录自动挂载,而在不使用共享资源时,共享目录便会自动卸载。
    • 而 cifs【samba】是无法做到的,此任务可以由nfs文件系统实现【自动挂载支持nfs】。
  • 上面的自动挂载配置完毕以后
    #默认300秒之后会自动卸载

  • 修改默认时间
    文件是:/etc/sysconfig/autofs

[root@client ~]# vim /etc/sysconfig/autofs 
#最下面新增该行内容
TIMEOUT=5   ##设定自动卸载等待时间,单位默认是 秒
[root@client ~]# systemctl restart autofs.service  #重启生效
  • 测试该时间
[root@centos76_1 ~]# tail -n 1 /etc/sysconfig/autofs  #新增卸载时间5秒
TIMEOUT=5
[root@centos76_1 ~]# 
[root@centos76_1 ~]# systemctl restart autofs.service #重启生效
[root@centos76_1 ~]# df -Th | grep bb # 现在未挂载
[root@centos76_1 ~]# cd /xx/ns/ #进入挂载目录【上面配置过】
[root@centos76_1 ns]# ls 
bb1  bb2  bb3  bb4  bb5  bb6
[root@centos76_1 ns]# df -Th | grep bb  # 已经能看到自动挂载信息了
192.168.59.129:/bb       nfs4       50G  3.7G   47G    8% /xx/ns
[root@centos76_1 ns]# 
[root@centos76_1 ns]# cd  #退出该目录
[root@centos76_1 ~]#  # 静待5秒以后
[root@centos76_1 ~]# df -Th | grep bb # 再次查看 挂载已经没了
[root@centos76_1 ~]# 
[root@centos76_1 ~]# cd /xx/ns/ #又进来共享目录
[root@centos76_1 ns]# ls
bb1  bb2  bb3  bb4  bb5  bb6
[root@centos76_1 ns]# 
[root@centos76_1 ns]# df -Th | grep bb #挂载信息又出来了
192.168.59.129:/bb       nfs4       50G  3.7G   47G    8% /xx/ns
[root@centos76_1 ns]# 

/etc/auto.master中模版易踩坑说明

父目录和子目录关系如下图。
在这里插入图片描述

  • 需要注意的是:如果/etc/auto.master中如果定义了父目录,后面模版文件中就不能重复/etc/auto.master的父目录,而且不能有/【如上图的/test和file1,这样写完整路径就是:/test/file1了】 ,如果父目录中是 /- 模版中才可以有/开头的详细目录。
  • 如:规则是这样的,比如/etc/autu.master重定义了一个目录/father。我们去模版中定义一个son,其实完整的路径就是/father/son
    下面以nfs挂载为例:
[root@compute1 ~]# systemctl restart autofs #重启autofs服务
[root@compute1 ~]# 
[root@compute1 ~]# grep father /etc/auto.master #配置了/father父目录
/father /etc/nfs
[root@compute1 ~]# cat /etc/nfs #规则中创建了son这个子目录
#开头son并没有加 /
son     -fstype=nfs,rw  10.233.3.225:/aa
[root@compute1 ~]# df -h # 现在是没有/aa这个挂载点的
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/cl-root   50G  4.9G   46G  10% /
devtmpfs             3.8G     0  3.8G   0% /dev
tmpfs                3.8G     0  3.8G   0% /dev/shm
tmpfs                3.8G   57M  3.8G   2% /run
tmpfs                3.8G     0  3.8G   0% /sys/fs/cgroup
/dev/sda1           1014M  188M  827M  19% /boot
tmpfs                777M     0  777M   0% /run/user/0
[root@compute1 ~]# 
[root@compute1 ~]# cd /father/
[root@compute1 /father]# 
[root@compute1 /father]# ls # 父目录中也没有文件
[root@compute1 /father]# 
[root@compute1 /father]# cd son # 进入子目录
[root@compute1 /father/son]# 
[root@compute1 /father/son]# ls #可以看到nfs分享的/aa 文件中的内容了
1test  2test  3test  4test  5test
[root@compute1 /father/son]# 
[root@compute1 /father/son]# df -h #也可以看到/aa挂载点
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/cl-root   50G  4.9G   46G  10% /
devtmpfs             3.8G     0  3.8G   0% /dev
tmpfs                3.8G     0  3.8G   0% /dev/shm
tmpfs                3.8G   57M  3.8G   2% /run
tmpfs                3.8G     0  3.8G   0% /sys/fs/cgroup
/dev/sda1           1014M  188M  827M  19% /boot
tmpfs                777M     0  777M   0% /run/user/0
10.233.3.225:/aa      50G  6.8G   44G  14% /father/son
[root@compute1 /father/son]# 

所以这个挂载方式就很适用于配置网络用户的家目录(为了节约空间,把家目录配置存储服务器上,然后在对应服务器上配置家目录即可)【配置方法参考上面即可】
比如,我们在某台服务器上的/home/guests目录中配置了成百上千个用户的家目录,我们要使用的时候就只需要在对应的用户上配置一个自动挂载即可!

如下配置ldapuser0用户的家目录【这是一个网络用户】

[root@server0 guests]# grep test /etc/auto.master
/home/guests /etc/test     # 前面父目录用来指定家目录存放路径
[root@server0 guests]# cat /etc/test
#在这开头指定用户名 即可(这里的目录是客户端本地挂载点)
ldapuser0 -fstype=nfs,rw classroom.example.com:/home/guests/ldapuser0  
#classroom是服务端:/home是服务器的挂载点
[root@server0 guests]# 
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页