QingStor对象存储架构设计及最佳实践(下)
3月19日 终不悔投稿 作者:对象存储研发团队
5。海量小文件优化实践
接下来谈谈QingStor对象存储对海量小文件场景的优化。
为什么需要对海量小文件进行优化呢?
海量小文件是很多存储产品中都是比较难以应对的问题,其难点主要体现在几个方面:
第一,小文件非常多的时候,会导致很多随机读写,相比于顺序读写,随机读写的性能会差很多。
第二,小文件在底层资源利用率比较低。如何理解?小文件最终存储时落到磁盘上,大多数时候底层都是采用文件系统存储,每一个小文件都会对应一个文件,文件系统会单独使用一个结构,也就是inode,来记录每一个小文件的元信息,包括执行权限、用户组等信息,但是这些信息对用户来说往往是无意义的。
这导致在海量的场景下,可能出现一个情况:文件本身的数据不是那么多,但是不必要的元数据却非常多,占用大量存储空间,就会造成底层资源利用率较低。
针对这个问题,QingStor对象存储做了一些优化,主要分为两方面:
在提升存储利用率方面,QingStor对象存储把很多小文件合并成一个大文件。
如上图所示,这里有一个合并文件,里面包括很多小文件,包括x、a、b、c,它们都是单个Object小文件,都会写到同一个文件中。通过这种方式减少额外的元数据存储,提升资源利用率。
在使用这种方式时,如果需要删除前面的小文件,QingStor对象存储只做一个标记,后台会有进程,实时、定期对合并文件进行压缩,将删除的资源进行释放。
在提升写入性能方面,QingStor对象存储在写入一个小文件时,只把它向合并文件的尾部进行追加写入,不会在打开文件后对指定的Offset进行写入,也就是不做随机写,保证写入全是顺序写,大大提升写入性能。
此外,如果有并发的写入请求,比如a、b、c三个都是小文件,有一个写入请求到了Gateway,Gateway会把这三个请求打包成一个,本来需要写三次,这里直接合并成一次。
把三次IO减到一次IO,能做这样的合并是因为底层是采用合并方式的存储,并发IO的合并进一步提升QingStor对象存储的写入性能。
在读取时,QingStor对象存储通过合并文件的Path加上小文件中的Offset,找到这个文件的数据进行读取。
举个例子,现在同时要读x和a、b、c,在读完x,打开文件句柄是可以重复利用的,不需要每一次读都打开文件,这种方式使得QingStor对象存储的小文件读取性能得到提升。
6。QingStor对象存储重点功能介绍
QingStor对象存储支持两种部署方式:一种是标准部署,集群由网关节点和存储节点组成。
接入与索引与事件子系统会部署在网关节点上,存储节点只部署存储服务,把计算和存储分离,支持最小是六个节点规模的部署,这种方式比较适合数据量比较大,请求量也比较大的场景,网关节点与存储节点都可以进行独立扩容。
第二种是融合部署,集群由全能节点组成,把所有服务部署在全能节点上,这种方式是适合规模比较小,数据量比较小,访问量也不大的场景,如果数据量增长,可以非常方便以单个节点的方式进行存储与索引服务的扩容。
首先是生命周期管理功能,生命周期可以对存储的数据预设一些逻辑,过一段时间后自动对数据进行处理。
生命周期有一些典型的应用场景,例如对过期日志的处理,很多时候存储的日志是为了满足政策的要求,过几个月后就可以删除了。
生命周期管理可以设置自动规则,到期后自动删除过期的日志数据。此外,生命周期管理功能还能进行冷热数据分离,举个例子,业务只需要对近两个月的数据进行分析,更久远的数据就不需要。
但是为了合规需要,更久远的数据也需要保存,不能丢失,这时候生命周期管理功能可以做冷热数据的区分,自动设置数据经过一段时间后转移到更低成本的低频存储中。
QingStor对象存储的生命周期功能是以存储桶为单位来进行,其核心是事件子系统进行消息的处理和分发。
用户写入一个对象后会产生一个事件,事件子系统会分析这个事件要怎么处理,比如经过一周、一个月进行删除,或者转移到低频,从而对数据进行相应的处理。
如果在开启生命周期功能管理之前,系统已经有一些历史数据,事件子系统会主动拉取这些历史数据,对它进行分析和处理。
QingStor对象存储另一个重要的功能是跨区域复制,适用于数据的备份与容灾场景。
跨区域复制的应用场景主要包括:
备份和容灾:为了保证数据安全性,在本地有一份之外,需要在另一个机房做备份,本地机房的数据丢失了,可以用远端的数据来恢复。
就近访问:如果业务的用户分布在不同的区域,每个用户在访问其图片、视频资源时,希望更快地获取数据。
QingStor对象存储可以按照地域来存储数据,北京一份,上海一份,数据可以写入到北京,跨区域复制到上海,满足就近访问的需求。
提升计算效率:如果有多个机器学习、数据挖掘的应用程序或业务程序要访问同一份数据,这些业务程序可能部署在不同的地方。为了保证计算效率,QingStor对象存储可以通过跨区域复制,就近复制一份数据。
跨区域复制的功能核心仍然是事件子系统,用户写入一个对象后,就会产生一个事件,事件子系统会处理这个事件,将数据复制到远端指定目标的存储桶里。
如果在配置这个功能之前系统已经有一些历史数据,在配置之后,事件子系统会主动拉取这些数据,将它复制到远端的位置。
接下来重点介绍QingStor对象存储的数据处理功能。
用户要对存储在对象存储中的数据进行处理,包括视频转码、缩略图、图片加水印等,可以将要做的动作打包成一个任务进行提交,通过Gateway服务进入事件子系统,事件子系统将按照指定的动作将数据读出来,进行处理与写入目标位置。
做数据处理的前提是数据存放在对象存储的存储桶中,这是数据处理的流程,其核心依然是QingStor对象存储的事件子系统。
下面从用户的角度来看QingStor对象存储是否够方便,是否容易上手。
QingStor对象存储的所有功能API都是开放的,可以进行调取和访问,同时提供8种主流的SDK,涵盖主流的编程语言,这些SDK代码都是开源的,都在GitHub上,大家可以直接拿来使用。
此外,QingStor对象存储提供两个高级命令行工具:
第一种是qsctl,提供强大的类Unix命令,用于管理本地数据资源以及QingStor对象存储中远程的数据资源,可以非常方便地对数据进行操作,包括RM、CP等操作,提供一键同步,将你本地的数据与对象存储中的数据进行同步。
第二种命令行工具是qscamel,用于在不同对象存储系统间进行高效的数据迁移,比如现在有数据在阿里云的OSS里,你想把它迁移到QingStor中,可以使用这个工具来完成。这个工具目前支持主流的对象存储,包括QingStor、AliyunOSS、AWSS3以及GoogleCloudStorage等,可以在这些系统之间进行数据的迁移。
S3是亚马逊对象存储服务访问接口的标准,QingStor对象存储是对S3兼容得非常好,很多已经基于S3开发的应用程序、SDK和第三方服务,都可以在不修改代码的前提下非常容易地接入QingStor对象存储,包括Hadoop、Spark、ElasticSearch以及Docker等。
7。交通行业最佳实践
最后我们从智能交通平台这个场景出发,看看如何在业务中使用QingStor对象存储。智能交通平台的主要应用是高速公路上的视频监控,以及在收费站进行拍照、收费、车牌识别等业务。
这是一个典型的高并发访问场景,高速摄像头非常多,收费站也是非常多的。每一个摄像头、每一个收费站都会产生海量图片、视频资源,要发送QingStor对象存储中。
数据是非常重要的,高速公路上的每一段视频,事后可能要用于查看当时发生的情况,数据一定要做可靠的存储。
另一方面,要求存储系统可以与第三方业务应用无缝对接,例如在收费站拍了车辆照片,需要识别其车牌号,查询从哪里开过来,这就要求QingStor对象存储与其他业务系统进行对接。
QingStor对象存储的接入服务可以通过扩展的方式支持高并发场景,采用多副本提供可靠的强一致存储。
数据写入后,QingStor对象存储会产生事件,这个事件会到事件子系统,按照预设的逻辑进行数据处理,用户可以自定义第三方接口。比如做一个车牌识别,或者做扣费逻辑,都可以通过自定义接口与业务系统进行关联。
此外,QingStor对象存储的数据沉淀,后期可以支持业务的大数据分析和决策。
最后做个总结,QingStor对象存储是一款面向海量非结构化数据的企业级通用数据存储平台,具备无限扩容与跨地域的服务能力,可完美支撑各类互联网应用、大数据分析、音视频影像、备份系统等企业级应用场景下的存储需求,帮您构建面向未来、赋能业务的数据存储平台。
投诉 评论
电影植入互联网:扫地不是观众啊?六一儿童节前,国内上线《哆啦A梦》,因为画风变了的原因并不想看,不过还是能在朋友圈、微博等网上的地方看到大家转发、评论,热情讨论被遗忘的童年时光怎么被装进啊A梦的口袋里又拿出来……
【人人早报】第4期:各种利益综合体【Facebook第二季度净利润3。33亿美元同比扭亏】Facebook今天发布了其截至6月30日的2013财年第二季度未经审计财务报告。财报显示,Facebook第二季度营收……
【人人早报】432期:谷歌用钱铺开GooglePlay早报导语前度谷歌今又来,这次谷歌看中的是内地的移动市场。近日,内地很多手机厂商的案头或许都放着一份谷歌提供的诱人合同:如果手机厂商愿意预置谷歌应用商店,每部手机将补贴1美……
百度加入二维码之争推动态“梦幻二维码”百度也要加入二维码的战局了。如果说是微信“扫一扫”将二维码推至风潮之尖,那么百度则希望借助“图像二维码”的微创新颠覆过往。如题图的demo所示,这是百度正在内测的梦幻二维码服务……
【人人晚报】68期:小马哥说产品经理是傻瓜【导读】今天是儿童节,大家都卖萌了么?小编今天来给大家一个干货。小马哥(马化腾)在香港大学做了自己的创业分享,告诉各位产品经理最重要的能力是把自己变为傻瓜,快来看看你是傻……
互联网?传统企业先优化业务流程吧今年有幸参与传统企业转型互联网方面的工作,广泛接触了建材、化工、仪器设备、工程施工、印刷广告等各行业,许多企业负责人侃侃而谈用户思维、极致思维、迭代思维等,但在深入分析它们的业……
互联网大会在京召开苏宁华为首次加盟腾讯网作为本届大会的官方战略合作门户和官方指定新闻中心,将在现场进行全场视频和图文直播。腾讯微博将在现场大屏幕上墙,现场及场外网友均可通过微博话题互联网大会进行实时互动。……
资深投资人全力反击:VC增值平台从来就不是一坨狗屎编者注:本文来自海外著名科技博客VentureBeat,英文原文出自KyleLacy之手,中文版由天地会珠海分舵进行编译。文章主要是针对前几天德国VCChristianClau……
想靠微信创业?呵呵呵疯了!彻底都疯了!现在创业者、投资界、舆论界对微信的关注无微不至,一提微信,立马就硬,这让苍老师情何以堪?微信给了创业者希望,让投资者嗅到商机,让媒体看到热点,舆论……
为家居、建材O2O业务,重金砸向家装O2O?前两天某家居企业在上海举行战略发布会,拉了一大批合作伙伴撑场子,号称将拿出10亿用户提供的装修套餐,各种优惠优势讲了很多,那些高大上的官方言论这里就不提了,网上也都有,感兴趣可……
从明星账号的陨落看微信黏住用户的关键微信专场上,微信团队对“招商银行信用卡中心”、“南方航空”、“广东联通”、“广州公安”等做了案例分享。可是,当大家都在聚焦2013年这些最火的明星公众账号时,不知道还有多少人能……
阿里文学上台唱戏:一靠移动阅读,二靠IP古人云,勤学如春起之苗,不见其增,日有所长。这句话用在网络文学领域十分合适,网络文学发展了十余年,这个领域一直不是很受业界关注,被瞩目的大新闻也不过寥寥。一方面是因为之前……