nfs服务器随机读写性能,NFS服务详细分析
1. NFS服务介绍
1.1什么是NFS服务
NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样,也就是说客户端PC可以挂载NFS服务器所提供的目录并且挂载之后这个目录看起来如同本地的磁盘分区一样,可以使用cp、cd、mv、rm及df等与磁盘相关的命令。
1.2 NFS服务的优缺点
1.2.1优点
a.节省本地存储空间将常用的数据存放在一台服务器可以通过网络访问
b.简单容易上手
c.方便部署非常快速,维护十分简单
1.2.2缺点
a.局限性容易发生单点故障,及server机宕机了所有客户端都不能访问
b.在高并发下NFS效率/性能有限
c.客户端没用用户认证机制,且数据是通过明文传送,安全性一般(一般建议在局域网内使用)
d.NFS的数据是明文的,对数据完整性不做验证
e.多台机器挂载NFS服务器时,连接管理维护麻烦
2. NFS服务工作原理
下面给大家看一幅图
2.1 NFS原理简单介绍
NFS Server服务器上设定/data目录被分享,而客户端可以通过internet将/data目录挂载到本地的挂载点(常用mnt)后,客户端就可以进入挂载点目录进行文件的读写。NFS客户端所开放的端口是随机的我们不知道,那该怎么办呢?那是不是就不能进行数据传输了呢?答案当然是NO了那就需要另外一种服务帮他分配port了,服务是什么呢?那就是RPC服务了!想知道什么是RPC服务那就往下看啦~~~
2.2 RPC简单介绍
2.2.1什么是rpc服务
RPC(Remote Procedure Call)即远程过程调用。RPC 最主要的功能就是在指定每个 NFS 功能所对应的 port number ,并且回报给客户端,让客户端可以连结到正确的port上去。
2.2.2 RPC服务原理
a.执行顺序:1(注册端口)--à2(达成协议)-à3(直接建立联系)--à4(达成协议)--à5(建立连接)
b.那为啥rpc能够找到对应的port呢?这是因为当服务器在启动NFS时会随机取用数个port,并且主动的向RPC注册,因此RPC可以知道每个NFS的port对应的NFS功能,然后RPC又是固定使用port111来监听客户端的需求并汇报客户端的正确的port。
2.2.3 portmap
功能:主要是把RPC程序号转化为Internet的端口号。
特点:只在第一次建立连接时候帮助网络应用程序找到正确的port,当当双方正确连接时,端 口就和应用绑定,portmap就无用。相当于媒婆。
2.3NFS Server配置安装
2.3.1 yum安装nfs服务rpc服务[root@nfsserver~]# yum -y install nfs* #nfs*有nfs-utils、nfs-utils-lib、nfs-utils-lib-devel和nfs4-acl-tools
2.3.2检查rpc服务和nfs服务是否安装并且安装成功[root@nfsserver~]# rpm -qa rpc* nfs*
nfs-utils-lib-1.1.5-11.el6.x86_64
nfs-utils-lib-devel-1.1.5-11.el6.x86_64
rpcbind-0.2.0-11.el6.x86_64
nfs-utils-1.2.3-64.el6.x86_64
nfs4-acl-tools-0.3.3-7.el6.x86_64
2.3.3启动rpc服务和NFS服务(先启rpc服务,后启NFS服务)[root@nfsserver/]# /etc/init.d/rpcbind start
Startingrpcbind: [ OK ]
[root@nfsserver/]# /etc/init.d/nfs start
Starting NFSservices: [ OK ]
Starting NFSmountd: [ OK ]
Starting NFSdaemon: [ OK ]
Starting RPCidmapd: [ OK ]
2.3.4设置开机自启[root@nfsserver/]# chkconfig nfs on
[root@nfsserver/]# chkconfig rpcbind on
[root@nfsserver/]# chkconfig --list |grep -E "nfs|rpcbind"
nfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
nfslock 0:off 1:off 2:off 3:on 4:on 5:on 6:off
rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2.3.5配置共享目录/data(nfs配置文件时/etc/exports 默认是空的)[root@nfsserver~]# vim /etc/exports
#share /datafor nfsclient
/data192.168.137.2/10(rw,sync, no_all_squash)
2.3.6建立共享目录[root@nfsserver ~]# mkdir /data
2.3.7平滑加载NFS服务并检查服务(shoumount -e localhost)[root@nfsserver~]# /etc/init.d/nfs reload
[root@nfsserver~]# showmount -e localhost
Export list forlocalhost:
/data192.168.137.2/10
2.4 NFS Client 配置
2.4.1安装rpc服务[root@nfsclient01 ~]# yum -y installrpcbind
2.4.2启动rpc服务并检查[root@nfsclient01~]# /etc/init.d/rpcbind start
Startingrpcbind: [ OK ]
[root@nfsclient01~]# ps -ef| grep "rpc"
rpc 1208 1 0 13:38 ? 00:00:00 rpcbind
root 1212 1135 0 13:39 pts/0 00:00:00 grep rpc
2.4.3设置开启自启并检查[root@nfsclient01~]# chkconfig rpcbind on
[root@nfsclient01~]# chkconfig --list rpcbind
rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2.4.4挂载并测试
挂载/data到/mnt目录下[root@nfsclient01/]# mount -t nfs 192.168.137.7:/data /mnt
大家注意了,如果是新的机子的话在这里可能会出现这样的一个errormount: wrong fstype, bad option, bad superblock on 192.168.137.7:/data,missing
codepage or helper program, orother error(for several filesystems (e.g. nfs, cifs)you might need a /sbin/mount. helperprogram) In some cases useful info is found insyslog - try dmesg | tail or so
解决方法是安装一个nfs-utils之后再挂载一次就ok[root@nfsclient01 /]# yum -y installnfs-utils
root@nfsclient01 /]# mount -t nfs 192.168.137.7:/data/mnt
最后,将挂载命令写进rc.local
2.5拓展:CDN
2.5.1 CDN简介
CDN的全称是ContentDelivery Network,即内容分发网络
2.5.2 CDN的基本介绍
基本思路:尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
简介:通过在网络各处放置节点服务器,这些节点之间会动态的互相传输内容,CDN系统能够根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。目的是就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。也就是:这些节点之间会动态的互相传输内容,对用户的下载行为最优化,并借此减少内容供应者所需要的带宽成本,改善用户的下载速度,提高系统的稳定性。
基本原理:依靠部署在各地的边缘服务器。通过中心平台的负载均衡、内容分发、调度等功能模块,就近获取内容,降低网络拥塞,提高访问响应速度和命中率。关键技术:内容存储和分发技术。
关键点:广泛采用各种缓存服务器、全局负载技术
4要件:分布式存储,负载均衡,网络请求重定向,内容管理
2.5.3 CDN的优缺点
优点:1.本地cache加速,提高企业站点2.镜像服务,实现跨运营商网络加速 3.远程加速 4.带宽优化 减少远程访问的带宽、分担网络流量、减轻 原站点web服务器负载 5.集群抗***
缺点:1.实施难度复杂,2投资大
2.5.4CDN的结构图
3. NFS配置知识介绍
3.1 NFS配置文件格式
3.1.1 NFS配置文件:/etc/exports(默认为空)
3.1.2/etc/exports格式
3.1.3权限参数权限参数类型功能
rw可读写的权限
ro只读的权限
sync(同步)资料同步写入到内存与硬盘中(慢,不容易丢数据)
async(异步)资料会暂存于内存当中,而不是写入硬盘(快,容易丢数据)
no_root_squash客户端用root用户访问该共享文件夹时,root用户不会映射成匿名用户(极不安全,不建议使用)
root_squash客户端用root用户访问该共享文件夹是,将root用户映射为匿名用户
all_squash不论登入NFS的使用者身份是谁,他的身份都会被压缩成匿名用户(nfsnobody)
anonuid=xxx指定NFS服务器的匿名用户UID
anongid=xxx指定NFS服务器的匿名用户GID
insecureNFS通过1024以上的端口发送
secureNFS通过1024以下的安全TCP/IP端口发送
hide在NFS共享目录中共享其子目录
no_hide在NFS共享目录中共享其子目录
wdelay如果多个用户写入NFS目录,则归组写入(默认)
no_wdelay如果多个用户写入NFS目录,则立即写入,当使用async时,无需此设置
subtree_check在共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check和上面相对,不检查父目录权限
3.2 NFS常用命令
命令参数含义
exportfs-a递增式更新,对/etc/export增加或修改的部分进行挂载和卸载
-i指定配置文件
-r更新配置重新读取/etc/exports
-u卸载指定的目录
-o使用指定的参数
-v显示共享详细情况
showmount-a或--all以host:dir这样的格式来显示客户主机名和挂载点目录
-d或--directories仅显示客户端挂载的目录名
-e或--exports显示NFS服务器输出清单
-h或--help显示帮助信息
-v或--version显示版本信息
--no-headers禁止输出描述头部信息
rpcinfo语法:rpcinfo –p [host];rpcinfo
[-n port] –u |-t host program[version]
rpcinfo-p(probe,探测)列出所有在host用portmap注册的RPC程序,如果没有指定的host,就查找本地上的RPC程序
-n(port number,端口号)根据-t或者-u,使用编号为port的端口,而不是由portmap指定的端口号
-u(UDP)UDP RPC调用host上程序program的version版本,并报告是否接収到响应
-t(TCP)TCP RPC调用host上程序program的version版本(如果指定的话),并报告是否接收到响应
-b(broadcast,广播)向程序program的version版本进行RPC广播,并列出响应的主机
-d(delete,删除)将程序program的version版本从本机的RPC注册表中删除。只有root特权用户才可以使用这个选项
mount(nfs)-t指定设备的文件系统类型
-r以只读方式加载设备
umount-t仅卸除选项中所指定的文件系统
-r若无法成功卸除,则尝试以只读的方式重新挂入文件系统
3.3 NFS出问题解决方法及生产应用场景:
大中小型网站(2000wpv以下)线上应用,当web服务器少的时候,弃用nfS,同步数据到web服务器上(上传数据太快的话,同步延迟较大)
看配置是否有问题à看服务是否开启à挂载没反应à挂载没反应(看ping通?然后看telnet通不通)
这次总结就到此为止,这次总结由于事情较多耽搁了,时间比较长,忘见谅!这次总结感悟:无论做什么事情只有动手去做才会发现问题,才能更快的成长起来!要有求甚解的态度才能提高自己!
nfs服务器随机读写性能,NFS服务详细分析相关推荐
- nfs服务器随机读写性能,linux nfs 读写性能
linux nfs 读写性能 内容精选 换一换 fio是一个开源的I/O压力测试工具,可以使用fio工具对SFS进行吞吐量和IOPS的性能测试.已在云服务器上安装fio工具.fio可从官网或GitHu ...
- NFS服务器主配置文件名,NFS服务配置文件
NFS服务的安装和测试是比较简单的.那么下面我们就来详细介绍一下NFS服务在Linux系统下的具体安装测试步骤.那么请大家先了解一下有关的配置文件,以及相关的格式. 1)服务端配置文件: /etc/e ...
- NFS服务器主配置文件名,NFS服务器的搭建与配置
安装NFS服务,需要安装两个软件,分别是: RPC主程序:rpcbind NFS 其实可以被视为一个 RPC 服务,因为启动任何一个 RPC 服务之前,我们都需要做好 port 的对应 (mappin ...
- nfs服务器哪个版本稳定,NFS V3与各个版本间的比较
NFS协议大家应该都知道,随着网络的不断发函,目前已经有了不少版本.今天我们主要讲解一下NFS的基础知识,以及它们版本间的一些对比,包括NFS V2(rfc1094),NFS V3(rfc1813)N ...
- sse服务器推送性能,SSE 服务端向客户端推送
传统的ajax都是由客户端主动去请求,服务端才可以返回数据 而sse是建立一个通道,并且在断线后自动重连,由服务端去推送,不需要客户端去主动请求,只需要建立通道 websocket是双向通信 客户端可 ...
- linux nfs 读写性能,linux – NFS客户端具有不平衡的读写速度
我有一台NetApp作为我的nfs服务器,两台 Linux服务器作为nfs客户端.问题是,两台服务器中较新的服务器在同时对nfs服务器进行读写操作时,读写速度会有很大差异.另外,读取和写入对于这个新服 ...
- 【RHCE】NFS服务器简介及简单共享目录配置
目录 NFS服务器简介 NFS的使用 [手工挂载] 客户端使用autofs自动挂载 NFS服务器简介 配置文件置顶: 主配置文件:vim /etc/exports[文件可能不存在.正常的] NFS(N ...
- 十分钟学习nfs服务器
NFS服务器简介 NFS的使用 权限参数 简易实验配置一: 要求:客户端借用nfs服务器可以同步服务端的文件 步骤:服务端配置(/var/lib/nfs日志存放目录) 创建文件:(主配置文件有可能存在 ...
- CentOS 8.2上安装部署NFS服务器和客户端
文章目录 第一步:NFS系统简单概述 第二步:先决条件 第三步:测试环境 第四步:CentOS 8上安装NFS服务器 第五步:客户端系统上设置NFS客户端 广告时间: 第一步:NFS系统简单概述 网络 ...
最新文章
- Python Coding Guidelines
- UDP调用connect函数
- tnsname.ora
- Docker——基于HubServing部署全套PaddleOCR Restful API服务(CPU版本)
- 【性能优化】 之 并行执行
- linux 裸设备使用,linux裸设备使用
- 12-Linux下Oracle 11g R2数据库安装
- Android四大组件之——Activity(一)定义、状态和后退栈(图文详解)
- java se mac 10.9_jdk9mac下载|jdk8(Java SE Development Kit)8 mac2017 最新版_ - 极光下载站
- weblogic安装(win10)
- Android开发面试简历
- Ubuntu安装字体for wps
- 电脑基础知识入门:键盘上的英文,意思和功能汇总!
- 通过谷歌骇客语法搜索后台:_书评:我们的骇客并拥有
- 项目管理理论中关于软件项目外包采购管理的探讨
- OpenCV开发笔记(七十一):红胖子8分钟带你深入级联分类器训练
- CorelDRAWX4的C++插件开发(四十三)VBA的错误返回机制
- 啥是认知智能? 认知智能和人工智能到底有啥区别? 你知道吗? 道翰天琼认知智能。
- 1.出现了 page[pages/XXX/XXX] not found.May be caused by :1. Forgot to add page route in app.json.2. Inv
- spring boot整合vue项目