centos7搭建nfs详细步骤(有哪些免费的服务器)

【1】NFS简介:        1.NFS是NetworkFileSystem的简称,即网络文件系统        2.NFS是一种分布式文件系统,可以在不同的操作系统间共享文件        3.NFS基于TCP/IP协议,可将远程计算机磁盘挂载到本地        4.NFS在文件或信息传送过程中依赖于RPC(RemoteProcedureCall)协议,不论是服务端还是客户…

大家好,又见面了,我是你们的朋友全栈君。

【1】NFS简介:

         1.NFS是Network File System的简称,即网络文件系统

         2.NFS是一种分布式文件系统,可以在不同的操作系统间共享文件

         3.NFS基于TCP/IP协议,可将远程计算机磁盘挂载到本地

         4.NFS在文件或信息传送过程中依赖于RPC(Remote Procedure Call)协议,不论是服务端还是客户端,只要用到NFS的地方都要启动RPC服务

         5.RPC协议可以在不同的系统间使用,此通信协议设计与主机及操作系统无关。

         6.NFS本身可以认为是RPC的一个程序,NFS是一个文件系统,而RPC负责信息的传输

【2】配置NFS服务器

         1.NFS的安装需要2个软件包[通常作为系统的默认包安装]:

                   nfs-utils-1.3.0-0.e17.x86_64.rpm             //包含一些基本的nfs命令与控制脚本

                   rpcbind-0.2.0-23.e17.x86_74.rpm           //是一个管理RPC连接的程序,类似的管理工具为portmap

         2.检查系统中是否安装了对应的软件

                   rpm  -qa|grep -i nfs

         3.使用yum工具安装nfs、rpcbind软件包[如何配置yum源,请点击这里]

                   yum  install -y  nfs-utils  rpcbind

         4.查看安装的主要文件列表

                   rpm  -qpl nfs-utils-1.3.0-0.e17.x86_64.rpm

【3】NFS的主要文件和进程:

         1.nfs有的发行版名字叫做nfsserver,主要用来控制NFS服务的启动和停止,安装后位于/etc/init.d目录下

      2.rpc.nfsd是基本的NFS守护进程,主要功能是控制客户端是否可以登录服务器,另外可以结合/etc/hosts.allow和/etc/hosts.deny做更精细的权限控制

        3.rpc.mountd是RPC安装守护进程,主要功能是管理NFS的文件系统。通过配置文件共享指定的目录,同时根据配置文件做一些权限验证

        4.rpcbind是一个管理RPC连接的程序,rpc服务对NFS是必需的,因为是NFS的动态端口分配守护进程,如果rpc不启动,NFS服务则无法启动,类似的管理工具为portmap

        5.exportfs,如果修改了/etc/exports,无需重新激活NFS,只要重新扫描一次/etc/exports文件,并且重新将设定加载即可。exports命令常用参数如下:

                   exportfs  -a    //全部挂载/etc/exports文件内的设置

                   exportfs  -r     //重新挂载/etc/exports中的设置

                   exportfs  -u    //卸载某一目录

                   exportfs  -v    //在export时将共享的目录显示在屏幕上

        6.showmount,显示指定NFS服务器连接NFS客户端的信息。showmount命令常用参数如下:

                   showmount  -a    //列出NFS服务共享的完整目录信息

                   showmount  -d    //仅列出客户机远程安装的目录

                   showmount  -e    //显示导出目录的列表

【4】配置/etc/exports

         1.格式:

                   #<共享目录>  [客户端1 选项]        [客户端2 选项]

                   /nfsshare *(rw,all_squash,sync,anonuid=1001,anongid=1000)

         2.客户端常用的指定方式:

                   指定ip地址的主机:192.168.3.101

                   指定子网中的所有主机:192.168.3.0/24  192.168.0.0/255.255.255.0

                   指定域名的主机:www.domain.com

                   指定域中的所有主机:*.domain.com

                   所有主机:*

         3.NFS常用选项说明:

                   ro     //该主机有只读权限

                   rw    //该主机对该共享目录有可读可写的权限

                   all_squash        //将远程访问的所有普通用户及所属组都映射为匿名用户或用户组,相当于使用nobody用户访问该共享目录,此参数为默认设置

                   no_all_squash //与all_squash取反,该选项默认设置

                   root_squash    //将root用户及所属组都映射为匿名用户或用户组,为默认设置

                   anonuid    //将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户

                   anongid    //将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户

                   sync //将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性

                   async        //将数据先保存在内存缓冲区中,必要时才写入磁盘

【5】/etc/exports文件配置实例说明

         例子一:

                   /nfsshare  *.*(rw)

         解释:

                   1.共享/nfsshare目录,所有主机都可访问,且具有读写权限

                   2.客户端上的任何用户在访问时都映射成nobody用户

                   3.若客户端要在该共享目录上保存文件,则服务器上的nobody用户对/nfsshare目录必须要有写的权限

         例子二:

                   /nfsshare2  192.168.19.0/255.255.255.0(rw,all_squash,anonuid=1001,anongid=100)

                                        192.168.32.0/255.255.255.0 (ro)

         解释:

                   1.共享/nfsshare2目录,192.168.19.0/24网段的所有主机都可以访问该目录,具有读写权限,且所有的用户在访问是都映射成服务器上的uid为1001、gid为100的用户

                   2.192.168.32.0/24网段的所有主机对该目录有只读访问权限,且访问是所有的用户都映射成nobody用户

【6】启动服务

         cat  /etc/exports

         mkdir  /nfsshare

         systemctl  restart rpcbind

         systemctl  start nfs-server

【7】NFS服务有5个后台进程组成

         rpc.nfsd             //负责主要的工作

         rpc.lockd和rpc.statd      //负责抓去文件锁

         rpc.mountd               //负责初始化客户端的mount请求

         rpc.rquotad               //负责对客户文件的磁盘配置限制

  1.这些后台程序是nfs-util的一部分,如果使用的是rpm包,它们存放在/usr/sbin目录下

  2.在CentOS7之前的版本中,要启动NFS服务,执行/etc/init.d/nfsstart即可;在CentOS7中由于系统框架的改变,可以使用systemctl启动,也可以使用service nfs-server start启动

【8】确认NFS是否已经启动

         rpcinfo  -p

         showmount  -e 127.0.0.1    //查看服务器的输出清单

【9】配置NFS客户端

         确定要挂载的文件路径,且该路径中已经没有存在的数据

         确定要挂载的服务器端的路径,使用mount挂载到本地磁盘

         命令:

                   [root@CentOStest]mount  -t  nfs -o  rw  192.168.12.102:/nfsshare   /test

                   [root@CentOStest]touch   s

                            cannot  touch ‘s’:Permission denied

         解释:

                   1.以读写方式挂载了共享目录,但root用户并不可写,其原因在于/etc/exports中的文件设置

                   2.由于all_squash和root_squash为NFS的默认设置,会将远程访问的用户映射成为nobody用户,而/test目录nobody用户是不可写的。

                   3.通过修改共享设置/etc/exports可以解决这个问题:

                            /nfsshare *(rw,all_squash,sync,anonuid=1001,anongid=1000)

                   4.重启NFS服务,重新挂载即可正常读写

【10】将远程服务器192.168.3.101上的/nfsshare挂载到本地目录

                   mount    192.168.3.101:/nfsshare     /nfsshare

         当挂载成功后,本地上/nfsshare目录下如果有数据,则原有的数据都不可见,用户看到的是远程主机上面/nfsshare目录中的文件列表

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/129047.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • axon-saga

    axon-saga管理复杂的业务事务并不是每个命令都能够在单个ACID事务中完全执行。银行转帐是一个很常见的例子,常常作为他们的论据。人们经常认为,将资金从一个账户转移到另一个账户的交易绝对需要原子性和一致性。其实呢,不是的这样的。相反,这是不可能的。如果钱从A银行的账户转移到B银行的另一个账户?A银行是否须要锁定B银行数据库?如果转账正在进行中,银行A已经扣除了这笔款项,但银行B还没有存入该钱,这有点奇怪?事…

  • 猪脸识别,赢取30万大赛奖金[通俗易懂]

    猪脸识别,赢取30万大赛奖金[通俗易懂]买个彩票,无论中奖与否,完全靠运气。大数据与AI大赛,冠军奖金30w,咱们技术人靠实力。事件:JDD-2017京东金融全球数据探索者大赛一场面向全球AI与数据人才的人…

  • p750tm安装linux系统,Android 开发环境(虚拟机,LINUX, secureCRT)安装过程.pdf

    p750tm安装linux系统,Android 开发环境(虚拟机,LINUX, secureCRT)安装过程.pdfAndroid开发环境(虚拟机,LINUX,secureCRT)安装过程Androidlinux开发环境(虚拟机,LINUX,secureCRT)安装过程注意由于selinux打开,smb不能正常工作。Windows不能够访问虚拟机,要关闭selinux才能正常访问。解决方法:vi/etc/sysconfig/selinuxSELINUX=enforcing–>…

  • redission设置过期时间_设置redis过期时间

    redission设置过期时间_设置redis过期时间需提前准备redis包:ServiceStack.Interfaces ServiceStack.Redis.Core StackExchange.Redis直接上代码:RedisClientclient=newRedisClient(“127.0.0.1”,6379);client.FlushAll();//1.key//2.value//3.过期时间

  • 诺基亚面向开发商推出下一代手机游戏平台

    诺基亚面向开发商推出下一代手机游戏平台转自:新浪游戏http://tech.sina.com.cn/t/2005-12-21/1748799015.shtml 北京时间12月21日消息,在下一代手机游戏研讨会上,芬兰移动通信巨头诺基亚公司首次向16家诺基亚第一批游戏开发商展示了其下一代手机游戏开发平台。下一代手机游戏研讨会于2005年12月1日到2日在赫尔辛基举行,于12月7日到8日在温哥华举行。 通过下一代手机游

  • 关于html5的PostMessage的用法总结

    关于html5的PostMessage的用法总结  大家都知道,网页直接传递数据可以使用ajax请求来完成,今天我总结下我学习的postMessage是如何完成跨页面请求数据的呢?首先,postMessage是html5新增的一个解决跨域的一个方法。那他是如何使用的呢?这里我把一个案例分享出来把。看下面的代码:test.html&lt;!DOCTYPEhtml&gt;&lt;html&gt;&lt;head&gt; &lt;titl…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号