“毁天灭地”通过精心收集,向本站投稿了5篇App数据层设计及云存储使用指南,下面是小编给各位读者分享的App数据层设计及云存储使用指南,欢迎大家分享。

篇1:App数据层设计及云存储使用指南
昨天 09:26上传
下载附件(123.12 KB)引子:
随着腾讯开放战略的实施,越来越多的第三方应用,伴随着开放平台迅速成长,在应用从小到大的发展中所遇到的各类技术问题里,涉及数据层的问题可以说是最棘手、最难解决的方面,特别是在应用进入产品高峰期时,海量用户会带来很多设计初期难以现象的访问压力。
对于不涉及到数据的接入层或者逻辑层来说,遇到问题或者故障能够较快的进行定位和解决。但是对于数据层来说,由于数据状态的存在,以及对数据安全及可用性的要求,一旦出现问题,恢复时间可能非常长,影响深远。
对于开发者来说,如果选择自行解决数据层的问题,那么在后期其花费精力可能会达到其他方面的的数倍之多,这简直就是一个梦魇。因此,本文结合我们所看到过的应用开发的主流过程和经验教训,针对数据层的技术解决方案进行了探讨和分享,并就如何应用云存储进行快速开发提出了一些建议。文中所述观点,仅为一家之言,不代表腾讯官方观点,谨供参考。
第一部分:App开发中的数据之痛
根据我们对APP开发者研发过程的观察,面向数据层的解决方案大致有以下几个步骤:
1、直接使用单机Mysql来解决数据层的问题
大部分开发者最初直接用Mysql,因为这个阶段应用开发的主要矛盾并不是性能压力、容灾等方面,而是如何快速的实现功能和上线。而业界流行的LAMP架构具备上手快的优势,这时的数据层直接用单机Mysql就搭建起来了。
(1)好处:Mysql是一款非常知名的开源数据库软件,它功能丰富的、工具齐全,由于在全世界应用得非常广泛,基本上遇到任何问题都能够很快的找到讨论者和解决办法。同时在应用发展的早期数据库压力小,除了提供在线服务外,数据库往往还可以用来进行数据统计和经营分析。
(2)不足:数据库需要专职的DBA管理人员进行维护工作(如数据备份、主从切换等),对于外部开发者来说,往往是开发人员兼任DBA的角色,风险固然有,但由于设备数量少,一般不会出现大问题。只是偶尔的设备故障、软件配置不当和Bug等问题,对应用会有影响,但总体上能够承受。
2、使用Memcached来分担读压力,使用Mysql来进行持久化
应用接入开放平台后,用户会增长非常快,整个系统迅速地要接受新的考验。Mysql主要利用本机内存进行缓存,受单机物理资源限制,难以胜任并发读写较高高的应用场景,而很多Social Game都有同时高并发读写的特点,这时会发现应用响应速度明显变慢。
这种情况下常见做法是在DB层之前加Cache,目前最常用的Cache就是Memcached,通过增加Cache设备和简单改造,可以快速上线。现在的数据层方案变成了Memcached缓存+Mysql持久化。Memcache应对读请求,Mysql应对写请求,效果立竿见影,DB压力迅速降低。
(1)好处:Memcached同Mysql一样,也是一款业内知名的开源软件。它具有接口简单、运行稳定、配置方便、性能出色的特点。
(2)不足:又多了一个模块需要开发者自己运营。而Cache层机器如果出现问题的话,可能会导致缓存丢失,命中率大幅下降,一旦出现这种DB层就非常危险,很容易产生严重的雪崩效应,恢复非常困难。另外,由于Cache只能用于应对读的压力,解决不了高并发写的问题,这个才是Social Game发展过程中最让人头疼的问题。
3、使用分布式MemCached和分库分表的Mysql集群方案
单机的Memcached和Mysql眼看着抵挡不住日益上升的访问压力了,开发者心里是有喜有忧,喜的是应用得到了用户的喜爱,忧的是要命的数据层又要面临严峻压力。既然发展到这个地步了,对数据层进行适当重构是必须的,业界关于分布式的方法可以借鉴的甚多,很多Memcached的SDK库已经支持分布了,Mysql也有分库分表的设计办法。经过一段时间的代码重构和数据搬迁后,数据层已经是个分布式的了。
(1)好处:现在的系统能够具备初步了较好的扩展性,可以根据用户活跃和访问情况进行扩容,用分布式的问题解决了单设备读写能力受限的困难。
(2)不足:虽然实现了系统的可扩展,可这并不意味着我们可以高枕无忧了。应用需要密切关注各服务的容量。对于Cache层来说,机器死机、扩容操作会导致缓存丢失,带来命中率大幅下降,而一旦DB压力过大,可能很长一段时间都缓不过劲来。而DB层的容错和扩容更是是令人神经紧绷,主备切换需要人工干预,还需要前端修改数据库接入IP、进行授权等若干配置;而扩容和数据搬迁操作一般只敢选在夜深人静的时候进行,一旦发现问题也要顶着巨大的压力去回滚和恢复数据,更是容易忙中出错。除此此外,要不要提前准备足够的资源也是令人十分纠结,准备多了会浪费资源,准备少了可能又满足不了业务的快速发展。而且Social Game的生命周期相对较短,往往数周之内迅速达到用户峰值,需要频繁的数据扩容和迁移,吃掉大量设备资源,接着就步入稳定和衰减期,又需要数据的合并和资源推出,对资源供应的要求非常高。而且此时的设备多,维护更加复杂,把如此庞大的精力都投在数据层显然是不明智的。
其实,我们可以活的更好的!
4、使用CMEM云存储解决方案
由于Social Game的SNS特性,App在拥有一定的用户规模后,数据量大,读写请求非常多,读写比接近,大量的写到数据层,数据层由于IO原因抗不住写压力。针对这类情况和腾讯在数据层研发过程中的实际经验,我们目前提供了两款高性能、低成本的云存储产品,分别是:
(1)NoSQL的云存储产品:Cmem。Cmem提供极高的并发读写能力,作为一款云存储产品,对用户透明的实现了自动容错、平滑扩容、数据备份、资源复用等一系列存储层的必要功能。将在线数据以Key-Value形式存放和访问,解决了大并发读写和令人头疼的数据层管理问题。
CMEM全称为Cloud Memory Storage,是腾讯提供的高性能内存级持久化存储服务。
CMEM基于一个存储键/值对的hashmap,具备内存级别的访问性能,并保证数据的持久性。
(2)SQL的云存储产品:CDB。CDB是兼容Mysql协议的云存储产品,以实例的方式进行Mysql数据库的供给,并将数据迁移、实例扩容、数据备份等工作都放在了云中,对逻辑层透明,减少了开发者对于DB层的维护成本。
CDB全称为Cloud Database,是腾讯提供的分布式数据存储服务。
CDB提供了高性能,高可靠的MySQL 集群服务,并且整合了备份,扩容,迁移等工具。
这个时候的设计模式是,将大量需要在线高效访问的数据通过Key-Value的形式放在Cmem中,将少量需要SQL功能的数据放在CDB中。
(1)好处:Cmem完全兼容memcached协议,CDB兼容Mysql协议,这样对于开发者来说基本无门槛。在开发和运营过程中,开发无需关心存储层的数据安全、容错、扩容,这些问题全部在云端解决。
(2)不足:Cmem是Key-Value存储,用于应对在线数据的实时高效访问,不具备传统SQL存储的一些常用功能,如实时统计、分析等。但实际上,大部分应用在使用Mysql作为存储层使用的时候,基本上也都是同时只对一条记录进行操作,这正式Key-Value的使用场景。如确实有SQL要求并且数据量适中、性能要求不高的数据,可以使用CDB解决。
第二部分:云存储——数据层解决方案
看过应用开发过程中存储层方案变迁后,回到项目起始阶段,如果在应用开始设计时就考虑使用云存储来解决数据层的问题是非常明智的。一来可以快速开发,使开发者更加聚焦于应用逻辑开发和产品运营;二来减少数据层后期扩容、运维成本,减少故障概率。我们再从各个纬度来全面看下数据层是否使用云存储的优劣。
自行设计和解决数据层问题
使用Cmem、CDB等云存储方案
开发门槛
熟悉LAMP架构和业界知名开源软件如Memcached、Mysql即可
Cmem兼容MemCached协议
CDB兼容Mysql协议
无门槛
研发效率
需投入专业人员进行数据层的设计和开发工作
无需关注数据层具体实现,通过云存储解决数据层性能、容量、安全及可用性问题,资源可投入到应用开发
运维质量
1、数据层开发要求高,设计时的疏忽可能带来运维中的重大数据灾难;
2、经常的重构和各类数据运维操作带来额外风险;
3、业务极速增长带来资源的压力,经常会导致系统过载
1、成熟可靠的存储层方案,保障数据安全和可用性;
2、全面的监控告警、自动容错机制;
3、云端资源池共享,支持业务的极速成长
运营成本
1、以实际设备投入来计算,即便只用了1/10的资源;
2、需提前准备资源来应对可能的业务突发;
3、业务开发人员兼顾数据层优化,性能提升有限
1、以实际使用资源来核算;
2、云存储资源的复用,资源单位成本小于直接使用物理资源;
3、专业数据层研发团队,从应用到硬件的极致优化
表1
可见,无论从性能、效率、质量、成本各个方面来看,对于第三方开发者来说,云存储都是更优的选择,不过这里还是有些研发模式的转变的,
这一部分将就如何在云存储下进行数据层的设计进行一些分享。
我们分析了App常用的数据类型、场景和访问情况,有一些基于Key-Value的App数据设计参考方案供参考。目前对于各类应用来说,所用到的主要数据类型大致有以下几种:
数据类型
示例
数据量
读取量
修改量
1
用户资料
昵称、等级、金钱、经验
中
多
多
2
背包数据
农场游戏的田地、果实等
大
多
多
3
Feeds
“小明摘了我的菜”
“小白帮我捉了虫”
大
少
中

4
留言信息
好友留言、系统消息
小
少
少
5
购买物品
用户装饰、游戏道具
小
少
少
6
成果归档
某用户升级到30级
大
少
少
7
其他
好友排名、游戏排名
中
多
少
表2
除了第7点的排序工作外,通常应用对各类数据的在线访问都是以Key的形式来访问Value,并不会用到SQL功能。比如用户经验值成长了,我们根据用户id取出用户资料,修改经验值并设置回去就行了。特别是前几类高访问量的数据,非常适合Cmem的高性能存储场景。同时,将不同类型的数据分开存放在不同的数据表中是有好处的,同类数据的局部化可以方便Cmem根据不同模型进行更好的优化。
那么有没有场景是涉及到多条记录操作的,答案是有。比如农场游戏中A摘了好友B的萝卜,A的数量要增加,B的要减少,就涉及到多个记录的修改了。这个时候在分布式场景中如果要使用事务是极其不理智的,即便能实现(没有分库分表),在实际使用的性能消耗也非常高,基本上不可承受。其实上是有折衷的方案的,比如先增加A的数量,再减少B的数量,这时出现问题的概率非常小,而且出现了也不会影响游戏效果和用户体验,但换来的却是系统扩展性和性能的大幅提升。在实际使用中,有的应用自己简单实现了一个非常轻量的transaction模块,效果也非常好。
针对表2中的各类数据类型,我们给出了建议使用场景,这里主要是根据访问密度和数据量2个纬度来衡量(Cmem具备更高的性能和扩展性,CDB提供SQL支持),下表中“访问密度高”表示>500iops/GB,“数据量高”表示>150GB。
访问密度
数据量
推荐云存储方案方案
示例数据
高
高
Cmem
背包数据
Feeds
高
低
Cmem
用户资料
低
高
Cmem(数据量有持续增长的需求)
成果归档
CDB(数据量相对固定且有SQL的需求)
好友排名、用户排名
低
低
CDB
购买物品
留言消息
表3
根据上述一些原则,结合实际的应用策划,如果在早期能合理的进行数据层的规划,那么就可以避免在后期遭受巨大的数据层运营挑战。那么,Cmem和CDB能解决所有的数据层问题吗,显然它们不是万能的,不过它们能解决我们目前在线上业务中最棘手的在线数据访问的根本问题。解决了这个,其他问题都好办了。如果还有什么疑问,请访问yun.tencent.com,那里有更多的信息和解答。
第三部分:应用云存储的一些遗留问题
1、事务操作
应尽量通过业务逻辑来避免事务,在Social Game开发中使用事务是极其不明智的行为,当然支付类操作除外,不过这个不属于游戏数据的在线访问,腾讯云平台也提供了相应的解决方案;
2、统计分析
提供数据导入到DB的功能,但DB分析能力终归是有限的,计划日后提供类似MapReduce原理的分析工具;
3、游戏运营
比如需要对金钱<100的用户统一送金币,如果碰到这类问题,分析系统+操作工具应该是个不错的选择,直接去数据库修改太危险了,不是吗?
4、用户排名,搭建额外的排名系统,效率更高
设计个专用的排名系统把,逻辑实现即可,既高效又不影响在线数据的访问。
篇2:如何结合云存储来做数据分析和数据挖掘?
我们在欧洲的一项主营业务是为企业客户提供数据汇总,清洗,分析,挖掘,最后生成报表呈现给客户。用的工具有Oracle ODI, SAP BO, Talend,etc.
通常情况下,会将客户的数据提炼汇总到一台数据库服务器上,数据库类型SQL Server 或是 Oracle视客户需求而定.问题是对客户而言,需要购买数据库,需要管理和维护数据库,这无形增加了很大的成本!尤其是在欧洲,需要人工来维护的部分,比如数据库备份恢复,数据库用户以及权限管理等,成本比较大!我们如何能够建立一个云,一次性安装一台数据库服务器,配发给足够多的licence,能够提供数据库存储备份服务,能够通过客户端远程链接数据库,快速上传和下载数据?首先是可行否?其次是有没有这方面的公司能够提供相应的产品和可靠的服务?
[如何结合云存储来做数据分析和数据挖掘?]
篇3:浅析云存储技术在大数据时代的运用论文
浅析云存储技术在大数据时代的运用论文
摘要:在大数据时代, 信息量剧增, 数字资源存储的规模也不断增加。在存储领域, 随着云计算技术的飞速发展, 云存储产品成为大家热捧的对象。云存储具有本地存储传统模式所不具有的优势, 不仅能够节省大量的硬件设施成本, 还可使网络访问计算与存储的效率得到提升。本文对大数据时代云存储技术与应用进行了研究。
关键词:大数据时代; 云存储技术; 应用;
前言
当云计算技术和物联网技术飞速发展, 随之而来的是数据量的大幅度增长问题。如何对这些庞大的数据进行处理, 这是大数据时代我们需要思考的问题。在各个行业中, 都需要跟大数据打交道, 而云存储技术是处理大数据的一种重要手段。所以, 研究大数据时代云存储技术及其应用具有较大的现实意义。
一、大数据时代云存储技术概述
从上个世纪九十年代开始, 我国在数字资源建设方面的费用逐年增长, 且幅度较大。特别是在图书馆数字资源方面, 需要应用到大量的数据云存储技术。怎样根据目前已有的技术, 打造安全高效、性价比高的数字存储系统, 已经成为多个行业迫切需要解决的问题。所谓云存储, 就是基于数据存储和数据管理的云计算系统。在云计算系统中, 会应用到多种技术, 包括分布式计算、网格计算、并行计算, 还有互联网技术等。
通过云存储技术的应用, 很多行业的服务模式在发生转变。其中两个典型的例子就是图书馆服务模式和大数据医疗服务模式, 前者通过借助云存储技术, 将大量的数据信息资源存储于云服务器中, 其中的运算几乎都是通过服务器终端来实现的。后者借助云存储技术, 能够快速根据病人的病史和病情进行分析, 并从海量的文献中寻找到适合病人最佳的治疗方案。目前, 云存储技术成为IT行业大家关注的热门话题, 这是因为云存储跟我们的生活和工作是息息相关的。通过云存储技术, 使用者能够更快捷地进行存储服务。这样, 不仅使管理更加便捷, 而能够实现弹性容量的调整。云存储技术不但应用于数据保护中, 还可以应用与分布式存储中。
二、大数据时代云存储的应用
近几年, 随着大数据时代的带来, 云存储技术的应用范围越来越广泛。云存储技术不仅在视频监控中有应用, 而且在互联网和家庭娱乐应用领域中都能见到。
2.1云存储技术在视频监控中的应用
在经济飞速发展的过程中, 城市的现代化进程也在加快。为了响应国家建设和谐社会的号召, 各个城市在争相恐后地打造“平安城市”形象。而在平安城市的建设的过程中, 少不了视频监控系统的建设。视频监控系统中需要处理的一种重要问题是怎样对大量的高清视频数据进行处理。在对这些高清视频数据的处理的过程中, 就需要应用云存储技术。高清视频数据的处理是一个复杂的过程, 不仅要进行视频采集、编解码, 还需要进行数据传输和实时监控。如此一来, 就会带来网络宽带拥堵、存储空间需求增大、系统扩容升级压力过大等一系列的问题。一般高清视频监控使用的级别是1080P, 经统计, 某城市一天的数据量达到60GB左右, 如果按每个月30天计算, 就可得到1.8TB的存储量。在我国的`大型城市, 摄像头的数量至少有几千个摄像头, 每个月产生的数据量是非常庞大的。面对这样庞大的数据量的网络存储, 就需要对现有的高清视频监控系统的容量和性能进行升级。通过云存储技术的提升, 就能有效地解决该问题。
2.2云存储技术在互联网领域中的应用
在互联网领域, 一个用户同时拥有多终端现象是非常普遍的。目前, 互联网用户对于信息数据分析和同步的需求在逐渐增加。另外, 由于近年来移动互联网的飞速发展, 个人云存储的需求也在剧增。很多互联网公司都争相恐后地涉猎云存储业务。这其中重要的一个原因是由于互联网能够通过云存储就个人信息更加快速地衔接起来, 使用户的接收速度得到快速增加。在大数据时代, 市场上的大量消费电子产品能够进行互联互通, 能够实现文字和图片和视频等数字内容的流通, 这个过程不受时间和空间的限制, 这就为社交网络提供了极大的便利。在市场上, 出现了一大批云存储服务商, 比如七牛云、阿里云、腾讯云等, 这些服务商在互联网云存储中发挥中越来越重要的作用。
2.3云存储技术在家庭娱乐领域中的应用
在家庭娱乐领域中, 可以通过搭建私有云实现数据的云端存储。所谓私有云 (Private Clouds) , 就是为一个客户单独使用而构建的场所, 提供对数据、安全性和服务质量的最有效控制。当私有云应用于家庭的云存储中, 就可以达到多媒体资源共享和互动的目的, 使云存储客户使用体验度得到提升。
三、小结
在大数据时代, 云计算和大数据技术飞速发展, 可以预测, 在不久的将来, 云存储技术必将在越来越多的领域发挥其作用, 数据存储服务的效率和质量将会更高。
参考文献
[1]温浩宇, 李京京.大数据时代的数字图书馆异构数据集成研究[J].情报杂志, (9) .
[2]张树森, 李达.面向海量数据的云存储技术研究[J].科技视窗, 2013 (2) .
[3]张继平.云存储解析[M].北京:人民邮电出版社, 2013.
篇4:基于伯努利大数定律的云存储数据方法研究
基于伯努利大数定律的云存储数据方法研究
摘 要:随着科技水平的提高,对云存储服务的可靠性、安全性和稳定性都有了更高的要求。面对云存储服务,如何优化资源配置,进而提高用户的体验质量,本文提出了基于大数定律的云存储方法,具体方法是用伯努利大数定律按照存储频率,根据历史信息确定用户对资源的需求,然后进行再分配,从而减少了数据访问延迟。
关键词:大数定律;云存储;数据分配
中图分类号:TP399 文献标识码:A
Abstract:with the improvement of science and technology,there are higher requirements for the reliability,security and stability of cloud storage service.In terms of cloud storage service,how to optimize the allocation of resources and to improve the quality of user experience. This paper proposes a method of cloud storage based on the Law of Large Numbers,in which the concrete way is to determine and redistribute users' demand for resources based on the frequency of storage and historical information by means of Bernoulli LLN,thereby reducing the data access delay.
Keywords:Law of Large Numbers (LLN);cloud storage;data distribution
1 引言(Introduction)
云计算的发展在现如今的信息技术中应用越来越广泛,云存储服务[1]也凭借着它的高扩展性、高可靠性、成本低、方便数据管理的诸多优势受到人们的青睐,与云服务相关的产品也越来越受到用户的喜爱。云存储系统[2-4]是一个以数据存储和管理为核心提供云计算能力的高性能计算系统。它可是实现对于海量数据的采集、管理和保护等功能。用户可以通过云存储实现不同区域,不同时间的资源共享和互动,并且通过应用权限的控制、传输加密、信息加密和数据隔离技术这些技术保证数据的安全性。
在享受大量数据在云存储服务中的便利的同时,其对于数据的访问速度也有了更高的要求。由于在云端人们不断的把数据上传保存上去,在海量的存储空间中对数据信息进行存储。随着存储的数据量越来越大,对于数据的访问时间也就越来越长。云存储系统的DBAS结构为B/S三层体系结构,分别是用户层、应用层、数据存储层。在数据存储层存储大量的数据信息和数据逻辑,所有与数据有关的安全、完整性控制、数据的一致性、并发操作都是在这层完成的。B/S结构的特点是分布性强,维护方便、开发简单并且共享性强、总体拥有成本低等特点。但是数据安全性问题,以及数据传输速度慢等的缺点也显而易见。由于系统期望用户可以从云存储中及时的获得想要的数据,因此减少用户在对数据进行访问的时候造成访问延迟成为数据资源分配有待解决的问题。
目前针对云存储中的`数据资源分配问题,研究者们提出了各种不同的云数据存储方案。祁志阳[5]从经济学原理的角度分析了云计算的经济学模型,以用户对资源评价的相似度为约束l件进行资源调度管理,结合经济学的超边际分配方法对资源进行分配的。由于在建模过程中数据是静态的,而在物理环境下数据是动态形式,会造成数据不准备等缺点。Siva ThejaMaguluri[6]根据一个随机的过程,如果作业到达时请求访问资源,采用加入最短的队列算法和MaxWeight调度选择算法,建立了一个负载均衡,以便在资源利用的过程中提高吞吐量。Fabien Hermenier[7]提出了一种通过减少虚拟机迁移和分配到主机的云计算时间的方法,以提升资源利用率。基于此,本文的主要工作要工作有:
(1)通过历史访问痕迹对用户进行分类。由于不同类型用户对于宽带、延迟等的要求不同,所以需要提供的服务也不一样。不同类型用户有不同的需求,可以根据历史信息计算各类型用户需求量。
(2)应用伯努利大数定律确定各类用户对数据的需求,根据需求分配存储资源。
2 数据存储(Data storage)
2.1 云存储数据的资源配置
在云存储数据资源配置的过程中,涉及数据的采集、数据维护、数据的存储方式等多个要素,它们彼此之间的相互协作构成了云存储数据的资源配置过程。然而,不同用户对云存储的资源进行上传和下载的过程中,对资源的需求也不同,对需要云服务数据的配置也会有不同的要求,这样就加大了资源配置的复杂性。从用户的角度来说,对需求的服务造成延时,会降低用户的使用效率,同时,对云存储服务器也会造成负载不均衡的状态。
因此,本文通过访问痕迹对于每一类的数据需求进行分类,在流量约定设置的优先级里,一些特定的网络数据流也需要定义服务质量。比如多媒体数据流要求有保障的通过量;IP电话则需要严格的抖动和延迟限制;在远程外科的手术中则要求有可靠保证的可用性。除了这些特定的数据服务外,对于一般的普通用户而言也需要要有针对性的数据服务。可以通过访问痕迹对每一组数据的内容进行分析,对数据内容可以按兴趣爱好、年龄、性别、工作性质等大致分成几类。对于这些访问的数据用伯努利大数定律计算出每一类的需求量,从而确定服务器存储数据内容的优先级。
根据用QoS服务分析每个传送的报文内容,将这些报文归类到以CoS(分类的标准)值来表示的各个数据流中,对它进行标注。
由于云计算环境具有虚拟化的特点,把硬件物理资源虚拟化为虚拟服务资源,这样可以对虚拟服务资源利用软件程序进行重新配置,并通过配置子程序实现不同用户的需求。
2.2 根据伯努利大数定律计算量建立存储结构
在伯努利大数定律计算的数据量建立的存储结构中,按照计算的数值,云计算服务系统被划分为无数个资源池。这些资源池不只是存储资源,还要对已有的资源池进行管理。每一个资源池里,信息管理系统对资源中分类的数据信息进行统一管理。
如图1所示:客户端和服务端两部分构成了伯努利大数定律计算数值建立的存储结构。
下面给出伯努利大数定律的计算公式:
设定μ是n次独立试验中事件A发生的次数,且事件A在每次试验中发生的概率为P,则对任意正数ε>0,则成立。
其中公式中的n是访问的数据量,μ指的是在n次访问的数据量中某一类型在固定的时间内访问数据的次数,且A是每次实验中发生的概率为P。
相应的根据伯努利大数定律确定的数据量的值确定的存储结构的步骤:
Step1:对参数进行初始化,设定任务的数量和属性;
Step2:根据浏览器的访问记录计算当前的访问数据值;
Step3:根据兴趣爱好,性别、年龄将数据资源划分为几类;
Step4:通过伯努利大数定律计算每一种类型的所占比;
Step5:依据每一种类型的所占总访问量资源的比重重新对云存储数据的方式进行设置。
3 实验与分析(Experiment and analysis)
3.1 实验环境
针对本文所提出的根据伯努利大数定律的云存储数据方法,本文在QoS服务的基础上,通过浏览器的访问数据痕迹进行了仿真实验,并计算了几种不同类型的用户对数据访问量的数值。在实验过程中,主机的内存为8GB,硬盘为520GB,操作系统为windows 10。本文提出的基于伯努利大数定律的云存储模型与文献中[5]的信誉度约束下的超边际约束的云存储资源分配模型与文献[6]最短队列算法进行对比,通过在执行任务的平均时间t和负载均衡度σ作为指标来衡量QoS服务质量的性能。因此有如下定义:
定义1:t表示执行任务的平均时间,在资源上执行任务n所用的整体的时间T,max{tci}表示在任务集T中完成最后一个任务的时间,min{tcj}表示在任务集T的第一个任务开始的时间,则有如下公式:
定义2:σ表示负载均衡度的大小,即云服务资源处理任务所需时间的方差L与带处理任务数n的比值。其中vli表示虚拟机负载量,m表示虚拟资源的数量,avlc表示虚拟服务资源的平均负载值,则:
σ的值越小,说明负载均衡的性能越好。反之,性能越差。
3.2 性能分析
本文选定了50的虚拟服务系统,通过比较伯努利大数定律的云存储数据的方法与信誉度约束超边际分析云存储数据方法和采用Χ潭恿兴惴进行比较。选取50的虚拟服务器,将任务数量从50到1000个独立任务构成的任务集,对执行任务的平均时间t和负载均衡度σ的进行分析得出以下量表数据信息,如图2和图3所示。
图2可以看出:用伯努利大数定律算法比信誉度约束算法和最短队列算法执行任务的平均时间越来越少,曲线也更平稳。
在图3中,最短队列算法的负载均衡度较大,变化幅度也大,不稳定;在信誉度算法和大数定律的算法中两者的负载均衡度差距不是很大,但是大数定律的曲线更平稳。因此,用伯努利大数定律算法能更好的提高资源利用率,是云服务系统的负载均衡达到更好的效果。
仿真结果表明,对于云服务数据存储的资源配置问题,依据伯努利大数定律的数值结果进行分配,使云计算资源节点的使用率达到最佳,减少了延迟,并提升了任务完成时间。
4 结论(Conclusion)
本文分析云服务数据存储方式在资源配置过程存在负载不均衡问题进行了研究,提出了一种基于大数定律的云存储数据方法,给出了思路和过程。通过对历史访问数据的分类和用伯努利大数定律的计算,计算了不同类型的数据访问量的数值,并加以分析。实验表明本方法对数据访问量的计算,可以以此为依据对数据资源进行合理分配。提高了资源利用率,减少访问延迟。
参考文献(References)
[1] 冬瓜头(张东)大话存储II[M].北京:清华大学出版社,:22-24.
[2] MATHER T,KUMARASWAMY S,LATIF S.Cloud security and privacy:an enterprise perspective on risks and compliance[M].Cloud Security and Privacy:An Enterprise Perspective on Risks.Sebastopol,CA:OReilly Media,:35-72.
[3] 傅颖勋,罗圣美,舒继武.安全云存储系统与关键技术综述[J].计算机研究与发展,2013,50(1):136-145.
[4] 李晖,孙文海,李凤华,等.公共云存储服务数据安全及隐私保护技术综述[J].计算机研究与发展,,51(7):1397-1409.
[5] 祁志阳,马满福.信誉度约束下超边际分析的云存储[D].西北师范大学,.
[6] HuberN,BrosigF,Kounev S.Model-based self-adaptive resource allocation in virtualized environment[J].in:SEAMS,ACM,2011:90-99.
[7] DuPontC,GiulianiG,HermenierF,et al.Anenergyaware framework for virtual machinePlacement in cloud federated data centers[C].Future Energy System:WhereEnergy,Computing and Communication Meet (e-Energy), Third International Conference on.IEEE,2012:1-10.
作者简介:
陈维华(1978-),女,硕士,副教授.研究领域:物联网技术及应用.
何彩虹(1980-),女,硕士,工程师.研究领域:物联网技术及应用.
篇5:云计算环境下的大数据可靠存储关键技术概述论文
云计算环境下的大数据可靠存储关键技术概述论文
呈指数级增长的大数据需要被可靠存储,而云计算环境下的大规模分布式存储节点和数据,极大地提升了数据丢失或失效的几率,该文从云端数据中心拓扑结构的设计、数据容灾技术的相关策略及系统节能减耗等三个方面进行了系统的阐述,为大数据的可靠存储技术研究提供了一定的参考依据。
关键词:云计算;大数据;数据容灾
1概述
当代云计算数据中心的存储节点数量少则几十万多则上百万,在规模如此庞大的海量存储系统中,节点失效或磁盘损毁已然成为一种常态,此外,由于网络设备或者传输线路故障等原因导致的数据丢失或短时不可用现象也常有发生。如果用户或企业不能随时随地存取自己所需的数据,甚至发生数据丢失的现象,将大大影响客户满意度,甚至给企业带来巨大的经济损失,因此,必须采取有效措施及相关技术策略来保证云端数据的可靠存储。
2云端数据中心拓扑结构
云端数据中心是大数据存储的基础平台,数据的可靠性及访问效率与网络节点的'拓扑结构紧密相关。按节点功能类型的不同,可将数据中心节点的拓扑结构分成三种类型[1]:①以server(服务器)为为中央节点的星型结构;②以switch(交换机)为中央节点的星型结构;③混合结构。三种拓扑结构的特点如下:
以server为中央节点的结构将多台server通过传输介质直接互连起来,在这种结构中,server兼任switch的角色,一方面承担数据的加工处理工作,另一方面承担分组的存储转发工作,以server为中心的结构增加了服务器之间的网络带宽,摆脱了对交换机的过度依赖,提高了吞吐量;但是server之间的链路带宽的不均衡增加了布网的复杂度。
以switch为中央节点的结构将各台server通过switch进行互连,switch和server各司其职,switch负责分组的路由转发,server负责数据的存储加工,这种结构布网简单,操作方便,可扩展性强,在现代企业数据中心应用较广泛;但以交换机为中心的结构存在底层server利用率低、switch资源浪费较为严重、网络带宽容量有限、灵活性差等缺点。
混合结构是以上两种结构的一种扩展,其设计融合了这两种结构的优点并有效避开了各自的缺陷。
3云端数据容灾技术
容灾技术是云端大数据可靠存储的一种关键技术,良好的容灾策略不但能有效提升大数据存储系统的可靠性,还有助于提升系统的访问效率。容灾策略一般都采用冗余备份技术来实现,以确保当出现某种突发状况导致存储系统中的文件、数据、片段丢失或者严重损坏时,系统可准确而快速地访问冗余数据来维持系统的稳定运行[2]。一般来说,容灾技术按策略的不同主要分两种:①复制冗余策略;②纠删编码冗余策略。
3.1复制冗余策略
复制冗余策略为系统中的每一个数据都建立一个或多个副本,并把若干个副本分散存储在不同的网络节点上,当遇到某个数据损毁或失效不能正常使用时,可通过访问最近的存储节点来获取与原件完全一致的副本数据[3]。基于复制的冗余策略主要关注2个方面的问题:(1)副本数量设置;(2)数据放置方法。
3.1.1副本数量设置
副本系数设置主要采取两种方式:①静态设置副本数量,目前主流的分布式文件系统Hadoop的HDFS、谷歌的GFS都采用3副本策略,这种静态设置方法操作简单,但灵活性差;②随机动态设置副本数量,即系统根据数据的访问频率、出错概率及网络状况等动态因素随机地确定副本系数,动态地删除或添加副本,这种动态机制能大大增加存储空间的利用率,但动态计算过程增加了系统的开销;
3.1.2数据放置方法
巧妙的数据放置方法能通过提高并行访问量来提升云端大规模数据的访问效率,目前,数据放置方法一般采用顺序放置和随机放置[4]。
①顺序放置方法把数据副本按顺序分布存储在不同节点上,使得排列数目相对较少,针对系统的随机失效有一定的防护性,顺序放置方法技术简单、易于实现和维护,但在具体应用时,因失效具有很强的相关性,局部的网络故障或节点失效就有可能导致整个机架的数据不可访问。
②随机放置方法是在可放置节点中随机地选择一系列节点来存放数据副本,此方法能够降低关联对系统可靠性带来的负面影响,但在实际应用中,由于节点的存储、计算能力各不相同、数据的访问热度也不尽一致,往往达不到理想的均衡负载效果。
3.2纠删编码冗余策略
3.2.2LDPC编码
LDPC码是从蒙特卡洛及图论演进而成的编译码技术,因其稀疏检验矩阵(少量元素是1,其余部分全是0)特性,被研究者广泛用于设计复杂度低的解码算法,LDPC码可以有效提升系统的容灾能力,但是构造不规则码字的难度也相应成倍地增加。
3.2.3阵列编码
阵列码的编译码过程只涉及基础的二进制异或运算,技术实现相对容易,而且在采用同等编译码的前提下,阵列码比RS码更能有效地提高系统的可靠性,与此同时保持其计算域不变大,阵列码技术一直是大数据可靠存储关键技术的研究热点,被广泛的应用于磁盘阵列及网格存储系统中。
3.2.4RS编码
RS码是一种高效的纠错码,既可以纠正突发错误,又可以纠正随机错误,在通信领域中有极其广泛的应用,近年来,随着大数据存储技术的快速、多元化发展,有研究者对RS编码行了改造,并将其应用于数据存储领域以提高系统的容错性。
4云端系统节能减耗技术
数据存储是各种云计算服务赖以施展的基础,在云计算环境下,底层数据中心节点的规模庞大,使得数据存储成本极高,主要源于添置各种网络硬件设施(大型服务器、交换机、路由器等)以及支付各种存储设备的高额电能消耗等。高涨的能耗开销不但增加了系统的运营及维护成本,更催化了大气温室效应,严重破坏了自然界的生态环境,因此,不论从服务商盈利的角度,还是从环境保护的角度出发,节能减耗技术都显得尤为必要。
当前,分布式存储系统的节能减耗技术主要集中在两个方面:①硬件节能策略,主要致力于降低存储系统中的硬件设备能耗;②软件节能策略,通过使用一些专业软件来实现系统资源的有效分配及使用。
参考文献:
[1] Popa L, Ratnasamy S, Iannaccone G,et al. A Cost Comparison of Data Center Network Architectures[Z]. 2010.
[2] 吴朱华.云计算核心技术剖析[M].北京:人民邮电出版社,2011.
[3] 郭仁东.网络数据容灾备份技术及其应用浅析[J].电脑知识与技术,2012(31).
[4] 王意洁,孙伟东,周松等.云计算环境下的分布式存储关键技术[J].软件学报,2012,23(4):962-986.









