轻松搭建nfs存储环境
NFS是1984年SUN公司开发的一套网络文件系统。它能够让用户像在本机一样操作远程文件。本文用一个比较简单的方式来搭建NFS试验环境。
准备工作
我们需要先安装virtualBox和vagrant。通过vagrant来驱动virtualBox搭建一个虚拟测试环境。首先在本地任意路径新建一个空文件夹比如test
,运行以下命令:
里面应该有一句config.vm.box = "ubuntu/trusty64"
,在它的下面添加如下几行代码,相当于给它分配两台虚拟机,一台叫做server,它的IP是192.168.33.17;另外一台叫做client,它的IP是192.168.33.18。我们将会在server上启动nfs服务并共享一个目录,然后在client挂载并操作这个目录。
分别在两个终端运行以下命令启动并连接两台虚拟机。
|
|
搭建环境
启动nfs服务需要nfs-kernel-server这个包,让我们安装并启动:
服务启动完成后,会生成一个/etc/exports
文件,里面就是nfs的配置。我们创建一个文件夹/tmp/nfs
,把它配置成nfs的目录,然后重新启动nfs服务:
往/etc/exports
里写的那一行里,*
代表允许所有的客户端访问。如果只想让192.168.33.18访问,把星号改为这个IP就好了。需要支持多个IP的话,用逗号分隔就行。括号里的rw
表示允许读写。no_subtree_check
表示在服务器端不检查此nfs文件夹的父目录权限。no_root_squash
表示客户端root用户也被视为对此nfs文件夹有全部权限的服务端root用户,生产环境不建议使用,因为那样nfs上的文件就可能被随意篡改。想要了解更多的设置,请自行man exports
。
测试
这时候我们就可以去client挂载server的这个nfs目录了:
往里面写一个文件:
然后去server端看一下,是不是已经被同步过来了:
Server端也可以往nfs的文件夹里写文件:
照样可以同步到client端:
无论server端还是client端,都可以通过下面这个命令来查看192.168.33.17
上公开了哪些nfs文件夹:
再来一个nfs2文件夹:
这时候再showmount -e 192.168.33.17
看一下,/tmp/nfs2
并没有出现在列表中。因为nfs并不会去监视/etc/exports
这个文件,所以这时候它还不知道我们改变了配置。虽然重新启动nfs服务可以解决这个问题,但是它会中断现存的nfs服务。建议使用以下命令:
这时候在再showmount -e 192.168.33.17
看一下,/tmp/nfs2
已经出来啦。加载一下:
完全没问题。