nfs服务端:

#编辑/etc/nfsmount.conf,在末尾添加:

#RQUOTAD_PORT=30001
#LOCKD_TCPPORT=30002
#LOCKD_UDPPORT=30002
#MOUNTD_PORT=30003
#STATD_PORT=30004

cat /etc/sysconfig/nfs|grep -v "^#"
RQUOTAD_PORT=10001
LOCKD_TCPPORT=10002
LOCKD_UDPPORT=10002
MOUNTD_PORT=10003
STATD_PORT=10004

iptables  -P INPUT DROP

iptables  -P OUTPUT ACCEPT

nfs客户端防火墙:

iptables -A INPUT -s (服务端IP) -p tcp -m multiport --dport 111,2049,30001:30004 -j ACCEPT

 

nfs服务端防火墙:

iptables -A INPUT -s (客户端IP) -p tcp -m multiport  --dport 111,2049,30001:30004 -j ACCEPT

测试:服务端telnet 客户端IP 端口

服务端exports文件,多个IP用空格隔开:

/data/web_log/  10.46.121.240 10.46.121.182(ro,anonuid=65534,anongid=65534,sync)

如下报错:
mount: no type was given - I'll assume nfs because of the colon
mount.nfs: timeout set for Fri Apr 21 10:07:26 2017
mount.nfs: trying text-based options 'vers=4,addr=10.46.121.222,clientaddr=10.46.121.240'
mount.nfs: mount(2): No such file or directory
mount.nfs: trying text-based options 'addr=10.46.121.222'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 10.46.121.222 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 10.46.121.222 prog 100005 vers 3 prot UDP port 47203
解决:逐级输出目录,客户端逐级挂载(在nfs服务器端exports文件如下)
/data/web_log/ 10.46.121.240(ro,anonuid=65534,anongid=65534,sync)
/data/apache-tomcat/tomcat-cms-web-1031/logs 10.46.121.240(ro,sync,no_root_squash,no_all_squash)

NFS挂载的客户端缓存以及如何使用noac选项

现象:

用户两台ECS挂载同一个NFS文件系统,在ECS-A上append写文件,在ECS-B用tail -f观察文件内容的变化。在ECS-A写完之后,在ECS-B看到文件内容变化会有10-30秒的延时。然而相同的场景下,如果直接在ECS-B上打开文件(比如vi)却是立即可以看到更新的内容的。

原因:跟mount的选项以及tail -f实现相关。

用户使用的mount命令:mount -t nfs4 /mnt/

对于在ECS-B上以这一方式NFS mount的文件系统,默认情况下kernel对文件和目录的属性维护了一份metadata缓存,文件和目录属性(包括许可权、大小、和时间戳记)缓存的目的是减少 NFSPROC_GETATTR 远程过程调用(RPC)的需求。

tail -f 的实现是sleep+fstat来观察文件属性(主要是文件大小)的变化,然后读入文件并输出。可见,tail -f是否能实时输出文件内容,主要取决于fstat的结果,由于前面描述得metadata cache的存在,fstat轮询到的并不是实时的文件属性,因此,即使在NFS服务器端文件已经更新了,但tail -f却没法知道文件已经改动了,于是输出就会有一个延时。

解决办法:使用mount 的noac选项可以disable文件和目录属性的缓存。

mount -t nfs4 -o noac /mnt/

原文出处:

https://www.cnblogs.com/yum777/p/6228723.html

NFS指定端口,NFS缓存(转载)的更多相关文章

  1. NFS指定端口,NFS缓存

    nfs服务端: #编辑/etc/nfsmount.conf,在末尾添加: #RQUOTAD_PORT=30001#LOCKD_TCPPORT=30002#LOCKD_UDPPORT=30002#MOU ...

  2. NFS指定端口

    nfs服务端: 编辑/etc/nfsmount.conf,在末尾添加: RQUOTAD_PORT=30001LOCKD_TCPPORT=30002LOCKD_UDPPORT=30002MOUNTD_P ...

  3. Nfs固定端口 nfs 端口公网映射

  4. 配置NFS固定端口

    NFS启动时会随机启动多个端口并向RPC注册,为了设置安全组以及iptables规则,需要设置NFS固定端口.NFS服务需要开启 mountd,nfs,nlockmgr,portmapper,rquo ...

  5. 启动nfs清除端口占用过程

    centos7起nfs服务. 按教程执行: vim /etc/exportsyum install -y nfs-utils systemctl enable rpcbind.service syst ...

  6. windows平台下杀死指定端口的进程(转载)

    在windows命令行窗口下执行: 1.查看所有的端口占用情况 C:\>netstat -ano 协议    本地地址                     外部地址              ...

  7. Ubuntu搭建NFS服务器,NFS协议详细分析

    目录 1. Ubuntu搭建NFS服务器 2. NFS协议分析 2.1 实验拓扑: 2.2 在kali抓包分析 1. Ubuntu搭建NFS服务器 ​ NFS(Network FileSystem,网 ...

  8. CentOS 6、CentOS7 防火墙开放指定端口

    当我们在CentOS服务器中装了一些开发环境(如 tomcat.mysql.nginx 等...)时,希望能从外界访问,就需要配置防火墙对指定端口开放. CentOS 6.51.开放指定端口/sbin ...

  9. Linux centosVMware NFS介绍、NFS服务端安装配置、NFS配置选项

    一.NFS介绍 NFS是Network File System的缩写 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版 ...

随机推荐

  1. plsql developer 64位版本

    plsql developer 64位版本 http://www.3322.cc/soft/15748.html

  2. 1. CountDiv 数数有几个 Compute number of integers divisible by k in range [a..b].

    package com.code; public class Test05_1 { public static int solution(int A, int B, int K) { // handl ...

  3. MVC中路由的一些内容详解

    使用路由的好处:1.能够根据系统需求,灵活的划分请求规则(不同模块请求的URL是不一样的)2.屏蔽物理路径,提高系统的安全性,以上情况是无法根据URL分析视图文件在站点目录中的位置3.有利于搜索引擎优 ...

  4. sqlite 数据库 相关知识

    一基本简单介绍 SQLite 是一个自持的(self-contained).无server的.零配置的.事务型的关系型数据库引擎.由于他非常小,所以也能够作为嵌入式数据库内建在你的应用程序中. SQL ...

  5. IPV6相关RFC文档

    1. 通用 IPv6的通用RFC和Internet草案 RFC# 类 标题 1752 标准记录 对IP下一代协议的建议 1924 资料 IPv6地址的压缩表示法 2851 标准记录 Internet网 ...

  6. com.opensymphony.xwork2.inject.DependencyException: com.opensymphony.xwork2.inject.ContainerImpl$Mis

    为什么会出现这个错误? 我使用了Maven配置Struts,所以改动Struts配置文件的默认路径,例如以下: <!-- 配置struts --> <filter> <f ...

  7. Android之Activity之间传递对象

    在非常多时候,我们须要在Activity之间传递对象,比方当你点击了某列表的item,须要传递给下一个Activity该对象,那我们须要该怎么做呢? Android支持两种传递对象的方式.一种是bun ...

  8. ios15--综合小例子

    // // XMGViewController.m,控制器类 #import "XMGViewController.h" #import "XMGShop.h" ...

  9. Java 输入输出流 (七)

    1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读 ...

  10. SQL使用IN参量不能超过1000的表现形式以及解决办法

    如果出现这个错误说明你传的参量是超过了一千个值:列如,你拼接了1001个id: 如何解决那,我这里提供两种方法: 1.每1000条加一个or in 列: 原:select p.* from t_pre ...