!guide_close_btn!

【长篇原创连载】煮“九”谈“千”第十六回《协议增强,性能称王》

digest
乐享问道 2016-2-17 16:13:22 最新回复:2016-03-15 20:53:14
3530 3 1 1
第十六回

协议增强,性能称王


天下武功,唯快不破。昔年小李探花,阿飞剑侠,乃至左手剑快,右手更快的荆无命,都是占得一个快字。置身4K大数据时代,行走存储江湖,不快怎么能行。今天就来领教一下欧九仟在媒资领域,基于NFS协议增强的看家本领,且看少侠如何性能称王。

4K应对不易
从标清到高清再到超高清,电视已经全面支持4K视频。每路4K视频需要400Mbps的带宽,到底4K有多大,可以参考下图。
【长篇原创连载】煮“九”谈“千”第十六回《协议增强,性能称王》-1047543-1

这大大的4K,意味着对于“采编播管存”这些系统派门,需要4倍的存储空间,4倍的性能和4倍的数据迁移时间。
【长篇原创连载】煮“九”谈“千”第十六回《协议增强,性能称王》-1047543-2特别的,当进行节目制作时,往往需要从多个摄像头采集内容,最终完成混合编辑。同一个处理工作站上,将来自一个摄像头的信号称为一层或一路。一般的节目都需要两路甚至六路以上进行混编。传统的存储设备,SAN能够满足4K编辑的性能要求,但是无法文件共享,工作站只能各干各的。NAS能搞定共享,但是对于4K的高带宽、低时延要求又只能望洋兴叹。4K,想说爱你,实属不易。

多链路同心协力
Mac OS X客户端是媒体编辑一众弟子的拿手兵刃。怎奈同存储联合作战,共享目录进行读写之时,通常只能与存储集群建立单连接。如图所示,客户端有四个网口,但只有一个网口能够建立链路,带宽能力无法发挥。这样既限制了存储设备的性能发挥,又浪费客户端的网口资源。
【长篇原创连载】煮“九”谈“千”第十六回《协议增强,性能称王》-1047543-3
引入NFS协议增强特性,安装DFSClient,可以在客户端配置多个网口与OceanStor 9000之间多连接,充分提升带宽和数据传输效率。具体过程如下:
1.         Mac OS X客户端向OceanStor 9000发起连接请求。
2.         OceanStor 9000返回多个动态前端业务IP地址,每个IP地址与Mac OS X客户端的一个IP地址建立连接。
Mac OS X客户端建立链路示意
【长篇原创连载】煮“九”谈“千”第十六回《协议增强,性能称王》-1047543-4

其中根据Mac OS X客户端待建立连接的IP地址数(下面用字母M表示)和OceanStor 9000的动态前端业务IP地址数(下面用字母S表示),DFSClient建立的链路数目为两个IP地址数中的最小数目:
l  M大于等于S:OceanStor 9000将返回全部的动态前端业务IP地址,可建立的链路数目为S。
l  M小于S:OceanStor 9000将随机返回动态前端业务IP地址,返回的个数为M,可建立的链路数目为M。
上层业务并发视频文件读写,一个文件在一条链路上传输,当遍历完所有链路时,将再次选择第一条链路传输文件。这样依次循环的选择链路进行文件传输。
Mac OS X客户端数据传输示意
【长篇原创连载】煮“九”谈“千”第十六回《协议增强,性能称王》-1047543-5

秒缓存智藏神机
一、增大I/O粒度
NFS共享读写I/O粒度通常最大只有64KB,而4K视频,几分钟时长的片源即可达到几个GB,造成客户端与存储节点频繁交互进行数据读写,形成卡顿瓶颈。
以客户端中的一条链路读取1024KB数据的业务为例,优化前需要交互16次。当读粒度增加为1024KB时,只需要1次交互就可以完成数据读取。
I/O粒度增大前后对比
【长篇原创连载】煮“九”谈“千”第十六回《协议增强,性能称王》-1047543-6


DFSClient突破64KB块粒度的限制,最大可支持读粒度1024KB、写粒度128KB的大I/O粒度,可以有效减少交互次数,有效利用端口物理带宽。
二、优化预读条件
读模式分为随机读和顺序读两大类,在顺序度场景下可以进行预读。文件预读指提前将数据量读到缓存中,在上层应用需求数据时,直接从缓存读取数据,有效减少磁盘的寻道次数和上层应用的等待时间。
【长篇原创连载】煮“九”谈“千”第十六回《协议增强,性能称王》-1047543-7
但是在媒资场景使用的非编软件要处理多种多样的媒体文件格式,很多媒体文件播放的时候,不属于完全顺序读取,而取决于媒体文件的编码格式,例如某些文件格式中视频数据以及音频数据不是连续存放的,拥有各自的视频区域以及音频区域。
此时播放软件会一段时间读取视频数据,随后又读取音频数据,导致经常有IO超出预读范围,转而下发到磁盘读取,造成较大时延。预读线程根据之前读取规律,将POS1POS2之间的数据提前载入缓存,但之后的IO并不是按照之前规律与POS1是相邻的,而是跳跃了一些位置读取,此时就会出现缓存无法命中。
Mac OS X客户端的缓存数据量充足时,缓存直接返回上层应用需求的数据量,且不会向存储集群读取数据。只有当缓存数据量不能满足上层应用需求时,缓存才向OceanStor 9000发起读请求,且需等待缓存读取满后,才返回给上层应用需求的数据。从而造成OceanStor 9000读请求集中,同时由于一次读取的数据量较多,需要耗费较长的读取时间,造成上层业务的响应时延变长。详细说明如下图所示。
优化前Mac OS X客户端的预读条件示意
【长篇原创连载】煮“九”谈“千”第十六回《协议增强,性能称王》-1047543-8

如下图,NFS协议增强特性通过在Mac OS X客户端中安装DFSClient,针对Mac OS X客户端的预读条件进行优化。优化后当上层应用向缓存发起数据读请求时,就触发缓存向OceanStor 9000发起预读,保证缓存中的数据量,并避免了大量的读请求和上层应用的等待时延。
优化后Mac OS X客户端的预读示意
【长篇原创连载】煮“九”谈“千”第十六回《协议增强,性能称王》-1047543-9
只能缓存支持主流非线性编辑应用软件为Final Cut Pro Adobe CCAvid Media Composer。常见的视频编码格式:mxfmov
除以上外,欧九千的InfoTurbo性能加速特性还包括在高性能计算场景RHEL客户端增强,以及SMB3.0协议下的Multichannel等种种手段,待后续慢慢道来。
恩,今天的分享就到这里,下回将奉上InfoContainer,敬请期待。 本帖最后由 乐享问道 于 2017-02-27 11:21 编辑

本帖被以下专题推荐:

点评 回复

全部回复

hiking
hiking 2016-2-17 16:32:48

感谢分享,学习学习

点评 回复

jjjiajing
jjjiajing   2016-3-15 19:44:13

赞!讲解非常好,期待下一期!

点评 回复

偶来看看
偶来看看   2016-3-15 20:53:14

赞一个,这个系列讲的很不错!

点评 回复

回复

您需要登录后才可以回帖 登录 | 注册
发表回复

内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“用户协议

My Followers

登录参与交流分享

登录

屏蔽
!block_confirm_cont!
温馨提示
!bind_my_phone_cont!