网络文件系统NFS的部署与实现

1 NFS的简介

1.1 NFS的概念
网络文件系统(NFS)是Unix系统和网络附加存储文件管理器常用的网络文件系统,允许多个客户端通过网络共享文件访问。它可用于提供对共享二进制目录的访问,也可用于允许用户在同一工作组中对不同客户端访问其文件。
 简单来说,在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
  NFS协议有多个版本:Linux支持版本4、版本3和版本2,而大多数系统管理员熟悉的是NFSv3.默认情况下,该协议并不安全,但是更新的版本(如NFSv4)提供了对更安全的身份验证的支持,甚至可以通过kerberos进行加密。
1.2 NFS的好处
(1). 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
(2). 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
(3). 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
1.3 部署NFS前的准备

在本次实验中,我们使用desktop虚拟机充当客户端进行测试,server虚拟机充当NFS服务端
1.重置desktop:改ip为172.25.254.233 
             改主机名 client.westos.com 
             写本地解析 172.25.254.233 client.westos.com
             配置yum源可用

2.重置server:改ip为172.25.254.133
	         改主机名 server.westos.com 
             写本地解析 172.25.254.133 server.westos.com
             配置yum源可用

2 NFS的部署与实现

2.1 服务端的部署

*)服务端(server虚拟机:172.25.254.133)

(1)yum install nfs-utils               #下载软件
     vim /etc/exports     			     #共享策略文件所在
     /mnt     172.25.254.0/24(ro,sync)   #共享策略文件书写规则

(2)systemctl start nfs-server
     systemctl stop firewalld

(3)exportfs -rv                         #刷新使共享文件生效,不重启,直接使用命令刷新

注: 172.25.254.0/24,表示只允许该网段的客户端访问,ro表示只读共享
sync表示硬盘和内存中的数据时时同步,async 表示硬盘和内存中的数据不同步
在这里插入图片描述
在这里插入图片描述
2.2 客户端的使用

客户端(desktop虚拟机:172.25.254.233)
(1)yum install nfs-utils -y

(2)showmount -e 172.25.254.133     #发现共享出来的文件 

(3)挂载共享出来的目录:
	mount 172.25.2554.133:/mnt /mnt   #挂载之后,操作的就是服务器的/mnt目录,直接对服务器该目录进行操作
	df                                #查看挂载
	cd /mnt                           #切换到/mnt目录下,因为服务器只读共享,所以不能写操作
	umont /mnt                        #卸载

注:客户端NFS挂载选项:
rw 挂载可读写的文件系统
ro 挂载可读文件系统
vers=4 尝试只使用指定的NFS版本进行挂载。
如果服务器不支持该版本,则挂载请求失败
soft:如果NFS请求超时,三次尝试后返回错误。权衡数据完整性与提高客户端响应性。(默认行为hard,将无限期地重试)
在这里插入图片描述
在这里插入图片描述
2.3 nfs常用参数的修改
2.3.1 共享策略的修改

服务端:
vim /etc/exports
/mnt 172.25.254.0/24(rw,sync)
exportfs -rv
当改为rw,说明服务允许进行可写,但是服务器文件系统也会拒绝
需要chmod 777 /mnt/
然后当在客户端挂载进行写的时候,发现可以建立
在服务器上ls -l  file  使用nfsnobody身份

在这里插入图片描述
在这里插入图片描述
2.3.2 建立文件使用的身份修改

*)建立文件使用的身份修改

服务器:
       useradd westos
 	   id westos            #uid=gid=1001
 	   vim /etc/exports
       /mnt 172.25.254.0/24(rw,sync,anonuid=1001,anongid=1001) #使用服务端的uid和gid建立用户
	    expostfs -rv 
客户端:
        mount 172.25.2554.133:/mnt /mnt   
	 	cd /mnt        
	    touch file2          
	     ls -l             #因为没有westos用户,uid和gid都会以数字显示出来  
	    umont /mnt                          

在这里插入图片描述
在这里插入图片描述
2.3.3 建立的文件是客户端当前用户的身份

想要在客户端当前是谁建立的文件,文件就属于谁
服务器:
        vim /etc/exports
       /mnt 172.25.254.0/24(rw,sync,anonuid=1001,anongid=1001,no_root_squash)
       exportfs -rv
客户端:
当前是student用户,建立的文件就属于student
当在客户端添加用户haha,该用户的uid=gid=1001,和服务端的westos一样
在客户端使用haha建立文件,在客户端查看的时候是haha
在服务端查看的时候是westos, 因为二者的uid和gid都一样

在这里插入图片描述
在这里插入图片描述
2.3.4 建立的文件都统一使用指定的用户身份

*)建立的文件都统一使用指定的用户身份
服务器:
     vim /etc/exports
     /mnt 172.25.254.0/24(rw,sync,anonuid=1001,anongid=1001,no_root_squash,all_squash)
     exportfs -rv
客户端:
当使用root建立文件file5时,查看文件权限,发现属于haha,因为haha的uid=gid=1001
当使用student建立文件file6时,查看文件权限,同样发现属于haha
在服务端查看建立的文件,属于westos

备注:
1.若是root_squash 会使用服务器上的身份
若是no_root_squash 会使用客户端的身份
2.参数没有前后顺序
anonuid=1001,anongid=1001,no_root_squash 只会执行no_root_squash,前面的语句失效
no_root_squash 参数和all_squash同时存在时,没有书写前后顺序,all_squash会执行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.3.5 客户端自动挂载

*)设置客户端自动挂载 我使用的时候就自动挂载,不使用的时候就自动卸载
在客户端:
	   yum install autofs -y
	   systemctl start autofs 
       systemctl enable autofs
       cd /net                    #会自动生成/net目录,进入该目录
       cd 172.25.254.133
       ls                         #存在共享出来的目录
       cd mnt
       会看到所有建立的文件,并且已经挂载
卸载:  cd ~
       默认等待300s会自动卸载
       修改vim /etc/autofs.conf 中timeout参数,可以修改卸载的时间
       systemctl restart autofs.service

备注
不同版本的autofs的配置文件的路径不同 下载好之后使用
rpm -qc autofs 查看一下配置文件所在
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.3.6 指定自动挂载目录


(1)指定自动挂载目录为/mnt/westos
  客户端:
       vim /etc/auto.master   #写上层挂载目录(/mnt)
	   /mnt /etc/auto.nfs     #该文件为最终挂载文件
       vim /etc/auto.nfs
       westos 172.25.254.133:/mnt
       systemctl restart autofs.service
    测试:
       cd /mnt
       cd westos
       df                      #会发现已经挂载
    
挂载的时候有默认挂载策略

(2)重新设置挂载策略:
    第一种:mount -o vers=3,ro 172.25.254.133:/mnt /media
          mount  查看挂载策略

    第二种:vim /etc/auto.nfs
          westos  -ro,vers=3 172.25.254.133:/mnt
	      systemctl restart autofs.service

(3)所有用户挂载的时候都是直接挂载到了/mnt/westos,直接对目录进行操作,
    我们想要不同的用户进入/mnt下属于自己的独立的存储空间,从而对目录进行操作
    即,想要/mnt/westos1       挂载到/mnt/westos1
           /mnt/westos2       挂载到/mnt/westos2
           /mnt/westos3       挂载到/mnt/westos3
     服务端:
           cd /mnt
           mkdir westos{1..3}

客户端:showmount -e 172.25.254.133
      在cd /mnt/westos 下可以看到建立的westos1,2,3
      vim /etc/auto.nfs
      * -ro,vers=3    172.25.254.133:/mnt/&   
       这条命令达到的效果就是在客户端cd /mnt/westos1  就相当于将/mnt/westos1  挂载到172.25.254.133:/mnt/westos1
      systemctl restart autofs.service

注: * -ro,vers=3 172.25.254.133:/mnt/&
表示进入客户端的/mnt下的指定名字的目录就相当于将/mnt下的该目录挂载到服务端/mnt/&目录 进入的那个目录必须是服务端/mnt下有的那个目录,若是没有的话先在服务端建立出来,在客户端上就可以进入及挂载了

指定自动挂载目录为/mnt/westos
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

重新设置挂载策略
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

不同的用户进入/mnt下属于自己的独立的存储空间
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值