zoukankan      html  css  js  c++  java
  • Centos7部署NFS实战

    NFS是什么

    NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS,NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
    运行模式: C/S 模式
    端口:CentOS7以NFSv4作为默认版本,NFSv4使用TCP协议(端口号是2049)和NFS服务器建立连接。

    典型应用场景

    有个单体应用现在需要对其进行横向扩展,但是由于这个应用比较老且在开发之初未考虑其扩展性,文件与应用数据都是存在一台服务器上。
    这样在对应用扩容时就不能简单的直接将应用部署多台,会导致应用文件路径不正确。我们先需要搭建一套分布式文件服务器如FastDFS,然后对所有操作文件的接口进行修改调整。改动量还是相当大的,如果需要快速上线直接搭建一套NFS网络文件系统即可。

    • 首先利用NFS搭建文件Server端
    • 然后在应用上也安装NFS,并将应用文件目录/app/file挂载到Server端指定目录/app/file,这样在应用上上传文件后,文件会自动同步到Server端
    • 将应用部署多台进行横向扩容,并全部按照步骤2进行文件挂载。这样文件也都会同步到所有的应用服务器上。

    由于文件在所有应用服务器上都存在一份,应用服务器读取其他服务器上的文件就跟在本地读取一样,应用端代码不需要进行改造,这样就实现了应用的快速扩容。

    接下来我们就来看一下使用Centos7部署NFS的详细过程。

    部署过程

    Server端部署

    安装NFS

    • 检查是否安装NFS
      rpm -qa nfs-utils rpcbind

    • 关闭防火墙

    ## 查看防火墙状态
    systemctl status firewalld
    ## 关闭防火墙
    systemctl stop firewalld
    
    • 安装NFS
      yum install nfs-utils rpcbind -y

    • 检查安装结果
      rpm -qa nfs-utils rpcbind

      出现上图所示则表明安装成功

    配置NFS

    • 创建配置文件
      vi /etc/exports

    • 建立同步文件夹
      mkdir -p /app/file

    • 对同步文件夹进行授权
      chown -R nfsnobody.nfsnobody /app/file/

    • 在配置文件中加入如下配置

    /app/file *(rw,sync)
    

    执行exportfs –rv让配置立即生效

    • 将NFS和rpcbind加入开机启动
    systemctl enable nfs
    systemctl enable rpcbind
    
    • 启动NFS和rpcbind
    systemctl start nfs
    systemctl start rpcbind
    
    • 查看NFS启动状态
      systemctl status nfs

    客户端配置

    • 关闭防火墙
    ## 查看防火墙状态
    systemctl status firewalld
    ## 关闭防火墙
    systemctl stop firewalld
    
    • 安装NFS软件包,并把NFS服务设为开机启动
    ## 安装NFS
    yum install nfs-utils rpcbind  -y
    ## 将NFS加入开启启动
    systemctl enable nfs
    ## 将rpcbind加入开启启动
    systemctl enable rpcbind
    ##启动NFS
    systemctl start nfs 
    ## 启动RPCbind
    systemctl start rpcbind  		      
    
    • 将应用文件夹挂载到服务器上
      mount –t nfs 172.31.63.132:/app/file /app/file
      挂载完成后可以使用mount | grep file命令查看挂载情况

    • 取消挂载

    sudo fuser -m -v -i -k /app/file
    sudo umount /app/file
    

    直接使用 umount /app/file 可能会报“Device is busy”错误。

    好了,各位朋友们,本期的内容到此就全部结束啦,能看到这里的同学都是优秀的同学,下一个升职加薪的就是你了!

    如果觉得这篇文章对你有所帮助的话请扫描下面二维码加个关注,当然也欢迎加我微信,拉你进技术交流群!

    “转发” 加 “在看”,养成好习惯!咱们下期再见!

    在这里插入图片描述

  • 相关阅读:
    Scrapy 扩展中间件: 针对特定响应状态码,使用代理重新请求
    Scrapy 扩展中间件: 同步/异步提交批量 item 到 MySQL
    Scrapy 隐含 bug: 强制关闭爬虫后从 requests.queue 读取的已保存 request 数量可能有误
    Scrapyd 改进第二步: Web Interface 添加 STOP 和 START 超链接, 一键调用 Scrapyd API
    简单示例理解神闭包
    ejs 模板使用方法
    我使用的开源组件汇总,以备学习使用
    了不起的Node.js--之五 TCP连接
    Windows7下Java运行时环境搭建
    了不起的Node.js--之四
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13295901.html
Copyright © 2011-2022 走看看