共计 3006 个字符,预计需要花费 8 分钟才能阅读完成。
一、NFS 介绍
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 是负责负责信息的传输。
二、NFS 进程
nfsd:它是基本的 NFS 守护进程,主要功能是管理客户端是否能够登录服务器;
mountd:它是 RPC 安装守护进程,主要功能是管理 NFS 的文件系统。当客户端顺利通过 nfsd 登录 NFS 服务器后,在使用 NFS 服务所提供的文件前,还必须通过文件使用权限的验证。它会读取 NFS 的配置文件 /etc/exports 来对比客户端权限。
portmap/rpcbind:主要功能是进行端口映射工作。当客户端尝试连接并使用 RPC 服务器提供的服务(如 NFS 服务)时,portmap 会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。
三、安装 NFS
rpm –qa| grep nfs
rpm -qa| grep rpcbind
在 CentOS,原来的 portmap 改成了 rpcbind。如果这两个软件没有安装,就要下载对应的 rpm 包进行安装 (当然也可以用 yum 等其他安装方式)
四、启动 NFS
1. 查看端口配置
默认情况下,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
2. 放通网络和防火墙
将源机器和目标机器的 IP 和上述端口放通。关闭防火墙对这些端口的屏蔽。
3. 配置 export
vim /etc/exports
/home/bapogg 10.249.13.0/24(rw,no_root_squash,async)
4. 启动 nfs
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…
五、查看通过 NFS 的传输性能
1. 手工方式
通过拷贝一个大文件,看拷贝完需要多长时间。大小 / 时间 = 速率。
六、挂载 NFS
1. 在 AIX 客户端上挂载
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
在 Linux 客户端上挂载
也要做一些客户端的必要的设置,在此略过。
mount-t nfs 10.249.60.65:/home/bapogg /ogg/test_nfs
七、卸载
1. 在 AIX 客户端上卸载
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://www.linuxidc.com/Linux/2018-01/150066.htm