zoukankan      html  css  js  c++  java
  • nfs网络共享服务基础

    nfs原理

     1.开启RPC服务

    2.NFS向RPC服务注册启动的端口

    3.用户向RPC询问NFS服务的端口

    4.RPC返回端口给客户端

    5.客户端通过获得的端口与NFS服务器进行数据传输

    实验步骤

    一、准备

    1.检查系统版本信息

    2.检查是否安装nfs和rpc服务

    3.安装服务

    二、配置

    1.启动rpc服务和nfs服务

    2.查看nfs是否有向rpc注册端口

    3.设置开机自启动

    4.编辑nfs配置文件,并重启服务

    5.在客户端进行挂载

    三、测试

    1.测试客户端与服务端的连通性

    2.在分享目录内创建文件并在客户机上测试

    详细配置:

    注意:关闭selinux和iptables

    服务端:

    检查系统版本

    [root@nfsclient ~]# cat /etc/redhat-release
    CentOS release 6.8 (Final)
    [root@nfsclient ~]# uname -r
    2.6.32-642.el6.x86_64
    [root@nfsclient ~]# uname -m
    x86_64

    检查是否安装服务

    [root@nfsserver ~]#  rpm -aq nfs-utils rpcbind

    安装服务

    #这里可以有两种方法,一种是正常yum安装,另一种是yum组安装
    #分别在服务端和客户端使用这两种方法
    [root@nfsserver ~]# yum install nfs-utils rpcbind -y

    启动rpc服务

    #必须先开启rpc服务,在开启nfs服务,否则nfs服务会启动不了,并且可能会发生错误
    
    [root@nfsserver ~]# /etc/init.d/rpcbind restart
    Stopping rpcbind:                                          [  OK  ]
    Starting rpcbind:                                          [  OK  ]
    [root@nfsserver ~]# ps -ef |grep rpc
    rpcuser   1258     1  0 18:36 ?        00:00:00 rpc.statd
    rpc       1630     1  0 18:53 ?        00:00:00 rpcbind
    root      1634  1546  0 18:54 pts/0    00:00:00 grep --color=auto rpc
    
    #检查nfs是否有向rpc注册端口
    [root@nfsserver ~]# 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
    #此处结果显示表示rpc自己使用的端口
    
    [root@nfsserver ~]# rpcinfo -p localhost
    rpcinfo: can't contact portmapper: RPC: Remote system error - Connection refused    
    #此处即为rpc没有开启而产生的报错
    

    开启nfs服务

    [root@nfsserver ~]# /etc/init.d/nfs start
    Starting NFS services:                                     [  OK  ]
    Starting NFS mountd:                                       [  OK  ]
    Starting NFS daemon:                                       [  OK  ]
    Starting RPC idmapd:                                       [  OK  ]
    [root@nfsserver ~]# 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
        100005    1   udp  44683  mountd
        100005    1   tcp  53742  mountd
        100005    2   udp  45815  mountd
        100005    2   tcp  37259  mountd
        100005    3   udp  43988  mountd
        100005    3   tcp  48220  mountd
        100003    2   tcp   2049  nfs
        100003    3   tcp   2049  nfs
        100003    4   tcp   2049  nfs
        100227    2   tcp   2049  nfs_acl
        100227    3   tcp   2049  nfs_acl
        100003    2   udp   2049  nfs
        100003    3   udp   2049  nfs
        100003    4   udp   2049  nfs
        100227    2   udp   2049  nfs_acl
        100227    3   udp   2049  nfs_acl    
        100021    1   udp  43032  nlockmgr
        100021    3   udp  43032  nlockmgr
        100021    4   udp  43032  nlockmgr
        100021    1   tcp  52980  nlockmgr
        100021    3   tcp  52980  nlockmgr
        100021    4   tcp  52980  nlockmgr
    #这种输出才是nfs向rpc注册端口后的结果,由于nfs提供多种服务,所以会申请多个端口
    #还可以在/etc/sysconfig/nfs中设定监听端口,便于iptbales的书写
    echo"LOCKD_TCPPORT=32803" >>/etc/sysconfig/nfs

    将rpc和nfs设置为开机自启动

    [root@nfsserver ~]# chkconfig nfs on
    [root@nfsserver ~]# chkconfig rpcbind on
    [root@nfsserver ~]# chkconfig --list nfs
    nfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off
    [root@nfsserver ~]# chkconfig --list rpcbind
    rpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off
    #其实查看/etc/init.d/nfs | rpcbind即可得知,rpc于nfs先启动,后关闭

    配置nfs服务并重启

    [root@nfsserver ~]# mkdir /data
    [root@nfsserver data]# chown -R nfsnobody.nfsnobody /data/
    #如果没有修改共享目录的属主,则可能会出现如下报错
    #touch: cannot touch `hehe': Permission denied
    #实际上nfs在开启服务后会自动创建nfsnobody这个用户,可在/var/lib/nfs/etab 查看默认设置
    
    [root@nfsserver ~]# cat /etc/exports 
    ##share my miss for glx at 2017/09/13
    /data 192.168.1.0/24(rw,sync)
    [root@nfsserver ~]# /etc/init.d/nfs reload    
    #ps:reload平滑重启不会影响正在访问客户
    #ps:查看/etc/init.d/nfs可以得到,reload等同于/usr/sbin/exprotfs -r

    #重启后检查 [root@nfsserver ~]# showmount -e localhost Export list for localhost: /data 192.168.1.0/24 #ps:如果出现clnt_create: RPC: Program not registered错误,则是rpc和nfs的启动顺序出错,将两者都停止并按fpc,nfs顺序重新启动即可

     

    客户端:

    安装服务

    [root@nfsclient ~]# yum groupinstall "NFS file server" -y
    #其实这个安装包组中包含了nfs及rpc,实际上客户端只需要rpc即可
    

    启动rpc服务,并设置成开机自启动

    [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
    

    测试与服务端的连通性

    [root@nfsclient ~]# ping 192.168.1.111
    [root@nfsclient ~]# telnet 192.168.1.111 111
    

    挂载共享目录到本地

    [root@nfsclient ~]# mount -t nfs 192.168.1.111:/data /mnt
    [root@nfsclient ~]# df -h
    Filesystem           Size  Used Avail Use% Mounted on
    /dev/sda2            7.1G  907M  5.9G  14% /
    tmpfs                495M     0  495M   0% /dev/shm
    /dev/sda1            190M   30M  150M  17% /boot
    /dev/sr0             3.7G  3.7G     0 100% /media/cd
    192.168.1.111:/data   12G  2.0G  8.9G  19% /mnt
    
    #这样挂载重启就会失效
    #但写入/etc/fstab中,可能会失败,因为linux系统启动时,磁盘挂载即/etc/fstab文件的执行时优先于网络脚本文件的
    #但可以echo "/bin/mount -t nfs 192.168.1.111:/data /mnt" >> /etc/rc.local
    #在/etc/rc.local中最好使用命令的绝对路径,/etc/rc.local中书写不会影响系统的启动

      

  • 相关阅读:
    树莓派交叉编译环境搭建
    手机购买怎样识别假货——一点心得体会分享!
    Ubuntu 网站服务器环境搭建
    转载:Raspberry Pi 树莓派入门
    Python中的条件选择和循环语句
    关于VMare中安装Ubuntu的一些说明
    如何去掉系统快捷方式的箭头和更改登录界面背景图片
    重装系统后,硬盘分区丢失的解决办法
    Python中的字符串
    Python的基础语法
  • 原文地址:https://www.cnblogs.com/jianbonet/p/7518546.html
Copyright © 2011-2022 走看看