NFS全称是Network File System,网络文件系统。它可以通过网络实现文件共享。其结构图大概是这样的:
在机器E上开启NFS服务,机器ABCD都挂载NFS,这样可以实现机器ABCD共享文件。
由于文件共享的特性,NFS还被用作分布式系统的备份。比如Elasticsearch集群的备份需要用到NFS。
服务端
首先开启NFS服务端,在Ubuntu中的命令如下:
sudo apt-get update
sudo apt-get install nfs-kernel-server
然后我们建一个文件夹,用作共享目录:
sudo mkdir /var/nfs/general
这样建立的文件夹归属于root用户,那么客户端在使用的时候都需要root权限才能查看,因此我们需要修改一些文件夹归属:
sudo chown nobody:nogroup /var/nfs/general
然后需要修改一下NFS的配置,告诉NFS组件哪些文件夹需要导出。我们来编辑/etc/exports这个文件,其格式要求如下:
文件夹 客户端IP地址(权限选项1,选项2,...)
这里举个例子:
/var/nfs/general 127.0.0.1(rw,sync,no_subtree_check)
修改完成之后重启NFS服务端,命令如下:
sudo service nfs-kernel-server restart
这样我们就完成了服务端的搭建。
客户端
然后在另外一台机器上连接前面建立的NFS服务。首先要安装NFS客户端软件,在Ubuntu中的命令如下:
sudo apt-get update
sudo apt-get install nfs-common
然后建立一个共享目录:
sudo mkdir /nfs
然后把NFS挂载这个文件夹上:
sudo mount 127.0.0.1:/var/nfs/general /nfs
然后我们就可以在/nfs下访问共享目录啦。