NFS 是Network FileSystem的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (RemoteProcedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。
nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器;
mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过nfsd登录NFS服务器后,在使用NFS服务所提供的文件前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。
portmap/rpcbind:主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。
rpm –qa| grep nfs
rpm -qa| grep rpcbind
在CentOS,原来的portmap改成了rpcbind。如果这两个软件没有安装,就要下载对应的rpm包进行安装(当然也可以用yum等其他安装方式)
默认情况下,nfs通过2049端口通信,portmap或者rpcbind通过111端口通信。
cat/etc/services | grep nfs
nfs 2049/tcp nfsd shilp # Network File System
nfs 2049/udp nfsd shilp # Network File System
nfs 2049/sctp nfsd shilp # Network File System
cat/etc/services | grep rpcbind
sunrpc 111/tcp portmapper rpcbind #RPC 4.0 portmapper TCP
sunrpc 111/udp portmapper rpcbind # RPC 4.0 portmapper
另外,要固定mount服务的端口为976
cat>> /etc/services
mountd 976/udp
mountd 976/tcp
servicenfs restart
将源机器和目标机器的IP和上述端口放通。关闭防火墙对这些端口的屏蔽。
vim /etc/exports
/home/bapogg 10.249.13.0/24(rw,no_root_squash,async)
servicenfs start
servicerpcbind start
servicenfs status
rpc.svcgssd isstopped
rpc.mountd (pid8451) is running...
nfsd (pid 84488447 8446 8445 8444 8443 8442 8441) is running...
rpc.rquotad (pid8435) is running...
servicerpcbind status
rpcbind (pid 1541) is running...
通过拷贝一个大文件,看拷贝完需要多长时间。大小/时间=速率。
stopsrc-g nfs
0513-044 The biodSubsystem was requested to stop.
0513-044 The nfsdSubsystem was requested to stop.
0513-044 Therpc.lockd Subsystem was requested to stop.
0513-044 Therpc.statd Subsystem was requested to stop.
stopsrc-s portmap
0513-044 Theportmap Subsystem was requested to stop.
startsrc-s portmap
0513-059 Theportmap Subsystem has been started. Subsystem PID is 156104.
startsrc-g nfs
0513-059 The biodSubsystem has been started. Subsystem PID is 397708.
0513-059 The nfsdSubsystem has been started. Subsystem PID is 352796.
0513-059 Therpc.mountd Subsystem has been started. Subsystem PID is 360828.
0513-059 Thenfsrgyd Subsystem has been started. Subsystem PID is 369402.
0513-059 The gssdSubsystem has been started. Subsystem PID is 360830.
0513-059 Therpc.lockd Subsystem has been started. Subsystem PID is 369404.
mount 10.249.60.65:/home/bapogg/ogg/test_nfs
也要做一些客户端的必要的设置,在此略过。
mount-t nfs 10.249.60.65:/home/bapogg /ogg/test_nfs
unmount /ogg/test_nfs
如果报这类错误:umount: 1831-01516 error while unmounting 10.249.60.65:/home/bapogg - The requested resource isbusy.
就用fuser -k/ogg/test_nfs 把占用的进程杀掉。当然不那么粗暴的方式是fuser/ogg/test_nfs看哪些进程占用这个文件系统。
原文地址:http://blog.51cto.com/sf1314/2056983