一、NFS
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
#显而易见的优点:
- 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
- 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
- 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
#nfs 体系至少需要一台NFS服务器和若干台客户机
二、nfs 共享目录的服务配置
1.两台主机:server和client
2.安装服务(服务端和客户端都要安装,一般会自带)
yum install nfs-utils.x86_64 -y ##安装所需服务软件
3.服务端的配置:
vim /etc/exports
/westos 172.25.254.0/24(rw,async) ##将/mnt目录允许172.25.254网段的人挂载查看,是读写的,但只设置这里客户端写文件仍会提示没有权限,async表示不实时远程同步,速率加快但是网络连接中断会导致数据丢失
/westos 172.25.254.0/24(ro,sync) ##ro是只读的,sync表示与远程实时同步操作文件,会直接在服务端修改文件,但是速率会变慢,数据丢失概率小
systemctl stop firewalld ##关闭火墙
systemctl start nfs-server ##开启nfs服务
exportfs -rv ##一般修改文件后不重启nfs服务,而是用此命令刷新nfs,因为重启服务会中断共享,可能会导致数据丢失
4.客户端的配置:
showmount -e 172.25.254.121 ##查看121共享的目录
mount 172.25.254.121:/westos /mnt ##将121共享的目录挂载到本地进行操作
三、nfs共享目录的可写设置
##可写需要服务本身的权限和文件系统中用户对目录的操作权限
服务端的配置:
chmod 777 /westos ##给共享目录赋予普通用户可写的权力
vim /etc/exports ##编写共享目录配置文件
/westos 172.25.254.0/24(rw,async,anonuid=1001,anongid=1001)
##所有写文件的用户身份都指定id为1001,且1001在服务端应该是一个用户,如果客户端有用户id也是1001,那么在客户端查看时可以看到客户端写入文件的用户与服务端指定的用户名称不同
#/westos 172.25.254.0/24(rw,async,anonuid=1001,anongid=1001,no_root_squash)
##所有客户端的用户在写文件时仍然使用自己的身份,此时之前指定的匿名用户身份不生效
#/westos 172.25.254.0/24(rw,async,anonuid=1001,anongid=1001,no_root_squash,all_squash)
##所有客户端的用户,即使id相同的用户,都使用先前指定的匿名用户的身份,而且all_squash和no_root_squash都存在时,前者生效
客户端测试:
1.当服务端只指定匿名用户身份时
2.当服务端设定所有客户端的用户在写文件时仍然使用自己的身份时:
3.当服务端设定所有客户端的用户,即使id相同的用户,都使用先前指定的匿名用户的身份时:
四、设置nfs的自动挂载与卸载
##这个设置主要是为了避免资源的浪费
需要在客户端配置:
yum install autofs -y ##安装实现自动挂载服务的软件
systemctl start autofs ##开启服务
cd /net/172.25.254.121 ##进入开启nfs共享服务的主机,可以看到共享的目录有哪些
cd mnt/ ##进入共享目录,目录会自动挂载
df ##可以看到目录已经挂载好了
cd .. ##退出共享目录一段时间后会自动取消挂载
vim /etc/sysconfig/autofs ##可以设置退出挂载目录后自动取消挂载的时间,默认为300s
(rpm -qc autosf ##查看autofs的配置文件具体位置,不同版本文件位置可能不同
rpm -qa | grep autofs ##查看autofs的软件版本 )
systemctl restart autofs ##重启服务
vim /etc/auto.master ##主配置文件
/mnt /etc/auto.nfs ##自动挂载点的上层目录和建立一个子配置文件(子配置文件名称任意)
vim /etc/auto.nfs ##子配置文件
westos -ro,vers=3 172.25.254.121:/mnt
##客户端cd /mnt/westos 时,会自动将指定目录挂载到挂载点,客户端不需建立挂载点目录和输入服务端的ip,会自动生成
* -ro,vers=3 172.25.254.121:/mnt/& ##服务端需要建立不同用户的家目录
##自动匹配客户端输入的挂载点与服务端的目录,若相同直接进入该目录,客户端不需建立挂载点目录和输入服务端的ip,即让不同的用户名进入到不同的家目录中
systemctl restart autofs ##修改文件后重启服务
##不同用户匹配不同的家目录
#首先在服务端建立不同的家目录:
#客户端配置: