
<span id="Label3"><p>共享文件系统以及NFS介绍和使用</p><p align="left"><strong><span style="color:rgb(51,51,51)">1</span><span style="color:rgb(51,51,51)">、故事的起源</span></strong></p><p align="left"><span style="color:rgb(51,51,51)">很多很多年前,做过一个小系统,是一个和支付相关的小系统。因为是一个小系统,所以一切都那么简单。一台应用服务器,一台数据库服务器;文件、图片都放在应用服务器上,一切都是那么的平淡,一切都是那么的理所当然。</span></p><p align="left"><span style="color:rgb(51,51,51)">突然有一天,支付成为一个时髦的话题;突然有一天,这个平台居然要孕育成为一个新的支付公司的核心系统;于是,系统的访问就要暴涨了。这一切都很突然</span><span style="color:rgb(51,51,51)">……</span></p><p align="left"><strong><span style="color:rgb(51,51,51)">2</span><span style="color:rgb(51,51,51)">、调整后的系统简易架构</span></strong></p><p align="left"><span style="color:rgb(51,51,51)">一步一步来吧,前端使用负载均衡设备统一进行调度,中端对应于服务器进行横向扩展,后端把数据库升级。剩下的就是文件、图片要怎么放,最终我们的文件系统使用的是共享存储服务器</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">。我们的多个应用服务器通过</span><span style="color:rgb(51,51,51)">nfs</span><span style="color:rgb(51,51,51)">方式共享一个服务器的存储空间。</span></p><p align="left"><span style="color:rgb(51,51,51)"><img alt="技术分享" src="http://img.blog.csdn.net/?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmZtODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" ><br></span></p><p align="left"></p><p align="left"><strong><span style="color:rgb(51,51,51)">3</span><span style="color:rgb(51,51,51)">、</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">简介</span></strong></p><p align="left"><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">(</span><span style="color:rgb(51,51,51)">Network File System</span><span style="color:rgb(51,51,51)">)即网络文件系统,是</span><span style="color:rgb(51,51,51)">FreeBSD</span><span style="color:rgb(51,51,51)">支持的文件系统中的一种,它允许网络中的计算机之间通过</span><span style="color:rgb(51,51,51)">TCP/IP</span><span style="color:rgb(51,51,51)">网络共享资源。在</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">的应用中,本地</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">的客户端应用可以透明地读写位于远端</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">服务器上的文件,就像访问本地文件一样。</span></p><p align="left"><span style="color:rgb(51,51,51)">假如有三台机器</span><span style="color:rgb(51,51,51)">A</span><span style="color:rgb(51,51,51)">、</span><span style="color:rgb(51,51,51)">B</span><span style="color:rgb(51,51,51)">、</span><span style="color:rgb(51,51,51)">C</span><span style="color:rgb(51,51,51)">,它们的应用都需要目录</span><span style="color:rgb(51,51,51)">IMG</span><span style="color:rgb(51,51,51)">中的图片,传统的做法是把这些图片分别放到</span><span style="color:rgb(51,51,51)">A</span><span style="color:rgb(51,51,51)">、</span><span style="color:rgb(51,51,51)">B</span><span style="color:rgb(51,51,51)">、</span><span style="color:rgb(51,51,51)">C</span><span style="color:rgb(51,51,51)">三台服务器中的</span><span style="color:rgb(51,51,51)">IMG</span><span style="color:rgb(51,51,51)">目录中。但是使用</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">只需要放到</span><span style="color:rgb(51,51,51)">A</span><span style="color:rgb(51,51,51)">上的</span><span style="color:rgb(51,51,51)">IMG</span><span style="color:rgb(51,51,51)">目录,然后</span><span style="color:rgb(51,51,51)">A</span><span style="color:rgb(51,51,51)">把图片目录共享给</span><span style="color:rgb(51,51,51)">B</span><span style="color:rgb(51,51,51)">和</span><span style="color:rgb(51,51,51)">C</span><span style="color:rgb(51,51,51)">即可。访问的时候,</span><span style="color:rgb(51,51,51)">B</span><span style="color:rgb(51,51,51)">和</span><span style="color:rgb(51,51,51)">C</span><span style="color:rgb(51,51,51)">是通过网络的方式去访问</span><span style="color:rgb(51,51,51)">A</span><span style="color:rgb(51,51,51)">上的</span><span style="color:rgb(51,51,51)">IMG</span><span style="color:rgb(51,51,51)">目录。</span></p><p align="left"><strong><span style="color:rgb(51,51,51)">4</span><span style="color:rgb(51,51,51)">、配置</span><span style="color:rgb(51,51,51)">NFS</span></strong></p><p align="left"><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">配置只需要编辑配置文件</span><span style="color:rgb(51,51,51)">/etc/exports</span><span style="color:rgb(51,51,51)">即可。</span></p><p align="left"><span style="color:rgb(51,51,51)">[root@localhost ~]# cat /etc/exports</span></p><p align="left"><span style="color:rgb(51,51,51)">/home/10.0.2.0/114(rw,sync,all_squash,anonuid=,anongid=)</span></p><p align="left"><span style="color:rgb(51,51,51)">这个命令的简单的意思:</span></p><p align="left"><span style="color:rgb(51,51,51)">其中要共享的目录为</span><span style="color:rgb(51,51,51)">/home</span><span style="color:rgb(51,51,51)">,信任的主机为</span><span style="color:rgb(51,51,51)">10.0.2.0/114</span><span style="color:rgb(51,51,51)">这个网段,权限为读写,同步,限定所有使用者,并且限定的</span><span style="color:rgb(51,51,51)">uid</span><span style="color:rgb(51,51,51)">和</span><span style="color:rgb(51,51,51)">gid</span><span style="color:rgb(51,51,51)">都为</span><span style="color:rgb(51,51,51)"></span><span style="color:rgb(51,51,51)">。</span></p><p align="left"><span style="color:rgb(51,51,51)">这个配置文件就这样简单一行。共分为三部分,第一部分就是本地要共享出去的目录,第二部分为允许访问的主机(可以是一个</span><span style="color:rgb(51,51,51)">IP</span><span style="color:rgb(51,51,51)">也可以是一个</span><span style="color:rgb(51,51,51)">IP</span><span style="color:rgb(51,51,51)">段)第三部分就是小括号里面的,为一些权限选项。</span></p><p align="left"><span style="color:rgb(51,51,51)">rw </span><span style="color:rgb(51,51,51)">:读写;</span></p><p align="left"><span style="color:rgb(51,51,51)">ro </span><span style="color:rgb(51,51,51)">:只读;</span></p><p align="left"><span style="color:rgb(51,51,51)">sync </span><span style="color:rgb(51,51,51)">:同步模式,内存中数据时时写入磁盘;</span></p><p align="left"><span style="color:rgb(51,51,51)">async </span><span style="color:rgb(51,51,51)">:不同步,把内存中数据定期写入磁盘中;</span></p><p align="left"><span style="color:rgb(51,51,51)">no_root_squash </span><span style="color:rgb(51,51,51)">:加上这个选项后,</span><span style="color:rgb(51,51,51)">root</span><span style="color:rgb(51,51,51)">用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样。不安全,不建议使用;</span></p><p align="left"><span style="color:rgb(51,51,51)">root_squash </span><span style="color:rgb(51,51,51)">:和上面的选项对应,</span><span style="color:rgb(51,51,51)">root</span><span style="color:rgb(51,51,51)">用户对共享目录的权限不高,只有普通用户的权限,即限制了</span><span style="color:rgb(51,51,51)">root</span><span style="color:rgb(51,51,51)">;</span></p><p align="left"><span style="color:rgb(51,51,51)">all_squash </span><span style="color:rgb(51,51,51)">:不管使用</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">的用户是谁,他的身份都会被限定成为一个指定的普通用户身份;</span></p><p align="left"><span style="color:rgb(51,51,51)">anonuid/anongid </span><span style="color:rgb(51,51,51)">:要和</span><span style="color:rgb(51,51,51)">root_squash</span><span style="color:rgb(51,51,51)">以及</span><span style="color:rgb(51,51,51)"> all_squash</span><span style="color:rgb(51,51,51)">一同使用,用于指定使用</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">的用户限定后的</span><span style="color:rgb(51,51,51)">uid</span><span style="color:rgb(51,51,51)">和</span><span style="color:rgb(51,51,51)">gid</span><span style="color:rgb(51,51,51)">,前提是本机的</span><span style="color:rgb(51,51,51)">/etc/passwd</span><span style="color:rgb(51,51,51)">中存在这个</span><span style="color:rgb(51,51,51)">uid</span><span style="color:rgb(51,51,51)">和</span><span style="color:rgb(51,51,51)">gid</span><span style="color:rgb(51,51,51)">。</span></p><p align="left"><strong><span style="color:rgb(51,51,51)">5</span><span style="color:rgb(51,51,51)">、使用</span><span style="color:rgb(51,51,51)">NFS</span></strong></p><p align="left"><span style="color:rgb(51,51,51)">当编辑完配置文件</span><span style="color:rgb(51,51,51)">/etc/exports</span><span style="color:rgb(51,51,51)">后,就该启动</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">服务了。启动方法为:</span></p><p align="left"><span style="color:rgb(51,51,51)">[root@localhost ~]# service portmap start; servicenfs start</span></p><p align="left"><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">是依托</span><span style="color:rgb(51,51,51)">portmap</span><span style="color:rgb(51,51,51)">的,所以首先要启动</span><span style="color:rgb(51,51,51)">portmap</span><span style="color:rgb(51,51,51)">,然后启动</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">才能是刚才的配置生效。启动完</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">后,就该使用</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">服务了。</span></p><p align="left"><span style="color:rgb(51,51,51)">[root@localhost ~]# showmount -e 127.0.0.1</span><span style="color:rgb(51,51,51)">(用在</span><span style="color:rgb(51,51,51)">client</span><span style="color:rgb(51,51,51)">上)</span></p><p align="left"><span style="color:rgb(51,51,51)">Export list for 127.0.0.1:</span></p><p align="left"><span style="color:rgb(51,51,51)">/home 10.0.2.0/114</span></p><p align="left"><span style="color:rgb(51,51,51)">用</span><span style="color:rgb(51,51,51)">shoumount -e</span><span style="color:rgb(51,51,51)">加</span><span style="color:rgb(51,51,51)">IP</span><span style="color:rgb(51,51,51)">就可以查看</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">的共享情况,上例中,就可以看到</span><span style="color:rgb(51,51,51)">127.0.0.1</span><span style="color:rgb(51,51,51)">的共享目录为</span><span style="color:rgb(51,51,51)">/home</span><span style="color:rgb(51,51,51)">,信任主机为</span><span style="color:rgb(51,51,51)">10.0.2.0/114</span><span style="color:rgb(51,51,51)">这个网段。另外这个</span><span style="color:rgb(51,51,51)">showmount</span><span style="color:rgb(51,51,51)">命令还有一个常用的选项就是</span><span style="color:rgb(51,51,51)">-a</span><span style="color:rgb(51,51,51)">了,它的意思是,把连接本机的</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">的</span><span style="color:rgb(51,51,51)">client</span><span style="color:rgb(51,51,51)">全部列出。</span></p><p align="left"><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">服务中还有一个常用的命令那就是</span><span style="color:rgb(51,51,51)">exportfs</span><span style="color:rgb(51,51,51)">,它的常用选项为</span><span style="color:rgb(51,51,51)">[-aruv]</span><span style="color:rgb(51,51,51)">。</span></p><p align="left"><span style="color:rgb(51,51,51)">-a </span><span style="color:rgb(51,51,51)">:全部挂载或者卸载;</span></p><p align="left"><span style="color:rgb(51,51,51)">-r </span><span style="color:rgb(51,51,51)">:重新挂载;</span></p><p align="left"><span style="color:rgb(51,51,51)">-u </span><span style="color:rgb(51,51,51)">:卸载某一个目录;</span></p><p align="left"><span style="color:rgb(51,51,51)">-v </span><span style="color:rgb(51,51,51)">:显示共享的目录;</span></p><p align="left"><span style="color:rgb(51,51,51)">使用</span><span style="color:rgb(51,51,51)">exportfs</span><span style="color:rgb(51,51,51)">命令,当改变</span><span style="color:rgb(51,51,51)">/etc/exports</span><span style="color:rgb(51,51,51)">配置文件后,不用重启</span><span style="color:rgb(51,51,51)">nfs</span><span style="color:rgb(51,51,51)">服务直接用这个</span><span style="color:rgb(51,51,51)">exportfs</span><span style="color:rgb(51,51,51)">即可。</span></p><p align="left"><span style="color:rgb(51,51,51)"> </span></p><p align="left"><span style="color:rgb(51,51,51)">服务器如果要使用</span><span style="color:rgb(51,51,51)">nfs</span><span style="color:rgb(51,51,51)">,需要通过</span><span style="color:rgb(51,51,51)">mount</span><span style="color:rgb(51,51,51)">命令来挂载</span><span style="color:rgb(51,51,51)">nfs</span><span style="color:rgb(51,51,51)">。首先是用</span><span style="color:rgb(51,51,51)">-t nfs </span><span style="color:rgb(51,51,51)">来指定挂载的类型为</span><span style="color:rgb(51,51,51)">nfs</span><span style="color:rgb(51,51,51)">。另外在使用</span><span style="color:rgb(51,51,51)">nfs</span><span style="color:rgb(51,51,51)">时,常用一个选项就是</span><span style="color:rgb(51,51,51)">nolock</span><span style="color:rgb(51,51,51)">了,即在挂载</span><span style="color:rgb(51,51,51)">nfs</span><span style="color:rgb(51,51,51)">服务时,不加锁。</span></p><p align="left"><span style="color:rgb(51,51,51)">我们还可以把要挂载的</span><span style="color:rgb(51,51,51)">nfs</span><span style="color:rgb(51,51,51)">目录写到</span><span style="color:rgb(51,51,51)">client</span><span style="color:rgb(51,51,51)">上的</span><span style="color:rgb(51,51,51)">/etc/fstab</span><span style="color:rgb(51,51,51)">文件中,挂载时只需要</span><span style="color:rgb(51,51,51)">mount -a</span><span style="color:rgb(51,51,51)">即可。</span></p><p align="left"><span style="color:rgb(51,51,51)">写完</span><span style="color:rgb(51,51,51)">/etc/fstab</span><span style="color:rgb(51,51,51)">文件后,只需要</span><span style="color:rgb(51,51,51)">mount -a</span><span style="color:rgb(51,51,51)">即可挂载</span><span style="color:rgb(51,51,51)">nfs</span><span style="color:rgb(51,51,51)">服务的共享目录。</span></p><p align="left"><span style="color:rgb(51,51,51)"> </span></p><p align="left"><strong><span style="color:rgb(51,51,51)">6</span><span style="color:rgb(51,51,51)">、性能</span></strong></p><p align="left"><span style="color:rgb(51,51,51)">一般情况下,当</span><span style="color:rgb(51,51,51)">nfs</span><span style="color:rgb(51,51,51)">客户端数目较小的时候,</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">性能不会出现问题;一旦</span><span style="color:rgb(51,51,51)">NFS</span><span style="color:rgb(51,51,51)">服务器数目过多,并且是那种读写都比较频繁的操作,所得到的结果就不是我们所期待的。</span></p><p align="left"><span style="color:rgb(51,51,51)"> </span></p><p>共享文件系统以及NFS介绍和使用</p></span>
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/204664.html