设为首页 收藏本站
查看: 1274|回复: 0

[经验分享] Linux NFS服务器的安装与配置详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-1-20 08:47:54 | 显示全部楼层 |阅读模式
一、NFS服务简介
       NFS是Network  File System(网络文件系统)。主要功能是通过网络让不同的服务器之间可以共享文件或者目录。NFS客户端一般是应用服务器(比如web,负载均衡等),可以通过挂载的方式将NFS服务器端共享的目录挂载到NFS客户端本地的目录下。
      NFS在文件传送过程中依赖与RPC(远程过程调用)协议。NFS本身是没有提供信息传送的协议和功能的,但是能够用过网络进行图片,视频,附件等分享功能。只要用到NFS的地方都需要启动RPC服务,不论是NFS的服务端还是客户端。
      NFS和RPC的关系:可以理解为NFS是一个网络文件系统(比喻为租房的房主),而RPC是负责信息的传输(中介),客户端(相当于租房的租客)
QQ截图20170120084712.png
二、系统环境:
1
2
3
4
5
6
[iyunv@oldboy ~]# cat /etc/redhat-release   ##查看系统版本信息
CentOS release 6.7 (Final)
[iyunv@oldboy ~]# uname -r                  ##查看内核信息
2.6.32-573.el6.x86_64
[iyunv@oldboy ~]# 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
2
1)nfs-utils:NFS服务的主程序
2)rpcbing:NFS可以视为一个RPC的主程序,在启动任何一个RPC程序之前,需要做好端口和功能的对应映射工作



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



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

2)CentOS6.7默认没有安装软件包,可以使用yum   install  nfs-utils rpcbind -y命令来安装NFS软件
1
2
3
4
[iyunv@oldboy ~]# yum install nfs-utils rpcbind  -y
[iyunv@oldboy ~]# 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服务
1
2
3
[iyunv@oldboy ~]# /etc/init.d/rpcbind start   #启动rpc服务
[iyunv@oldboy ~]# /etc/init.d/rpcbind status   #查看rpc服务状态
rpcbind (pid  4269) 正在运行...



第二步:启动NFS服务
1
2
3
4
5
6
[iyunv@oldboy ~]# /etc/init.d/nfs start    #启动nfs服务
[iyunv@oldboy ~]# /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服务,启动服务时会失败,提示如下
1
2
3
4
5
6
7
[iyunv@oldboy ~]# /etc/init.d/nfs start
启动 NFS 服务:                                            [确定]
关掉 NFS 配额:无法注册服务: RPC:无法接收; errno = 拒绝连接
rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).
                                                           [失败]
启动 NFS mountd:                                          [失败]
启动 NFS 守护进程:



1
2
3
4
5
6
7
8
9
10
11
12
13
[iyunv@oldboy ~]# 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



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

1
2
3
4
5
6
7
8
9
[iyunv@oldboy ~]# chkconfig nfs on
[iyunv@oldboy ~]# chkconfig rpcbind on
[iyunv@oldboy ~]# chkconfig --list nfs
nfs             0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
[iyunv@oldboy ~]# chkconfig --list rpcbind
rpcbind         0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
[iyunv@oldboy ~]# 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)
1
2
3
4
5
6
[iyunv@oldboy ~]# cat /etc/exports
#share /data by oldboy 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服务时默认的用户
1
2
3
4
5
6
7
8
[iyunv@oldboy ~]# mkdir /data -p
[iyunv@oldboy ~]# chown -R nfsnobody:nfsnobody /data
[iyunv@oldboy ~]# ls -ld /data
drwxr-xr-x 6 nfsnobody nfsnobody 4096 12月  8 20:17 /data
[iyunv@oldboy ~]# /etc/init.d/nfs reload
[iyunv@oldboy ~]# 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地址
1
2
3
4
5
6
7
8
9
10
11
[iyunv@oldboy ~]# 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端口
1
2
3
4
[iyunv@oldboy ~]# telnet 172.16.1.31 111
Trying 172.16.1.31...
Connected to 172.16.1.31.
Escape character is '^]'.



第三步:showmount服务端

1
2
3
[iyunv@oldboy ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24



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



第五步:查看是否挂载成功了
1
2
3
4
5
6
[iyunv@oldboy ~]# 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



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



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-330925-1-1.html 上篇帖子: 网络安全之tcpdump工具 下篇帖子: Varnish之二web缓存实践 服务器 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表