基于不可信服务器节点的云计算基础架构
现在很多的企业已经开始向用户提供云计算服务,一个可以实用化的云计算基础架构需用解决许多关键的技术,云计算时代IT技术人员需要协调有史以来最大规模的服务器群,并保证整个系统能够持续不断正常运行。云计算时代用户的大量关键数据、关键业务和关键应用被转移到云端,因此系统的安全性、高可用性、高性能成为对云计算系统的基本要求。
现在的云计算企业良莠不齐,由于云计算平台技术是一个复杂的系统,技术涉及面相当宽,对从事云计算研发的企业的技术实力和资金实力有很高的要求,其中真正能在现阶段进行云计算平台研发的企业并不是太多,现阶段大量号称能提供云计算服务的企业更多的都是将自己原有的技术和资源中类似云计算的部分称为云计算:如主机租用、网络存储等。
要实现上万台甚至上百万台服务器的协调工作,并向开发者提供丰富的API,满足普通用户和企业级用户多样化的需求是一件十分困难的问题,所以一个可以实用化的云计算系统是一个复杂的系统工程,甚至不是一个企业能独立完成的,它需要服务器提供商、存储设备提供商、系统平台提供商、网络设备提供商、网络带宽提供商、应用开发商共同 努力。
从Google的经验和未来服务器群的庞大规模来看,将服务器失效作为云计算系统的服务器模型是符合实际情况的,这种情况下单个服务器可以看作是不可信的节点,在系统设计时必须要将不可信服务器节点的失效屏蔽在系统之内,不能向开发者和普通用户传递。
本章将以不可信节点为模型介绍一个云计算基础架构的模型,我们并不奢望这一模型是十全十美的,只是希望能为读者提供一种构建系统的思路。
云计算基础架构的应用场景
我们要设计云计算的基础架构首先要确认这一系统的应用场景,应用场景的确认实际就确认了对云计算系统的总体要求。一个可实用的云计算基础架构一定是面向真实场景的架构,云计算的生命力就是面向用户、以用户为中心,本章中的云计算基础架构就是以实际的云计算中心为设计场景,这一场景主要包括以下的要点。
(1)节点数量的规模是十分巨大的,单个节点的失效概率比较大,从而整个系统出现某个节点失效的概率是相当大的。
这一场景要求系统能对所有节点进行有效监控和协调,及时对节点失效故障作出迅速的报警,并将故障的详细情况向管理节点汇报,作出相应的数据和计算迁移操作,保证系统的连续运行。由于系统节点数量十分巨大,所以系统中出现失效节点的概率是很大的,正如我们前面讲过的原理如果一个节点在一年内的失效机率为0.1%,即每1 000年出现一次失效,在有10 000个节点的机群中一年内出现有一个节点失效的概率是1 000%,在有1 000 000个节点的机群中一年内出现有一个节点失效的概率是100 000%,即一年内会出现1 000个节点失效,这个概率就比较大了,平均每天有3个节点会失效。其实一个节点一年内的失效机率为0.1%是相当低的了,没有哪台服务器能运行1 000年才出现失效的,如果这个值加大那每天将有数以百计的节点会失效。
(2)云计算中心可能跨区域地在多个中心之间整合。
由于云计算中心可能会位于不同的地方,中心之间的协调和通讯是系统必须要考虑的问题,而且由于存在跨区域的云计算中心为数据存储提供了一个比跨机柜更为高级的跨区域数据安全保证级别,对于安全性要求很高的数据可以提供跨区域级的数据备份,从而也就可以在重大节点故障发生时实现跨区域的计算和存储的迁移,系统可以实现更高的可 用性。
(3)用户在云计算系统上是要同时从事数据密集和计算密集的工作的,而不是单一的存储或计算工作。
现有的很多云计算系统未实现数据密集应用和计算密集应用同时支持,而今后云计算系统在面向多样化的用户时,不同需求的用户将在同一个系统运行和工作,有从事科学计算的、有从事信息挖掘的、有从事简单办公的、有从事图像处理的,这些应用既有数据密集的也有计算密集的,还有计算和数据同时密集的,所以云计算系统必须要灵活应对这种多样化的需求。
(4)一个云计算基础架构应该具备适应大量不同应用的能力,个人用户、企业级用户、开发者都能在这个系统中工作。
大量的应用在系统中运行,系统必须要对不同的应用、不同的用户进行有效的软硬件隔离,从而保证这些业务之间不能出现相互影响,不同用户的数据之间不能相互覆盖。
(5)非云计算基础架构的设计者和提供者是不需要了解任何云计算中心的软硬件情况的,他们只需要对计算和存储资源按需使用,云计算中心对他们来讲只是一个随需应变的资源池。
对普通用户映射出按需提供的计算和存储资源池是云计算中的一项核心技术,虚拟化的方法是解决这一问题的重要手段。
以上应用场景为云计算基础架构的设计提出相应的要求,在设计云计算系统时必须考虑其对应用场景的适应性。当然我们所提供的应用场景并不是一个非常全面的场景,一个商业级的产品可能需要考虑更为复杂的场景情况。