原文内容来自于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

当服务机器已经按照上述配置部署完以后,则此时便可以直接在A服务器上,进行目录的挂载操作
 
1、由于上面也已经提到过目录的挂载于共享是基于RPC协议进行的具体NFS的实现,所以,此处A服务器作为挂载方,也应同时具备,RPC的应用功能,所以也应同时安装对应的 rpcbind 服务插件
 
此处安装rpcbind依赖,由于LZ此处A服务上,已经具备了rpcbind依赖,所以,此处并没有进行安装,(安装rpcbind时,最好也可以直接把 nfs-utils 同步安装下,后续再次作为共享方时,则也会方便很多)
yum -y install  rpcbind
 
执行mount命令,手动挂载NFS共享目录
 
使用mount命令,此处表示将IP为:172.16.36.14所共享的app目录,挂载到当前服务的 /app/ftdq_kbase/mnt 目录下
 
mount 172.16.36.14:/app /app/ftdq_kbase/mnt
 
修改本地 /etc/fstab文件,实现目录的自动加载(具体fstab的配置方式,可以 百科一下 )
 
[root@NFSClient ~]# vim /etc/fstab
......        //部分内容省略
1.1.1.1:/www    /var/www/html    nfs    defaults,_netdev 0 0
 
查看当前服务器所有的目录挂载点:
 
[root@xiaoi2017-897 dev]# df -ah
Filesystem         Size  Used Avail Use% Mounted on
/dev/sda3           91G   33G   54G  38% /
proc                  0     0     0    - /proc
sysfs                 0     0     0    - /sys
devpts                0     0     0    - /dev/pts
tmpfs               16G     0   16G   0% /dev/shm
/dev/sda1          190M   38M  142M  22% /boot
none                  0     0     0    - /proc/sys/fs/binfmt_misc
sunrpc                0     0     0    - /var/lib/nfs/rpc_pipefs
-- 此处便是上述所挂载的远程目录
172.16.36.14:/app   50G   26G   25G  51% /app/ftdq_kbase/mnt
 
参考链接:
 
yum 安装及rpm常用命令
mount 参数详情
 
 

Linux远程目录挂载的更多相关文章

  1. 使用sshfs将远程目录挂载到本地

    使用sshfs将远程目录挂载到本地 转自:http://blog.sina.com.cn/s/blog_6561ca8c0102vc2u.html 在Linux下我们通常使用ssh命令来登录远程Lin ...

  2. linux 下NFS远程目录挂载

    NFS 是Network File System的缩写,中文意思是网络文件系统.它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录.NFS客户端(一般为应用服务器,例如web ...

  3. Linux查看目录挂载点

    用命令 df 即可 # df /var/lib/ Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda3 135979984 669 ...

  4. linux远程目录共享

    一.环境介绍 1.服务器说明: 有两台服务器,(1)101报表服务器,上面是tomcat跑的原生FineReport报表系统,(2)103业务服务器,上面是具体的业务系统. 2.需求说明: 报表文件由 ...

  5. 通过nfs将centos目录挂载到windows 系统的磁盘上

    环境:centos8,windows7 1.在centos上安装nfs服务 yum -y install nft-utils 2.启动nfs服务 systemctl start nfs-server ...

  6. Linux安装sshfs挂载远程目录到本地及卸载

    挂载远程目录的方式很多,这里把sshfs记录一下备忘.Linux用sshfs挂载远程目录到本地 安装sshfs 在Ubuntu下,只需要使用 $ sudo apt-get install sshfs ...

  7. Linux使用sshfs挂载远程目录到本地

    1安装sshfs [root@iZwz9hy7gff0kpg1swp1d3Z ~]# yum install sshfs 2创建本地目录 [root@iZwz9hy7gff0kpg1swp1d3Z ~ ...

  8. 如何用ssh挂载远程目录

    如何用ssh挂载远程目录 标签: sshserver服务器linux网络 2011-06-24 10:05 2979人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. ...

  9. Ubuntu下使用sshfs挂载远程目录到本地(和Windows挂载盘一样)

    访问局域网中其他Ubuntu机器,在不同机器间跳来跳去,很是麻烦,如果能够把远程目录映射到本地无疑会大大方面使用,就像Windows下的网络映射盘一样.在Linux的世界无疑也会有这种机制和方式,最近 ...

随机推荐

  1. 简单聊一聊spring cloud stream和kafka的那点事

    Spring Cloud Stream is a framework for building highly scalable event-driven microservices connected ...

  2. usermod命令、用户密码管理、mkpasswd命令 使用介绍

    第3周第2次课(4月3日) 课程内容:3.4 usermod命令3.5 用户密码管理3.6 mkpasswd命令 3.4 usermod命令 usermod可以修改用户的UID和GID 命令使用格式: ...

  3. C语言博客作业11

    一.本周教学内容&目标 第5章 函数 要求学生掌握各种类型函数的定义.调用和申明,熟悉变量的作用域.生存周期和存储类型. 二.本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求 ...

  4. MATLAB中cell函数用法

    cell元包是matlab中提供的一种数据类型,功能强大. 关于cell的创建: 1.跟一般创建举证一样,直接使用C = {A B D E}这种形式,不过这里把"[]"改成了}&q ...

  5. 第八次作业-非确定的自动机NFA确定化为DFA

    NFA 确定化为 DFA 子集法: f(q,a)={q1,q2,…,qn},状态集的子集 将{q1,q2,…,qn}看做一个状态A,去记录NFA读入输入符号之后可能达到的所有状态的集合. 步骤: 1. ...

  6. 使用ModelArts自动学习完成猫狗声音分类

    准备数据 点击下载猫狗声音数据集至本地: 解压,文件包结构大概如下图所示 data ├── test │ ├── cats │ │ ├── cat_20.wav │ │ ├── ...... │ │ ...

  7. 【nodejs原理&源码赏析(7)】【译】Node.js中的事件循环,定时器和process.nextTick

    目录 Event Loop 是什么? Event Loop 基本解释 事件循环阶段概览 事件循环细节 timers pending callbacks poll阶段 check close callb ...

  8. Windows下利用IIS建立网站并实现局域网共享

    https://blog.csdn.net/qq_41485414/article/details/82754252 https://www.cnblogs.com/linuxprobe-sarah/ ...

  9. java之扩展运算符

    java中的扩展运算符为+=.-=./=.%=.*= 当使用扩展运算符时,变量在参与赋值运算时会把结果自动强制转换为当前变量的类型,比如: public class Test{ public stat ...

  10. tableview封装使用

    下载地址 使用方法    1. #import "ZFTableView.h"   2.在需要使用的地方添加ZFTableView 如下       ZFTableView *ta ...