nfs
1)什么是NFS
它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录。NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂载到本地的NFS客户端中。在本地的NFS客户端的机器看来,NFS服务器端共享的目录就好像自己的磁盘分区和目录一样。一般客户端挂载到本地目录的名字可以随便,但为方便管理,我们要和服务器端一样比较好。
2)NFS挂载原理介绍
当我们在nfs服务器设置好一个共享目录/data后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到本地。并且能够看到服务端/data的所有数据。因为挂载在本地的/data目录,其实就是服务器端的/data目录。如果服务器端配置的客户端只读,那么客户端就只能够只读。如果配置读写,客户端就能够进行读写。挂载后,NFS客户端查看磁盘信息命令:#df –h
NFS是通过网络来进行服务端和客户端之间的数据传输。两者之间要传输数据就要有想对应的网络端口来进行传输。NFS服务器到底使用什么网络端口来传输数据的,NFS服务器端其实是随机选择端口来进行数据传输。那NFS客户端又是如何知道NFS服务器端到底使用的是哪个端口呢?其实NFS服务器时通过远程过程调用(remote procedure call 简称RPC)协议/服务来实现的。也就是说RPC服务会统一管理NFS的端口,客户端和服务端通过RPC来先沟通NFS使用了哪些端口,之后再利用这些端口(小于1024)来进行数据的传输。
PS:原来是RPC管理服务端的NFS端口分配,客户端要传数据,那客户端的RPC会先跟服务端的RPC去要服务器的端口,要到端口后再建立连接,然后传输数据。
3)nfs配置
操作配置
服务端:172.25.254.120
systemctl stop firewalld.service
yum install -y nfs-utils ##安装软件
systemctl start nfs-server ##开启软件
制作简单发布目录
mkdir /zpyshare
touch /zpyshare/zpy{1..3}
vim /etc/exports
~~~~~~~~~
/zpyshare/ 172.25.254.0/24(sync,anonuid=1000,anongid=1000)
~~~~~~~~~
exportfs -rv ##刷新文件等于重启,但是这个服务重启特别慢
客户端:
showmount -e 172.25.254.120 ##察看是否能共享
mount 172.25.254.120:/zpyshare /mnt ##挂载到本机mnt下客户端可以对挂载的文件进行读写
vim /etc/exports
~~~~~~~~~
/zpyshare/ 172.25.254.0/24(rw,sync,anonuid=1000,anongid=1000) ##注。此处的rw 为拥有读写权限
~~~~~~~~~
auto触发式挂载
所谓触发挂载,简单来说就是用到的时候,就自动挂载,用不到的时候就不挂载。而且一般在自动挂载后5分钟不使用,将会自动卸载。触发挂载依赖于autofs服务,autofs是一个后台程序,当使用某文件时,自动支持该系统,不使用则不支持。
想要实现触发挂载,最主要要知道两个它的配置文件:
-- /etc/auto.master -- /etc/auto.xxx
首先是/etc/auto.master
这个文件里只有两个内容:
1 .父目录,就是挂载点的上级目录,也叫监控点目录;
2 .挂载配置文件的路径,也就是/etc/auto.xxx路径。
其次是/etc/auto.xxx(这个文件路径其实就是上个文件里的第二个内容)
这个文件里有三个内容:
1 .子目录,也就是挂载点,这个目录不需要创建
2 .文件系统类型,就是所挂载的设备用的什么文件系统
3 .路径,要挂载设备的路径
1:安装auto服务
[root@nfsclient /]# yum install -y autofs
2:主配置文件
[root@nfsclient student]# head -n 15 /etc/autofs.conf
#
# Define default options for autofs.
#
[ autofs ]
#
# master_map_name - default map name for the master map.
#
#master_map_name = auto.master
#
# timeout - set the default mount timeout in secons. 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.
#
timeout = 3 ##此处的3s表示当不使用挂载点后的三s种就自动卸载
1)新建父目录
[root@nfsclient ~]# mkdir /nfs
2)编辑/etc/auto.master
/nfs /etc/auto.nfs ##注:此处的/nfs为触发式挂载的父目录 ,需要自己建立, /etc/auto.nfs是自己创建的
3)新建 /etc/auto.nfs
[root@nfsclient zpyshare]# cat /etc/auto.nfs
zpyshare 172.25.254.120:/zpyshare
4)重启服务
[root@nfsclient /]# systemctl restart autofs.service
5)测试
[root@nfsclient /]#
[root@nfsclient /]# cd /nfs
[root@nfsclient nfs]# ls文件下没有其他目录
[root@nfsclient nfs]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3181432 7292468 31% /
devtmpfs 927072 0 927072 0% /dev
tmpfs 942660 140 942520 1% /dev/shm
tmpfs 942660 17056 925604 2% /run
tmpfs 942660 0 942660 0% /sys/fs/cgroup
[root@nfsclient nfs]# cd zpyshare ##可以进入,证明挂载了
[root@nfsclient zpyshare]# ls
zpy1 zpy2 zpy3
[root@nfsclient zpyshare]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3181432 7292468 31% /
devtmpfs 927072 0 927072 0% /dev
tmpfs 942660 140 942520 1% /dev/shm
tmpfs 942660 17056 925604 2% /run
tmpfs 942660 0 942660 0% /sys/fs/cgroup
172.25.254.120:/zpyshare 10473984 3424768 7049216 33% /nfs/zpyshare
[root@nfsclient zpyshare]# cd /
[root@nfsclient /]# df ##三秒后查看
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3181432 7292468 31% /
devtmpfs 927072 0 927072 0% /dev
tmpfs 942660 140 942520 1% /dev/shm
tmpfs 942660 17056 925604 2% /run
tmpfs 942660 0 942660 0% /sys/fs/cgroup
[root@nfsclient /]#
附:在实际应用中,我门可以通过上述nfs+autofs实现用户家目录共享,即将挂载的父目录设置成/home,同时共享用户家目录。达到的效果为使用家目录时,所有用户对一个目录进行操作,如果不在家目录下,则自动取消挂载。