nfs介绍nfs服务端安装配置nfs配置选项

author author     2022-10-10     589

关键词:

NFS 介绍

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS的数据传输基于RPC(remote procedure call)协议。

  • NFS 应用场景是:A,B,C 三台机器上需要保证被访问到的文件是一样的。A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致。

    • 例子:跑了一个网站,上面传输了很多图片,用户访问一个图片时,需要从A机器上去请求,但A机器负载高,为了分担负载,就多弄了两台机器,B机器C机器同时提供服务;正常的话,需要到A机器上才能拿到数据,但是B机器和C机器做了负载均衡,分担了相同的服务器,那么用户也有可能到B机器或者C机器上;那么用户请求到B机器上的时候,如何才能获取到A机器上的数据呢;要么把A机器的数据传输到B机器上,同时传输到C机器上,但是这个不能时时更新,(用户上传的数据是存放在A机器上,但用户请求的时候数据是请求到B机器上)这样A上的数据还没到B上面去,就会导致用户请求获取的数据访问不到,访问为空,为404;那么NFS服务就可以解决这个问题,将A机器的数据共享到B机器、C机器,通过NFS来实现。有NFS服务以后,上传到A机器上的数据,B机器或C机器上就能马上看到和调用。NFS可以实时同步数据。
  • NFS原理图

技术分享图片
NFS服务需借助RPC协议实现通信。

服务端需要启动一个NFS服务,服务端要想给客户端提供服务,需要借助RPC协议,RPC协议是由rpcbind服务所实现的;在centos 5或者之前的版本叫portmap服务,centos6及之后的版本叫rpcbind服务,这两个都是一个服务,最终实现了RPC协议的通信,NFS服务默认不会监听任何端口(启动服务,但不会监听端口),最终监听端口,实现RPC通信的过程是由rpcbind服务产生的RPC协议实现的,RPC协议 默认监听的端口是111 端口;

整个流程为: 服务端的NFS服务监听一个端口通过RPC协议监听的端口,再去告诉客户端RPC协议,然后NFS客户端通过本机的RPC端口回传数据信息到服务端NFS监听的端口,最终实现通信.

NFS 服务端安装配置

准备两台虚拟机,一台作为服务端,一台作为客户端。

服务端配置

服务端IP:192.168.159.131

  • 安装NFS工具:

    [[email protected] ~]# yum install -y nfs-utils rpcbind

  • 配置

    编辑/etc/exports 文件,加入下面内容:
    [[email protected] ~]# vim /etc/exports
    /home/nfstestdir 192.168.159.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
    // /home/nfstestdir 要分享出去的目录是哪一个,这个目录是不存在的,后期还需要创建。
    // ip段 为指定要给哪个ip段机器去分享这个目录,也可以写单个ip。

  • 启动NFS服务

    在yum安装完成后,系统会自动启动rpcbind服务(在服务端进程名为systemd),默认监听的端口为111端口

    [[email protected] ~]# ps aux | grep rpc
    rpc 2390 0.0 0.0 64964 1044 ? Ss 21:19 0:00 /sbin/rpcbind -w
    root 3826 0.0 0.0 112680 972 pts/0 R+ 21:31 0:00 grep --color=auto rpcbind
    [[email protected] ~]# netstat -lntp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:111 0.0.0.0: LISTEN 1/systemd
    ......
    tcp6 0 0 :::111 :::
    LISTEN 1/systemd
    ......

    启动NFS服务:
    [[email protected] ~]# systemctl start nfs
    //启动NFS 服务是会自动帮你启动rpc相关的服务

    将NFS服务加入开机启动项:
    [[email protected] ~]# systemctl enable nfs
    Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

客户端配置

IP : 192.168.159.132

  • 安装NFS工具

    [[email protected] ~]# yum install -y nfs-utils

  • 客户端挂载

    检查客户端是否有权限访问服务端文件:
    [[email protected] ~]# showmount -e 192.168.159.131 //131为服务端ip
    clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
    // 报错!说明网络不通,不能和192.168.159.131 的113端口通信。

    解决办法:
    1、检查服务端NFS服务是否开启(有没有监听111端口)
    2、如果确认服务端NFS服务已经开启,那么检查防火墙状态,关闭服务端和客户端firewalld和SELinux防火墙(systemctl stop firewalld)

    关闭防火墙后再次检查客户端是否有权限访问服务端文件:
    [[email protected] ~]# showmount -e 192.168.159.131
    Export list for 192.168.159.131:
    /home/nfstestdir 192.168.159.0/24
    // 客户端已有权限访问服务端

    开始挂载:
    [[email protected] ~]# mount -t nfs 192.168.159.131:/home/nfstestdir /mnt/
    // -t 指定文件系统类型
    [[email protected] ~]# df -h
    文件系统 容量 已用 可用 已用% 挂载点
    ......
    192.168.159.131:/home/nfstestdir 16G 5.2G 11G 33% /mnt

  • 测试

    在客户端/mnt目录下创建test文件
    [[email protected] ~]# touch /mnt/test
    [[email protected] ~]# ls -l /mnt/
    总用量 0
    -rw-r--r--. 1 mysql mysql 0 1月 16 22:05 test

    查看服务端/home/nfstestdir/目录:
    [[email protected] ~]# ls -l /home/nfstestdir/
    总用量 0
    -rw-r--r--. 1 mysql mysql 0 1月 16 22:05 test
    // 存在个客户端上一样的文件,实现了同步共享。

其中,文件的用户和用户组都为mysql,是因为之前nfs服务端配置时,指定了anonuid=1000,anongid=1000。

服务端:
[[email protected] ~]# awk -F ‘:‘ ‘$3==1000 {print $0}‘ /etc/passwd
mysql:x:1000:1000::/home/mysql:/bin/bash
客户端:
[[email protected] ~]# awk -F ‘:‘ ‘$3==1000 {print $0}‘ /etc/passwd
mysql:x:1000:1000::/home/mysql:/bin/bash
// 由于两边uid都为1000,所以都为mysql用户。所以文件的所属组和所属主是由服务端配置文件中定义的anonuid,anongid决定的。(假设两个服务器上uid1000不是同一个用户,则同步文件在两个服务器上的属主和属组是不一样的。)

NFS配置选项

  • rw 读写
  • ro 只读
  • sync 同步模式,内存数据实时写入磁盘/ 内存数据实时写入磁盘,这样会降低磁盘效率。
  • async 非同步模式 // 每隔一段时间把内存数据刷入磁盘一次,如果突然断电,会丢失一本分数据。
  • no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大
  • root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户
  • all_squash 客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户
  • anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid

五十nfs介绍nfs服务端安装配置nfs配置选项

五十四、NFS介绍、NFS服务端安装配置、NFS配置选项一、NFS介绍NFS是NetworkFileSystem的缩写。  NFS最早由sun公司开发,分2,3,4三个版本,2和3由sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本。NFS数据传输基于RPC协... 查看详情

53次课(nfs介绍nfs服务端安装配置nfs配置选项)(代码片段)

NFS服务搭建与配置NFS介绍NFS服务端安装配置安装测试2个操作系统一个服务端一个客户端,服务端IP为192.168.63.100客户端192.168.63.101,这两个系统许安装nfs-utilsrpcbind[[email protected]~]#yuminstall-ynfs-utilsrpcbind安装完成后在服务端配置e... 查看详情

nfs介绍,nfs服务端安装配置,nfs配置选项

笔记内容:14.1NFS介绍14.2NFS服务端安装配置14.3NFS配置选项笔记日期:2017-11-0114.1NFS介绍650)this.width=650;"src="http://note.youdao.com/yws/public/resource/2e89dea80e2c3fc02c01deb0ec9fd656/xmlnote/OFFICEB8F504CAAD0243FF95D89F 查看详情

nfs介绍nfs服务端安装配置nfs配置选项

NFS介绍NFS(NetworkFileSystem)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文... 查看详情

nfs介绍nfs服务端安装配置nfs配置选项介绍

NFS介绍NFS是NetworkFileSystem的缩写,NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本。NFS数据传输基于RPC协议,RPC为RemoteProcedureCall的简写。NFS应用场景是:A,B,C三台机器上... 查看详情

nfs介绍nfs服务端安装配置nfs配置选项

NFS介绍NFS(NetworkFileSystem)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文... 查看详情

nfs介绍nfs服务端安装配置nfs配置选项

假如有三台机器A、B、C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到A、B、C。但是,若使用NFS,只需要放到A上,然后A共享给B和C即可。访问的时候,B和C是通过网络的方式去访问A上的那个目... 查看详情

14.1nfs介绍14.2nfs服务端安装配置14.3nfs配置选项

14.1NFS介绍centos6之前的版本叫portmap之后的版本叫rpcbind14.2NFS服务端安装配置首先要准备2台机器,一台是服务端ip:192.168.133.130,一台是客户端ip:192.168.133.131在服务端安装yuminstall-ynfs-utilsrpcbind客户端也是安装yuminstall-ynfs-utils查看一... 查看详情

nfs介绍nfs服务端配置安装配置nfs配置选项客户端的配置

NFS介绍NFS是NetworkFileSystem的缩写,是在网络层面,NFS(NetworkFileSystem)网络文件系统会经常用到,用于在网络上共享存储。这样讲,你对NFS可能不太了解,阿铭举一个例子来说明一下NFS是用来做什么的。假如有三台机器A,B,C,它们需... 查看详情

54.nfs介绍nfs服务端安装配置nfs配置选项(代码片段)

一、NFS介绍NFS是NetworkFileSystem的缩写NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本NFS数据传输基于RPC协议,RPC为RemoteProcedureCall的简写。NFS应用场景是:A,B,C三台机器上... 查看详情

十四周一课nfs介绍nfs服务端安装配置nfs配置选项

NFS介绍NFS是NetworkFileSystem的缩写NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本NFS数据传输基于RPC协议,RPC为RemoteProcedureCall的简写。NFS应用场景是:A,B,C三台机器上需要... 查看详情

14.1nfs介绍;14.2nfs服务端安装配置;14.3nfs配置选项

14.1NFS介绍1.NFS是NetworkFileSystem的缩写2.NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本3.NFS数据传输基于RPC协议,RPC为RemoteProcedureCall的简写。4.NFS应用场景是:A,B,C三台机... 查看详情

14.1nfs介绍14.2nfs服务端安装配置14.3nfs配置选项

14.1NFS介绍NFS是NetworkFileSystem的缩写NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本NFS数据传输基于RPC协议,RPC为RemoteProcedureCall的简写。NFS应用场景是:A,B,C三台机器上... 查看详情

nfsnfs介绍nfs服务端安装配置配置选项exportfs命令nfs客户端问题

            NFS介绍NFS服务常常用到,用于在网络上共享存储NFS工作原理(在centos版本5及之前的版本,RPC服务叫portmap,之后就叫:rpcbind)NFS服务需要借助RPC协议进行通信。   &nbs... 查看详情

14.1nfs介绍14.2nfs服务端安装配置14.3nfs配置选项

  NFS服务会经常用到,它用于在网络上共享存储。举例来说,假如有3台机器A、B和C,它们需要访问同一个目录,且目录中都是图片。传统的做法是把这些图片分别放到A、B、C中,但若使用NFS,只需要把图片放到A上,然后A共享... 查看详情

nfs介绍,配置(上)(代码片段)

NFS介绍1.NFS不监听任何端口,rpcbind监听111端口2.NFS服务需要借助于rpc协议NFS服务端安装配置1.服务端安装两个服务:[[email protected]~]#yuminstall-ynfs-utilsrpcbind2.客户端安装一个服务:[[email protected]~]#yuminstall-ynfs-utils3.服务端编... 查看详情

nfs安装配置

14.1NFS介绍14.2NFS服务端安装配置关闭防火墙14.3NFS配置选项造成不能创建文件的原因:服务器的配置文件/etc/exports/home/nfstestdir192.168.15.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)必须在同一行。[[email protected]~]#ls-l/mnt/123.txt-rw 查看详情

nfs服务搭建与配置(代码片段)

NFS服务搭建与配置NFS介绍NFS服务端安装配置NFS配置选项exportfs命令NFS客户端问题NFS介绍NFS是NetworkFileSystem的缩写NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本NFS数据... 查看详情