zoukankan      html  css  js  c++  java
  • 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参数。

  • 相关阅读:
    Oracle EBS 初始化用户密码
    Oracle EBS FND User Info API
    linux ERROR: ld.so: object '/lib/libcwait.so' from /etc/ld.so.preload cannot be preloaded: ignored.
    linux解压cpio.gz类型文件
    linux删除乱码文件
    linux使用man命令后退出
    linux字符图形界面
    Red Hat linux 如何增加swap空间
    Linux删除文件夹命令
    Linux本地无法登录,远程却可以登录
  • 原文地址:https://www.cnblogs.com/lei0213/p/8570785.html
Copyright © 2011-2022 走看看