• 网络服务--NFS服务


    1.概述

    NFS全称network file system 网络文件系统,是通过网络存储和组织文件的一种方法和机制;一般用来存储共享视频、图片等静态的数据

    2.NFS和RPC的关系

    NFS服务器是使用随机端口来进行数据传输,通过远程过程调用RPC协议,也就是说RPC服务会统一管理NFS服务地端口。
    启动NFS之前,要先开启RPC服务(centos6之前叫portmap),否则NFS就无法向RPC进行注册,一般修改NFS服务后,可以直接使用reload重新加载

    3.NFS Server和NFS Client的通讯过程

    (1)首先服务器端开启RPC服务,并开启111端口
    (2)启动NFS服务,并向RPC服务进行端口的注册
    (3)客户端启动RPC服务,向服务端的RPC服务请求服务器的NFS端口
    (4)服务端的RPC服务反馈NFS服务的端口信息给客户端
    (5)客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据传输

    4.NFS协议和软件

    (1)协议:
    RPC(remote procedure call protocol)--远程过程调用协议
    (2)软件:
    nfs-utils(包括NFS命令和监控程序)
    (3)rpcbind:支持安全NFS--RPC服务的连接

    5.NFS的守护进程

    nfs:基本的NFS守护进程,主要功能是管理客户端能否登录服务器
    rpcbind:主要功能是端口映射

    6.NFS服务器的配置

    /etc/exports文件内容格式:

    共享目录 客户端(访问权限,用户映射,其他)
    

    a.共享目录:服务器共享给客户端使用的目录
    b.客户端常用指定方式:

    指定ip地址:10.0.0.101
    指定子网内所有主机:10.0.0.0
    指定域名的主机:www.ccku.cn
    指定域名中的所有主机:*.ccku.cn
    所有主机:*
    

    c.访问权限

    只读:ro
    读写:rw
    

    用户映射选项:

    root_squash:将root用户访问映射为匿名(nfsnobody)用户uid和gid,默认生效
    no_root_squash:保留管理员的权限,以服务器管理员的权限管理
    all_squash:将远程访问的用户及所属组都映射为指定uid、gid的匿名用户
    anonuid:匿名用户的uid;anongid:匿名用户的gid
    #例如:/data 10.0.0.0(rw,all_squash,anonuid=1024,anongid=1024)
    

    其他选项:

    sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
    async:将数据先保存在内存缓冲区中,必要时才写入磁盘
    
    7.实验部署

    (1)将NFS服务器的/data共享给10.0.0.0网段,rw权限

    # vim /etc/exports 
    /data 10.0.0.0/24(rw)
    

    #重启rpcbind和nfs服务

    service rpcbind restart
    service nfs restart
    


    #客户端查看共享状态

    (2)客户端挂载nfs服务器共享目录
    #mount NFS服务器IP:/共享目录 /本地挂载点

    (3)nfs共享权限和访问控制
    a.客户端使用root用户创建文件,所有者和所属组是nfsnobody

    b.客户端使用普通用户创建文件,所有者和所属组是nobody或普通用户
    如果明确设定了普通用户的映射用户身份,那么客户端用户的身份转换为映射用户
    如果nfs server上面有同名用户,那么此时客户端登录账户的身份转换为nfs server上面的同名用户
    (4)卸载和自动挂载
    卸载:客户端卸载:umount /挂载点;
    停止服务器端的共享:

    exportfs -au
    

    自动挂载:

    vim /etc/fstab
    #格式:	nfs服务器ip:/共享目录 /挂载点 nfs defaults 0 0
    

    8.NFS相关命令

    exportfs:

    -a:全部挂载或卸载/etc/exports中的内容
    -r:重新读取/etc/exports中的信息,并同步更新/etc/exports、/var/lib/nfs/xtab
    -u:卸载单一目录(和-a一起使用:卸载所有/etc/exports文件中的目录)
    -v:显示详细的信息
    

    例子:
    exportfs -au:卸载所有共享的目录
    exportfs -ar:重新共享所有目录并输出详细信息

    rpcinfo -p :可以查看出rpc开启的端口所提供的程序有哪些

    作者:ccku
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题或建议,请多多赐教,非常感谢。
  • 相关阅读:
    四、运算符
    三、Golang 变量
    二、Golang的概述
    一、Golang开山篇
    部分技术使用
    Teleport_实战
    zabbix_浅谈
    渗透测试工具集合(漏洞练习平台)
    常见开源监控软件的介绍
    Ansible-大保健
  • 原文地址:https://www.cnblogs.com/ccku/p/13509500.html
Copyright © 2020-2023  润新知