搭建企业级NFS网络文件共享服务
NFS服务简介
NFS是Network File System(网络文件系统)。主要功能是通过网络让不同的服务器之间可以共享文件或者目录。NFS客户端一般是应用服务器(比如web,负载均衡等),可以通过挂载的方式将NFS服务器端共享的目录挂载到NFS客户端本地的目录下。
NFS在文件传送过程中依赖与RPC(远程过程调用)协议。NFS本身是没有提供信息传送的协议和功能的,但是能够用过网络进行图片,视频,附件等分享功能。只要用到NFS的地方都需要启动RPC服务,不论是NFS的服务端还是客户端。
NFS和RPC的关系:可以理解为NFS是一个网络文件系统(比喻为租房的房主),而RPC是负责信息的传输(中介),客户端(相当于租房的租客)
查看当前系统环境信息
[root@Appserver~]# cat /etc/issue ##查看系统版本信息
Red Hat Enterprise Linux Server release 6.6 (Santiago)
[root@Appserver~]# uname -r ##查看内核信息
2.6.32-754.3.5.el6.x86_64
[root@Appserver~]# uname -m ##查看系统是32位还是64位的
x86_64
说明:
服务器端: RHEL6.6 [192.168.2.131/24]
客 户 端: RHEL6.6 [192.168.2.130/24]
man nfs 可以查看mount的信息
rpc端口111
nfs主端口2049
服务端配置[192.168.2.131]
说明:
1. 在启动NFS服务之前,首先要启动RPC服务(CentOS5是portmap服务,CentOS6.6以后的版本是rpcbind服务),否则NFS服务器无法向RPC服务注册。
2. RPC服务如果重启,原来以及有的NFS端口就会丢失,因此,只要RPC服务重启,NFS服务就要重启向RPC重新注册新的随机端口号。
需要:停止nfs->停止rpcbind服务后重启rpcbind->重启nfs服务
3. 一般修改NFS配置文件后,不需要重启服务,直接平滑重启即可
命令:/etc/init.d/nfs reload或者exportfs -rv就可以修改/etc/exports生效。
/etc/init.d/nfs reload的作用是:让已经到达服务器的请求给他处理完毕,但是没有到达服务器的请求,就把它断掉。
1. 查看NFS的软件包[nfs和rpc默认是没有安装的,需要yum安装]
[root@westos ~]# rpm -qa nfs-utils rpcbind
2. 使用yum install nfs-utils rpcbind -y命令来安装NFS软件[安装后可以检查一下]
[root@westos]# yum install nfs-utils rpcbind
[root@westos]# rpm -qa nfs-utils rpcbind
3. 启动NFS服务
第一步:先启动rpc服务
[root@westos ~]# /etc/init.d/rpcbind start #启动rpc服务
[root@westos ~]# /etc/init.d/rpcbind status #查看rpc服务状态
第二步:启动NFS服务
[root@westos ~]# /etc/init.d/nfs start #启动nfs服务
[root@westos ~]# /etc/init.d/nfs status #查看nfs服务状
[root@westos ~]# ps -ef|grep nfs | grep -v 'grep nfs' # [可选],查看NFS服务
注意: 必须要先启动rpc服务,然后再启动NFS服务(RPC会有端口的映射),如果先启动NFS服务,启动服务时会失败
4. 查看NFS和RPC端口信息[可选]
rpc端口111
nfs主端口2049
第一步:服务器端口检查自己的rpc服务:
rpcinfo -p localhost # 查看NFS服务向rpc注册的端口信息,主端口号是:111
[root@Appserver ~]# netstat -lntup|grep 111 # 查看111端口信息
root@Appserver ~]# lsof -i 4:111 # 查看111端口信息
第二步:查看NFS
[root@Appserver ~]# netstat -lntup|grep 2049
[root@Appserver ~]# ps -ef|grep nfs
第三步:检查本机的nfs服务
showmount -e localhost
5. 服务开机自启
第一步:chkconfig开启服务
chkconfig --level 35 nfs on
chkconfig --level 35 rpcbind on
chkconfig --list | egrep "nfs|rpcbind"
第二步:写入rc.local
vim /etc/rc.local
/etc/init.d/rpcbind start
/etc/init.d/nfs start
说明:运维规范将服务的启动命令放到/etc/rc.local里面
6. 配置NFS服务端
第一步: 创建共享目录(注意权限)
mkdir /NFS -m777
chown -R nfsnobody:nfsnobody /data # nfsnobody为nfs默认创建的用户
第二步:配置服务器文件
NFS默认文件: /etc/exports
# /etc/exports配置文件的格式是:
# NFS共享的目录 NFS客户端地址(参数1,参数2)
vim /etc/exports
/data 192.168.2.130/24(rw,sync) #一条配置搞定NFS配置文件 #其中:/data : NFS服务器端要共享的实际目录,注意共享目录的本地权限,需要读写权限,一定要让本地目录可以被NFS客户端的用户读写
#192.168.2.130/24: NFS服务器端授权的可访问的共享目录的NFS客户端地址(可为单独的ip地址或者主机名,域名,整个网段的地址)
#(rw,sync) ,其中rw代表拥有读写的权限,sync代表数据同步写入NFS服务器端的硬盘中。也可以用async,async是大数据时使用,是先写到缓存区,再写到磁盘里。
可选:NFS服务器参数
rw:读写
ro:只读
sync:客户端给服务器端写入数据,待写入成功后服务端后给客户端一个写入成功的标记,这个时候数据写入成功。
但是数据安全,但是性能差
async:异步写入
数据写入内存后显示写入成功,高性能,但是一旦断电后数据丢失,
电商秒杀是异步的。大型网站都是异步,会短时间数据不一致。
no_root_squash:
访问的NFS Server的共享目录的用户是root的话,它对该共享目录具有root权限
root_squash:
访问的NFS Server的共享目录的用户是root的话,它对该共享目录的权限压缩为匿名用户
all_squash: -->推荐使用
不管访问的NFS Server的共享目录权限是什么,它对该共享目录的权限压缩均为匿名用户
第三步:重启nfs服务
/etc/init.d/nfs reload
第四步:服务端测试(服务器端口检查自己的nfs服务)
showmount -e localhost
#showmount -e 192.168.2.130 客户端成功后查看
第五步:测试本机(服务器端自身)挂载
mount -t nfs 192.168.2.131:/data /mnt
说明:查看默认配置
cat /var/lib/nfs/etab
其他:卸载网络挂载
# 强制卸载
umount -lf /mnt # l(lazy) f(force)
客户端配置[192.168.2.130]
1. 客户端和服务端一样,也要安装nfs和rpm的安装包。(配置见服务器端)
2. 客户端需要启动rpc服务,加入开机自启动。不需要启动nfs服务。(配置见服务器端)
3. 客户端配置:
第一步:测试服务器/客户端IP是否在同一网段
ping 192.168.2.130 # 客户端IP
第二步:查看服务器的111端口是否OK
telnet 192.168.2.131 11
第三步: showmount服务端
showmount -e 192.168.2.131
第四步:挂载服务器到本地,实现文件共享
mount -t nfs 192.168.2.131:/data/ /mnt
df –h
==> cat /proc/mounts # 效果同
# cat /proc/mounts # 效果同
第五步:写入rc.local
vim /etc/rc.local
/etc/init.d/rpcbind start
mount -t nfs 192.168.2.131:/data/ /mnt
其他: 卸载网络挂载
# 强制卸载
umount -lf /mnt # l(lazy) f(force)
测试挂载
搭建企业级NFS网络文件共享服务的更多相关文章
- 搭建企业级NFS网络文件共享服务说明[一]
1.1.0. 概述: 共享/NFS目录给整个192.168.25.0/24网段主机读写 man nfs 可以查看mount的信息 rpc端口111 nfs主端口2049 1.1.1. 搭建NFS环境 ...
- 搭建企业级NFS网络文件共享服务[二]
1.1.8 NFS问题总结 1.问:使用showmount -e 127.0.0.1后报clnt_create: RPC: Program not registered错误 答:顺序不对,重启nfs服 ...
- 企业级NFS网络文件共享服务_【all】
1.1. 什么是NFS(1台机器提供服务) Network File System(网络文件系统)通过局域网让不同的主机系统之间共享文件或目录. NFS客户端可以通过挂载的方式将NFS服务器端共享的数 ...
- Linux实战教学笔记22:企业级NFS网络文件共享服务
目录 第二十二节 企业级NFS网络文件共享服务 第一章 NFS网络文件共享服务 1.1 NFS介绍 1.2 NFS系统原理介绍 1.3 NFS服务端部署环境准备 1.4 NFS server端的设置 ...
- (转)企业级NFS网络文件共享服务
企业级NFS网络文件共享服务 原文:http://www.cnblogs.com/chensiqiqi/archive/2017/03/10/6530859.html --本教学笔记是本人学习和工作生 ...
- 【集群实战】NFS网络文件共享服务
1. NFS介绍 1.1 什么是NFS? NFS是Network File System的缩写,中文意思是网络文件系统. 它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录. ...
- NFS网络文件共享服务
NFS-网络文件系统,它的主要功能是通过网络让不同的主机系统之间可以彼此共享文件或目录. NFS在企业中得应用场景 在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频.图片.附件等静 ...
- 【集群实战】NFS网络文件共享服务2-mount挂载(参数,优化)
1. NFS客户端挂载深入 1.1 NFS客户端挂载参数说明 在NFS服务端,可以通过cat /var/lib/nfs/etab查看NFS服务器端配置参数的细节. 在NFS客户端,可以通过cat /p ...
- 【集群实战】NFS网络文件共享服务3-相关知识补充(showmount,exports,rpc)
1. showmount命令说明 showmount命令一般用于从NFS客户端检查NFS服务器端共享目录的情况. 参数说明: -e,--exports 显示NFS服务器输出的目录列表 [root@we ...
随机推荐
- CentOS系统中文改英文
一.进入语言配置文件 vi /etc/sysconfig/i18n 用SSH执行以上命令,用vi编辑器修改/etc/sysconfig/i18n文件. 二.修改语言 将默认的LANG="z ...
- SpringBoot学习(二)——Spring的Java配置方式
Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 一.@Configuration 和 @Bean Spring的Java配置方式是通过@Configuration和@Bean ...
- 为PartialView传递一个参数
看这篇之前,得先了解这个<在MVC应用程序中动态加载PartialView>http://www.cnblogs.com/insus/p/3547985.html. 因为是从这篇重构而来. ...
- 使用Docker调试Asp.Net Core
使用 Docker 进行部署 目前还是使用将发布出来的文件打包进docker镜像的形式 $ docker build -t pims . $ docker run --name pims --rm - ...
- 数据库中存储日期的字段类型到底应该用varchar还是datetime
将数据库中存储时间的数据类型改为varchar(),这时最好让这些时间是数据库中自动生成的(一个没有格式的输入也可能会导致输出错误),因为存储类型为varchar(),所以获取到的值也就被认为是一个字 ...
- IntelliJ IDEA 启动tomcat服务器报Error running 'Unnamed': Address localhost:1099 is already in use错误的问题
在使用Intellij IDEA运行web项目时,出现 :Error running Tomcat8: Address localhost:1099 is already in use,使其web项目 ...
- maven的注意点
一.dependency的scope 取值范围:compile.test.runtime.provided.system compile 默认就是compile,什么都不配置也就是意味着compile ...
- Oracle中UNION和ORDER BY共用方法
问题 SQL语句中,UNION拼接两个单独的SQL时候,单独的SQL中加入ORDER BY会报错,ORDER BY只能放在句末. // 会报错的语句 SELECT S.S_ID AS ID,S.S_N ...
- php面向对象精要(1)
1.静态属性与方法 每一个类的实例拥有自己的属性和方法,每一个类也可以包含静态属性,静态属性不属于类的任何实例,可以把静态属性理解成存储在类中的全局变量,可以在任何地方通过类名引用静态属性. < ...
- tinyint、smallint、bigint、int 区别
1byte=8bit [tinyint] 从 0 到 255 的整型数据.存储大小为 1 字节.如果设置为UNSIGNED类型,只能存储从0到255的整数,不能用来储存负数. [smallint] ...