NFS是Network File System的缩写,即网络文件系统。客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下。

nfs为什么需要RPC?
因为NFS支持的功能很多,不同功能会使用不同程序来启动,因此,NFS对应的功能所对应的端口无法固定。
端口不固定造成客户端与服务端之间的通信障碍,所以需要RPC来从中帮忙。
NFS启动时会随机取用若干端口,然后主动向RPC服务注册取用相关端口和功能信息,RPC使用固定端口111来监听来自NFS客户端的请求,
并将正确的NFS服务端口信息返回给客户端,这样客户端与服务端就可以进行数据传输了。

本次实践的服务端IP为192.168.186.130    客户端IP为192.168.186.131

一、NFS服务安装配置

nfs-utils、rpcbind

#   yum install nfs-utils rpcbind

二、启动rpcbind服务

#  systemctl restart rpcbind.service

查看服务状态  

# systemctl status rpcbind.service

查看rpc

#   lsof -i :111
# netstat -lntup|grep rpcbind

如果出现-bash未找到命令可执行下面命令

#  yum install net-tools lsof

查看nfs服务向rpc注册的端口信息

#   rpcinfo -p localhost

检查rpcbind是否开机启动

#   chkconfig --list rpcbind

三、启动NFS服务

#    systemctl start nfs.service

查看状态

#   systemctl status nfs.service

再次查看rpc注册的端口信息

#   rpcinfo -p localhost

四、NFS常见进程详解

#  ps -ef|egrep "rpc|nfs"
rpc       13166      1  0 09:01 ?        00:00:00 ./rpcbind
root 13202 2 0 09:02 ? 00:00:00 [rpciod/0]
root 13210 1 0 09:02 ? 00:00:00 rpc.rquotad
root 13214 1 0 09:02 ? 00:00:00 rpc.mountd
root 13220 2 0 09:02 ? 00:00:00 [nfsd4]
root 13221 2 0 09:02 ? 00:00:00 [nfsd4_callbacks]
root 13222 2 0 09:02 ? 00:00:00 [nfsd]
root 13223 2 0 09:02 ? 00:00:00 [nfsd]
root 13224 2 0 09:02 ? 00:00:00 [nfsd]
root 13225 2 0 09:02 ? 00:00:00 [nfsd]
root 13226 2 0 09:02 ? 00:00:00 [nfsd]
root 13227 2 0 09:02 ? 00:00:00 [nfsd]
root 13228 2 0 09:02 ? 00:00:00 [nfsd]
root 13229 2 0 09:02 ? 00:00:00 [nfsd]
root 13252 1 0 09:02 ? 00:00:00 rpc.idmapd

nfsd(rpc.nfsd)主进程,主要是管理客户端能否登入服务端,登入者ID判别。
mountd(rpc.mountd)管理NFS文件系统,登入者的权限管理
rpc.lockd(非必要)用来锁定文件,用于客户端同时写入
rpc.statd(非必要)检查文件一致性
rpc.idmapd 名字映射后台进程

五、配置NFS开机自启动

# chkconfig rpcbind on
# chkconfig nfs on
# chkconfig --list rpcbind
# chkconfig --list nfs
六、NFS服务端配置
#   vi /etc/exports
exports文件配置格式:
FS共享的目录 NFS客户端地址1(参数1,参数2,...) 客户端地址2(参数1,参数2,...)
NFS客户端地址:
指定IP: 192.168.0.1
指定子网所有主机: 192.168.0.0/24
指定域名的主机: test.com
指定域名所有主机: *.test.com
所有主机: *
参数:
ro:目录只读
rw:目录读写
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
async:将数据先保存在内存缓冲区中,必要时才写入磁盘
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)
no_all_squash:与all_squash取反(默认设置)
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)
no_root_squash:与rootsquash取反
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户
例如:
# /data/tmp 192.168.186.131(rw,sync,all_squash)
在服务端创建需要共享的目录
# mkdir -p /data/tmp
# chown nfsnobody.nfsnobody /data/tmp

重新加载nfs配置

#  exportfs -rv

查看nfs服务器挂载情况

#  showmount -e localhost

七、挂载测试

在客户端创建目录

# mkdir -p /data/tmp2
# mount -t nfs 192.168.186.130:/data/tmp /data/tmp2

查看挂载

# df -h

在服务端tmp下创建文件

# touch /data/tmp/1.txt

查看客户端tmp2下是否有文件

# ls /data/tmp2

卸载挂载

# umount /data/tmp2

centos7下的nfs配置的更多相关文章

  1. CentOS7下使用NFS文件共享给Window server 2012

    CentOS7下使用NFS文件共享给Window server 2012 2018年08月24日 23:15:54 疼迅扣扣 阅读数:443  出自https://blog.csdn.net/u013 ...

  2. CentOS7下Firewall防火墙配置用法详解

    官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide ...

  3. CentOS7 下安装 NFS,Linux/Windows 作为客户端

    目录 一.简介 1. 定义 2. 版本和变化 3. 部署说明 二.服务端 1. 关闭防火墙 2. 安装 nfs 3. 配置说明 4. 配置共享目录 5. 启动服务 6. 确认启动成功 三.Linux ...

  4. centos7下搭建NFS服务器

    NFS是Network File System的缩写,即网络文件系统.客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下. nfs为什么需要RPC?因为NFS支持的功能很多,不同功能会 ...

  5. centos7下MySQL的配置

    1. 下载mysql的repo源 wget http:.noarch.rpm 2. 安装mysql-community-release-el7-5.noarch.rpm包 rpm .noarch.rp ...

  6. centOS7下Spark安装配置

    环境说明: 操作系统: centos7 64位 3台 centos7-1 192.168.190.130 master centos7-2 192.168.190.129 slave1 centos7 ...

  7. Centos7下安装和配置vim

    Centos7 最新版本默认已经安装vim,可以使用命令查看是否安装 rpm -qa|grep vim 输出结果如下,如无以下输出结果,则安装vim: vim-filesystem-7.4.160-4 ...

  8. Centos7下gogs数据配置迁移

    工作需要把测试版的gogs迁移到正式版gogs,顺便记下笔记防止以后需要忘记了 环境: centos7测试版gogs:192.168.1.63 centos7正式版gogs:192.168.0.100 ...

  9. centos7下搭建nfs服务

    现在有3台服务器 s1(主),s2(从), s3(从)需要实现文件实时同步,我们可以安装Nfs服务端和客户端来实现! 一.安装 NFS 服务器所需的软件包: yum install -y nfs-ut ...

随机推荐

  1. Centos6下实现Nginx+Tomcat实现负载均衡及监控

    在性能测试过程中,我们可能会关注很多指标,比如CPU.IO.网络.磁盘等,通过这些指标大致可以判断哪个环节遇到了性能瓶颈,但是当这些指标无法判断出性能瓶颈时,我们可能就需要对一些中间件进行监控,比如N ...

  2. Rust <5>:测试

    测试运行顺序:单元测试(同处于源文件中,以 #[cfg(tests)] 标记 mod,以 #[test] 标记 function).集成测试(位于项目根路径下的 tests 目录下,不需要 #[cfg ...

  3. UVA11134_Fabled Rooks

    大概题意: 在n*n的棋盘上面放n个车,能否使他们互相不攻击(即不能在同一行一列),并且第i个车必须落在第i的矩形范围(xl,yl, xr,yr)之内 xy互相并不干扰,所以就可以把这个二维问题压缩成 ...

  4. 在doker上的python安装及环境部署

    python环境部署 我们今天学习的内容是如何将Django项目部署到linux服务器上,我们部署的linux系统是centos7首先,我们先在linux上搭建我们的Python3环境: 在这里首先强 ...

  5. github中fork分支和pullrequest的最佳实践

    github中fork分支和pullrequest的最佳实践 */--> code {color: #FF0000} pre.src {background-color: #002b36; co ...

  6. 【java】读写文件

    不要吐槽我为啥不写try,catch. 默认的相对路径是在工作空间的目录下. 如图 import java.io.*; import java.util.*; public class filerw ...

  7. python之合并多个字典或映射

    问题 现在有多个字典或者映射,你想将它们从逻辑上合并为一个单一的映射后执行某些操作, 比如查找值或者检查某些键是否存在. 解决方案 假如你有如下两个字典: a = {'x': 1, 'z': 3} b ...

  8. 提交disable的Select值到后台

    需求:界面上把select控件disable,然后将默认值传到后台 问题1:select disable: js中可以这样写: document.getElementById("provin ...

  9. 2018-8-10-win10-UWP-圆形等待

    title author date CreateTime categories win10 UWP 圆形等待 lindexi 2018-08-10 19:16:50 +0800 2018-2-13 1 ...

  10. k8s容器-节点部署篇

    一. k8s节点部署 1. 环境规划 系统环境概述 系统环境说明 操作系统 Ubuntu16.04 or CentOS7 选的是CentOS7        -        Kubernetes版本 ...