IT技术互动交流平台

Linux基础-安装搭建NFS服务器

作者:酷特尔  发布日期:2013-04-02 20:34:22

之前发表过一篇个人认为还是比较详细的有关于Linux下搭建NFS服务器的博文。由于站点故障,最终没有保留下来。所以在这里再发布下。

NFS最早是由Sun公司于1984年开发的,是分布式计算机系统中的一个组成部分,目的是为了实现异构网络上共享远程文件系统,是类Unix环境下的文件服务器解决方案。(上一篇博文中介绍过在Windows7下共享Linux下的nfs文件系统)。似乎博文有点倒叙了哈。有一次无意发现有网友搜索“NFS服务portmap to rpcbind”到了我的博客上来。那是我站上并没有解决这个问题的博文,后来我就写了一篇。不过没放上去。下面就那这个例子来诠释下Linux系统中的NFS服务器。不多说,介绍的还是得介绍,该分享就分享。

NFS服务器工作原理,NFS服务就像是Windows下的共享差不多。它本身并没有提供可以传输数据的协议,它的工作时需要借助RPC(远程过程调用)协议来完成的。既然是这样,那么就并没有什么NFS服务器和NFS客户端之分的。只是人们习惯把共享出NFS文件系统的那端就叫NFS服务器,而另一端就叫作NFS客户端罢了。其实,要实现NFS文件共享,不管是服务器端还是客户机端。两个系统中都要有RPC服务和NFS服务支持就行了。当然,对于我说NFS服务没有服务端和客户端之分的只是我个人的说法。通过这里,上面说到的“NFS服务portmap to rpcbind”实现NFS共享的问题就不难解决了。

安装NFS服务组件包,由于NFS服务像是Windows下的共享功能那样。所以,一般Linux系统中默认都会给系统安装上NFS服务组件的。前面说到过NFS工作需要RPC协议协助完成,所以,在RHEL5.32下安装RPC协议组件包portmap。RHEL6以上的好像都是叫RPCBIND的组件包了。它需要两个组件包(nfs-utils和nfs-utils-lib),如果没有安装,RHEL5.32的话,在系统镜像光盘中的第一个光盘中挂载并安装:www.it165.net
[root@localhost ~]# mount /dev/cdrom /media/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# rpm -ivh /media/Server/nfs-utils-1.0.9-16.el5.i386.rpm /media/Server/nfs-utils-lib-1.0.8-7.2.i386.rpm
warning: /media/Server/nfs-utils-1.0.9-16.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing… ########################################### [100%]
package nfs-utils-lib-1.0.8-7.2 is already installed
package nfs-utils-1.0.9-16.el5 is already installed
检查NFS所需的组件包是否全部安装:
[root@localhost ~]# rpm -qa | grep portmap
portmap-4.0-65.2.2.1
[root@localhost ~]# rpm -qa | grep nfs
nfs-utils-1.0.9-16.el5
nfs-utils-lib-1.0.8-7.2

NFS服务器的配置比较简单,下面就配置一些实例看看:
[root@localhost ~]# vim /etc/exports
/home 192.168.8.0/24(rw,async) *(ro,sync)
/home/zwz 192.168.8.128/25(rw,async,root_squash)
/home/kutea *.kutea.net(rw,async,all_squash)

NFS指令参数说明:
secure
限制客户端只能从小于1024的TCP/IP端口连接NFS服务器(默认设置)
insecure
允许客户端从大于1024的TCP/IP端口连接NFS服务器
sync
将数据同步写入内存缓冲区与磁盘中,以保证数据的一致性
async
将数据先保存在内存缓冲区,必要时才写入磁盘
wdelay
写操作等待一起执行(默认设置)
no_wdelay
与sync配合,有写操作时立即执行不用等待
subtree_check
若输出子目录则NFS检查其父目录的权限(默认设置)
no_subtree_check
即使输出目录是子目录也不检查父目录的权限,以提高效率
all_squash
将远程访问的所有普通用户及所属用户组都映射为匿名用户或用户组(一般为nfsnobody)
no_ all_squash
不将远程访问的所有普通用户及所属用户组都映射为匿名用户或用户组(默认设置)
root_squash
将root用户及其所属组都映射为匿名用户或用户组(默认设置)
no_ root_squash
不将root用户及其所属组都映射为匿名用户或用户组
anonuid=xxx
将远程访问的所有用户都映射为匿名用户,并指定该匿名账户为本地用户账户(UID=xxx)
anongid=xxx
将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx)
启动服务器,注意顺序哦。先启动portmap(RPC服务)然后启动NFS服务,默认的话,系统安装后就安装了RPC服务它会开机自动启动的。所以,只需启动NFS服务就行啦。

[root@localhost ~]# service portmap status
portmap (pid 6211) 正在运行…
[root@localhost ~]# service nfs start
启动 NFS 服务: [确定]
关掉 NFS 配额: [确定]
启动 NFS 守护进程: [确定]
启动 NFS mountd: [确定]
[root@localhost ~]# showmount -e
Export list for localhost.localdomain:
/home/kutea *.kutea.net
/home (everyone)
/home/zwz 192.168.8.128/25
[root@localhost ~]#

客户端挂载NFS共享文件:


 

客户端挂载NFS共享文件


 
Tag标签: Linux   NFS服务器  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规