NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
NFS最早是由Sun公司发展出来的,
简单的来说:它就是是可以透过网络,让不同的主机、不同的操作系统可以共享存储。
以下是NFS最显而易见的好处:
1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
3. 一些存储设备CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure 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是负责负责信息的传输。
Server端:
1.准备阶段:
以root身份登录NFS server ,运行rpm -qa|grep rpcbind 查看是否host上是否有rpcbind包,如果没有运行
yum install rpcbind
2.yum install -y nfs-utils #安装nfs server
3.systemctl enable rpcbind
systemctl start rpcbind
systemctl enable nfs-server
systemctl start nfs-server
4.mkdir -p /var/vols/itom/core #新建文件夹,作为服务端共享的目录
5.groupadd -g 666 itsma
useradd -g 666 -u 666 itsma
6.chown -R 666:666 /var/vols/itom/core #改变文件的所有者
7.在/etc/exports文件配置一下:
/var/vols/itom/core *(rw,sync,anonuid=666,anongid=666,all_squash)
8.exportfs -ra #使之生效
9.showmount -e #查看导出的目录
10.service rpcbind start #启动rpcbind
11.service nfs start #启动nfs server
Client端:
1.mkdir /usr/local/test #创建客户端挂载的目录
2.chmod 777 /usr/local/test #改变该目录的读写执行权限
3.mount -t nfs 192.168.0.1:/var/vols/itom/core/ -onfsvers=3 /usr/local/test #挂载
4.mount |grep nfs 查看挂载目录情况
配置完成,然后你可以在客户端/usr/local/test新建个文件,在服务端/var/vols/itom/core查看是否同步过来。