首页 > 技术文章 > CentOS系统下NFS服务器

sgtb 2014-05-08 01:02 原文

NFS服务器
 
NFS是Network File System的缩写,功能可将其简单的看作一个文件服务器,可以通过网络,使不同的主机和不同操作系统可以共享文件。
现在尤其在机房是Linux集群的环境下,几十或者几百台服务器,使用NFS共享文件,可以极大保证效率。
 
配置环境:
VMware虚拟机,安装两台CentOS 6.5服务器
NFS-Server:
IP:192.168.30.129
共享目录:/data
NFS-Client:
IP:192.168.30.130
挂载目录:/data
 
在服务器上/data目录共享后,客户端服务器就可以将该目录挂载到自己的文件系统的某个目录(各服务器目录自定,不需相同),此时就可以操作服务器/data目录下的所有数据了。
 
NFS的安装
我的虚拟机CentOS系统安装完后,默认已经安装了NFS服务,若没有安装也没有关系,我们只需自行安装就好了。
#yum install nfs
直接这样安装提示包名无效,是因为NFS的包名不仅仅是nfs,我们可以先查找正确的包名再进行安装。
#yum search nfs
确认正确的包名后,就可以进行安装了。
#yum install nfs-utils
因为我的服务器已经安装好了,所以提示already installed。
 
NFS的配置
配置很简单,在配置文件/etc/exports 中添加内容即可,该文件默认没有需要自己创建。
# vim /etc/exports 
配置文件内容:/data 192.168.30.130(rw,no_root_squash,no_all_squash,sync)
/data为NFS-Server要共享的目录(两台服务器根目录下没有data目录,要手动创建:# mkdir /data)
192.168.30.130 为NFS-Client的IP地址(此处可以设定192.168.30.0/20来设置IP范围)
括号中的内容为权限参数,参数解释见下图:
重启NFS-Server服务
启动nfs服务须要先启动rpc服务(rpc服务已经启动则无需重启)
RPC是Remote Procedure Call,即远程调用协议,因为NFS传输端口默认使用的是随机选择的且小于1024的端口,因此客户端不知道服务端使用的是那个端口,RPC的主要功能是指定NFS传输时使用的端口号,并且告诉客户端该端口号,使客户端可以连接到正确的端口上去,因为NFS要先向RPC注册,所以一定要在启动NFS服务之前先启动RPC服务。
如果不启动RPC服务,启动NFS服务就不会成功。
在NFS-Server的/data目录中创建一个脚本
# vim /data/example1.sh
脚本内容:
执行该脚本生成示例文件
# cd /data
# sh example1.sh
查看/data目录中的文件
# ll -a 
 
挂载NFS-Client
挂载前可以查看NFS-Server服务器的共享目录信息
# showmount -e 192.168.30.129
若提示如下信息
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
则是NFS-Server防火墙的原因,回到NFS-Server服务器关闭防火墙
在NFS-Server服务器执行
# /etc/init.d/iptables stop
然后在NFS-Client主机上执行
# mount -t nfs 192.168.30.129:/data/ /data/
挂载成功后,NFS-Client中/data原本为空,现在可以操作NFS-Server中/data目录下的数据了。
 
注:NFS服务的搭建和配置很简单,此次两台服务器使用的都是root,我们先来好好理解一下架设过程吧,关于“权限”问题,我们后续继续讨论学习。

推荐阅读