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

本文介绍了NFS(Network File System)的概念及其优势,包括节省本地存储空间、统一用户Home目录和网络资源共享。NFS在企业集群架构中用于存储静态资源,常用于中小型网站。接着详细讲解了NFS的配置步骤,包括安装nfs-utils和RPCbind,启动rpcbind服务,配置防火墙和服务开机自启动,并在服务端和客户端进行了操作演示,如设置自动挂载等。

1 NFS的简介

1)NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。 
2)以下是NFS最显而易见的好处: 
         1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。 
         2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。 
         3. 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。 

3)NFS在企业中的应用场景

企业集群架构中,NFS网络文件系统一般用来存储共享的视频、图片、附件等静态资源,一般把网站用户上传的文件都放到NFS共享里,例如图片、附j件、头像,然后前端所有的节点访问这些静态资源时都会读取NFS存储上的资源。NFS是当前互联网系统架构中最常用的数据存储服务之一,特别是中小型网站公司应用频率更高。大公司除了使用NFS外,还可能使用更为复杂的分布式文件系统Moosefs,glusterfs,FastDFS等。

2 NFS配置

1 首先安装两个重要的软件: 
(1)NFS主程序nfs-utils(再启动任何一个RPC服务前,我们都要启动rpc-bind才行!) 
(2)RPC主程序:RPCbind
注意:启动和调用NFS服务程序进行文件共享之前,需要使用rpc服务将nfs服务器的ip地址与端口号信息发给client。应此在启用nfs服务之前,还要顺带并启用rpcbind服务程序,并将这两个服务一并加入到开机启动中。

RPC工作原理:

NFS 流程原理:

2  环境准备:

实验前的配置:
1.desktop:改ip 100 改主机名 server.westos.com 
          写本地解析 172.25.60.200 client.westos.com
          配置yum源可用

1.server:改ip 200 改主机名 client.westos.com 
          写本地解析 172.25.60.100 client.westos.com
          配置yum源可用

3 nfs的配置与实现

*)服务端(172.25.60.100):


desktop虚拟机:

yum install nfs-utils

配置文件所在:vim /etc/exports

配置文件书写规则:

/mnt     172.25.60.0/24(ro,sync)

sync表示硬盘和内存中的数据时时同步

async  不同步

systemctl start nfs-server

systemctl stop firewalld

刷新:exportfs -rv   不重启,直接使用命令刷新

 

配置防火墙·与服务开机自启动:

*)客户端(172.25.60.200)

server虚拟机:

yum install nfs-utils -y

发现共享出来的文件:

        showmount -e 172.25.60.100

使用共享出来的目录:

mount 172.25.60.100:/mnt /mnt   现在操作的就是服务器的/mnt目录,直接对服务器该目录进行操作

df             查看挂载

umont /mnt     卸载

使用async会执行的很快

查看是否有nfs服务:

 

3.nfs常用参数的修改
*) 修改/mnt 172.25.60.0/24(rw,sync)
当改为rw,说明服务允许进行可写,但是服务器文件系统也会拒绝
需要chmod 777 /mnt/
然后当在客户端挂载进行写的时候,发现可以建立
在服务器上ls -l  file  使用nfsnobody身份


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

服务器第一步:useradd westos
 	   id westos   发现是uid=gid=1001
服务器第二步:/mnt 172.25.60.0/24(rw,sync,anonuid=1001,anongid=1001) 使用服务端的uid和gid建立用户
	    expostfs -rv 
客户端:touch file1
       ls -l   因为没有westos用户,uid和gid都会以数字显示出来

 

*)建立的文件都客户端当前用户的身份
当前是谁建立的文件,文件就属于谁
服务器第一步:/mnt 172.25.60.0/24(rw,sync,anonuid=1001,anongid=1001,no_root_squash)
客户端第二步:当前是student用户,建立的文件就属于student
当在客户端添加用户hahaha,该用户的uid=gid=1001,和服务端的westos一样
在客户端使用hahaha建立文件,在客户端查看的时候是hahaha
在服务端查看的时候是westos, 因为二者的uid和gid都一样

*)建立的文件都统一使用指定的用户身份
服务器第一步:/mnt 172.25.60.0/24(rw,sync,anonuid=1001,anongid=1001,no_root_squash,all_squash)
客户端第二步:当使用root建立文件时,查看文件权限,发现属于hahaha,因为hahaha的uid=gid=1001
在服务端查看建立的文件,属于westos

 

########################################
若是root_squash    会使用服务器上的身份
若是no_root_squash 会使用客户端的身份
参数没有前后顺序
  no_root_squash 参数和all_squash同时存在时,没有书写前后顺序,all_squash权限高

 

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



客户端实现自动挂载,安装软件autofs:

查看autofs配置文件,并进入目录:

最后验证自动挂载功能:

nfs挂载指定目录:



*)指定挂载目录为/mnt/westos
1.客户端:vim /etc/auto.master   写上层挂载目录(/mnt)
	/mnt /etc/auto.nfs   (该文件为最终挂载文件)
       vim /etc/auto.nfs
       westos 172.25.60.100:/mnt
       systemctl restart autofs.service
    
测试:cd /mnt
     ls
     cd westos
     df     会发现已经挂载
    挂载的时候有默认挂载策略
2.重新设置挂载策略:
    第一种:mount -o vers=3,ro 172.25.60.100:/mnt /media
         mount  查看挂载策略

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

3.想要/mnt/westos1  挂载到/mnt/westos1
      /mnt/westos2   挂载到/mnt/westos2
     /mnt/westos3    挂载到/mnt/westos3
服务端:cd /mnt
     mkdir westos{1..3}

客户端:showmount -e 172.25.60.100
      在cd /mnt/westos 下可以看到建立的westos1,2,3
      vim /etc/auto.nfs
      * -ro,vers=3    172.25.60.100:/mnt/&   进入服务端的/mnt下的&指定名字的目录就相当于将/mnt下的该目录挂载到服务端/mnt/&目录   进入的那个目录必须是服务端/mnt下有的那个目录,若是没有的话先在服务端建立出来,在客户端上就可以进入及挂载了
       这条命令达到的效果就是在客户端cd /mnt/westos1  就相当于将/mnt/westos1  挂载到172.25.60.100:/mnt/westos1
      systemctl restart autofs.service

 

重新设置挂载策略:

 

`

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值