NFS

Posted 小学生^.^

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NFS相关的知识,希望对你有一定的参考价值。

  • 安装NFS
yum install -y nfs-utils
    • 启动NFS服务

      • CentOS 6 
        • service rpcbind start
        • service nfs start
      • CentOS 7 
        • systemctl start nfs.service
    • 网络文件系统的机制

      • 应用层对内核发起系统调用,内核的接口接受到系统调用的时候,并不在本地执行系统调用的代码,而是将这段代码通过网络发送给监听在另一台主机上的套接字程序,使得这段代码在另一台主机中的内核执行,并访问另一台主机上的块设备,之后再将结果原路返回给发起网络请求的主机。
      • PC:procedure call
      • RPC :remote procedure call 
        • rpc.mountd:主要用户完成认证机制和给远程的主机发放挂载令牌
        • rpc.lockd
        • prc.statd
      • (1)服务端安装nfs-utils,服务端的程序名就叫nfs
      • (2)编辑/etc/exports文件,指定允许挂载共享文件系统的主机 
        • 一般每一行的格式为:共享目录 给哪个网段共享(选项1 , 选项2) 
          • 例如:/data 192.168.0.0/16(rw) 将本地的/data目录共享给192.168网段的主机挂载,并且有读写权限
      • (3)重新导出文件系统,让内核重读/etc/exports文件,不需要重启nfs服务 
        • exportfs -r (重新导出export list)
      • (4)在客户端查看导出的共享文件系统 
        • showmount -e 192.168.10.202
      • (5)客户端挂载远端共享的文件系统 
        • mount -t nfs 192.168.10.202:/data /web/html
      • (6)客户端通过文件系统挂载信息查看 
        • df -h 或 mount
      • (7)在服务端设置共享文件系统目录的访问权限 
        • 1:可以直接设置chmod
        • 2:可以通过setfacl 来设置 
          • setfacl -m u:archlinux:rwx /data (如果archlinux的uid为2000)
      • (8)在客户端有一个本地用户hadoop,其uid也为2000 
        • su - hadoop
        • 那么hadoop就能够在/web/html目录有读写权限(因为在/etc/exports文件中对于远端的主机只有读写权限)
    • 对于/etc/exports文件中,指定客户端访问的权限字段说明 
      • 主机名格式(大多使用的是IP) 
        • 单个主机:ipv4 , ipv6 , FQDN
        • IP networks : 两种掩码格式均支持,例如:192.168.0.0/255.255.0.0 或者 192.168.0.0/16
        • wildcards:主机名通赔,例如:*uplooking.com
        • netgroups:NIS域内的主机组,@group_name
        • anonymous:使用* 表示所有的客户端主机
      • General Options 
        • rw:读写权限
        • root_squash:压缩root用户的权限
        • no_root_squash:不压缩root用户的权限
        • all_squash:压缩所有的用户
        • anonuid and anongid:映射至哪个用户
        • ro:只读

以上是关于NFS的主要内容,如果未能解决你的问题,请参考以下文章

NFS错误代码-110的确切含义

如何在 C 代码中检查目录是不是在 NFS 文件系统上?

java保存nfs

NFS

rsync nfs 实时同步,结合实战

Linux NFS服务