zoukankan      html  css  js  c++  java
  • NFS网络文件系统的配置

    NFS网络文件系统的配置

    NFS网络文件系统

    NFS(network file system)网络文件系统。一种使用于分散式文件协定,有SUN公司开发。功能是通过网络让不同的机器、不同的操作系统能够分享个人数据,让应用程序通过网络可以访问位于服务器磁盘中的数据。

    NFS在文件传送或信息传送的过过程中,依赖于RPC协议。RPC,远程过程调用(Remote Procedure Call),是使客户端能够执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,就是因为NFS使用了RPC提供的传输协议,可以说NFS就是使用PRC的一个程序。

    网络文件系统的作用:

    可以用于多台服务器之间的文件共享;

    可以给无法扩容的服务器,增加存储空间。

    实验环境:

    nfs01    10.0.0.31                    nfs服务端

    Web01/ Web02    10.0.0.7/10.0.0.8    nfs客户端

    1、安装

    每台机器均需要安装相关软件

    yum install rpcbind nfs-utils -y或yum install nfs-utils –y    

    yum会自动解决安装rpcbind依赖包

     

    2、配置nfs服务端

    man exports查看配置参数介绍

    NFS权限参数配置(红色标记为常用参数)

    ro 只读访问

    rw 读写访问

    sync 所有数据在请求时写入共享(同步)1->2->3->2->1

    async NFS在写入数据前可以相应请求(异步)1->2->1    2->3->2相对安全性较低,时间较短

    secure NFS通过1024以下的安全TCP/IP端口发送

    insecure NFS通过1024以上的端口发送

    wdelay 写延迟,如果多个用户要写入NFS目录,则归组写入(默认)

    no_wdelay 不写延迟,如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。

    hide 在NFS共享目录中不共享其子目录

    no_hide 共享NFS目录的子目录

    subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)

    no_subtree_check 和上面相对,不检查父目录权限

    all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录(为了确保安全常用)

    no_all_squash 保留共享文件的UID和GID(默认)

    root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认), root_squash 登入NFS主机,使用该共享目录时相当于该目录的拥有者。但是如果是以root身份使用这个共享目录的时候,那么这个使用者(root)

    的权限将被压缩成为匿名使用者,即通常他的UID与GID都会变成nobody那个身份

    no_root_squash root用户具有根目录的完全管理访问权限 ,使用该共享目录时相当于该目录的拥有者,如果是root的话,那么对于这个共享的目录来说,他就具有root的权限,这个参数『极不安全』,不建议使用

    anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID

    anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID

    #若指定匿名uid和gid权限映射,则需要修改配置文件对应的相应用户权限

    nfs上的相应用户和其他机器的另外一个用户id号相同,则映射成本机的相应用户,实现不同机器只有自己的权限

    vim /etc/exports

    /backup 192.168.1.0/24(rw,async,no_root_squash,no_all_squash)

    /backup 192.168.1.7/32(rw,async,no_root_squash,no_all_squash)

    /backup 192.168.1.8/32(rw,async,no_root_squash,no_all_squash)

    同一个配置文件对多个客户端以不同权限

    /backup 192.168.1.8/32(rw,async,no_root_squash,no_all_squash) 192.168.1.7/32(ro)

    关于权限的分析

    1. 客户端连接时候,对普通用户的检查

      a. 如果明确设定了普通用户被压缩的身份,那么此时客户端用户的身份转换为指定用户;

      b. 如果NFS server上面有同名用户,那么此时客户端登录账户的身份转换为NFS server上面的同名用户;

      c. 如果没有明确指定,也没有同名用户,那么此时 用户身份被压缩成nfsnobody;

    2. 客户端连接的时候,对root的检查

      a. 如果设置no_root_squash,那么此时root用户的身份被压缩为NFS server上面的root;

      b. 如果设置了all_squash、anonuid、anongid,此时root 身份被压缩为指定用户;

      c. 如果没有明确指定,此时root用户被压缩为nfsnobody;

    d. 如果同时指定no_root_squash与all_squash 用户将被压缩为 nfsnobody,如果设置了anonuid、anongid将被压缩到所指定的用户与组;

     

    3、服务端启动

    /etc/init.d/rpcbind start

    /etc/init.d/nfs start

    rpcinfo -p localhost    查看此时rpc服务上面是否有端口注册

     

    4、客户端启动

    /etc/init.d/rpcbind start

     

    5、客户端挂载使用

    showmount    命令用于查询NFS服务器的相关信息

    -e或--exports显示NFS服务器的输出清单

    showmount -e 192.168.1.31        查看服务端下那些目录可以挂载

    mount -t nfs 192.168.1.31:/backup /mnt    挂载        -t指定文件系统的类型

    df -h        检查挂载情况

     

    6、rpcbind与nfs的关系

    netstat -lntup|grep -v sshd|grep -v rpcbind|awk -F "[: ]+" '{print $4,$5}'|sed 's#0.0.0.0##'|grep -Eo '[0-9]+'|sort -n|uniq    #查看nfs相关端口

    NFS服务端、RPC协议、客户端三者可以理解为房源、中介、租客之间的关系:

     

     

    博主原创文章,转载请务必注明出处

  • 相关阅读:
    完成后台管理系统功能(三)查询商品信息列表
    完成后台管理系统功能(二)有关SSM的整合
    实现后台管理系统功能(一)maven工程的建立
    开始‘京西商城’的电商项目(SSM)
    到此,使用struts2+hibernate实现登陆以及学生列表的增删改查 结束 -------------------------------------------------------
    chrome 中 preview 和 response 数据不一致
    单元测试执行过程中忽略出错的单元测试
    使用Maven 构建时跳过单元测试
    使用 AutoIt3 加密解密数据
    SpringBoot 启动流程
  • 原文地址:https://www.cnblogs.com/ssgeek/p/9220909.html
Copyright © 2011-2022 走看看