• 4、NFS


    一、NFS简介

    4.1.1:什么是NFS

    • NFS(Network File System,网络文件系统)是由SUN公司开发,并于1984年推出的技术,通过使用NF,用户和程序可以向访问本地文件一样访问远程系统上的文件
    • 比如一组致力于同一工程的用户,可以通过使用NFS文件系统中的一个挂在为/it的共享目录来存取该工程项目的文件
    • NFS服务本身并没有提供文件传递的协议,但是NFS却能让我们进行文件共享,其中的原因,就是NFS使用RPC协议。所以只要用到NFS的地方,不管是客户端还是服务端,都要启动RPC服务。
    • 可以这么理解NFS和RPC:NFS是一个文件系统,而RPC负责信息的传输

    4.1.2:NFS协议

      客户端使用NFS可以透明的访问服务器中的文件系统,这不同于提供文件传输的FTP协议。FTP会产生文件的一个完整副本。NFS只访问一个进程引用文件部分,并且一个目的就是使得这种方式透明。

    二、NFS服务器安装和配置

    4.2.1:安装NFS服务器

      yum install nfs-utils nfs-utils-lib

    4.2.2:/etc/nfsmount.conf文件详解

    # [ MountPoint "Mount_point" ]

    # command. Example:

    # [ MountPoint "/export/home" ]

    # background=True

    # [ Server "Server_Name" ]

    # Example:
    # [ Server "nfsserver.foo.com" ]
    # rsize=32k
    # wsize=32k

    # Defaultvers=4          # 定义默认用于启动协商与服务器的协议版本
    # Nfsvers=4            # 服务器支持的版本
    # Defaultproto=tcp       # 定义默认用于启动协商与服务器的网络协议
    # Proto=tcp           # 设置服务器支持指定的网络协议
    # Retrans=2           # 产生超市前,要求隐退的次数
    # Retry=2             # 重试挂载的分钟数
    # acregmin=30
    # acregmin=60
    # acregmin=30
    # acregmin=60
    # Acl=False
    # Ac=True
    # Background=False       # 是否在后台挂载
    # Cto=True
    # Foreground=True
    # Hard=True
    # Soft=False
    # Lock=True # 启用文件锁
    # Rdirplus=True
    # Rsize=8k           # 最大读取尺寸
    # Wsize=8k           # 最大写入尺寸
    # Bsize=8k           # 服务器最大块大小
    # Sloppy=False
    # Sharecache=True
    # Timeo=600         # 客户端等待来自服务器的响应之前重传请求时间量
    # actimeo=30        # 设置所有属性时间为相同的时间
    # mountport=4001      # 服务器挂载端口
    # mountproto=tcp       # 服务器挂在协议
    # mountvers=3        # 服务器挂载版本
    # mounthost=hostname    # 服务器挂载主机
    # Port=2049          # NFS服务器的端口号
    # Sec=sys


    4.2.3:/etc/exports文件详解

    /etc/exports文件控制着NFS服务器要导出的共享目录以及访问控制列表。/etc/exports文件默认是空白的,没有任何内容。也就是说NFS服务器默认不共享任何目录
    文件格式如些
    共享目录 客户端(导出选项)

    1.共享目录

    必须是绝对路径,而且必须先创建好,该目录为NFS服务器上的共享目录并提供给客户端使用
    使用以下命令创建
    [root@C1 ~]#mkdir /it
    [root@C1 ~]#touch /it/a


    2.客户端


    客户端是指可以访问NFS服务器共享目录的客户端计算机,可以使一个主机、一个网段、甚至一个域
    指定方式
    客户端 192.168.9.6
    网段 192.168.9.0/24、192.168.0.0/255.255.255.0
    网段 192.168.9.*
    域名客户端 linux.p-p.cn
    指定域内所有客户端 *.p-pp.cn
    素有客户端 *


    3.导出选项


    ro:只读
    rw:读写
    sync:同步,数据同步写到内存与硬盘中
    async:异步,数据先暂存内存
    root_squash: 将root用户映射为来宾账号
    no_root_squash: 有root的权限,不建议使用
    all_squash: 全部映射为匿名用户
    anonuid, anongid: 指定映射的匿名用户的UID和GID
    insecure # 允许使用1024以上的端口访问,这个很有用,比如内网通过路由器挂载公网的NFS服务器,就需要启用这个
    ……


    4.2.4:配置实例


    1.允许某台主机以只读挂载
    [root@C1 ~]#vim /etc/exports
    /it www.p-pp.cn(ro,sync)
    2.允许某台主机读写挂载
    [root@C1 ~]#vim /etc/exports
    /it 192.168.9.6(rw,sync)
    3.允许所有主机只读权限挂载
    使用NFS服务器共享目录的用户都将映射为匿名用户,匿名用户将使用UID和GID为65534的系统用户(必须事先存在)
    [root@C1 ~]#vim /etc/exports
    /it *(ro,all_squash,aninuid=65534,nongid=65534)
    4.允许某一网段只读挂载
    [root@C1 ~]#vim /etc/exports
    /it 192.168.9.0/24(ro) 192.168.10.0/24(ro)
    5.允许某一网段只读挂载
    并将root用户映射为匿名用户
    [root@C1 ~]#vim /etc/exports
    /it 192.168.9.*(ro,root_squash)
    6.允许某一域的指定客户端以www开头的p-pp.cn域读写权限挂载
    [root@C1 ~]#vim /etc/exports
    /it www*.p-pp.cn(rw)
    7.允许指定读写挂载
    [root@C1 ~]#vim /etc/exports
    /it c[1-10].p-pp.cn(rw)
    4.2.5:控制NFS服务
    start、status、restart、stop
    chkconfig nfs on

    三、管理NFS共享目录


    4.3.1:维护NFS共享目录


    exportfs命令可以导出NFS服务器上的共享目录、显示共享目录、后者不导出共享目录

    exportfs [选项] [目录]

    -a:导出或不导出所有的目录

    -v:显示导出列表的同时,也显示导出选项的列表

    -u:不导出指定的目录。当和-a联用时,不导出所有的目录

    -i:忽略/etc/exports文件,只使用默认选项和命令行上给出的选项

    -f:指定一个新的导出文件,而不是/etc/exports文件

    -r:重新导出所有的目录

    -o <选项>:指定导出选项列表


      例4.1:显示NFS服务器上的共享目录以及导出选项信息

    [root@C1 ~]#exportfs -v

    /it www.p-pp.cn(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)

    例4.2:重新导出NFS服务器上所有共享目录

    [root@C1 ~]#exportfs -rv

    exporting www.p-pp.cn:/it

    例4.3:不导出NFS所有共享目录

    [root@C1 ~]#exportfs -au

    [root@C1 ~]#exportfs -v # 没有任何的输出

    例4.4:不导出NFS服务器上指定的共享目录/it

    [root@C1 ~]#exportfs -u www.p-pp.cn:/it

    [root@C1 ~]#exportfs -v

    例4.5:将it目录导出共享给www.p-pp.cn,允许匿名写入

    [root@C1 ~]#exportfs -o async,rw www.p-pp.cn:/it

    几个配置示例:

    exportfs -o async,rw,insecure 1.194.17.241:/it # insecure:允许1.194.17.241使用1024以上的端口访问

    exportfs -o anonuid=32,anungid=32 www.p-pp.cn:/it # www.p-pp.cn挂载时,映射为uid32的用户和gid32的组

    exportfs -o rw,sync,no_root_squash www.p-pp.cn:/it # www.p-pp.cn挂载时,root用户不映射为匿名用户


    4.3.2:查看NFS共享目录信息

    showmunt命令可以显示NFS服务器的挂挂载信息

    showmount [选项] [NFS服务器]

    -a:同时显示客户端主机名或IP地址以及挂载的目录

    -e:显示NFS的导出列表

    -d:只显示已经被挂载的NFS共享目录信息

    例4.6:查看NFS服务器C1.p-pp.cn上的共享信息

    [root@www ~]#showmount -e C1.p-pp.cn # 如果是阿里云云服务器,记得本地关了防火墙之后,进入控制台,添加安全规则后,才可以显示

    4.3.3:/var/lib/nfs/etab文件

    查看服务器端的/var/lib/nfs/etab,获取NFS服务器共享目录的详细信息

    [root@C1 ~]#cat /var/lib/nfs/etab

    /it www.p-pp.cn(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,ro,secure,root_squash,no_all_squash)


    四、客户端挂载

    4.4.1:挂载和卸载NFS

    1.安装nfs-utils

    2.查看:showmount -e C1.p-pp.cn

    3.挂载和卸载

    mount -t nfs [NFS服务器IP地址或主机名:NFS共享目录] [本地挂载目录]

    挂载C1.p-pp.cn的/it共享目录到本地目录的/mnt/it

    mount -t nfs C1.p-pp.cn:/it /mnt/it/

    卸载

    umount /mnt/it/

    4.使用tcp挂载NFS

        mount -o rw,tcp -t nfs C1.p-pp.cn:/it /mnt/it

    4.4.2开机自动挂载NFS

      echo "C1.p-pp.cn:/it /mnt/it nfs rsize=8192,wsize=8192,timeo=14,innr" >>/etc/fstab

    五、高级配置

    4.5.1:NFS系统的自动挂载

    1.安装autofs

      yum install autofs

    2.创建本地挂载点

      mkdir /mnt/it

    3.编辑//etc/auto.master文件,添加一行

      ……

      /mnt /etc/auto.nfs

    4.编辑/etc/auto.nfs

      it -fstype=nfs C1.p-pp.cn:/it

    5.systemctl start autofs

    6.ls /mnt/it

    4.5.2:/etc/sysconfig/nfs详解

    #MOUNTD_NFS_V2="no"

    #MOUNTD_NFS_V3="no"

    #RQUOTAD="/usr/sbin/rpc.rquotad"

    #RQUOTAD_PORT=875       # 设置rpc.rquotadd监听的端口

    #RPCRQUOTADOPTS=""

    #LOCKDARG=

    #LOCKD_TCPPORT=32803     # rpc.lockd监听的tcp端口

    #LOCKD_UDPPORT=32769     # rpc.lockd监听的udp端口

    #RPCNFSDARGS="-N 2 -N 3"

    #RPCNFSDARGS="-N 4"

    #RPCNFSDCOUNT=8       # 要启动NFS进程的数量

    #NFSD_MODULE="noload"

    #NFSD_V4_GRACE=90

    #RPCMOUNTDOPTS=""

    #MOUNTD_PORT=892     # 设置rpc.mountd监听端口

    #STATDARG=""

    #STATD_PORT=662     # 设置rpc.mtatd监听的端口

    #STATD_OUTGOING_PORT=2020

    #STATD_HA_CALLOUT="/usr/local/bin/foo"

    #RPCIDMAPDARGS=""

    #SECURE_NFS="yes"      # 设置打开安全的NFS挂载

    #RPCGSSDARGS=""

    #RPCSVCGSSDARGS=""

    #RDMA_PORT=2004

    4.5.3:NFS使用固定端口

    1.编辑/etc/sysconfig/nfs文件


    MOUNTD_PORT=6221
    STATD_PORT=6222
    LOCKD_TCPPORT=6223
    LOCKD_UDPPORT=6223
    RQUOTAD_PORT=6224

    2.重启NFS

    3.查看NFS使用端口

      rpcinfo -p | grep 622*

    六、管理NFS统计信息

    4.6.1:显示统计信息(服务端输的命令)

      nfsstat [选项]

    (1)-b:显示NFS V4服务器的其他统计信息。
    (2)c:只显示客户机端的NFS和RPC信息,允许用户仅查看客户机数据的报告。nfsstat命令提供关于被客户机发送和拒绝的RPC和NFS调用数目的信息。
    要只显示客户机NFS或者RPC信息,将该参数与-n或者-r参数结合。
    (3)-d:显示与NFS V4授权相关的信息。
    (4)-g:显示RPCSEC_GSS信息。
    (5)-m:显示每个NFS文件系统的统计信息,该文件系统和服务器名称、地址、安装标志、当前读和写大小,以及重新传输计数
    (6)-n:为客户机和服务器显示NFS信息。要只显示NFS客户机或服务器信息,将该参数与-c和-s参数结合。
    (7)-r:显示RPC信息。
    (8)-s:显示服务器信息。
    (9)-t:显示与NFS标识映射子系统的转换请求相关的统计信息,要只显示NFS客户机或服务器信息,将-c和-s<br />选项结合。
    (10)-4:当与-c、-n、-s或-z参数组合使用时,将包含NFS V4客户机或服务器的信息,以及现有的NFS V2和V3数据<br />。
    (11)-z:重新初始化统计信息。该参数仅供root用户使用,并且在显示上面的标志后可以和那些标志中的任何一个组合到<br />统计信息的零特殊集合。
    (12 ) -l:统计列表显示

     4.6.2:客户端挂载信息(客户端输的命令)

      nfsiostat [时间间隔] [次数] [选项] [挂载点]

        -a:显示有关属性缓存的统计信息

        -d:显示有关目录统计信息

        -p:显示有关页面缓存信息

        -s:按次/秒排序挂载点

      

        例子:显示NFS客户机每次挂载的统计信息

            nfsiostat

  • 相关阅读:
    阿里音乐流行趋势预测大赛,赛后总结
    阿里音乐预测小结2——艺人周期规律
    阿里音乐预测小结1——用户分类与建模
    《谁说菜鸟不会数据分析(入门篇)》,读书笔记
    《机器学习:实用案例解析》,读书笔记
    《时间序列分析——基于R》王燕,读书笔记
    Promising Linking
    编写并发程序 Inversion
    Netty http client 编写总结
    RestTemplate 使用总结
  • 原文地址:https://www.cnblogs.com/-xuan/p/10536269.html
Copyright © 2020-2023  润新知