zoukankan      html  css  js  c++  java
  • Linux NFS服务器的安装与配置详解

    一、NFS服务简介

    NFS是Network File System(网络文件系统)。主要功能是通过网络让不同的服务器之间可以共享文件或者目录。NFS客户端一般是应用服务器(比如web,负载均衡等),可以通过挂载的方式将NFS服务器端共享的目录挂载到NFS客户端本地的目录下。NFS在文传送过程中依赖与RPC(远程过程调用)协议。NFS本身是没有提供信息传送的协议和功能的,但是能够用过网络进行图片,视频,附件等分享功能。只要用到NFS的地方都需要启动RPC服务,不论是NFS的服务端还是客户端。NFS和RPC的关系:可以理解为NFS是一个网络文件系统(比喻为租房的房主),而RPC是负责信息的传输(中介),客户端(相当于租房的租客)

    二、系统环境
    [root@linuxidc ~]# cat /etc/RedHat-release  ##查看系统版本信息
    CentOS release 6.7 (Final)
    [root@linuxidc ~]# uname -r                  ##查看内核信息
    2.6.32-573.el6.x86_64
    [root@linuxidc ~]# uname -m                  ##查看系统是32位还是64位的
    x86_64

    三、服务端配置

    在启动NFS服务之前,首先要启动RPC服务(CentOS5是portmap服务,CentOS6.6以后的版本是rpcbind服务),否则NFS服务器无法向RPC服务注册。另外,RPC服务如果重启,原来以及有的NFS端口就会丢失,因此,只要RPC服务重启,NFS服务就要重启向RPC重新注册新的随机端口号。一般修改NFS配置文件后,不需要重启服务,直接平滑重启即可,命令:/etc/init.d/nfs reload或者exportfs -rv就可以修改/etc/exports生效。/etc/init.d/nfs reload的作用是:让已经到达服务器的请求给他处理完毕,但是没有到达服务器的请求,就把它断掉。就相当于我们去车站坐车,车子即将出发时,已经上车的就可以正常出发,没有赶上车的就没有办法跟车出发。

    要部署NFS服务,需要安装下面的软件包:
    1)nfs-utils:NFS服务的主程序
    2)rpcbing:NFS可以视为一个RPC的主程序,在启动任何一个RPC程序之前,需要做好端口和功能的对应映射工作

    1)查看NFS的软件包
     [root@linuxidc ~]# rpm -qa nfs-utils rpcbind

    nfs和rpc默认是没有安装的,需要yum安装

    2)CentOS6.7默认没有安装软件包,可以使用yum  install  nfs-utils rpcbind -y命令来安装NFS软件
    [root@linuxidc ~]# yum install nfs-utils rpcbind  -y
    [root@linuxidc ~]# rpm -qa nfs-utils rpcbind
    nfs-utils-1.2.3-70.el6_8.2.x86_64
    rpcbind-0.2.0-12.el6.x86_64

    3)启动NFS服务
    第一步:先启动rpc服务
    [root@linuxidc ~]# /etc/init.d/rpcbind start  #启动rpc服务
    [root@linuxidc ~]# /etc/init.d/rpcbind status  #查看rpc服务状态
    rpcbind (pid  4269) 正在运行...

    第二步:启动NFS服务
    [root@linuxidc ~]# /etc/init.d/nfs start    #启动nfs服务
    [root@linuxidc ~]# /etc/init.d/nfs status    #查看nfs服务状态
    rpc.svcgssd 已停
    rpc.mountd (pid 3282) 正在运行...
    nfsd (pid 3298 3297 3296 3295 3294 3293 3292 3291) 正在运行...
    rpc.rquotad (pid 3277) 正在运行...

    必须要先启动rpc服务,然后再启动NFS服务,如果先启动NFS服务,启动服务时会失败,提示如下

    [root@linuxidc ~]# /etc/init.d/nfs start
    启动 NFS 服务:                                            [确定]
    关掉 NFS 配额:无法注册服务: RPC:无法接收; errno = 拒绝连接
    rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).
                                                              [失败]
    启动 NFS mountd:                                          [失败]
    启动 NFS 守护进程:

    [root@linuxidc ~]# rpcinfo -p 192.168.8.7   #查看NFS服务向rpc注册的端口信息,主端口号是:111
    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
    100011    1  udp    875  rquotad
    100011    2  udp    875  rquotad
    100011    1  tcp     875  rquotad
    100011    2  tcp     875  rquotad

    第三步:检查开机是否自启动

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


    [root@linuxidc ~]# tail -2 /etc/rc.local 
    /etc/init.d/rpcbind start
    /etc/init.d/nfs  start

    在工作中,大都是统一按照运维规范将服务的启动命令放到/etc/rc.local里面,而不是用chkconfig来管理的,所有的服务一旦开机自启动就必须放到/etc/rc.local中。这样的好处是,一旦管理此服务器的人员离职忙活着业务迁移都可以通过/etc/rc.local很容易的查看到服务器对应的相关服务,可以方便的运维管理。

     4)NFS服务端配置文件的配置
    NFS默认配置文件路径是:/etc/exports,文件默认是空的。 /etc/exports配置文件的格式是:
    NFS共享的目录    NFS客户端地址(参数1,参数2)
    [root@LF-tms-client 桌面]# cat /etc/exports
    #/media/u1 *(rw,no root squash)
    /media/u1  192.168.8.7/23(rw,sync)  ##一条配置搞定NFS配置文件

    其中:/media/u1是服务器端共享的目录
         192.168.8.7/23共享目录的客户端ip地址
         (rw,sync) ,其中rw代表拥有读写的权限,sync代表数据同步写入NFS服务器端的硬盘中。也可以用async,async是大数据时使用,是先写到缓存区,再写到磁盘里。 
    NFS共享的目录:为NFS服务器端要共享的实际目录,要用决定路径,如(/media/u1)。注意共享目录的本地权限,需要读写权限,一定要让本地目录可以被NFS客户端的用户读写
    NFS客户端地址:为NFS服务器端授权的可访问的共享目录的NFS客户端地址,可以为单独的ip地址或者主机名,域名等,也可以是整个网段的地址。
    创建/media/u1目录,并且属主和属组都为:nfsnobody,其中nfsnobody是安装nfs服务时默认的用户
    

     [root@linuxidc ~]# mkdir /media/u1  -p
    [root@linuxidc ~]# chown -R nfsnobody:nfsnobody /media
    [root@linuxidc ~]# ls -ld /media
    drwxr-xr-x 6 nfsnobody nfsnobody 4096 12月  8 20:17 /media
    [root@linuxidc ~]# /etc/init.d/nfs reload
     [root@linuxidc ~]# showmount -e 192.168.8.7   ##本地测试,说明服务端测试成功
    Export list for 192.168.8.7:
    /media/u1 192.168.8.7/23

    四、客户端配置

    1.客户端和服务端一样,也要安装nfs和rpm的安装包。(配置见服务器端)

    2.客户端需要启动rpc服务,加入开机自启动,不需要启动nfs服务。(配置见服务器端)

    3.测试

    第一步:ping,能不能ping通服务器端ip地址

     [root@LF-tms-client 桌面]# ping 192.168.8.7
    PING 192.168.8.7 (192.168.8.7) 56(84) bytes of data.
    64 bytes from 192.168.8.7: icmp_seq=1 ttl=64 time=0.010 ms
    64 bytes from 192.168.8.7: icmp_seq=2 ttl=64 time=0.010 ms
    64 bytes from 192.168.8.7: icmp_seq=3 ttl=64 time=0.010 ms
    64 bytes from 192.168.8.7: icmp_seq=4 ttl=64 time=0.011 ms
    ^C
    --- 192.168.8.7 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3213ms
    rtt min/avg/max/mdev = 0.010/0.010/0.011/0.002 ms

    第二步:telnet服务端的111端口

     [root@LFG1-307-KSTMSV ~]#  telnet 192.168.8.7  111
    Trying 192.168.8.7...
    Connected to 192.168.8.7.
    Escape character is '^]'.

    第三步:showmount服务端

    [root@LFG1-307-KSTMSV /]# showmount -e 192.168.8.7
    Export list for 192.168.8.7:
    /media/u1 192.168.8.7/23

    第四步:挂载,文件共享
    [root@linuxidc ~]# mount -t  nfs 192.168.8.7:/media/u1 /media/tmsusb/

    第五步:查看是否挂载成功了

    [root@LFG1-307-KSTMSV /]# df -h
    Filesystem                            Size  Used Avail Use% Mounted on
    /dev/mapper/vg_lfg1307kstmsv-lv_root   55G   11G   42G  21% /
    tmpfs                                 3.9G  176K  3.9G   1% /dev/shm
    /dev/sda1                             485M   40M  421M   9% /boot
    /dev/sdb                              8.9T  6.2T  2.3T  74% /lms-data
    192.168.8.7:/media/u1                 917G  559G  312G  65% /media/tmsusb
    说明客户端测试成功,配置完成。

    服务端桌面一键挂载:

    #!/bin/bash 
    ssh LFG1-307-KSTMSV 'umount -f /media/tmsusb'
    ssh LFG1-307-KSTMSV 'umount /media/tmsusb'
    ssh LFG1-307-KSTMSV ' mount -t  nfs 192.168.8.7:/media/u1 /media/tmsusb/'
    ssh LFG1-307-KSTMSV 'ls -R -l /media/tmsusb'
    

    服务端桌面一键卸载:

    #!/bin/bash
    ssh LFG1-307-KSTMSV 'umount -f /media/tmsusb'
    ssh LFG1-307-KSTMSV 'umount /media/tmsusb'
    umount -f /media/u1
    umount /media/u1
    

    NFS文件系统详解  http://www.linuxidc.com/Linux/2016-06/131940.htm

    Ubuntu 12.04安装NFS server http://www.linuxidc.com/Linux/2012-09/70728.htm

    基于LAMP平台利用NFS远程共享资源实现站点构建  http://www.linuxidc.com/Linux/2016-07/133510.htm

    文件服务器NFS配置详解 http://www.linuxidc.com/Linux/2013-06/86542.htm

    Ubuntu下搭建NFS网络文件系统服务器 http://www.linuxidc.com/Linux/2013-07/87367.htm

    CentOS 7.2中NFS1.3 安装 http://www.linuxidc.com/Linux/2016-10/135970.htm

    Ubuntu 14.04安装配置NFS服务器 http://www.linuxidc.com/Linux/2016-04/129848.htm

    
    
    
  • 相关阅读:
    HTML5 实现Link跳线效果
    在TWaver的Tree节点上画线
    用TWaver加载大型游戏场景一例
    22万个木箱!TWaver 3D极限压榨
    如何在MONO 3D寻找最短路路径
    如何创建TWaver 3D的轮廓选中效果
    巧用TWaver 3D 矢量图形功能
    如何实现TWaver 3D颜色渐变
    HDU 1390 Binary Numbers
    HDU 1328 IBM Minus One
  • 原文地址:https://www.cnblogs.com/paul-liang/p/9210841.html
Copyright © 2011-2022 走看看