• centos7之NFS使用


    NFS是Network File System的缩写,即网络文件系统。客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下。

    一、nfs为什么需要RPC?

    因为NFS支持的功能很多,不同功能会使用不同程序来启动,因此,NFS对应的功能所对应的端口无法固定。

    端口不固定造成客户端与服务端之间的通信障碍,所以需要RPC来从中帮忙。

    NFS启动时会随机取用若干端口,然后主动向RPC服务注册取用相关端口和功能信息,RPC使用固定端口111来监听来自NFS客户端的请求,

    并将正确的NFS服务端口信息返回给客户端,这样客户端与服务端就可以进行数据传输了。

    二、NFS的工作流程

    1、由程序在NFS客户端发起存取文件的请求,客户端本地的RPC(rpcbind)服务会通过网络向NFS服务端的RPC的111端口发出文件存取功能的请求。

    2、NFS服务端的RPC找到对应已注册的NFS端口,通知客户端RPC服务。

    3、客户端获取正确的端口,并与NFS daemon联机存取数据。

    4、存取数据成功后,返回前端访问程序,完成一次存取操作。

    所以无论客户端,服务端,需要使用NFS,必须安装RPC服务。

    NFS的RPC服务,在Centos5下名为portmap,Centos6下名称为rpcbind。

    三、安装配置

    1、首先关闭centos7上的firewalld防火墙和iptables防火墙,让其开机不能自启,等安装完毕后可以打开相应的防火墙。

    2、安装。

    yum install -y  nfs-utils rpcbind 
    

    3、安装完成后后首先启动,首先启动,首先启动rpcbind服务。

    systemctl restart rpcbind.service
    

    4、配置nfs配置文件(默认是空的)

    首先我们应该建立一个数据文件夹,例如data文件夹也可以是单独的一个块硬盘风趣,都可以。

    #mkdir data

     #vim /etc/exports

    /data   192.168.1.0/24(rw,no_root_squash,sync,fsid=0)
    

      

    参数:
    •ro:目录只读
    •rw:目录读写
    •sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
    •async:将数据先保存在内存缓冲区中,必要时才写入磁盘
    •all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)
    •no_all_squash:与all_squash取反(默认设置)
    •root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)
    •no_root_squash:与rootsquash取反
    •anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
    •anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户
    

    注:添加no_root_squash参数,表明此时客户端root用户的身份等同于NFS server上面的root用户,否则客户端只能同步到服务器的数据,无建立文件或文件夹等权限。

    启动nfs

    systemctl start nfs.service
    

      

    客户端操作:

    同样为了搭建顺利,可先关闭iptables和selinux、firewall。客户端只需要安装rpcbind服务即可,无需安装nfs或开启nfs服务。

    #yum install -y rpcbind

    #systemctl start rpcbind.service

    在客户端建立文件夹,准备挂在nfs。

    #cd /root 

    #mkdir nfstest

    挂载

    #mount -t nfs 192.168.1.238:/data nfstest

    如果需要卸载的话,mount变成umount就行。

    如下正常操作没有问题。

    如上所示,这样的话在服务器或者在客户端写入对方都会发生变化。

    注意:

    服务器端:

    1、先启动rpcbind,再启动nfs服务

    2、如果配置文件发生变化可以使用exportfs -rv重新加载配置无需重启服务。

    3、查看rpc服务器是否启动成功rpcinfo -p

    4、查看共享目录是否存在showmount -e 192.168.1.238

    5、如果开iptables防火墙的话可以使用rpcinfo -p命令查看都需要允许哪些端口。

    客户端:

    错误1,:Stale NFS file handle的解决方法

     1、首先用umount卸载当前目录,如果卸载不了使用umount -f /root/nfstest强制卸载,然后再重新挂载即可。

     错误2:touch: cannot touch ‘test2’: Permission denied nfs

     1、这个是提醒你客户端挂载的nfs服务器的目录没有权限,你在nfs客户端给权限没用,要不就给nfs服务器目录777权限,这样显得啥,要不就配置文件里面如上加上no_root_squash参数。

  • 相关阅读:
    VS2010 自动跳过代码现象
    Reverse Linked List II 【纠结逆序!!!】
    Intersection of Two Linked Lists
    Linked List Cycle II
    Remove Nth Node From End of List 【另一个技巧,指针的指针】
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    Remove Duplicates from Sorted List
    Linked List Cycle
    Dungeon Game
  • 原文地址:https://www.cnblogs.com/lei0213/p/8570785.html
Copyright © 2020-2023  润新知