要实现云计算的随需应变的目标,关键在于运算能力和存储能力的适应性。我们先看看如何实现存储的随需应变,这里的随需应变的需主要是指存储空间和吞吐能力(性能),当然,安全性,可靠性,可扩展性等指标都是基本的。基于单台存储设备的能力总是有限的这种事实,下面的存储分析都是基于分布式存储,而不基于单台存储设备。因为我们是基于分布式存储来满足云存储的要求,我们不关心操作系统级的存储设备访问和管理,我们只关心基于操作系统文件系统之上的逻辑存储部分。我们先看一下要云存储要达到的几个关键目标:高安全,高可靠,高扩展,高性能(吞吐),高易用。
为了更好的分析数据存储后面所采用的技术和架构,我们从两个方面来分析一下数据存储的一些特性:
1)首先来看数据的存储形式,基本的数据存储有两种形式,一是基于文件系统,二是基于数据库系统,但这两种形式本质上都是基于文件系统,为了便于后面的说明,我们还是分开。前者就是通常的文件,而后者就是数据库;
2)其次我们分析一下数据本身的特性,可以从几个方面来看:
A)从组织形式,我们可以把数据分为结构化数据和非结构化数据;数据内部或外部的关系是否复杂;
B)从操作特性,我们可以分析数据是否修改频繁,文件操作是新增多,附加多还是修改多;
C) 数据量级别。
上述分析的这些数据特性直接影响到我们对存储模式和技术的选择,在实际架构存储模型时,我们需要综合考虑到这些特点来权衡所采用的技术或者架构策略。大而全的架构策略在云计算和海量数据处理方面将不再是首选。我们需要一种因地制宜,有针对性的架构策略来平衡各方面的需求。
我们先看看传统的存储解决方案针对这些问题是如何解决的:
1)在扩容方面:当然是增加存储设备;但单台设备扩容会受到寻址能力的限制;
2)可靠性方面:一般采用磁盘阵列,大多采用的都是同时多路写模式,由于设备大多在一个物理点,可靠性并不能完全保证,性价比方面也很一般;不是真正意义上的分布式存储;
3)在安全方面:由于一般都是针对特定用户的,具有物理边界隔离,所以安全性比较好;
4)扩展性反面:受限,比较难以扩展,特别是动态升级;
5)性能方面:一般情况下性能不是很好,特别是写,专门存储设备会好些;
6)易用性:有些方式简单,比如RAID1,有些比较复杂;但对于用户来说是透明的,也就是透明性比较好;
7)存储能力:可以扩充,但会出现要不不足,要不剩余浪费的矛盾;
8)综合效益:对单点设备要求比较高,性价比比较低,利用率也比较低。
如果我们应用系统采用的数据库系统,很显然,上面这些特性的实现依赖于数据库系统本身,一般厂商都会提供完整的解决方案,比如Oralce的RAC,微软的sql Azure等。这里我们不考虑别人成熟的方案,而是基于传统的技术来看看如何实现和保证上述云存储的目标的:
首先来看看基于传统的数据库系统(这对于大多数企业级业务系统来说是可选的方案)的情况,数据存储使用数据库,一般都是SaaS应用,这种方式下一般多采用多客户租赁模式,数据隔离分为表级共享,表结构共享和数据库共享三种方式(大家可以去搜一下,原理非常简单),在这种情况下,数据存储是可以实现随需应变的,但数据存储的可靠性和性能都依赖于数据库厂商对这些问题的解决方案(比如Oracle的RAC技术等);而对于计算部分,可以采用集群负载均衡的方式,这种技术现在比较成熟,需要注意的是缓存方面。这种方式一般只针对用户和应用程序,对于内部的大规模数据处理是不行的,因为这种模式是部署分布,而不是计算分布。下面来看看采用这种方式的一些指标分析:
1)在扩容方面:利用数据库厂商提供的技术来解决;
2)可靠性方面:依赖于数据库厂商提供的底层技术;但架构,管理相对容易,因为使用的都是别人成熟的技术。
3)在安全方面:如果是私有云,安全问题不大,但如果是公有云,表级共享的安全相对比较差,后面两种情况要好些;需要应用程序完全自己控制数据的隔离和访问权限,系统设计和实现上比较复杂。
4)扩展性反面:应用程序动态升级比较难,如果采用分服务器逐步切换还是可以的;
5)性能方面:采用应用服务器负载均衡和数据库系统负载均衡,性能上没什么大问题;
6)易用性:比较好,只要处理好隔离和数据库连接,跟传统的开发方式区别不大;
7)存储能力:可以实现随需应变;
8)综合效益:对单点设备要求比较高,性价比比较低,利用率也比较低。
这种方式跟传统的管理系统一样存在着一个大数据量处理的问题,一般采用按年(时间)分数据库或者表来存储数据的方式来避免数据表过大而导致的性能问题,当然,在上面的模式中依然可以用这种方式来进行,只不过这个系统的复杂度会大大增加。这个问题的解决最好的方式还是选择有比较好的解决方案的数据库产品(云数据库,比如sql AZure,GreenPlum).
另外注意,上面的解决基本是基于应用(SaaS)来讲的,不涉及到IaaS,PaaS。
PS:写这两篇感觉压力比较大,可能题目开大了,所以对GFS,BigTable,Hadoop,Greenplum,Dynamo等云方案的解构,下一篇再讲。后面的文章继续讲存储,计算部分(分布式计算,操作系统虚拟等)。也欢迎大家指正探讨。
更多信息请查看 java进阶网 http://www.javady.com/index.php/category/thread
分享到:
相关推荐
云计算平台存储架构设计是当前信息技术领域中的重要议题,它涉及到如何高效、安全地管理大量数据,为云服务提供稳定、可扩展的存储解决方案。在这个PPT中,我们可能会深入探讨以下几个核心知识点: 1. **云计算存储...
云计算技术的研究和应用还涉及到各种网络技术,如VTP(VLAN Trunking Protocol)是思科设备上用于维护VLAN配置一致性的协议,而VLAN(Virtual Local Area Network)虚拟局域网能够将网络分成多个广播域,提高网络...
综上所述,2018年版的《云计算技术金融应用规范》是金融行业利用云计算技术的重要指南,它全面覆盖了技术架构、安全、数据处理、服务模式等多个方面,对于金融机构优化业务流程、提升服务质量具有深远影响。
2. 云存储技术:深入分析不同类型的云存储系统,如分布式文件系统、对象存储和块存储,并讨论它们的优缺点。 3. 安全模型:建立和评估云计算环境中的安全模型,包括数据加密算法、访问控制策略和风险管理。 4. 隐私...
3. 云存储模块:介绍云存储的类型及技术架构,能够根据个人需求选用云存储服务,能够根据企业实际需求,提出合理化建议。 4. 云服务模块:介绍云服务的类型及其主要提供商,能够根据个人或企业实际需求选择云服务...
云计算技术是一种基于互联网的分布式计算技术,其核心概念是将数据存储和处理任务转移到网络上的云服务提供商。这种技术在计算机数据处理方面的重要作用正逐渐凸显,它通过网络云对庞大的数据进行系统性的整理和分析...
云计算技术与架构前瞻 云计算是21世纪信息技术领域的一个重要里程碑,它改变了传统计算资源的获取和使用方式,为个人和企业提供了灵活、可扩展且经济高效的服务模式。本PPT将深入探讨云计算的市场前景、现状以及...
云计算基础下的智能云网络架构设计是通过云计算技术实现网络资源的虚拟化与自动化管理,以满足各类应用对网络资源的需求,并能动态调整资源供应。这种智能云网络架构设计,相较于传统的网络架构,具有更高的灵活性、...
本文旨在通过对标题“云计算3层架构”及其描述中提到的关键词进行解析,深入探讨这三层架构的具体含义及关键技术。 #### 二、云计算三层架构概述 ##### (一)基础设施即服务(IaaS) IaaS是最底层的服务模式,...
基于云计算技术的视频监控系统架构设计与实现的研究涉及了多个方面的知识点,包括云计算基础、视频监控系统架构、数据存储与处理技术,以及Linux系统操作、Hadoop技术及MapReduce编程模型等。下面详细阐述这些知识点...
本文将从云计算技术与应用的角度,探讨云计算技术的发展前景、云计算平台的架构设计、云计算网络的配置、云计算管理服务器的配置、云存储服务的配置、大数据分析平台的配置、云计算安全框架的配置等方面的知识点。...
对于高职云计算技术及应用专业的学生而言,云计算的发展前景广阔,行业对云计算技术及应用人才的需求十分迫切。高职院校在设置课程体系时,应充分考虑社会人才需求,明确职业岗位的分布和岗位技能要求。云计算专业...
经历了亚马逊EC2服务的推出,到Google提出“云计算”概念,再到各大企业如IBM、雅虎、惠普和英特尔等在全球范围内推广云计算项目,共同构建起云计算技术的基础设施和应用生态。 通过本次云计算架构师培训,学员不仅...
云计算技术在计算机网络安全存储中的应用分析 随着信息技术的快速发展,云计算已经成为一种广为接受的网络计算模式。它通过互联网提供动态可伸缩的虚拟化资源,这不仅为用户带来了便利,也极大地促进了数据共享和...
云计算平台、架构和理论是云计算技术的核心组件,确保了云计算平台中的数据一致性、可靠性和正确性。本文对云计算平台、架构和理论进行了详细的介绍,对云计算技术的发展和应用产生了重要的影响。 资源详解: ...