随着计算机网络、网格计算、WEB服务、新型WEB应用等理念和技术的发展,万维网己经从一个传统的HTML文件共享、交换、访问平台转变为任意信息资源的共享平台,架构与互联网之上的云计算模式成为了大势所趋。云计算中最重要一类是数据密集型的计算,其核心内涵是数据管理。传统的数据管理技术难以满足这些应用所提出的对数据管理的需求。本文借鉴传统数据管理技术的理念,研究、设计了一个基于CouchDB的高可扩展、高可靠的海量图片存储管理系统。
1 云计算的定义及特点
云计算是以一种融合的方式,通过网络作载体,以虚拟化技术为基础,以提供基础架构、平台、软件等服务为形式,整合大规模可扩展的计算、存储、数据、应用、IT资源等分布式计算资源进行协同工作的超级计算模式。在云计算模式下,用户不再需要购买复杂的硬件和软件,而只需要支付相应的费用给“云计算”服务提供商,通过网络就可以方便地获取所需要的计算和存储等资源。在计价上采用了更灵活的方式。从管理视角,云计算提供了一种管理大量虚拟化资源的方式,它们可以被自动的汇聚并提供服务,可以弹性的进行服务的提供和扩展。云计算是一种新的用户体验和业务模式,具备服务标准化、快速部署、灵活的计费、容易访问\获得的特点。云计算作为一种基础架构管理和服务提供方法,具备虚拟化资源、弹性扩展的提供服务、按照一个大资源池的方式进行管理的特点。
云计算是一种计算模式,利用互联网技术把大量可扩展(和弹性)的IT相关的能力作为一种服务提供给多个用户按照运营模式可以分为公共云、私有云、混合云3种。
公共云:通过自己的基础架构直接向用户提供服务。用户通过互联网访问服务,并不拥有云计算资源。
私有云:企业自己搭建云计算基础架构,面向内部用户或外部客户提供云计算服务。企业拥有基础架构的自主权,并且可以基于自己的需求改进服务,进行自主创新。
混合云:也就是既有自已的云计算基础架构,也使用外部公共云提供的服务。
2 云计算的关键技术
云计算是以数据为中心的一种数据密集型的超级计算模式。在数据存储、数据管理、编程模式、并发控制、系统管理等5个方面具有自身独特的技术。
1)海量分布式存储技术
为保证保证存储数据的可靠性、高可用性和经济性,云计算的存储数据采取分布式冗余存储存储方式,以高可靠软件来弥补硬件的不足,从而对外提供廉价可靠的系统。为了满足大量用户的需求,数据存储技术必须具有高吞吐率和高传输率的特点。
云计算的数据存储系统主要有Google的GFS(Google File System)和Hadoop开发团队开发的开源系统——HDFS(Hadoop Distr4buted File System)。大部分IT厂商,包括Yahoo、Intel的云计划采用的都是HDFS的数据存储技术。
2)并行编程模式
为了高效利用云计算的资源,使用户能够更轻松地享受云计算带来的服务,云计算的编程模式必须保证后台复杂的并行执行和任务调度对用户和编程人员来说是透明的。云计算采用Map-Reduce编程模式,将任务自动分成多个子任务,通过Map和Reduce两步实现任务在大规模计算节点中的调度与分配。
3)数据管理技术
云计算对大数据集进行分析、处理,向用户提供高效服务,因此,数据管理技术必须能够高效地管理大数据集。另外,如何在规模巨大的数据中找到特定的数据,也是云计算数据管理技术所必须解决的问题。云计算系统的数据管理往往采用列存储的数据管理模式,保证海量数据存储和分析性能。
4)分布式资源管理技术
在多节点并发执行环境,分布式资源管理技术是保证系统状态正确的关键技术。系统状态需要在多节点之间同步,关键节点出现故障时需要能够自动迁移服务。分布式资源管理技术通过“锁”机制来协凋多任务对资源的使用,从而保证数据操作的一致性。
5)云计算平台管理技术
云计算资源规模庞大,一个系统的服务器数量可能会高达10万台,且很有可能跨越几个坐落于不同物理地点的数据中心,同时还在其上运行着成千上万种应用。如何有效地管理这些服务器,保证这些服务器组成的系统能够提供每天24小时不间断服务是一个巨大的挑战。云计算系统管理技术是云计算的“神经网络”,它能使大量的服务器协同工作,方便地进行业务部署和开通,快速地发现和恢复系统故障,使云计算系统通过自动化、智能化的手段实现大规模的可运营、可管理。
3 云计算中数据管理系统应具备的特征
大规模云存储技术与分布式数据管理系统结合,能够为各行各业提供了一个海量存储空间,并支持灵活扩展、高性能访问的文件共享存储平台。平台具有的一些属性和特征
1)高效性
云计算是一种随用随付费的模式,耶么使用云计算资源的费用会随着所需要的存储、网络带宽和计算机能源线性增长。因此,如果数据分析软件产品A比B需要更多的计算单元去执行相同的任务,那么产品A就需要比B花费更多。因此,能用尽量少的资源去完成尽量多的任务的系统也就是我们所要寻找的。
2)容错性
容错性在分析型数据工作环境中的度量与在传统工作环境中不同。对于传统的工作,一个具有容错性的DBMS可以从一个错误中恢复而不会丢失任何数据或恢复到最近一次完成的事务;而在一个分布式数据库环境中,则可以成功的提交事务并在一个工作负载中前进,甚至面对工作节点错误。对于分析型工作负载中只读的请求,没有写事务的提交,也没有在节点失效时更新的失败。因此,对一个具有容错性的分析型DBMS简单的来说,如果一个与请求处理失败关联的节点失效,则不需要重发一个请求。
3)操作加密数据的能力
如敏感数据在上传到云中之前有可能被加密。为了防止对这些敏感数据未经授权的访问,任何运行在云上的应用都不应该能够在访问之前直接解密数据。然而,为了进行解密而把整个表或列从云中传输出来对带宽来说也是个挑战。因此,数据分析系统应该具有能够直接操作加密数据的能力,使得最终只有较少的数据需要被传输到别的地方进行解密,这样就明显提高了性能。
4)提供接口的能力
有很多面向用户的商业智能工具是与数据库软件协同工作并在形象化、查询生成、结果统计和高级数据分析方面起到一定帮助作用的。这些工具是分析型数据管理系统的一个重要组成部分,因为商业分析师通常在技术上不是很精通并且并不喜欢直接面对数据库软件。这些工具一般通过ODBC或JDBC与数据库进行连接,因此希望处理这些产品的数据库软件必须通过这些连接接收SQL请求。