点一样。
(3)健壮性 Erlang 内部建设有多种错误检测原语,可以通过这些 原语来架设高容错性的系统。在分布式状态下,可以把系统配置成具有 Fail-over 功能的分布式系统。当有其他节点出错的时候,系统会把它的运行场景自动快速地切换到备份节点上。Erlang支持9个9 级别的故障率,一年只有几分钟的故障时间。
(4)软实时 它可以提供毫秒级别的响应。
(5)热代码升级 对于不能中断运行的系统,Erlang 允许程序代码在 运行系统中被修改。旧代码被逐步淘汰后能被新代码替换。在此过渡期间,新旧代码是共存的。这也使得安装bug补丁在运行系统上升级而不干扰系统操作成为了可能。
(6)递增式代码装载 用户能够控制代码被装载的细节。在嵌入式系统中,所有代码通常是在启动时就被完全装载。在开发系统中,代码是按需装载的,甚至在系统运行时被装载的。如果测试到了未覆盖的bug,那么需替换有 bug 的代码。
(7)外部接口 Erlang 进程与外部世界之间的通信使用和在Erlang 进程之间通信相同的消息传送机制。这种机制被用于和操作系统通信、与其他语言编写的程序交互。
使用Erlang编写出的应用程序运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通信。进程间上下文切换对于Erlang 来说仅仅只是一两个环节,比起 C程序的线程切换要高效得多了。
使用Erlang来编写分布式应用要简单得多,因为它的分布式机制是透明的,对于程序来说并不知道自己是在分布式运行。Erlang运行时的环境是一个虚拟机,有点像Java 虚拟机,这样代码一经编译,同样可以随处运行。它运行时的系 统甚至允许代码在不被中断的情况下更新。另外,如果需要更高效的话,字节代码也可以编译成本地代码运行。Erlang 能够创建和管理大量的进程(不是操作系统级别的)。那些进程在不同的操作系统上有同样的行为,可以被垃圾回收,对运行地点透明,不会破坏其他进程的运行。 任意两个进程间完全独立,不共享任何状态,一切交流通过消息来传递,当然也就无需上锁。 这样的设计思想造就了适合解决如下问题的Erlang。
(1)系统高度并发 Erlang 具有优秀的并行性能,特别适合高度并发操作。
(2)实时处理 在并行情况下,Erlang 响应迅速,性能优良。 (3)计算高度分布 Erlang 适合集群节点间的并行,也就是基于网络的分 布式并行。
(4)系统要求高度可靠 每年的脱机时间以分钟算,甚至永不宕机。
(5)可靠性高 Erlang 内容的检测原语, 极大地提高了系统的容错 性,进而提高了系统的可靠性。
(6)系统要求持续在线更新对于经常需要更新、升级的系统,Erlang 能够在线更新,无需中断系统运行,新旧代码可以同时运
行。
3.5 本章小结
并行计算技术是云计算技术的骨干。对于大型应用系统实施云计算的主要内容就是实施并行计算。并行计算技术除了目前炙手可热的MapReduce以外,值得推荐的还有OpenMP、MPI和 Erlang。这3个技术 主要应用于并行程序的开发和其他并行策略(如 SOA)一起,用于从根本上实现应用的并行化,以提高应用运行效率和可靠性,降低采购和运营 成本。
第四章 分布式文件系统
4.1 文件系统
文件系统是操作系统的一个重要组成部分,通过对操作系统所管理的存储空间的抽象,向用户提供统一的、对象化的访问接口,屏蔽对物理设备的直接操作和资源管理。
根据计算环境和所提供功能的不同,文件系统可划分为四个层次,从低到高依次是:(1)单处理器单用户的本地文件系统(如DOS的文件系统);(2)多处理器单用户的本地文件系统(如OS/2的文件系统);(3)多处理器多用户的本地文件系统(如Unix的本地文件系统);(4)多处理器多用户的分布式文件系统(如Lustre文件系统)。
分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。上述按照层次的分类中,高层次的文件系统都是以低层次的文件系统为基础,实现了更高级的功能。比如(2)需要比(1)多考虑并发控制(Concurrency Control),因为可能存在多个处理器同时访问文件 系统的情况;(3) 需要比(2) 多考虑数据安全访问方面的设计,因为多个用户存在于同一个 系统中,保证数据的授权访问是一个关键;(4) 需要比(3) 多考虑分布式体系结构带来的诸多问题,比如同步访问、一致性等。随着层次的提高,文件系统在设计和实现方面的难度也会成倍的提高。 计算机技术在飞速的发展,文件系统面临的新的挑战也随之而来:如何管理更多的设备,提供更好的性能,更加有效地降低管理成本等。各种新的存储技术和分布式文件技术都被不断地设计和实现出来,以满足用户日益增长的需求。
基本的分布式文件系统:网络文件系统(NFS)、虚拟文件系统(VFS)、Andrew文件系统(AFS)
4.2 体系结构
分布式文件系统的体系结构在多年来经历了多次变化。这其中有软硬件技术发展的作用,也有应用需求变化的因素。下面我们根据不同的标准分析一下多年来分布式文件系统设计和实现过的主要的体系结构。
4.2.1 数据访问方式
在传统的分布式文件系统中,所有的数据和元数据都存放在一起,通过服务器提供。这种模式一般称之为带内模式(in-band mode)。
随着客户端数目的增加,服务器就会成为整个系统的瓶颈。因为系统所有的数据传输和元数据处理都要通过服务器,不仅单个服务器的处理能力有限,存储能力受到磁盘容量的限制,吞吐能力也受到磁盘I/O和网络I/O的限制。 于是一种新的分布式文件系统的结构出现了,那就是利用SAN技术,将应用服务器直接和存储设备相连接,大大提高数据的传输能力,减少数据传输的延时。在这样的结构里,所有的应用服务器都可以直接访问存储在 SAN 中的数据,而只有关于文件信息的元数据才经过 元数据服务器处理提供,减少了数据传输的中间环节,提高了传输效率,减轻了元数据服务 器的负载。每个元数据服务器可以向更多的应用服务器提供文件系统元数据服务。这种模式一般称之为带外模式(out-of-band mode)。
区分带内模式和带外模式的主要依据是关于文件系统元数据操作的控制信息是否和文件数据一起,都通过服务器转发传送。前者需要服务器转发,后者直接访问。
4.2.2 系统服务器的结构
分布式文件系统结构上有两种大的方式:一种是专用服务器结构(Dedicated Server), 另外一种是无服务器结构(Serverless)。
Serverless 方式指系统中没有专用的系统服务器,所有的用户服务器都被当作系统服务器来使用。基于这种系统结构,所有的用户服务器都既是存储系统的系统服务器,又是存储系统的用户服务器。此时,一个用户服务器不仅要处理本系统的数据需求,而且还要服务于其它系统的数据请求。这种系统结构可以提供很高的性能上的可扩展性,但系统非常复杂,而且造成系统的管理困难。 此外,由于有多个系统服务器数据的一致性变为了一个重要的问题。例如,为了解决已知性问题,xFS 使用哈希方式来寻找文件所在的服务器,而CFS 则使用对于每个文件实行一主多从及令牌的办法。 Dedicated Server 方式采取专用服务器(群)。主要有以下几种形式: 单个系统服务器,由于只有一个系统服务器,数据的一致性问题得到很大的缓解,但其可扩展性受到很大限制。多个系统服务器一般具有较好的可扩展性,但由于多个系统服务器的原因,数据一致性很难处理。在SFS 中,一个文件只能由一个系统服务器来服务。文件到其相应的服务器的映射 是由一个静态 Hash 函数完成的。由于一个文件只能映射到一个服务器,文件访问的同步及数据的一致性都可以得到较好地解决,而静态映射难以达到好的负载平衡效果。 在 Lustre、CXFS 的实现中,在某一时刻只有一个活动的提供元数据服务的文件系统服务器。在Storage Tank 中,管理员根据文件目录结构将整个名字空间划分成多个文件集合(file
set)。在某个特定的时刻,任何一个文件集合只能被映射到元数据服务器机群中的 某一个,由它提供元数据管理服务。
4.2.3 分布式文件系统关键技术
分布式文件系统向用户提供和本地文件系统相同的访问接口,却可以让用户访问和管理远程的数据。分布式文件系统中的应用可能来自很多不同的节点,它所管理的数据也可能存储在不同的节点上,同时系统中可能存在多个提供元数据操作的元数据服务器,这些都视具体实现而定。分布式文件系统中有很多设计和实现与本地文件系统存在巨大的差别,也是巨 大的挑战,这主要是数据、管理的物理分布和逻辑分布造成的。下面主要讲述分布式文件系 统设计和实现中所要面对和解决的主要问题。
结论
云计算旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统,并借助SaaS、PaaS、IaaS等先进的商业模式把这强大的计算能力分布到终端用户手中。云计算的一个核心理念就是通过不断提高“云”的处理能力,进而减少用户终端的处理负担,最终使用户终端简化成一个单纯的输入输出设备,并能按需享受“云”的强大计算处理能力!
云计算的优点是可以节省企业大量的人力物力不用自己建设数据中心。就像电力设施从个人取暖到集中供暖一样节省了大量的金钱,人力物力。云计算提供了最可靠、最安全的数据存储中心,用户不用担心数据丢失、病毒入侵等麻烦;云计算对用户端的设备要求最低,使用起来也最方便;云计算可以轻松实现不同设备间的数据与应用共享;云计算为我们使用网络提供了几乎无限多的可能。
缺点:
(1)前期投资比较大。
(2)安全,因为云计算计算能力和数据都在云里,如何保证客户数据的安全就是比较重要的了。安全有两个方面,一个是数据不会丢失,这个一般服务商都会有备份能力解决,但是也是偶尔会发生丢失的;另外一个就是你的数据不会泄漏,当然服务商都会说数据放在他们那里是安全的,但是都是他们自说自的,没有一个第三方的权威机构统一认证和评判。
(3)网络延迟或者中断。云计算一般都是远程通过网络访问的,虽然现在网速提高很快,但是和局域网相比,速度还是有所延迟的,而如果一旦网络终断,服务也就无法访问,例如前几年海底电缆断了,那么你根本无法访问到国外的云计算服务了。
云计算环境下,软件技术、架构将发生显著变化。首先,所开发的软件必须与云相适应,能够与虚拟化为核心的云平台有机结合,适应运算能力、存储能力的动态变化;二是要能够满足大量用户的使用,包括数据存储结构、处理能力;三是要互联网化,基于互联网提供软件的应用;四是安全性要求更高,可以抗攻击,并能保护私有信息;五是可工作于移动终端、手机、网络计算机等各
种环境。云计算环境下,软件开发的环境、工作模式也将发生变化。虽然,传统的软件工程理论不会发生根本性的变革,但基于云平台的开发工具、开发环境、开发平台将为敏捷开发、项目组内协同、异地开发等带来便利。软件开发项目组内可以利用云平台,实现在线开发,并通过云实现知识积累、软件复用。云计算环境下,软件产品的最终表现形式更为丰富多样。
总之,云计算已经进入了快速发展的阶段。在电信、能源、电力、医药、电子政务等领域得到了初步的应用,一批互联网企业积极创新应用,国内企业的服务器存储设备、云计算管理平台等软硬件产品在国内外市场逐步推广,我国在国际标准组织和开源社区的地位与作用越来越重要。
参考文献
1郑文武,李先绪,黄执勤 《云计算中的并行计算技术分析》 2Sanjay Madria , Kalpdrum Passi , Sourav Bhowmick. AnXML schemaintegration and query mechanism system[J ].Data & Knowledge Engineering , 2008(65) :266 – 303
3 Boag S ,Chamberlin D ,Fernandez M F ,et al. XQuery 1. 0 :an XML query language , W3C working draft [ EB/ OL ].(2002 - 11 - 15) [2009 - 12 - 19 ].
4Xuxian Jiang,Dongyan Xu,VIOLIN:Virtual Intemetworking on Overlay Infrastructure,Technical Report]Purdue University,IN 47907,2003.
5Jeremy Sugerman,Ganesh Venkitachalam and Beng—Hong Lim.V'mualizing I/O Device on VMware Workstation’S Hosted V'trmal Machine Monitor.Proceeding ofthe 2001 US懈Annual Technical Conference,June 2001.
6Mahadev Satyanarayanan,Benjamin Gilbert,Matt Toups,et a1.Pervasive Personal Computing in an Internet Suspend/Resume System.IEEE Interact Computing。11(2):March/April 2007.
7 曾龙海 ,张博锋 ,张丽华 ,何冰 ,吴耿锋 ,徐炜民 《基于云计算平台的虚拟集群构建技术研究》
8王鹏涛 《虚拟化技术在集群中的应用》 硕士学位论文 2010年
9 房秉毅 张云勇 《云计算网络虚拟化技术》 10 黄华 杨德志 张建刚 《分布式文件系统 》
11 苟凌怡,熊光楞等。支持虚拟样机的协同仿真平台关键技术研究,系统仿 真学报,March.2004,V01.14 No.3:348.355.
12 Mahadev Satyanarayanan,Benjamin Gilbert,Matt Toups,et a1.Pervasive Personal Computing in an Internet Suspend/Resume System.IEEE Interact Computing。11(2):March/April 2007.
13 ITU.Infrastructure and network enabled cloud[S]. ITU-T Fourth meeting of Focus Group on Cloud Computing. 2010.12