Linux(NFS)使用autofs自动挂载

(一)NFS简介

1.1 什么是NFS

  • NFS 是Network File System的缩写,即网络文件系统。英文Network File System(NFS),是基于UDP/IP协议的应用,可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

  • NFS在文件传送或信息传送过程中依赖于RPC协议。RPC:远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。

  • NFS服务器可以看作是一个FILE SERVER。它可以让你的机器(客户端)通过网络将远端的NFS SERVER共享目录MOUNT到自己的系统中。

1.2 NFS守护进程

  • nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器;
  • mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端登录到NFS服务器后,必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。
  • portmap:主要功能是进行端口映射工作。

1.3 RPC服务

RPC(Remote Procedure Call)即远程过程调用,记录NFS服务器使用的端口号,在NFS客户端发送请求时,将对应的端口号信息传递给客户端,确保客户端与服务端能连接上。

注意:在启动NFS服务之前,必须先启动PRC服务,在Centos7中叫做 rpcbind 服务,否则 NFS Server 无法向RPC注册信息,另外,如果RPC服务重启,原来注册的NFS服务端的信息也就失效了,也必须重启NFS服务。特别要注意的是,修改NFS配置⽂件后不需要重启NFS,只需要执⾏ exportfs -rv 命令即可或是 systemctl reload nfs

原理:

(1)服务端启动RPC服务,并开启111端口。

(2)然后服务器端启动NFS服务,并向RPC注册端口信息。

(3)客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口

(4)服务端的RPC(portmap)服务反馈NFS端口信息给客户端。

(5)客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。

(二)NFS服务server端部署

        NFS属于C/S模式,准备两台linux机器,一个server端,一个client端。

2.1 安装NFS服务

#yum install nfs-utils rpcbind -y

2.2 创建NFS共享文件夹并设置权限

 #mkdir /opt/nfsShare
 #chmod -Rf 777 /opt/nfsShare/

2.3 修改NFS服务默认配置文件

[root@whuang ~]# cat /etc/exports
/opt/nfsShare/ *(insecure,rw,sync,root_squash)
*表示所有网段的机器都可以进行访问
注意,修改NFS配置⽂件后不需要重启NFS,只需要执⾏ exportfs -rv 命令即可或是 systemctl reload nfs

2.4 启动RPC和NFS服务

[root@whuang ~]# systemctl start rpcbind # 启动rpc
[root@whuang ~]# systemctl start nfs-server #启动nfs
[root@whuang ~]# systemctl enable rpcbind  #设置开机自启
[root@whuang ~]# systemctl enable nfs-server #设置开机自启

2.5 创建文件挂载并测试

[root@whuang ~]# cd /opt/nfsShare/
[root@whuang nfsShare]# touch nfs_test.txt

#检查服务端NFS挂载情况,查看NFS服务端默认挂载的参数
[root@jwhuang nfsShare]# showmount -e
Export list for junwu_server:
/opt/nfsShare *

[root@whuang nfsShare]# cat /var/lib/nfs/etab
/opt/nfsShare *(rw,sync,wdelay,hide,nocrossmnt,insecure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,insecure,root_squash,no_all_squash)

#把本地机器当作客户端挂载到本地目录测试
[root@whuang nfsShare]# mount -t nfs 10.0.0.10:/opt/nfsShare/ /mnt/
[root@whuang nfsShare]# ls /mnt/
nfs_test.txt

2.6 检查挂载情况

[root@whuang nfsShare]# df -h|tail -1
10.0.0.10:/opt/nfsShare 20G 2.3G 17G 12% /mnt

[root@whuang nfsShare]# mount |tail -1
10.0.0.10:/opt/nfsShare on /mnt type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.0.0.10,local_lock=none,addr=10.0.0.10)

至此,服务端配置完毕

(三)NFS Client安装

3.1 安装软件并开启服务

[root@whuang_client ~]# yum install nfs-utils rpcbind -y
[root@whuang_client ~]# systemctl start rpcbind

3.2 检查远程挂载情况

[root@whuang_client ~]# showmount -e 10.0.0.10
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

##server端关闭防火墙
[root@whuang_server nfsShare]# systemctl stop firewalld 

##client端再进行访问
[root@whuang_client ~]# showmount -e 10.0.0.10
Export list for 10.0.0.10:
/opt/nfsShare *

3.3 通过NFS协议挂载

[root@whuang_client ~]# mount -t nfs 10.0.0.10:/opt/nfsShare /mnt/
##进入挂载目录,查看远程NFS服务端的文件夹
[root@whuang_client ~]# ls /mnt/
nfs_test.txt

3.4 配置开机自动挂载

##将挂载命令写入到
[root@whuang_client ~]# tail -2 /etc/fstab
10.0.0.10:/opt/nfsShare /mnt nfs defaults 0 0

(四)通过Autofs服务自动挂载

        Autofs和mount的不同点在于,Autofs是⼀种守护进程。它在后台检测⽤户是否要访问⼀个还没有挂载的⽂件系统,autofs会⾃动检查该⽂件系统是否存在,存在则⾃动挂载。且autofs检测到已经挂载的⽂件系统有⼀段时间没⽤,则会⾃动将其卸载,省去了⼈⼒维护挂载设备的成本,以及不会造成服务器资源浪费。

        autofs的缺点:autofs特点是只有⽤户请求时才执⾏挂载,所以当⾼并发访问时,开始请求的瞬间需要执⾏挂载,性能较差,因此在⾼并发业务场景下,宁愿保持挂载也不使⽤autofs⾃动挂载。 

4.1 安装autofs

##我们应该在需要挂载的机器上执行
[root@whuang_client ~]# yum -y install autofs nfs-utils

4.2 修改autofs配置文件

/etc/auto.master 这是一个 index文件,规范什么文件放哪里
[root@whuang_client ~]# grep -v '^#' /etc/auto.master
/misc /etc/auto.misc
/net -hosts
+dir:/etc/auto.master.d
+auto.master
/opt/nfsShare  /etc/auto.home#服务端文件目录/opt/nfsShare在/etc/auto.home 自定义挂载动作。
                             #具体信息在 /etc/auto.home文件里有写

4.3 自定义配置文件挂载内容

[root@whuang_client ~]# cat /etc/auto.home
/mnt/nfs_autofs -fstype=nfs,rw,soft,intr 10.0.0.10:/opt/nfsShare 

4.4 检查文件系统挂载情况

[root@whuang_client ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.8G 16G 11% /
/dev/sda1 1014M 138M 877M 14% /boot
tmpfs 98M 0 98M 0% /run/user/0
10.0.0.10:/opt/nfsShare 20G 2.3G 17G 12% /mnt

4.5 启动autofs

[root@whuang_client ~]# systemctl restart autofs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值