zoukankan      html  css  js  c++  java
  • NFS

    NFS使用案例(centos7)

    环境:服务端10.220.5.66 客户端:10.220.5.65

    实现步骤
    一:安装nfs的服务端(nfs rpc)

    [root@66 ~]# yum install nfs-utils rpcbind -y

    (客户端仅仅需要安装nfs,不需要配置和启动)

    二,启动服务

    [root@66 ~]# systemctl start rpcbind 
    [root@66 ~]# systemctl start nfs

    三,检查rpc中注册使用的端口信息(服务器端)

    格式:rpcinfo -p 主机地址 <<<这里指定得是注册了NFS端口号

    [root@66~]# rpcinfo -p localhost
       program vers proto   port  service
        100000    4   tcp    111  portmapper
        100000    3   tcp    111  portmapper
        100000    2   tcp    111  portmapper
        100000    4   udp    111  portmapper
        100000    3   udp    111  portmapper
        100000    2   udp    111  portmapper
        100024    1   udp  58898  status
        100024    1   tcp  47099  status
        100005    1   udp  20048  mountd
        100005    1   tcp  20048  mountd
        100005    2   udp  20048  mountd
        100005    2   tcp  20048  mountd
        100005    3   udp  20048  mountd
        100005    3   tcp  20048  mountd
        100003    3   tcp   2049  nfs
        100003    4   tcp   2049  nfs
        100227    3   tcp   2049  nfs_acl
        100003    3   udp   2049  nfs
        100003    4   udp   2049  nfs
        100227    3   udp   2049  nfs_acl
        100021    1   udp  57332  nlockmgr
        100021    3   udp  57332  nlockmgr
        100021    4   udp  57332  nlockmgr
        100021    1   tcp  33277  nlockmgr
        100021    3   tcp  33277  nlockmgr
        100021    4   tcp  33277  nlockmgr

    说明:

            rpc端口号为111,剩下的为nfs启用的端口号

    补充:错误案例

    [root@66 ~]# rpcinfo -p localhost
    rpcinfo: can't contact portmapper: RPC: Remote system error - Connection refused

    说明rpcbind没有服务没有启动,如果rpcbind服务启动了仍然报这个错,说明可能是防火墙没关,也有可能防火墙开了配置出问题了,需要修改防火墙规则,让访问111端口的数据通过

     注意:

    rpc服务的端口是111

    四,安装软件(客户端,只需要安装rpcbind)

    [root@65~]# yum install -y rpcbind

    五,启动服务(客户端)

    [root@65 ~]# systemctl start rpcbind

    六,测试是否可以访问nfs主机上的rpc服务进程(客户端)

    [root@65 ~]# rpcinfo -p 10.220.5.66
       program vers proto   port  service
        100000    4   tcp    111  portmapper
        100000    3   tcp    111  portmapper
        100000    2   tcp    111  portmapper
        100000    4   udp    111  portmapper
        100000    3   udp    111  portmapper
        100000    2   udp    111  portmapper
        100024    1   udp  58898  status
        100024    1   tcp  47099  status
        100003    3   tcp   2049  nfs
        100003    4   tcp   2049  nfs
        100227    3   tcp   2049  nfs_acl
        100003    3   udp   2049  nfs
        100003    4   udp   2049  nfs
        100227    3   udp   2049  nfs_acl
        100021    1   udp  57332  nlockmgr
        100021    3   udp  57332  nlockmgr
        100021    4   udp  57332  nlockmgr
        100021    1   tcp  33277  nlockmgr
        100021    3   tcp  33277  nlockmgr
        100021    4   tcp  33277  nlockmgr

    若果访问失败有以下可能:

    1:服务端rpc服务没开启,或客户端服务没开启

    2:防火墙没关闭

    第五步:创建共享目录(客户端)

    [root@66~]# mkdir /data
    [root@66 ~]# vim /etc/exports
    /data     10.220.5.0/24(rw,sync)

    重启nfs

    [root@66 ~]# systemctl restart nfs

    查看所共享的目录(服务端)

    格式:showmonut -e nfs的服务器ip地址

    [root@66~]# showmount -e 127
    Export list for 127.0.0.1:
    /data 10.220.5.0/24

     查看所共享的目录(客户端)

    [root@65DRslave ~]# showmount -e 10.220.5.66
    Export list for 10.220.5.66: <<<服务端ip
    /data 10.220.5.0/24

     六,确保服务端客户端的时间一致(在生产环境中使用时间服务器保证时间同步,这次试验使用date命令同步)

    [root@66~]# date 111016362018.00
    Sat Nov 10 16:36:00 CST 2018     <<<服务端
    [root@65 ~]# date 111016362018.00
    Sat Nov 10 16:36:00 CST 2018   <<<客户端

    七,在客户端挂载服务端所共享的目录(客户端)

    格式:mount -t nfs nfs的ip地址:共享目录    挂载点

    [root@65 ~]# mount -t nfs 10.220.5.66:/data /nfs

     八,查看是否挂载成功(客户端)

    [root@65 ~]# mount
    10.220.5.66:/data on /nfs type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=10.220.
    5.65,local_lock=none,addr=10.220.5.66)
    说明挂载成功

    九,进入/nfs目录中,是否能创建目录

    [root@65 nfs ~]# mkdir a
    mkdir: cannot create directory ‘a’: Permission denied <<<发现没有权限

     由于服务器端的/data目录是挂载到客户端/nfs目录下,在/nfs目录下创建目录或者文件是是以root的身份,也有可能是普通用户,当

     在/nfs目录中创建文件或者文件时,是调用的服务器端的nfs,将所创建的目录或者文件写入到服务器端/data目录中的,是否能写入是有nfs决定了客户端是否有权限在/data目录中写东西,要想能写入东西,需要在服务端修改/data目录的权限

    十,修改服务端权限

    [root@66~]# chmod 777 /data <<<服务端  在工作中不要付权777,因为权限太大了,很危险

    十一,在客户端再次创建目录,看看是否有权限

    [root@65 ~]# mkdir abc  <<<客户端

    发现有权限能创建了

    配置文件:
    /etc/exports: nfs主配置文件,用于共享目录,同时指定权限
    /va/lib/nfs/etab: 这个记录了所共享的目录的详细权限属性信息

    /usr/sbin/shoumount:查看nfs所共享的目录列表

    /usr/sbin/rpcinfo: 查看rpc中注册的端口信息

    /usr/sbin/exportfs :管理nfs的命令

    实现类似于reload的方式:exportfs -rv

    /etc/exports说明
    nfs主配置文件,共享本地目录给其他主机
    一行是一个共享的目录
    格式:
    [共享目录] [主机1(参数1,参数2....)] [主机1(参数1,参数2....)]

    例子:
    /data 10.220.5.0/25(rw) 192.168.6.0/24(ro)

    主机的表示方式
    1.单一主机:比如:192.168.6.22
    2.整个网络: 比如:192.168.6.0/24
    3.主机名
    4.一个域:比如:baidu.com

    参数的表示方式
    ro:只读
    rw:读写
    sync:同步写入
    async:异步写入
    secure:限制客户端只能使用1024以下的端口链接nfs
    insecure:运行nfs启动的时候用1024以上的端口
    wdelay:多个用户要在nfs中进行写入操作的话,等有了多个写操作以后才一并执行(为了提升磁盘的IO性能)
    no_wdelay:当用户在nfs执行写入的时候,立刻执行写入(当设置了aysnc,就不需要这个了)
    hide:隐藏共享目录中的子目录
    nohide:不隐藏
    all_squash:无论你以哪个用户身份来使用nfs,都将用户身份转换为一个特定的用户
    no_root_squash:如果你访问nfs的时候不是root身份,就将用户身份转换为一个特定的用户
    root_squash:如果你访问nfs的时候是root身份,就将用户身份转换为一个特定的用户
    anonuid & anongid:指定所所要转换成的那个用户的uid 和 gid

    注意:
    shoumount nfs-utils的的一个组件,如果客户端需要使用showmount,那么需要安装nfs-utils

    nfs的自动挂载
    挂载nfs的命令写入在/etc/rc.local中

    注意:

     一般的设备,在实现开机自动挂载是时候,建议写在/etc/fstab中,但是nfs分区是不能写在/etc/fstab中,因为在系统启动过程中是先读取/etc/fstab挂载分区,然后在挂载网络模块

    查看详细挂载选项/proc/mounts

    选项

         hard:当RPC下线的时候,客户端无法联系大服务器,则会连续发请求,知道能联系到服务器

         soft:当RPC下线的时候,客户端无法联系大服务器,则会连续发请求,知道能联系到服务器

         fg:前台,在挂载的时候,如果无法联系到服务器端,会重复尝试,一直到挂载成功(前台进行)

         bg:后台,在挂载的时候,如果无法联系到服务器端,会重复尝试,一直到挂载成功(后台进行)

       rsize=#: 设置使用nfs进行读操作的时候,每次传输的吞吐块的大小

          wsize=#: 设置使用nfs进行读操作的时候,每次传输的吞吐块的大小

       

  • 相关阅读:
    IIS7中的几种身份鉴别方式(一)Basic身份验证
    IIS7中的几种身份鉴别方式(二)集成身份验证
    java集合
    SharePoint 2010中welcome page的设置细节
    SharePoint中使用Linq出现未将对象引用到实例化的解决方法
    SharePoint 2010中关于An error was encountered while retrieving the user profile的处理方式记录
    The Need for an Architectural Body of Knowledge
    The Softer Side of the Architect
    Event Receivers 学习小结
    使用SmtpClient发送带图片的邮件的代码实现
  • 原文地址:https://www.cnblogs.com/bo-ke/p/9940098.html
Copyright © 2011-2022 走看看