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 172.16.1.31  #查看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  tc 
p    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)
123456 [root@linuxidc ~]# cat /etc/exports  
#share /data by linuxidc for bingbing at 20160425  
/data 172.16.1.0/24(rw,sync)  ##一条配置搞定NFS配置文件 
其中:/data是服务器端共享的目录 
      172.16.1.0/24共享目录的客户端ip地址 
      (rw,sync) ,其中rw代表拥有读写的权限,sync代表数据同步写入NFS服务器端的硬盘中。也可以用async,async是大数据时使用,是先写到缓存区,再写到磁盘里。

v NFS共享的目录:为NFS服务器端要共享的实际目录,要用决定路径,如(/data)。注意共享目录的本地权限,需要读写权限,一定要让本地目录可以被NFS客户端的用户读写
v NFS客户端地址:为NFS服务器端授权的可访问的共享目录的NFS客户端地址,可以为单独的ip地址或者主机名,域名等,也可以是整个网段的地址。
  创建/data目录,并且属主和属组都为:nfsnobody,其中nfsnobody是安装nfs服务时默认的用户
[root@linuxidc ~]# mkdir /data -p 
[root@linuxidc ~]# chown -R nfsnobody:nfsnobody /data 
[root@linuxidc ~]# ls -ld /data 
drwxr-xr-x 6 nfsnobody nfsnobody 4096 12月  8 20:17 /data
[root@linuxidc ~]# /etc/init.d/nfs reload 
 [root@linuxidc ~]# showmount -e 172.16.1.31  ##本地测试,说明服务端测试成功 
Export list for 172.16.1.31: 
/data 172.16.1.0/24

四、客户端配置
1.客户端和服务端一样,也要安装nfs和rpm的安装包。(配置见服务器端)
2.客户端需要启动rpc服务,加入开机自启动,不需要启动nfs服务。(配置见服务器端)
3.测试:
第一步:ping,能不能ping通服务器端ip地址
[root@linuxidc ~]# ping 172.16.1.31 
PING 172.16.1.31 (172.16.1.31) 56(84) bytes of data. 
64 bytes from 172.16.1.31: icmp_seq=1 ttl=64 time=0.383 ms 
64 bytes from 172.16.1.31: icmp_seq=2 ttl=64 time=0.434 ms 
64 bytes from 172.16.1.31: icmp_seq=3 ttl=64 time=0.420 ms 
64 bytes from 172.16.1.31: icmp_seq=4 ttl=64 time=0.437 ms 
64 bytes from 172.16.1.31: icmp_seq=5 ttl=64 time=0.439 ms 
^C 
--- 172.16.1.31 ping statistics --- 
5 packets transmitted, 5 received, 0% packet loss, time 4997ms 
rtt min/avg/max/mdev = 0.383/0.422/0.439/0.030 ms

第二步:telnet服务端的111端口
[root@linuxidc ~]# telnet 172.16.1.31 111 
Trying 172.16.1.31... 
Connected to 172.16.1.31. 
Escape character is '^]'.

第三步:showmount服务端

[root@linuxidc ~]# showmount -e 172.16.1.31 
Export list for 172.16.1.31: 
/data 172.16.1.0/24

第四步:挂载,文件共享
[root@linuxidc ~]# mount -t  nfs 172.16.1.31:/data/ /mnt

第五步:查看是否挂载成功了
[root@linuxidc ~]# df -h 
Filesystem          Size  Used Avail Use% Mounted on 
/dev/sda3          8.8G  1.5G  6.9G  18% / 
tmpfs              491M    0  491M  0% /dev/shm
/dev/sda1          190M  36M  145M  20% /boot
172.16.1.31:/data/  8.8G  1.5G  7.0G  18% /mnt

说明客户端测试成功,配置完成。

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

 

nfs共享文件搭建的更多相关文章

  1. 2 NFS高可用解决方案之NFS的搭建

    preface 我们紧接着上一篇博文的基础(drbd+heartbeat的正常工作,http://www.cnblogs.com/liaojiafa/p/6129499.html)来搭建NFS的服务. ...

  2. NFS文件服务器搭建

    NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可 ...

  3. Linux之我有你也有-共享平台NFS服务器搭建

    Linux之我有你也有-共享平台NFS服务器搭建 最近因工作需要,所以要搭一个共享的服务器用于存储.实现你有我有大家有的共享的和谐局面.想到了NFS-Network File System.接下来我便 ...

  4. NFS的搭建(sudo apt-get install nfs-kernel-server),TFTP服务器(sudo apt-get install tftpd-hpa tftp-hpa)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Osean_li/article/details/53240705 ***************** ...

  5. NFS实现(双httpd + php-fpm + nfs + mysql 搭建discuz论坛)的方法

    NFS相关介绍 一.NFS简介 1. NFS(Network File System):NFS是一个文件共享协议, 也是是在类Unix系统中在内核中实现的文件系统. 2. 起源:最早是由SUN公司研发 ...

  6. NFS服务器搭建-共享PC与ARM主板文件

    NFS服务器搭建-共享PC与ARM主板文件 在搭建好交叉编译环境之后需要实现目标板与宿主机的文件共享,在这里选择NFS,由于资料较多.需要注意的以下几点: 目标板与宿主机需要连接在同一个网段内. 宿主 ...

  7. ARM开发板挂载Ubuntu18.04主机的NFS共享文件夹

    环境 ubuntu主机环境:Window10 下装VMWare下装的 ubuntu18.04LTS x64 IP 192.168.10.119 Window10下配置192.168.10该网段 开发板 ...

  8. NFS服务器搭建——可用于共享文件或负载均衡文件共享服务器使用

    一.软件包安装 yum -y install nfs-utils  rpcbind 二.服务器端配置共享目录 1. 在服务器上创建NFS共享目录:mkdir /usr/local/test 2. 设置 ...

  9. nfs共享文件服务搭建

    网络文件共享服务器192.10.19.132yum install -y nfs-utils 在exports文件中添加的从机范围vim /etc/exports/home/nfs/ 192.10.1 ...

随机推荐

  1. Redis入门到高可用(七)——Hash

    一.结构 Mapmap结构: filed 不能相同,value可以相同. 二.重要指令 ♦️ HSET  ♦️ HGET  ♦️ HDEL ♦️ Hlen  ♦️ HEXISTS ♦️HGETALL  ...

  2. RN-android 打包后,部分图片不显示

    安卓打包后以及真机调试的时候部分图片不显示,原因是 安卓的包文件并不会每次都把图片资源重新打包.也就是说,你第一次打完包之后,再更新图片与代码,代码是会生效,但是图片文件是拿不到的,解决办法是 ../ ...

  3. from C++ to Java

    绝大部分对象都是指针,创建对象习惯性用new const ->  final 枚举类型 与 int的相互转换: 从int到enum: MyEnum.values()[x], where x mu ...

  4. spring boot+logback+JdbcTemplate打印sql日志

    项目中使用的JdbcTemplate直接在service中执行sql语句,配置如下: 使用IDEA创建的项目自带 main/resource 中自带logback.xml 配置文件,添加以下日志配置, ...

  5. LSTM输入层、隐含层及输出层参数理解【转载】

    转自:https://blog.csdn.net/yyb19951015/article/details/79740869 //这个博客讲的挺不错的. http://www.newlifeclan.c ...

  6. case insensitive in php

    date: 2017-07-27 PHP的命名空间是否区分大小写? 结论:不区分大小写,与类名一样(不区分大小写). 不区分大小写的包括 函数名 方法名 类名 控制语句(if, else, for, ...

  7. 移动开发--移动web特别样式处理

    高清图片:100px*200px的图片 设置100px*100px的大小,会被拉大,变模糊,应该用100dp*100dp(物理像素)去渲染. 一像素边框: 相对单位rem: 多行文本溢出.

  8. cocosStudio制作ScrollView并在cocos2dx 3.0中使用。

    使用cocosStudio制作界面基本已成为基础了,之前都是拖动一些 Image.Button的小控件,再用到层容器和滚动层的时候,习惯性的用拖动来改变控件的大小.但是你在把其他的控件拖动到上面的时候 ...

  9. Python实现selenium回放时间设置

    一般在做selenium时会有,回放快慢的需求. 实现思路: 1.一般写selenium会自定义findelement函数,来实现查找元素. 2.在查找函数上加个睡眠时间的装饰器,函数执行完等待若干秒 ...

  10. Selenium基本使用(十二)测试报告生成

    报告目录结构 Reporter根目录 | |-------------LOGS |                                                | |         ...