一.首先简单介绍一下NFS是什么。
NFS是Network File System的缩写,即网络文件系统。功能是通过网络让不同的机器、不同的操作系统能够分享个人数据,让应用程序通过网络可以访问位于服务器磁盘中的数据。
NFS在文件传送或信息传送的过过程中,依赖于RPC协议。RPC,远程过程调用(Remote Procedure Call),是使客户端能够执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,就是因为NFS使用了RPC提供的传输协议,可以说NFS就是使用PRC的一个程序。
二.开始搭建
服务器端:
1.软件安装,主要是rpcbind和nfs-utils.
# yum install rpcbind nfs-utils
2.开启RPC服务
# /etc/init.d/rpcbind start
3.查看rpc服务开启的端口
# netstat -antlp|grep rpcbind
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 0 33005106 48614/rpcbind
4.启动NFS服务
# /etc/init.d/nfs start
5.查看rpc服务上是否有端口注册
# rpcinfo -p localhost
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
6.修改配置文件,写入要共享的文件目录
# cat /etc/exports
/data/gitData/gitlab_data 10.50.21.244(rw,no_root_squash,async)
7.重新加载nfs 服务
# /etc/init.d/nfs reload
8.查看共享出去的文件目录
$ showmount -e
Export list for xxxx:
/data/gitData 10.50.21.244
客户端
0.客户端软件安装
yum install rpcbind nfs-utils -y
1.远程挂载
mount -t nfs 10.50.16.21:/data/gitData /data
2.查看是否挂载成功
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 79G 3.3G 72G 5% /
tmpfs 3.9G 4.0K 3.9G 1% /dev/shm
10.50.16.21:/data/gitData 1.5T 887G 539G 63% /data
有时候我们需要umount可能会遇到以下问题
# umount /data/
umount.nfs: /data: device is busy
通过命令查看:
# fuser -m -v /data/
用户 进程号 权限 命令
/data/: root 2798 ..c.. bash
root 2996 ..c.. su
-v 表示 verbose 模式。进程以 ps 的方式显示,包括 PID、USER、COMMAND、ACCESS 字段
-m 表示指定文件所在的文件系统或者块设备(处于 mount 状态)。所有访问该文件系统的进程都被列出。
如上所示,有两个进程占用了,将其kill掉,再重新取消挂载就可以了。
fuser命令是用来显示所有正在使用着指定的file, file system 或者 sockets的进程信息。