nfs之基础概念和相关命令

函数调用(过程调用)

    函数向内核发起调用,并传递一些参数,内核在内核空间中执行函数,并将结果保存在磁盘上。


LDC:

    local procedure call 本地过程调用


RPC:

    remote procedure call 远程过程调用(框架)


    RPC格式:

        文本(XMLRPC)SOAP(Simple Object Access Protocol)

        二进制


    RPC服务器端

    RPC客户端:

        stub 存根调用


    客户端程序 --> RPC客户端 --> RPC服务器端(完成相应) --> RPC客户端 --> 客户端程序


    RPC实现了一个进程间通信的框架。


portmap(RPC实现):

    TCP 111端口 UDP 111端口


NFS (Network File System) 网络文件系统,也是协议。基于IP认证。

    nfs服务启动要以来portmap服务。nfs服务启动后,会向portmap注册端口启动进程。


    工作过程:

        nfsv3:

            Client --> portmap(Server) --> Client(rpc.mountd监听端口号)

            Client --> mountd(Server) -->Client(initial file handle) --> nfsd


    服务器端:

        nfs-utils


    服务进程:

        nfsd 主服务进程,负责文件传输。监听在TCP 2049端口,此端口固定不变。


        mountd 客户端挂载管理进程,端口半随机。


        rquotad 配额服务进程,端口半随机。


        nlockmgr 文件锁定进程,端口半随机。


    安装:

        #vim nfs-utils



    配置文件:

        /etc/exprots 导出清单文件

            每一行表示一个导出。#表示注释。多个客户端用空白字符分割。

            格式如下:

                DIR CLIENT1(PRIV1,PRIV2,...) CILENT2() ...


                CLIENT:

                    单个主机:IP或FQDN

                    网络组:

                    通配符:*和?,例如*.test.com

                    IP网段:IP/MASK,例如 172.16.0.0/16或172.16.0.0 255.255.0.0 


                PRIV(导出属性)

                    各个属性之间用逗号分隔。

                    ro 只读

                    rw 读写

                    sync 同步,适用通信频繁且实时性较高的情况

                    async 异步,适用于零碎文件操作的情况

                    root_squash 将root用户映射为来宾账号。默认不写启用此权限。

                    no_root_squash 不将root映射为来宾账号。

                    all_squash 全部映射为来宾账号

                    anonuid 指定来宾账号的uid

                    anongid 指定来宾账号的gid

                    no_acl 关闭acl,某些指定的内核可能不支持ACL


            例如:

                /sqld/mdata 192.168.100.3(ro,rsync)


        /etc/sysconfig/nfs 指定进程端口

            MOUNTD_PORT=PORT mountd进程

            RQUOTAD_PROT=PORT quotad进程

            LOCKD_TCPPORT=PORT lockdtcp进程

            LOCKD_UDPPORT=PORT lockdudp进程




    开机挂载:

        #vim /etc/fstab

         IP:/DIR MOUNTPOINT TYPE  PRIV  0 0




#rpcinfo -p localhost 查看本机上所有RPC监听的端口。


#showmount [OPTION] NFS_SERVER 显示NFS服务器挂载相关

    [OPTION]

        -a --all 显示服务器所有挂载的文件系统以及客户端对应列表。

        -e --exports 显示服务器导出的文件系统。

        -d --directories 显示服务器中导出的文件系统中被客户端挂载了的文件系统列表。没有被挂载的文件系统不显示。


    例如:

        #showmount -e 172.16.100.1


#mount -t nfs NFS_SERVER:/DIR MOUNTPOINT


    挂载选项:_rnetdev 若无法连接则跳过


#exprotfs [OPTION]  不重启服务更新导出

    [OPTION]

        -a 跟-r或-u同时使用。导出或取消导出所有的文件系统。

        -r 重新导出

        -u 取消导出

        -v 显示详细信息


你可能感兴趣的:(rpc,nfs,showmount,exportfs)