centos6.5 64位下搭建nfs文件共享系统

AndyYang| 阅读:706 发表时间:2016-03-22 20:47:02 linux
摘要:NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
一、环境介绍:
服务器:centos 192.168.204.136
客户端:centos 192.168.204.135

二、安装nfs服务器和rpcbind:
yum -y install nfs-utils rpcbind
早期版本 rpcbind 需改成 portmap

三、服务器端配置:
1、创建共享目录:
mkdir /var/ftp/
2、NFS文件配置:
vi /etc/exports 
#增加一行(参数参考底部其他):
/var/ftp/ 192.168.204.135(rw,all_squash,sync)
使配置生效:
exportfs -r
一般站点是用来共享图片,所以最好加上用户id和组id(一般都是www用户)
/var/ftp 192.168.204.135(rw,all_squash,anonuid=502,anongid=502)

如果服务没起来(注意先后顺序):
service rpcbind start
service nfs start

四、客户端处理:
yum -y install nfs-utils
mount -t nfs 192.168.204.136:/var/ftp /usr/local/test

挂载失败?关闭服务器的防火墙,成功。
mount查看,即可看到挂载的文件

创建文件,两边即可同时查看。如果权限不足,先给服务器共享目录777权限。

这样就搭建完了,但很显然是不够的。优化:

一、服务器
a、自启动rpcbind和nfs
chkconfig rpcbind on
chkconfig nfs on

b、固定端口(服务器不允许关闭防火墙)
nfs服务需要开启 mountd,nfs,nlockmgr,portmapper,rquotad5个服务,nfs 和 portmapper两个服务是固定端口的,nfs为2049,portmapper为111。其他的3个服务是用的随机端口,那就需要先把这3个服务的端口设置成固定的。

1、rpcinfo -p
把剩下的三个服务的端口随便选择一个记录下来
mountd  46750
rquotad  875
nlockmgr  47266

2、修改nfs配置文件
vim /etc/sysconfig/nfs
# Port rquotad should listen on.
RQUOTAD_PORT=875
# TCP port rpc.lockd should listen on.
LOCKD_TCPPORT=46997
# UDP port rpc.lockd should listen on.
LOCKD_UDPPORT=47266
# Port rpc.mountd should listen on.
MOUNTD_PORT=46750

3、防火墙开放对应的端口
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m multiport --dport 111,2049,875,46997,47266 -j ACCEPT

二、客户端
设置开机挂载
vim /etc/fstab
#加入下面这句
192.168.204.136:/var/ftp /usr/local/test nfs defaults,soft,intr 0 0
#Nfs是类型
#soft参数是为了向用户输出错误信息
#intr参数为了解决当网络出现故障时,我们可以通过按下ctrl+c组合键来终止操作

其他:
1、nfs参数详解
ro                      只读访问
rw                      读写访问
sync                    所有数据在请求时写入共享(资料同步写入到内存与硬盘中)
async                   NFS在写入数据前可以相应请求(资料会先暂存于内存中,而非直接写入硬盘)
secure                  NFS通过1024以下的安全TCP/IP端口发送
insecure                NFS通过1024以上的端口发送(允许从这台机器过来的非授权访问)
wdelay                  如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay               如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide                    在NFS共享目录中不共享其子目录
no_hide                 共享NFS目录的子目录
subtree_check           如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check        和上面相对,不检查父目录权限
all_squash              共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash           保留共享文件的UID和GID(默认)
root_squash             root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squash           root用户具有根目录的完全管理访问权限
anonuid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的GID

2、如果觉得默认文件权限较低(644)
可以修改unmask的配置(默认022)
/etc/profile

3、参考:
http://www.lvtao.net/server/centos-nfs.html
http://www.j3j5.com/post-28.html
http://www.linuxidc.com/Linux/2013-05/84777.htm

有问题请留言~

本文为AndyYang原创,转载请注明出处!
如果您觉得好,可以打赏作者:
如果您觉得累了,是否想眺望远方:猛戳>>若兰网

已有0条评论

昵称:
邮箱:

  • 最新评论

若兰网 - www.rolan.wang
反馈
微信订阅号