实现一台服务器读取另一台远程服务器的文件

文章描述了一种通过NFS挂载解决跨服务器文件读取问题的方案。当项目在A、B两台服务器上运行,由于负载均衡导致PDF文件生成与回写可能出现不一致,作者提出了将B服务器的PDF文件目录挂载到A服务器的方法。这涉及安装NFS相关软件,设置共享目录,修改配置文件并重启服务,以及设置开机自动挂载,以确保A服务器能读取到B服务器的文件。
摘要由CSDN通过智能技术生成

最近项目中出现下面这种情况:
项目部署在两台服务器上A,B,执行流程时有两个节点操作,其中一个节点生成pdf文件,另一个节点将文件回写到流程中;项目运行过程中发现有的流程没有成功将文件回写,排查发现因为负载均衡策略,生成pdf文件有可能在A,也有可能在B,同时回写到流程的请求也可能路由到A或B;这样就会出现回写到流程的请求到A,但是文件在B上,导致回写失败;
那么如何让一台服务器读取到另一台远程服务器的文件呢?由此想到了文件挂载。
下面是具体的操作过程和可能遇到的问题:

要实现将B服务器上的文件挂载到A,可以在A服务器上执行下面命令

  1. mount -t nfs 【B】:【Bpdf】 【Apdf】
    将【B】替换为B服务器ip地址,【Bpdf】替换为B服务器pdf文件所在目录,【Apdf】替换为A服务器上pdf文件所在目录

  2. 如果上面命令执行时出现mount: unknown filesystem type '-nfs’错误,需要安装ntfs-3g;
    网上有通过命令来安装yum install ntfs;
    还有通过下载上传压缩文件安装,这边用的就是这种;

    链接: https://pan.baidu.com/s/11KwKAOvFhW9jBYWHUnoH0Q 提取码: qw9h

下载文件后把压缩文件ntfs-3g_ntfsprogs-2021.8.22.tgz上传到服务器上;

  • 解压缩文件:tar -zxvf ntfs-3g_ntfsprogs-2021.8.22.tgz
  • 进入目录:cd ntfs-3g_ntfsprogs-2021.8.22
  • 编译准备:./configure
  • 编译:make
  • 编译安装:make installl
  1. 设置共享目录
    需要将服务器B上的pdf文件所在的目录设置为共享目录,执行以下命令
 vim /etc/exportsBpdf】 【B(rw,sync,no_root_squash)
权限选项:rw表示允许读写(ro为只读)
#     sync表示同步写
#      no_root_squash表示当前客户机以root身份访问时,赋予本地root权限(默认是root_squash,将作为nfsnobody用户降权对待)  (NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。)

将【B】替换为B服务器ip地址,【Bpdf】替换为B服务器pdf文件所在目录

4.重启下nfs服务

/etc/init.d/rpcbind restart
/etc/init.d/nfs restart
  1. 重新执行步骤1的命令
    这样就能实现将A服务器读取本地pdf文件所在目录时,也能读取到B服务器对应目录下的文件;

6.设置开机自动挂载

vim /etc/fstab

【B:Bpdf】   【Apdf】    nfs    defaults  0 0

将【B】替换为B服务器ip地址,【Bpdf】替换为B服务器pdf文件所在目录,【Apdf】替换为A服务器上pdf文件所在目录
7.查看是否挂载成功

mount -l
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值