原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接:https://app.yinxiang.com/shard/s17/nl/19391737/ad99ab1d-1040-45e0-aaf6-f5d69c247862
问题:
1、如何使A服务器的某个目录挂载到B服务器的某个目录下,使其达到B服务下的目录文件一旦变更,可以实时的在A服务的目录下体现出来; Lnux的解决方式 1、首先将B服务器的该目录,设置为共享文件夹(只有将其设置为共享文件夹后才能再另外的机器上进行该目录的远程连接访问,共享文件夹这个概念与windows 很有相似之处) 2、A服务器则通过 mount 的方式,指定对应的远程主机所抛出来的共享文件夹进行连接 linux如何实现共享文件夹的效果呢? 1、A服务器新创建的文件夹远程挂载到B服务器的某个 10G以上大小内容的文件夹下后,实际情况下A服务器的磁盘并没有因为挂载了10G的远程文件,而被消耗掉10G的磁盘空间,这说明实际情况下的挂载,并非将远程服务的文件实时Copy到目标文件夹中,当然这也不符合共享文件夹的特征; 那么既然是已经挂载了远程目录后,此时A服务访问自身文件夹时,是如何实时展示B服务的文件夹内容的呢? 原因是,A服务每次对于自身挂载文件夹的访问,实际上都是发送了一次新的RPC请求,请求目标服务器,将其对应的目录数据实时返回到A服务器的文件展示当中;(Linux中存在这样一个应用即:Network File System 即 NFS 网络文件系统,一种使用于分散式文件系统的协定,让应用程序在客户端通过网络访问位于磁盘中的数据,是在类Unix系统间实现对应的磁盘文件共享的一种方法,) 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是负责负责信息的传输。 所以,如果要实现共享文件夹的效果,那么首先需要安装NFS,但由于NFS是依赖于RPC协议来进行的协议传输,所以,此时需同时安装,NFS 和 RPC 两个应用程序; 安装NFS和RPC(安装nfs-utils,rpcbind) yum -y install nfs-utils rpcbind 设置共享目录 NFS的配置文件为/etc/exports,文件内容默认为空(无任何共享)。在exports文件中设置共享资源时, 记录格式为 "目录位置 客户机地址(权限选项)" 其中客户机地址于权限列表的括号() 中间不能有空格; 如下 例子则表示:将 /app 目录文件夹共享到 172.16.8.97的服务网段使用,且允许读写操作 vim /etc/exports /app 172.16.8.97(rw,sync,no_root_squash) 客户机地址 可以是 : 主机名、IP地址、网段地址、或者"*、?"通配符; 权限选项:rw表示允许读写(ro为只读) sync表示同步写 no_root_squash表示当前客户机以root身份访问时,赋予本地root权限(默认是root_squash,将作为nfsnobody用户降权对待) (NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。) 给多个地址授权 /app 172.16.8.97(rw,sync,no_root_squash) 172.16.8.98(rw,sync,no_root_squash) 给某个网段内所有IP授权 /app 172.16.8.*(rw,sync,no_root_squash) 启动NFS服务 配置完上述的目录文件配置后,则启动NFS服务; 先启动 RPC服务,再启动 NFS 服务 service rpcbind start service nfs start 启动完对应的rpcbind和nfs后,可以使用ps查看下对应的进程信息 [root@xiaoi-3614 sysconfig]# ps -ef|grep rpcbind root 4552 1765 0 18:34 pts/1 00:00:00 grep --color=auto rpcbind rpc 31396 1 0 16:58 ? 00:00:00 /sbin/rpcbind -w [root@xiaoi-3614 sysconfig]# ps -ef|grep nfs root 4565 1765 0 18:34 pts/1 00:00:00 grep --color=auto nfs root 32210 2 0 17:11 ? 00:00:00 [nfsd4_callbacks] root 32216 2 0 17:11 ? 00:00:00 [nfsd] root 32217 2 0 17:11 ? 00:00:00 [nfsd] root 32218 2 0 17:11 ? 00:00:00 [nfsd] root 32219 2 0 17:11 ? 00:00:00 [nfsd] root 32220 2 0 17:11 ? 00:00:00 [nfsd] root 32221 2 0 17:11 ? 00:00:00 [nfsd] root 32222 2 0 17:11 ? 00:00:00 [nfsd] root 32223 2 0 17:11 ? 00:00:00 [nfsd] 查看所指定IP机器,当前已发布的NFS共享目录 [root@xiaoi-3614 sysconfig]# showmount -e 172.16.36.14 Export list for 172.16.36.14: /app 172.16.8.97