linux学习之旅(二十三)&NFS网络文件系统

NFS概要

网络文件系统(NFS)是Unix系统和网络附加存储文件管理器常用的网络文件系统,允许多个客户端通过网络共享文件访问。它可用于提供对共享二进制目录的访问,也可用于允许用户在同一用户组中从不同客户端访问文件。
NFS协议有多个版本:Linux支持版本4、版本3和版本2,而大多数系统管理员熟悉的是NFSv3。默认情况下,该协议并不安全,但是更新的版本(如NFSv3)提供了对更安全的身份验证的支持,甚至可以通过Kerberos进行加密

NFS是票据kerbose认证方式,版本4比3多了票据认证,版本3比2多了用户认证。

以下是NFS最显而易见的好处:

  • 1.节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
  • 2.用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
  • 3.一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。

应用:

NFS 有很多实际应用。下面是比较常见的一些:

  1. 多个机器共享一台CDROM或者其他设备。这对于在多台机器中安装软件来说更加便宜跟方便。
  2. 在大型网络中,配置一台中心 NFS 服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录。
  3. 不同客户端可在NFS上观看影视文件,节省本地空间。
  4. 在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下。 NFS是运行在应用层的协议。随着NFS多年的发展和改进,NFS既可以用于局域网也可以用于广域网,且与操作系统和硬件无关,可以在不同的计算机或系统上运行。

NFS基本环境的配置

安装yum install nfs-utils -y
systemctl start nfs  // 开启服务 
systemctl enable nfs-server // 开机自启nfs-server

注意要关闭火墙
查看共享目录,这是里面是空的
[root@smb_server ~]# showmount -e 172.25.254.209
Export list for 172.25.254.209:

创建共享目录及文件
mkdir /westosshare
touch /westosshare/file{1..5}

NFS服务器的配置

NFS的主配置文件: /etc/exports

编辑文件/etc/exports配置
man  5  exports查看文件的写法,这个比samba要简单很多
//发现还可以用正则表达式书写

/westosshare    172.25.254.9(sync)      172.25.254.110(ro)
//sync 数据同步 只给172.25.254.9所有权限  给172.25.254.110只读的权限

//修改完不能重启服务,不然会读数据同步,非常慢
刷新用 exportfs -rv   //-v :显示 ; -r :刷新

172.25.254.9进行远程挂载:
mount 172.25.254.209:/westosshare /mnt/

  • 用mount可以看见挂载的相应信息

172.25.254.209本身去mount也会失败,因为没有权限
[root@smb_server ~]# mount 172.25.254.209:/westosshare /mnt/
mount.nfs: access denied by server while mounting 172.25.254.209:/westosshare

showmount -e 172.25.254.209都可以查看209共享的目录:

扫描二维码关注公众号,回复: 9717304 查看本文章
再次编辑/etc/exports
/westosshare    172.25.254.9(sync)      172.25.254.209(rw,sync,anonuid=1000,anongid=1001)
//给209添加读写,数据同步,匿名用户创建时文件的uid是1000,gid是1001
no_root_squash //写的时候以root身份操作,出来的文件所属用户所属组都是root

测试:

westos1 是写了  : (rw,sync,no_root_squash)
westos2 写了  :
(rw,sync,anonuid=1000,anongid=1001,no_root_squash)
//可见后者优先级更高
westos3写了
//(rw,sync,anonuid=1000,anongid=1001)

在/etc/fstab里面写
172.25.254.209:/westosshare /home nfs defaults 0 0
重新登陆之后进去就直接挂载到/home了,也可以直接操作

但是,不合理的地方,自己不用的时候,依然被别人占用

*解决这个问题,就要实现在客户端闲置时自动卸载,用的时候自动挂载

autonfs 只支持nfs协议
安装yum install autofs -y
systemctl start autofs.service
开启之后会自动生成一个/net文件


//进入后ls没有东西

  • cd 172.25.254.209 ##可以直接进入172.25.254.209查看共享的文件

  • 但是出来后df发现还是有挂载,这是因为这个服务默认休眠时间是300秒 所以可以修改他的配置文件
/etc/autofs.conf ,如果没有这个文件,就去 /etc/sysconfig/autofs
发现里面timeout = 300  单位为秒 
将他修改为3

出来之后,等待三秒
df挂载点就取消了 //(注,df也会触发使用挂载,所以出来等待三秒再df)

想让客户端自己直接进入共享的家目录,进去用户家目录之后,就直接是共享的

比如业务服务器,正常写数据,但是写的,包括自己的用户目录都是直接的共享目录,这样在挂了,没有任何影响

首先要再主服务器(server端)编辑可以共享的目录
这里共享两个用户目录:

[root@smb_server /]# cp -rp /home/student/ /westosshare/
[root@smb_server /]# cp -rp /home/lee/ /westosshare/
编辑/etc/exports,
/westosshare/student    172.25.254.0/24(rw,sync,anonuid=1000,anongid=1000)
/westosshare/lee        172.25.254.0/24(rw,sync,anonuid=1001,anongid=1001)
配置好后  exportfs -rv ##刷新

下面是client端,即相当于业务服务器

编辑/etc/auto.master     ##是编辑它的存放目录
最终挂载点的上一层   /etc/auto.nfs ##指定配置文件,这个是自己编写的
/home   /etc/auto.nfs   ##名称随意
创建/etc/auto.nfs
编辑/etc/auto.nfs
 * ... /& ##语法: *是什么&就是什么,相当于接收变量
 *       172.25.254.209:/westosshare/&      ##这里前面\*是任意匹配填写,后面的&是替换前面*输入的,即*写了什么,它就是什么  
或者单独的话
student  172.25.254.209/westosshare/student
这里选择*的写法
重启autofs
在客户端student用户下写的文件就直接同步server端了
  • 注 :
  • 部署服务时,一定要搞清你的安装源,和你的版本
  • yum history ##有update更新时,一定要查看你的版本
    版本兼容性一定要考虑!!要使用和自己系统匹配的版本!!


关闭火墙

//客户端登陆,创建文件之后,直接就共享出去了

  • 共享文件实际为共享存储设备的使用权,但是会影响数据传输
    下一篇将讲解直接贡享设备使用权的方法,更加节省系统资源 —  iscsi
发布了55 篇原创文章 · 获赞 38 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/mon_star/article/details/77413698