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
Linux NFS服务器的安装与配置详解的更多相关文章
- Linux NFS服务器的安装与配置方法(图文详解)
这篇文章主要介绍了Linux NFS服务器的安装与配置方法(图文详解),需要的朋友可以参考下(http://xb.xcjl0834.com) 一.NFS服务简介 NFS 是Network File S ...
- 【转载】Linux NFS服务器的安装与配置
一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...
- Linux NFS服务器的安装与配置
一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...
- (转)Linux NFS服务器的安装与配置
转自:http://www.cnblogs.com/mchina/archive/2013/01/03/2840040.html 由于在6系列里面,portmap已经改名了 ,6系列需要使用 serv ...
- Linux NFS服务器的安装与配置(转载)
一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...
- Linux NFS服务器的安装与配置(转载)
一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...
- CentOS 6.3下Samba服务器的安装与配置详解
一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的 ...
- Linux - CentOS6.5服务器搭建与初始化配置详解(下)
传送带:Linux - CentOS6.5服务器搭建与初始化配置详解(上) 继续接着上面的安装,安装完后会出现下面界面 点击reboot重启 重启后可以看到下面的tty终端界面 因为这就是最小化安装 ...
- NFS服务器的安装与配置
由于实验室的项目需要实现在CephFS之上建立NFS之上,所以记录一下NFS服务器的安装与配置流程. 1.NFS服务的简介: NFS 是 Network File System 的缩写,是Sun公司于 ...
随机推荐
- Docker基础 :网络配置详解
本篇文章将讲述 Docker 的网络功能,包括使用端口映射机制来将容器内应用服务提供给外部网络,以及通过容器互联系统让多个容器之间进行快捷的网络通信,有兴趣的可以了解下. 大量的互联网应用服务包含多个 ...
- easyui databox获取当前时间
class=easyui-datebox $(document).ready(function() { $("#thedate").datebox(&quo ...
- sql server数据类型char和nchar,varchar和nvarchar,text和ntext
varchar和nvarchar的区别: varchar(n)长度为 n 个字节的可变长度且非 Unicode 的字符数据.n 必须是一个介于 1 和 8,000 之间的数值.存储大小为输入数据的字节 ...
- prototype 以及 constructor 属性的理解
1 为什么 xx.constructor.prototype 可以访问到当前对象的原型. 'str'.constructor.prototype 'str'.constructor 指向当前 ...
- 《C#高效编程》读书笔记09-避免在API中使用转换操作符
转换操作符为类之间引入了一种"可替换性"(substitutability)."可替换性"表示一个类的实例可以替换为另一个类的实例. public class ...
- sql单列合并
有一组这样的数据 1 a 10 2 b 2 4 c 5 1 a 5 在应用中,我们可能需要把出现a的数据合并显示: 1 a 10,5 sqlite上实现: SELECT ...
- Windows8 64位运行Silverlight程序不能访问WCF的解决方案
公司的项目是Silverlight+WCF,而我的本本是Win8 64位系统,一直无法正常运行Silverlight程序,一个同事找到了方案,现分享出来 一种情况是,Vs2010运行程序时,报无法加载 ...
- [转] eclipce使用vim 开启装逼模式
原文:http://blog.csdn.net/fatal360/article/details/12321613 1.在eclipse中使用vi模式的插件Vrapper打开eclipse,在Help ...
- tcpick
tcpick 是一款基于文本的嗅探器,能追踪,重组和重排tcp流.
- Spring之IOC核心模块详解
Spring IOC简述 IOC称为控制反转,也有一种说法叫DI(依赖注入).IOC也是spring最核心的模块,Spring的所有工作几乎都围绕着IOC展开. 什么是控制反转呢?简单的说,控制反转就 ...