zoukankan      html  css  js  c++  java
  • 二十一、NFS服务

             文件系统是基于存储设备的,比如硬盘,并且包含文件物理位置的维护。文件系统也可以说是虚拟数据或网络数据存储的方法,比如NFS。我是这样理解的:首先,什么是文件系统,这里我们已经明确了,就是组织的一种形式,让我们读写快的方式方法。从这一点上出发的话,那么NFS是一种网络上的读写方法,因为它是通过应用进行读写,这个应用是NFS,所以就这种的读写也可以说是一种文件系统。

             服务一般指的就是守护进程。NFS对于大并发还是有一定的问题,但是对于中小企业,NFS一直是通过网络提供文件系统服务的有竞争力的选择。

            在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享文件、图片、附件等静态资源文件。

    挂载NFC:(rpcbind)

         1)传统的挂载: mount  源   目标

         2)NFC挂载:mount   192.168.113.12: /video     /video

    1.什么是RPC服务?(大型网站离不开的服务)

         因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此,NFS的功能所对应的端口才无法固定,而是随机取用一些未被使用的端口作为传输之用。

         因为端口不固定,这样一来就会造成NFS客户端和NFS服务端的通讯障碍,因为客户端必须知道服务端的数据传输端口才能进行通信交互数据。

         要解决上面的通讯问题困扰,就要远程过程调度RPC服务。所以在服务器启动的顺序一定是先启动RPC服务,在启动NFS服务。

    这里要注意,这里的RPC服务是NFS的RPC服务,在大型企业中,可以没有NFS,但是肯定会用RPC,RPC是一种服务或者一种协议。

    2. 安装:

       检查系统有没有相关nfs的软件:rpm -qa nfs-utils  portmap  rpcbind

       首先在客户端和服务端安装RPC服务:yum install nfs-utils rpcblind -y

       查看服务器端RPC有没有NFS的信息:rpcinfo -p localhost

       

      rpcinfo: can't contact portmapper: RPC: Remote system error - Connection refused

    由此,开启RPC服务端应用。/etc/init.d/rpcblind start

    再次查看服务端RPC有没有NFS的信息:rpcinfo -p localhost。由此看到全是自己的东西,RPC开放的端口是111,并没有接受NFS的任何信息。

     

    将RPC设置称为开机自启动程序:

     [root@nfsserve ~]#   chkconfig nfs on
    [root@nfsserve ~]#    chkconfig rpcbind on
    [root@nfsserve ~]#   chkconfig --list nfs
    nfs                0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
    [root@nfsserve ~]# chkconfig --list rpcbind
    rpcbind         0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

     开启nfs服务:

     

    再次查看RPC服务有没有NFS的信息:rpcinfo -p localhost。可以发现多了好多端口,这些是因为NFS提供的功能很多,就有了很多端口。

    客户端只要安装rpcbind就可以了,不需要安装nfs,前面已经讲过原理了,设置成开机自启动就可以了。

     [root@nfsclient ~]# /etc/init.d/rpcbind start
    Starting rpcbind:                                          [  OK  ]
    [root@nfsclient ~]# chkconfig  rpcbind on
    [root@nfsclient ~]# chkconfig  --list rpcbind
    rpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off

     3.配置文件目录:

        1)NFS的配置文件是 /etc/exprots 默认为空   共享目录是  /data

        2)进行配置:其中rw 表示可读可写,sync表示同步到服务器端的磁盘中才算成功

        [root@nfsserve /]# vim /etc/exports
    # dangjinwei modify
    /data  192.168.0.0/24(rw,sync)

      3)重启nfs服务:

         [root@nfsserve /]# /etc/init.d/nfs status
    rpc.svcgssd 已停
    rpc.mountd (pid 1623) 正在运行...
    nfsd (pid 1638 1637 1636 1635 1634 1633 1632 1631) 正在运行...

    4)本地检查共享文件:

        [root@nfsserve /]# showmount -e localhost
    Export list for localhost:
    /data 192.168.0.0/24

    5)客户端检查共享文件:

      [root@nfsclient ~]# showmount -e 192.168.0.102
    Export list for 192.168.0.102:
    /data 192.168.0.0/24

    6)客户端进行挂载:mount -t nfs  192.168.0.102:/data  /mnt;这里要注意,虽然挂载了,但是重启后还是会丢失。

      通过这种方法可以避免丢失:

       echo  "mount -t nfs  192.168.0.102:/data  /mnt">> /etc/rc.local

     

    这里报错的原因在于:不仅仅在配置服务器端的时候,权限设置成可读可写,对于文件本身的权限也是要设置的。

    这样就可以写入了,这里要注意,这里的属主是:nfsnobody

      

    [root@nfsserve /]# cat /etc/passwd|grep 65534
    nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

    这样就可以查看到是哪个用户了,并且可以在/var/lib/nfs/etab进行修改了

  • 相关阅读:
    Cinema in Akiba(线段树)
    SGU
    632-掷骰子
    ZOJ
    nyoj 1129 Salvation(搜索)
    symbol table meaning
    C/C++编译和链接过程详解 (重定向表,导出符号表,未解决符号表)
    编译链接 C++
    while(cin.eof)出错 poj
    华为oj 购物单
  • 原文地址:https://www.cnblogs.com/dangjingwei/p/10888614.html
Copyright © 2011-2022 走看看