1、NFS
- NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
- 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
- NFS体系至少有两个主要部分:一台NFS服务器和若干台客户机,客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据。
2、实现nfs文件系统共享
1) 服务端配置
- 服务安装
yum install nfs-utils -y
#安装nfs文件系统软件systemctl start nfs-server
#开启服务systemctl enable nfs-server.service
#设置服务i开机自动启动 - 防火墙设置
firewall-cmd --permanent --add-service=nfs
#添加允许该服务firewall-cmd --permanent --add-service=rpc-bind
#添加允许进行服务动态端口分配firewall-cmd --permanent --add-service=mountd
#添加允许进行远程挂载firewall-cmd --reload
#重新加载防火墙配置 - 编辑共享说明文件,指定共享目录以及共享方式
vim /etc/exports
# 在文件/etc/exports
中指定共享目录以及共享方式
/toto *(sync,ro) **#文件内容 共享目录 所有人可以查看 (同步数据 ,只读挂载)**
mkdir /toto
#创建共享目录
exportfs -rv
#刷新文件使得设定生效
2)客户端配置
showmount -e 172.25.47.104
#查看服务端共享出来的可以进行远程挂载的目录
Export list for 172.25.47.104:
/toto * #显示该共享目录
mount 172.25.47.104:/toto /opt
#将该共享目录挂载到客户端本地目录中
[root@client ~]# df #查看挂载情况
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3163600 7310300 31% /
devtmpfs 927060 0 927060 0% /dev
tmpfs 942648 84 942564 1% /dev/shm
tmpfs 942648 17032 925616 2% /run
tmpfs 942648 0 942648 0% /sys/fs/cgroup
/dev/sr0 3654720 3654720 0 100% /run/media/root/RHEL-7.0 Server.x86_64
172.25.47.104:/toto 10473984 3167744 7306240 31% /opt #该共享目录挂载成功
3、客户端实现使用时自动挂载(autofs)
该设置是在客户端设置实现的
- 在以上设置完成之后,共享目录被挂载在客户端本地目录中,但是一直是处于挂载状态,不论客户端是否使用该共享目录挂载。
- 实现该共享目录在使用的时候自动挂载在指定的本地目录中,不使用的时候自动卸载。该功能由服务软件autofs实现。
1) 默认挂载
- 安装autofs服务
yum install autofs.x86_64 -y
#安装autofs服务systemctl start autofs
#启动服务systemctl enable autofs.service
#设置服务开机启动
vim /etc/sysconfig/autofs
#编辑autofs配置文件 设定空闲等待时间
11 # minutes to be consistent with earlier autofs releases.
12 #
13 TIMEOUT=5 #修改13行的 空闲等带时间 5秒未使用自动卸载
14 #
15 # NEGATIVE_TIMEOUT - set the default negative timeout for
systemctl restart autofs.service
#重新启动服务
- 测试
cd /net/172.25.47.104/toto
#直接切换进去默认挂载目录 实现自动挂载
在不使用而退出该共享目录之后 经过5秒后 自动实现卸载
/net/
为服务autofs 默认的共享挂载目录,可以进行设置将共享文件挂载在指定目录
2)指定共享挂载点
在不愿意将共享目录挂载在默认挂载点的情况下,可以通过设置指定挂载点:
/westos/redhat 为指定的挂载点进行说明vim /etc/auto.master
#编辑挂载策略文件
#
/westos /etc/westos.auto #挂载点上级目录 指定的挂载配置文件
# NOTE: mounts done from a hosts map will be mounted with the
vim /etc/westos.auto
#编辑指定的挂载配置文件
redhat -ro 172.25.47.104:/toto #挂载点的相对路径 挂载参数 以及需要挂载的共享目录
systemctl restart autofs.service
#重启服务使得设置生效
测试:
cd /westos/redhat
#直接进入指定的挂载点 实现共享目录的指定挂载点挂载
3、共享目录的参数设定
1 读写挂载
实现客户端对共享目录具有写权限,需要设定:
1 服务端的该共享目录对其他用户具有写权限
2 共享目录实现读写共享
3 客户端进行读写挂载该共享目录
服务端设置:
systemctl restart nfs-server.service
#重新启动服务,使得设置生效
客户端设置
systemctl restart autofs.service
#重新启动服务,使得设置生效
测试:客户端挂载共享目录 具有写权限
2 设定客户端创建文件的所有者以及所属组
1 默认情况下 nfsnobody nfsnobody
2 指定客户端以root用户的身份创建文件
服务端进行设置共享参数:
vim /etc/exports
1 /toto *(sync,rw,no_root_squash) #t添加指定用户身份的参数 no_root_squash
systemctl restart nfs-server.service
#重新启动服务,使得设置生效
测试:客户端挂载之后创建文件的所有人以及所属组均为root用户
3 以指定用户的身份以及所属组进行创建文件
服务端进行设置共享参数:
vim /etc/exports
1 /toto *(sync,rw,anonuid=1000,anongid=1000) #指定所有者为1000,所属组为1000
systemctl restart nfs-server.service
#重新启动服务,使得设置生效
测试:客户端挂载之后创建文件的所有人以及所属组均为指定的:
3 对特定的客户端设置共享参数
vim /etc/exports
1 /toto *(sync,rw) 172.25.47.204(sync,ro) #指定特定的主机进行只读共享
systemctl restart nfs-server.service
#重新启动服务,使得设置生效
测试:使用该主机进行挂载,核实是否为只读挂载