Linux NFS服务器详解

参考文章:http://pingdan.blog.51cto.com/1612050/1317921

What is NFS

NFS是Network FileSystem的缩写,即网络文件系统,它可以实现挂载远程电脑上的设备到本地从而像访问本地磁盘一样操作,有点类似于windows 的网上邻居。是SUN公司1984年开发的,v1版本只在SUN公司内部使用过,v2, v3, v4是公开版本,一般红帽5默认是v3版本,红帽6默认目前最新的v4版本。


How it works

我们知道一个程序是不可以直接操作硬件资源的,当一个程序需要读写硬盘数据时,需要把请求提交给内核Kernel, 然后由kernel再相关的结果返回给进程,这个过程我们称为本地过程调用Local Procedure Call. 如果当应用程序的进程要调用的库不在本地而是在远程主机上,这时我们就需要一种可以提供我们远程调用的技术,也就是我们经常会提到的RPC--Remote Procedure Call,那么RPC我们天天说,到底什么是RPC呢,简单的说RPC是为了简化公布式程序开发而开发出的一种编程技术,是一种技术框架,有了RPC开发人员就不用考虑本地如何去调用远程主机的库等资源,是透明的就像调用本地的一样,一切RPC就给办的妥妥的了。而著名的portmap就是RPC在Linux上的一种具体实现,工作在TCP和UDP的111号端口。

回到NFS上来简单说一下,NFS客户端要请求NFS服务器时,首先会先把请求发给本地的RPC stub存根调用,可以理解成RPC客户端然后通过RPC客户端与RPC服务端联系,RPC服务端通过分析知道请求的NFS资源,然后申请相应的空闲端口给NFS进程并通知给RPC客户端,这样NFS客户端就可以通过得到的端口号和服务器通信啦。


安装和配置

1、安装

使用rpm �Cqa | grep nfs-utils 查看软件包是否已安装

如果未安装 yum install �Cy nsf-utils 安装即可

简单说几个安装生成比较重要的文件或程序

/etc/rc.d/init.d/nfs
/etc/rc.d/init.d/nfslock
/etc/rc.d/init.d/rpcgssd
/etc/rc.d/init.d/rpcidmapd
/etc/rc.d/init.d/rpcsvcgssd //以上几个是生成的脚本
/etc/sysconfig/nfs //nfs的配置文件
/sbin/rpc.lockd //管理文件锁,防止同一文件多人同时读写造成文件损坏
/usr/sbin/exportfs //这个命令很重要,修改了exports文件后不需要重启nfs服务就可以刷新服务资源靠的就是他
/usr/sbin/mountstats //可以按挂载点查看客户端各种状态信息,很详细
/usr/sbin/nfsiostat //按挂载点查看客户端IO详细状态信息
/usr/sbin/nfsstat //可以查看服务端或客户端各种NFS状态信息
/usr/sbin/showmount //查看NFS服务器和挂载上的客户端各种信息

2、配置使用

I) /etc/exports 这个文件控制NFS服务器共享出去的资源以及访问权限等

在NFS服务器上编辑此文件加上一行

/nfs(服务器上要共享出去的目录) 192.168.0.0/24(rw,sync) 可以是单一的IP地址,也可以指定网段, rw-可读写,sync-同步写入, ro-只读, rsync-异步写入

mkdir /nfs 创建共享的目录

II) 保存退出启动nfs服务 service nfs start

启动后可以用以下命令查看已经成功共享

[root@ha1 hbase]# showmount -e localhost
Export list for localhost:
/nfs 192.168.188.0/24

III) 客户端挂载设备

mkdir /mnt/nfs 创建挂载点

mount �Ct nfs 192.168.188.128:/nfs /mnt/nfs

然后就可以切到/mnt/nfs目录下像操作本地磁盘一样了


你可能感兴趣的:(linux,服务器,nfs)