Intel提供的套件DPDK,可以直接用来测试NVME接口是用来干嘛的的固态硬盘4K随机读写性能吗?

几个 Ceph 性能优化的新方法和思路(2015 SH Ceph Day 参后感)
时间: 09:17:57
&&&& 阅读:347
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&& & 一周前,由 Intel 与 Redhat 在10月18日联合举办了 Shanghai Ceph Day。在这次会议上,多位专家做了十几场非常精彩的演讲。本文就这些演讲中提到的 Ceph性能优化方面的知识和方法,试着就自己的理解做个总结。
0. 常规的 Ceph 性能优化方法
(1). 硬件层面
硬件规划:CPU、内存、网络
SSD选择:使用 SSD 作为日志存储
BIOS设置:打开超线程(HT)、关闭节能、关闭 NUMA 等
(2). 软件层面
Linux OS:MTU、read_ahead 等
Ceph Configurations 和&PG Number 调整:使用 PG 计算公式(Total PGs = (Total_number_of_OSD * 100) / max_replication_count)计算。
更多信息,可以参考下面的文章:
1. 使用分层的缓存层 - Tiered Cache
& 显然这不是一个 Ceph 的新特性,在会议上有这方面的专家详细地介绍了该特性的原理及用法,以及与纠错码方式结合的细节。
简单概括:
每一个缓存层次(tiered cache)使用一个 RADOS pool,其中 cache pool 必须是拷贝(replicated)类型,而 backing pool 可以是拷贝类型也可以是纠错码类型。
在不同的缓存层次,使用不同的硬件介质,cache pool 使用的介质必须比 backing pool 使用的介质速度快:比如,在 backing pool 使用一般的存储介质,比如常规的HDD或者 SATA SDD;在 cache pool 使用快速介质,比如 PCIe SDD。
每一个 tiered cache 使用自己的 CRUSH rules,使得数据会被写入到指定的不同存储介质。
librados 内在支持 tiered cache,大多数情况下它会知道客户端数据需要被放到哪一层,因此不需要在 RDB,CephFS,RGW 客户端上做改动。
OSD 独立地处理数据在两个层次之间的流动:promotion(HDD-&SDD)和 eviction(SDD -& HDD),但是,这种数据流动是代价昂贵(expensive)和耗时的(take long time to &warm up&)。
2. 使用更好的&SSD - Intel&NVM Express (NVMe) SSD
& & &在 Ceph 集群中,往往使用 SSD 来作为 Journal(日志)和 Caching(缓存)介质,来提高集群的性能。下图中,使用 SSD 作为 Journal 的集群比全 HDD 集群的 64K 顺序写速度提高了 1.5 倍,而 4K 随机写速度提高了 32 倍。
& &而Journal 和 OSD 使用的 SSD 分开与两者使用同一块SSD,还可以提高性能。下图中,两者放在同一个 SATA SSD 上,性能比分开两块 SSD (Journal 使用 PCIe SSD,OSD 使用 SATA SSD),64K 顺序写速度下降了 40%,而 4K 随机写速度下降了 13%。
& & 因此,更先进的 SSD 自然能更加提高Ceph 集群的性能。SSD 发展到现在,其介质(颗粒)基本经过了三代,自然是一代比一代先进,具体表现在密度更高(容量更大)和读写数据更快。目前,最先进的就是 Intel NVMe SSD,它的特点如下:
为 PCI-e 驱动器定制的标准化的软件接口
为 SSD 定制(别的是为 PCIe 所做的)
SSD Journal : HDD OSD 比例可以从常规的 1:5 提高到 1:20
对全 SSD 集群来说,全 NVMe SSD 磁盘Ceph 集群自然性能最好,但是它造价太高,而且性能往往会受限于网卡/网络带宽;所以在全SSD环境中,建议的配置是使用 NVMe SSD 做 Journal 而使用常规 SSD 做 OSD 磁盘。
同时,Intel SSD 还可以结合&Intel Cache Acceleration Software 软件使用,它可以智能地根据数据的特性,将数据放到SSD或者HDD:
测试配置:使用 Intel NVMe SSD 做 Cache,使用&Intel CAS Linux 3.0 with hinting feature (今年年底将发布)
测试结果:5% 的 cache,使得吞吐量(ThroughOutput)提交了一倍,延迟(Latency)降低了一半
3. 使用更好的网络设备 - Mellanox 网卡和交换机等
3.1 更高带宽更低延迟的网卡设备
& & Mellanox 是一家总部在以色列的公司,全球约 1900 名员工,专注高端网络设备,2014 年revenue 为 ¥463.6M 。(今天正好在水木BBS上看到该公司在中国的分公司待遇也是非常好)。其主要观点和产品:
Ceph 的 Scale Out 特性要求用于 replicaiton、sharing 和 metadata (文件)的网络吞吐量更高、延迟更低
目前 10 GbE(万兆以太网络) 已经不能满足高性能Ceph 集群的要求(基本上 20个 SSD 以上的集群就不能满足了),已经开始全面进入 25, 50, 100 GbE 时代。目前,25GbE 性价比比较高。
大部分网络设备公司使用的是高通的芯片,而 Mellanox 使用自研的芯片,其延迟(latency)是业界最低的(220ns)
Ceph 高速集群需要使用两个网络:public network 用于客户端访问,Cluster network 用于 heartbeat、replication、recovery 和 re-balancing。
目前 Ceph 集群广泛采用 SSD, 而快速的存储设备就需要快速的网络设备
实际测试:
(1)测试环境:Cluster network 使用 40GbE 交换机,Public network 分布使用 10 GbE 和 40GbE 设备做对比
(2)测试结果:结果显示,使用 40GbE 设备的集群的吞吐量是使用 10 GbE 集群的 2.5 倍,IOPS 则提高了 15%。
& & 目前,已经有部分公司使用该公司的网络设备来生产全SSD Ceph 服务器,比如,SanDisk 公司的 InfiniFlash 就使用了该公司的 40GbE 网卡、2个 Dell R720 服务器作为 OSD 节点、512 TB SSD,它的总吞吐量达到 71.6 Gb/s,还有富士通和Monash 大学。
3.2 RDMA 技术
& & 传统上,访问硬盘存储需要几十毫秒,而网络和协议栈需要几百微妙。这时期,往往使用&1Gb/s 的网络带宽,使用 SCSI 协议访问本地存储,使用 iSCSI 访问远端存储。而在使用 SSD 后,访问本地存储的耗时大幅下降到几百微秒,因此,如果网络和协议栈不同样提高的话,它们将成为性能瓶颈。这意味着,网络需要更好的带宽,比如40Gb/s &甚至 100Gb/s;依然使用 iSCSI 访问远端存储,但是 TCP 已经不够用了,这时 RDMA 技术应运而生。RDMA 的全称是&Remote Direct Memory Access,就是为了解决网络传输中服务器端数据处理的延迟而产生的。它是通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能.它消除了外部存储器复制和文本交换操作,因而能腾出总线空间和CPU 周期用于改进应用系统性能. 通用的做法需由系统先对传入的信息进行分析与标记,然后再存储到正确的区域。
& &这种技术上,Mellanox &是业界领先者。它通过 Bypass Kenerl 和 Protocol Offload 的实现,提供高带宽、低CPU占用和低延迟。目前,该公司在 Ceph 中实现了 XioMessager,使得Ceph 消息不走 TCP 而走 RDMA,从而得以提高集群性能,该实现在 Ceph Hammer 版本中提供。
& & 更多信息,可以参考:
4. 使用更好的软件 - Intel SPDK 相关技术
4.1 Mid-Tier Cache 方案
& & 该方案在客户端应用和 Ceph 集群之间添加一个缓存层,使得客户端的访问性能得以提高。该层的特点:
对 Ceph 客户端提供 iSCSI/NVMF/NFS 等协议支持;
使用两个或者多个节点提高可靠性;
添加了Cache,提高访问速度
使用 write log 保证多节点之间数据一致性
使用 RBD 连接后端Ceph集群
4.2 使用 Intel DPDK 和 UNS 技术
& & Intel 使用该技术,在用户空间(user space)实现了全 DPDK 网卡及驱动、TCP/IP协议栈(UNS)、 iSCSI Target,以及 NVMe 驱动,来提高Ceph的 iSCSI 访问性能。好处:
与&Linux*-IO Target (LIO) 相比,其 CPU overhead 仅为 1/7。
用户空间的 NVMe 驱动比内核空间的 VNMe 驱动的 CPU 占用少 90%
& &该方案的一大特点是使用用户态网卡,为了避免和内核态的网卡冲突,在实际配置中,可以通过 SRIOV 技术,将物理网卡虚拟出多个虚拟网卡,在分配给应用比如OSD。通过完整地使用用户态技术,避免了对内核版本的依赖。
& 目前,Intel 提供&Intel DPDK、UNS 、优化后的 Storage 栈作为参考性方案,使用的话需要和 Intel 签订使用协议。用户态NVMe驱动已经开源。
4.3 &CPU 数据存放加速 - ISA-L 技术
& & 该代码库(code libaray)使用 Intel&E5- 和 Atom C2000 product family CPU 的新指令集来实现相应算法,最大化地利用CPU,大大提高了数据存取速度,但是,目前只支持单核 X64 志强和 Atom CPU。在,EC 速度得到几十倍提高,总体成本减少了百分之25到30.
5. 使用系统的工具和方法 - Ceph 性能测试和调优工具汇总
本次会议上,还发布了若干Ceph 性能测试和调优工具。
5.1 Intel CeTune
Intel的该工具可以用来部署、测试、分析和调优(deploy, benchmark, analyze and tuning)Ceph 集群,目前它已经被开源,代码&。主要功能包括:
用户可以对 CeTune 进行配置,使用其 WebUI
部署模块:使用 CeTune Cli 或者 GUI 部署 Ceph
性能测试模块:支持&qemurbd, fiorbd, cosbench 等做性能测试
分析模块:iostat, sar, interrupt, performance counter 等分析工具
报告视图:支持配置下载、图标视图
5.2 常见的性能测试和调优工具
Ceph 软件栈(可能的性能故障点和调优点):
可视性性能相关工具汇总:
Benchmarking 工具汇总:
调优工具汇总:
6. 综合评价 &
& & 上面的几种方法,与传统的性能优化方法相比,部分具有其创新性,其中,
更好的硬件,包括SSD和网络设备,自然能带来更好的性能,但是成本也相应增加,而且带来的性能优化幅度具有不一致性,因此,需要在应用场景、成本、优化效果之间做综合权衡;
更好的软件,目前大都还没有开源,而且大都还处于测试状态,离在生产环境中使用尚有距离,而且都和 Intel 的硬件紧密绑定;
更全面的方法,则是广大 Ceph 专业人员需要认真学习、使用到的,在平时的使用中能够更高效的定位性能问题并找到解决方法;
Intel 在 Ceph 上的投入非常大,客户如果有Ceph集群性能问题,还可以把相关数据发给他们,他们会提供相应建议。
注:以上所有内容皆来自于本次会议上展示的资料以及会后发送的资料。如有内容不合适在本文发布,请与本人联系。再次感谢 Intel 和 RedHat 举办本次会议。
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/sammyliu/p/4905726.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!现在位置:
&1376&篇文章博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)发表了一篇文章
以前因为工作的关系,对于自定义控件用的少之又少,无非就是把几个控件放置到ViewGroup内部,然后提供开放方法,就成了一个所谓的自定义控件,但是这种小伎俩太简单,面试的时候这点东西根本Hol…
发表了一篇文章
IntentService是一个专门用来处理异步线程的一个服务,它内部创建了一个消息队列以及一个Handler对象,其它组件将Intent发送过来之后,IntentService会将这个Int…
发表了一篇文章
今天想往MP3下点音乐,但是满了,想把里面不喜欢的删了,但是音乐都在各个文件夹下,于是,我希望所有的音乐文件可以移动到一个层面,以供我按照音乐专辑的封面来挑选要删哪个,于是就想写个程序来做一下…
发表了一篇文章
以前对于Activity的启动模式只限于文字说明理解的层面,但最近的一个问题让我对启动模式有了更深的了解。
Activity有四大启动模式:standard,singleTop,single…
发表了一篇文章
最近又重新看了点IPC的相关知识,以前看过不少Binder的知识,看到c++层思路就很模糊了,回头再看也算是一种学习。
IPC全称为:interprocess communication内部…
发表了一篇文章
转载请附本文的链接地址:http://blog.csdn.net/sahadev_/article/details/ ,谢谢。
tcp/ip技术常常会在我们面试的时候出现…
发表了一篇文章
前段时间我一个朋友在面试回来问我:那个公司要5天之内完成一个项目,功能包括每天早上6点开始执行定时任务,大批量图片上传,大批量数据库同步。我心想,后两个功能还好说,可就是每天早上6点开始执行的…
发表了一篇文章
这篇文章主要针对http://android.xsoftlab.net/training/scheduling/alarms.html#tradeoffs中的Scheduling…
发表了一篇文章
欢迎来到安卓开发训练课,在这里你可以找到一系列课程来描述如何使用现有的代码示例来重新适用到你的APP上,你可以在左侧的导航栏顶部看到在若干个大项里有若干个有组织的子项…
发表了一篇文章
欢迎来到Android开发大家庭。
这一课将会教授你如何构建你的第一款安卓应用。你将会学习到如何创建一个安卓工程,并运行一个可调试的应用版本。你也将会学习一个基本的安卓应用设计…
发表了一篇文章
这节课你将会学到:
- 使用Android Studio创建一个工程。
- 使用命令行工具创建一个工程。
你也应该阅读:
- 管理工程
安卓项目包含…
发表了一篇文章
如果你在上一节创建了一个”Hello World”的工程,那么它可以让你立即运行APP。
如何运行应用依靠两样事情:一台运行安卓系统的设备,AS。这节课将展示如何安装并运行应用…
发表了一篇文章
原文地址:http://android.xsoftlab.net/training/basics/firstapp/building-ui.html
在这节课中,你会创建一个x…
发表了一篇文章
原文地址:http://android.xsoftlab.net/training/basics/firstapp/starting-activity.html#CreateAc…
发表了一篇文章
导言- 添加ActionBar
原文地址:http://android.xsoftlab.net/training/basics/actionbar/index.html
发表了一篇文章
原文地址 : http://android.xsoftlab.net/training/basics/actionbar/adding-buttons.html
发表了一篇文章
原文地址 : http://android.xsoftlab.net/training/basics/actionbar/styling.html
ActionBar的样式…
发表了一篇文章
原文地址 : http://android.xsoftlab.net/training/basics/actionbar/overlaying.html
浮层效果的Acti…
发表了一篇文章
原文地址 : http://android.xsoftlab.net/training/basics/supporting-devices/index.html
支持不同的…
发表了一篇文章
原文地址 : http://android.xsoftlab.net/training/basics/supporting-devices/screens.html#create…
501670人浏览
382883人浏览
341444人浏览
317500人浏览
307359人浏览1、传统RAID能否胜任NVMeSSD?2、2016:NVMeoverFabric元年3、SPDK用户态NVMe驱动、Ceph演示4、双端口NVMe阵列:HA之外还有差异化功能...
点击上方“企业存储技术”可以订阅哦昨天写了一篇软件相关的《IDF16:解读Ceph百万IOPS测试及优化》,今天接着写硬件方面的学习心得和自己一些粗浅的理解,这次的参考资料来自《在存储转换趋势中胜出的必备知识:准备在客户端和数据中心采用NVM Express 和PCI Express》。
首先响应热心朋友,我把目前能下载到的全部IDF 2016技术课程中文资料做了一个网盘共享。
链接:http://pan.baidu.com/s/1dE8HIrZ(也可点击本文底部“阅读原文”下载)。
同时也列出官网下载链接 http://myevent.opusteam.com/sessions/0B9F-408A-8B61-65D/12/5?update=true#,里面还包括每节课程的英文资料下载。
如上图,今年对NVMe生态系统的一些利好因素包括:双端口SSD相关、NVMe Over Fabric互连、SPDK、被主要云计算提供商使用、PCIe Switch有多个供应商,以及基于NVMe的HBA和RAID卡。
关于PCIe Switch,其实芯片早就有不止一家供应商——PMC(IDT)和Avago(PLX),交换机产品我在7、8年前就曾见过,不过那时还不成熟。目前公开销售的PCIe交换机产品仍不多见,其面临的问题和SAS类似,一个是不适合做长距离连接;还有一点我在《OCP峰会:PCIe SSD版本的Open Vault存储机箱,没有了SAS的双端口》中曾经提到:“目前的PCIe3.0 Switch芯片最高lane数量应该就是96和97。”
注:SAS Switch芯片目前最多68 lane,延伸阅读:《分布式 or SAN文件系统、SAS交换为何普及难?》
传统RAID能否胜任NVMe SSD?
我曾经看到不止一位朋友提出同样的问题:“SAS盘有RAID卡,PCIe SSD有吗?”
大家都觉得技术上应该不是问题,不过传统的嵌入式RoC处理器能否充分发挥出PCIe/NVMe闪存的性能?SFF-8639的驱动器也是刚普及不久嘛。
我手里正好有一份今年2月相关的新闻稿,摘录一段话:“NVMe Storage Adapters(HBA/RAID): As the leading provider of SAS/SATA storagecontrollers, HBA, and RAID adapters, Broadcom is sampling the industry’s first combined NVMe/SAS/SATAstorage controllers.”
注:收购Broadcom之后Avago/LSI换品牌了,用的应该还是MegaRAID技术。
所谓Intel搞的RSTe软件RAID,应该就是操作系统中的一个软件(类似md-raid),目前在RAID 5 Rebuild时还无法保证掉电的数据完整性,猜测是用了临时内存。
在上面这张图表里,Intel“特地”找了希捷SAS SSD作为对比,因此我对左边绿色的性能数字不太关心。4个DC P3700 RAID5的10万IOPS我觉得应该是随机写,这里CPU肯定不是瓶颈,IntelSSD单盘随机写指标是17.5万,也就是说写惩罚仍然存在,而且传统SSD RAID的效率似乎难以达到HDD的水平。
2016:NVMe over Fabric元年
这里再次指出了PCIe直连的问题——扩展性,此外当前使用光纤接口的RDMA存储网络,比如iSER和SRP仍然使用了SCSI协议,面对下一代NVM(如3D XPoint)延时问题会更突出,因此行业需要NVM Expressover Fabrics。
NVM over Fabrics除了能跑在RoCE和IB网络上,也支持iWARP和FC,比如下图中的QLogic。另外这里的下一代光纤指的是Intel新搞的100Gb/s Omni-Path互连吧?
FC不死?——QLogic计划推出FC-NVMe适配卡
如右图,一个NVM子系统划分多个命名空间(相当于LUN),一个命名空间还可以通过多个NVMe控制器映射出去,达到“双控双活”的效果。
NVMe over Fabrics主要的概念文档正在起草阶段,准备在2016年看到初步的应用。如果要接近今天FC/SAS在存储系统前/后端连接的成熟度,估计要2-3年或以上。参照NVMe之前的发展进度,Intel喊着Fusion-io不行也过去好几年了。
SPDK用户态NVMe驱动、Ceph演示
上图中蓝色部分是驱动器读延时,在机械硬盘时代软件栈几乎不需要优化,而到了Optane(听说是3D XPoint Memory做缓存的闪存盘)和新一代高性能NVM介质到来时,软件即将成为瓶颈。
扩展阅读:《从技术到应用:揭开3D XPoint Memory迷雾》
为了达到端到端用户态无锁poolling模式替代传统内核态中断处理,我理解Intel DPDK在这里应该是第一步实现了网络驱动,NVMe和CBDMA用户态存储驱动已经开源,计划目标看来是要将NVMf与iSCSI的Target整合。
这里列出了SPDK用户态polled模式NVMe驱动的好处,包括消除了中断和系统的损耗、使用大内存页和静态缓存等。使用FIO工具测试4个P3700 SSD的对比结果是:传统内核态NVMe驱动,Intel Xeon CPU单个核心能够支撑的4KB随机读性能只有25万IOPS,而换用SPDK驱动之后提升到高达180万。
(点击可放大)提到DPDK+SPDK用户态存储应用,很容易让我想到有国内Ceph第一人之称的王豪迈,他目前担任XSKY的CTO,上面的照片拍摄自该公司前不久举行的发布会。
手机的效果有限,右边红框部分可以看到ceph-osd的CPU占用率超过200%(核心占用率),而与此同时每秒中断数量只有2000多。据现场的工程师表示,在将Ceph改造为用户态之前,同一测试的CPU核心占用率低于100%,并且中断数量高出几个数量级。
XSKY全用户态Ceph演示平台使用了戴尔PowerEdge R730服务器,以及Mellanox40Gb RoCE网络互连环境。
上图引用自冬瓜哥在2015存储峰会的分享资料《IO协议栈前沿技术研究动态》,其中也提到了用户态(Polling模式)的优劣势,供大家参考。
双端口NVMe阵列:HA之外还有差异化功能
早在前年撰写《破解PCIe SSD进化:从踩坑到解决方案》的最后一个章节时,我就曾讨论过用于双控存储的双端口PCIe SSD。而不久前Intel已经发布了支持NVMe双端口的D3600和D3700。
上图中写了双端口PCIe SSD主要用于存储厂商的阵列,但也可以是一些共享驱动器的集群存储软件环境,比如ZFS、微软Storage Spaces等。
这里我们拿两台戴尔服务器连接到同一个MD系列SAS JBOD存储扩展机箱为例,该无单点故障的硬件方案即可运行前面说的Nexenta ZFS和微软的带有RAID算法的存储软件。一旦换成PCIe JBOD,SSD性能就可以更好地发挥。
上图虚线中就是使用PCIe SSD的双控存储系统,其冗余级别可以达到传统SAS后端连接的水平,包括PCIe Switch在内都没有单点故障。
我们有必要讲一下这里的“差异化功能”。由于PCIe SSD具备传统硬盘没有的可定制化能力,因此可以在盘间使用较小的粒度(比如颗粒级别)进行数据管理,让我想起了EMC DSSD的特色RAID保护。此外,控制器也可以管理到SSD上的缓存(在以往盘就是个黑盒),因此可以把I/O队列从控制器缓存上转移过去,降低延时。如果NVMe开放了这些API,就有点软件定义Flash的思路吧:)
最后看两款产品,或者说参考系统。来自台湾ODM纬创这个比较简单,就是在4U机箱中把24片Intel双端口D3700 SSD通过背板同时连接到2个Host节点。由于没有任何协议的转换和各种软件开销,所以裸性能比较好看。
这个E8 storage就是一台NVMe阵列了。通过40GbE连接4台主机,没有说跑什么协议。由于具备冗余控制器和网络连接,它的性能比前面那套系统低了一些。看来国外又有新一轮闪存初创公司的机会了。
最后再来看看应该是第一个正式发布的NVMe over Fabric系统——EMC DSSD D5RACK-SCALE 闪存存储平台。
在《解析DSSD对象机制:内存API Atomic读写再现》一文中,我曾经介绍过它的原生API DMA访问和PCIe MultiCast写入——即“用户从客户端使用原生API读取DSSD时,数据流是绕过OS Kernel的DMA方式。而且数据是从Flash Module上的DRAM缓存经过I/O Module直接传输到DSSDClient Card,这个过程也绕开了ControlModule上的x86 CPU。”
DSSD除了采取定制化硬件之外,软件方面也很有特色,原生访问API是对象方式,同时兼容块、文件以及像Hadoop这样的专用插件。
注:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。进一步交流技术,可以加我的QQ/微信:。
请在本公众号发布2天后,才能转载本文,欢迎转发链接分享。尊重知识,请必须全文转载,并包括本行及如下二维码。
感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage
长按二维码可直接识别关注点击下方“阅读原文”,可下载IDF 2016技术课程中文资料
微信扫一扫关注公众号
要回复文章请先或
微信扫一扫关注公众号

我要回帖

更多关于 钉钉套件验证回调接口 的文章

 

随机推荐