• NFS


    简介:

        NFS是network file system的缩写及网络文件系统。nfs主要功能是通过局域网让不同的主机之间可以共享文件或目录;nfs系统和Windows网络共享、网络驱动器类似,只不过Windows用于局域网nfs用于企业集群架构中;如果是大型网站,会用到更复杂的分布式文件系统FastDFS(音频,小说,视频),glustrfs(ISO镜像),HDFS

    nfs(2049端口):

        解决前端web静态资源的共享

        解决前端web静态资源一致性

        解决前端web磁盘空间的浪费

        并不能解决网站访问的延时,如果想解决访问延时:静态资源走CDN

    nfs实现原理:

    1. 用户进程访问NFS客户端使用不同的函数对数据进行处理
    2. NFS客户端通过TCP/IP的方式传递给NFS服务端
    3. NFS服务端接收到请求后,会先调用portmap进程进行端口映射
    4. nfsd进程用于判断NFS客户端是否拥有连接NFS服务端
    5. Rpc.mount进程判断客户端是否有对应的权限进行验证
    6. idmap进程实现用户映射和压缩
    7. 最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,由内核驱动硬件

        注意:rpc是一个远程过程调用,那么使用nfs必须有rpc服务

    nfs安装:

        yum install nfs-utils -y        [默认安装rpcbind并启动]

    配置:

        rpm -qc nfs-utils

        vim /etc/exports

        /data 172.16.1.0/24(rw,sync,all_squash)

        mkdir /data

        chown -R nfsnobody,nfsnobody /data

    启动:

        systemctl start nfs

        systemctl enable nfs

    检查:

        cat /var/lib/nfs/etab

    客户端:

        安装

        yum install nfs-utils -y

    检查NFS是否有共享的内容

        showmount -e 172.16.1.31

    挂载:

        mount -t nfs 172.16.1.31:/data /opt

        echo "172.16.1.31:/data /opt nfs defaults 0 0">>/etc/fstab

        mount -a #验证fstab开机启动是否填写错误

    配置文件参数详解

        rw            读写权限

        ro            只读权限

        root_squash        当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户(不常用)

        no_root_squash    当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员(不常用)

        all_squash        无论NFS客户端使用什么账户访问,均隐射为NFS服务器的匿名用户

        no_all_squash    无论NFS客户端使用什么账户访问,都不进行压缩

        sync            同时将数据写入到内存与硬盘中,保证不丢失数据

        async            优先将数据保存到内存,然后写入硬盘,这样效率更高,但可能丢失数据

        anonuid        配置all_squash使用,指定NFS的用户UID,必须存在系统

        anongid        配置all_squash使用,指定NFS的用户GID,必须存在系统

     

    nfs存储优点

    1. NFS文件系统简单易用、方便部署、数据可靠、服务稳定、满足中小企业需求
    2. NFS文件系统内存的数据都在文件系统之上,所有数据都是能看得见

    NFS存储局限

    1. 存在单点故障,如果构建高可用维护麻烦
    2. NFS数据明文,并不对数据做任何检验
    3. 客户端挂载NFS服务没有密码验证,安全性一般(内网使用)

    NFS应用建议

    1. 生产场景应将静态数据尽可能往前端推,减少后端存储压力
    2. 必须将存储里的静态资源通过CDN缓存jpg/png/mp4/avi/css/js
    3. 如果没有缓存或架构本身示例遗留问题太大,在多存储也无用
  • 相关阅读:
    电梯调度算法---结对项目小进展
    程序的单元测试—软件工程课上所获得的感悟
    软件工程之个人项目--词频统计
    c语言中文件的读写函数
    9、访问或添加属性
    5、AOP例子(切面,通知,切入点)
    6、AOP相关概念
    4、SSH集成笔记
    3、整合SSH遇到的问题
    1、各个包的作用
  • 原文地址:https://www.cnblogs.com/yexiuer/p/10802143.html
Copyright © 2020-2023  润新知