• 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进行读操作的时候,每次传输的吞吐块的大小

       

  • 相关阅读:
    ElasticSearch 基础<转载>
    计算文本相似度方法总结(一)
    Java入门1---关键字、标识符、变量、运算符、流程控制、数组
    IntelliJ IDEA安装
    java代码转python代码
    python2和python3切换
    在markdown中插入github仓库中的图片
    MySQL:管理MySQL、事务(三)
    MySQL:查询、修改(二)
    MySQL:主键、外键、索引(一)
  • 原文地址:https://www.cnblogs.com/bo-ke/p/9940098.html
Copyright © 2020-2023  润新知