How to build a NFS Service
NFS网络文件系统的服务的配置
1 Preparation
Three Linux virtual machines
one: to be NFS Service
the other two: NFS Clinet
2 Install And Setting
2.1 checking System version
Client:
cat /etc/redhat-release
uname -a
ifconfig

Service:
cat /etc/redhat-release
uname -a
ifconfig

you are better make sure three Linux System is same.
2.2 Checking RPC and NFS whether has installed at Service
Service:
rpm -aq nfs-utils portmap rpcbind

If the PRC and NFS haven’t installed, you can user “ yum install nfs-utils rpcbind -y”
2.3 Start NFS and RPC Service at Service
switch to NFS Service
Firstly start RPC Service at service.
rpcinfo -p localhost: check RPC localhost port
“rpcinfo: can't contact portmapper: RPC: Remote system error - Connection refused”: show RPC Service does not start.

Secondly: start NFS Service

2.4 Setting NSF at Service
/etc/exports is setting of NFS, we need to set it by “VIM”.
The GateWay can be replaced by IP, it will make the /date used by only Client. So we always use gateway.
The authority includes:
ro: only read
wo:only write
sync:
use “,” as separator.

Then, you need to reload the nfs Service.

Then, you need to check the mount information for an NFS Server.

At this moment, The Service is OK.
2.5 Setting RPC in Client
switch to NFS Client.
Firstly: start RPC Service.

Check NFS information of NFS Server from Client, If show flowing it success.

If it don’t success ,you use ping SERVICE_IP or telnet SERVICE_IP 111(RPC port) to check where error occurs.
you are better make sure two client Linux System is same.
2.6 mount Service Data and update directory owner.

The you should update owner or group of /data at Service, or client will has authority errors.
If you set “w” authority, you need set “nfsnobody” to owner or group of /data and give writable authority.

“nfsnobody” is the default user of NFS.
you can see it’s UID in /var/lib/nfs/etab

If show red information, it is OK.
The another client operations is same as first one.
3 run and test
switch to Client.

Then switch to Service

If the /date of Service is same as the /mnt of Client, indicates it success.
4 optimization
4.1 set start with System open
we add all NFS, RPC starting commands in /etc/rc.local file to manage easily.
at Service:

at Client: you better make sure two client is same.

4.2 update /etc/exports
we want all clients can ADD, VIEW, UPDATE, and DELETE file. So we should use the same user to execute the client process. So we can use
all_squash: indicates all user will be set anonuid, if anonuid is not given, using default nfsnobody to be the client process executor.
anonuid: give executor UID
anongid: give executor GID

It will prompt the system safety.
4.3 use soft not hard
hard: request NFS service all time
soft: request NFS service intermittent
but, the two options belong to mount.
We use soft we reduce the coupling(耦合性) between NFS Service and NFS Client.
So we should use flowing command to mount NFS Service and add it at /etc/rc.local
/bin/mount -t nfs -o soft 192.168.98.132:/data /mnt/.

4.4 rsize, wsize
rsize: the max size of cache of reading file.
wsize: the max size of buffer of write file
test data:
#test read and write speed about rsize,wsize
the rsize=1024,wsize=1024
time sh read.sh
real 0m43.792s
user 0m11.669s
sys 0m21.960s
time sh write.sh
20000+0 records in
20000+0 records out
184320000 bytes (184 MB) copied, 64.963 s, 2.8 MB/s
real 1m5.058s
user 0m0.006s
sys 0m6.103s
[root@nfs_clinet_2 nfs_test]# grep mnt /proc/mounts
192.168.98.132:/data/ /mnt nfs4 rw,relatime,vers=4,rsize=1024,wsize=1024,namlen=255,soft,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.98.134,minorversion=0,local_lock=none,addr=192.168.98.132 0 0
the rsize=262144,wsize=262144,
time sh read.sh
real 0m37.112s
user 0m4.690s
sys 0m25.867s
time sh write.sh
20000+0 records in
20000+0 records out
184320000 bytes (184 MB) copied, 6.63189 s, 27.8 MB/s
real 0m6.645s
user 0m0.002s
sys 0m1.366s
grep mnt /proc/mounts
192.168.98.132:/data/ /mnt nfs4 rw,relatime,vers=4,rsize=262144,wsize=262144,namlen=255,soft,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.98.134,minorversion=0,local_lock=none,addr=192.168.98.132 0 0
obvious the rsize and wsize bigger, the speed is more quickly.
In Centos 6.5 default rsize and wrize is so good ,we don’t need to update it.
4.5 noatime, nodiratime
noatime: when you access a file, will not update its atime
nodiratime: when you access a file, will not update its atiem
If you hope you NFS Service read/write more quickly, you can add these two options.
4.6 nosuid, noexec, nodev
nosuid: forbidden seting suid
noexec:forbidden executing scripts, including shell and scropts
nodev: Do not interpret character or block special devices on the file system.
The three is safe options, we can use these to prevent our system be invaded
The picture is show noexec option effect.

How to build a NFS Service的更多相关文章
- Build a Restful Service
最近项目中遇到的REST的问题很多,很多情况下受weblogic以及Jdeveloper版本的影响,无法直接从Jdeveloper中生成一个RESTful Service出来,所以基于流行的Sprin ...
- [转]How to Use Web API OData to Build an OData V4 Service without Entity Framework
本文转自:http://www.odata.org/blog/how-to-use-web-api-odata-to-build-an-odata-v4-service-without-entity- ...
- NFS文件系统存储服务部署
1 NFS介绍 1.1 什么是NFS? NFS是Network File System的缩写,中文名称是网络文件系统.它的主要功能是通过网络让不用的主机系统之间可以共享文件或者目录.NFS客户端通过挂 ...
- nfs服务的讲解
第4章 nfs存储服务的搭建 4.1 nfs服务的介绍 4.1.1 nfs的作用 nfs服务器是一种远程网络传输的共享文件系统 节省web服务器的本地存储空间 用户存储在web服务器上面的资源,会通过 ...
- 【集群实战】NFS网络文件共享服务
1. NFS介绍 1.1 什么是NFS? NFS是Network File System的缩写,中文意思是网络文件系统. 它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录. ...
- Linux NFS 服务部署
系统环境:Oracle Linux 5.7 服务端:192.168.1.111 客户端:192.168.1.171 一.服务端配置 二.客户端配置 一.服务端配置 1.依次启动portmap和nfs服 ...
- Windows Service--Write a Better Windows Service
原文地址: http://visualstudiomagazine.com/Articles/2005/10/01/Write-a-Better-Windows-Service.aspx?Page=1 ...
- 2 NFS高可用解决方案之NFS的搭建
preface 我们紧接着上一篇博文的基础(drbd+heartbeat的正常工作,http://www.cnblogs.com/liaojiafa/p/6129499.html)来搭建NFS的服务. ...
- Linux 配置NFS,文件共享
配置: 1.设定共享主机服务器 ---(注意防火墙) 编辑ipA端的/etc/exports 文件 [root@dbrac2 ~]# cat /etc/exports /media 192 ...
随机推荐
- BPM实例分享——金额规则大写
金额规则大写 在涉及金额的流程中经常会遇到需要大写金额数据与小写金额匹配,如何实现输入数字后自动转换呢? 初级用法: 1.在默认表单基本属性javascript 中增加如下金额转换方法 /** 数字金 ...
- Github装(zao)逼(jia)指(da)南(fa)
Github之于工程师,类似于微博相册之于嫩模,像是个门面. 无论是晋升答辩,还是求职面试,有一个丰富的代码仓库不敢说好处有多大,但总归是有的.并且好处不局限于此,代码开源才会暴露问题才会改正,并且会 ...
- Mac下查看端口占用
netstat命令 netstat -an | grep 端口号 lsof命令 lsof -i:端口号
- 用SVN check out项目后第三方库丢失
曾经用Cornerstone check out 一份项目下来,但其中第三方.a库始终丢失,项目报错,研究后找到了以下解决方法: 首先,Xcode默认忽略.a 文件.所以无法提交到svn服务器,但是很 ...
- 由一个bug引发的SQLite缓存一致性探索
问题 我们在生产环境中使用SQLite时中发现建表报“table xxx already exists”错误,但DB文件中并没有该表.后面才发现这个是SQLite在实现过程中的一个bug,而这个bug ...
- Spark——SparkContext简单分析
本篇文章就要根据源码分析SparkContext所做的一些事情,用过Spark的开发者都知道SparkContext是编写Spark程序用到的第一个类,足以说明SparkContext的重要性:这里先 ...
- 将自己的项目上传到github保管
一.首先需要生成gey-gen,因为github跟本地计算机要通过ssh传输的,详情见官方教程. 二.本地已有项目的情况:现在本地将项目git innit 初始化好,然后去到github上面初始化一个 ...
- [笔记]linux磁盘管理
sudo mount -r /dev/sda3 /mnt/vista 只读挂载 sudo umount sudo umount -r 无法卸载时只读重新挂载 mount -t(指明设备类型) 可用参数 ...
- 如何利用报表工具FineReport实现报表列的动态展示
相信动态列的实现困扰了很多人,大数据量,多字段的加载将会非常耗时,数据又做不到真正的动态灵活.现有的方式都是通过变向的隐藏等方式来实现. 那该如何解决呢?这里分享帆软报表设计器FineReport的实 ...
- RedHat 和 Mirantis OpenStack 产品的版本和功能汇总和对比(持续更新)
Mirantis 和 Red Hat 作为 OpenStack 商业化产品领域的两大领军企业,在行业内有重要的地位.因此,研究其产品版本发布周期和所支持的功能,对制定 OpenStack 产品的版本和 ...