开源云计算技术应用

 一、云计算简介

  云计算这个词最早出现在2008 年, 是对英文CloudComputing的翻译。云计算这个概念的直接起源来自Dell的数据中心解决方案、亚马逊EC2产品和Google—IBM分布式计算项目。亚马逊EC2产品起始于2006年,是现在公认最早的云计算产品,但那时他们被命名为“Elastic Computing Cloud”, 即弹性计算云。从发展过程看来,计算机经历了单机、集群、网格几个阶段。集群解决了单机性能的瓶颈问题,而网格又解决了集群计算不支持异构设备、资源无法动态伸缩问题。现在的云计算则可以支持异构多任务和资源的动态流转。最早从企业层次提出Cloud Computing的,则是Del1 具体关于云的定义有很多,不同公司都给了云不同的定义。一个比较全面的定义是:一个容易使用和获取的虚拟化资源池(如硬件、开发平台或服务)。这些资源可以动态地重新配置,调整到一个可变负载或者可变规模的系统中,从而允许获得最佳的资源利用率。这种资源池通常是采用按照使用付费的模式,即资源的保障是由基础设施供应商提供的制定化服务品质协议来提供。

  云计算虽然定义很多,种类也很多,但是公认的将云计算分为软件即服务(Software as a Service,SaaS)、平台即服务(Platform as a Service, PaaS) 和基础设施即服务(Infrastructure as a Service,IaaS)。亚马逊的EC2就是典型的基础设施即服务的代表,谷歌应用引擎一般被认为是平台即服务,salesforce.com是软件即服务的代表。

  云计算因为需要动态调整和划分资源,所以底层都是基于虚拟化实现的。通过虚拟化技术将大量的服务器资源作为虚拟化资源池进行统一个管理与划分。

  二、开源虚拟化技术选择

  我们要用开源云计算平台构建属于企业自己的云,首先要做的就是解决虚拟化问题。我们知道所谓云的底层架构都是虚拟化。我们既然要用开源软件构建云,那虚拟化自然也选择开源产品。目前主流的开源虚拟化软件主要就是KVM和Xen两款。KVM一直作为linux内核的一部分,虽然比Xen技术出现的晚,但是性能和Linux的兼容性都很好。Xen技术成熟,稳定性很好,而且现在也将被加入Linux内核中。

  我认为两种虚拟化技术没有明显优劣差距。所以选择哪种全部根据技术熟练程度决定就可以。如果熟悉某种虚拟化对将来的云构建和以后的维护都带来很大的优势。主流的云计算平台对于以上的两种虚拟化也都可以良好的支持。因为我们单位以前的虚拟化都选择的Xen,所以后面的云平台的虚拟化部分也就继续采用Xen的开源技术了。

  三、开源云计算技术选择

  开源云计算技术有很多, 包括Eucalyptus、OpenNebula和OpenStack等。其中很多开源技术都存在商业版,导致开源的版本功能很少或者不完善。我选择用OpenStack来实现开源云构建,因为OpenStack是完全开源的技术,没有任何收费版本或者商业版本。OpenStack是由Rackspace和NASA共同开发的云计算平台,帮助服务商和企业内部实现类似于Amazon EC2和S3的云基础架构服务(Infrastructure as a Service,IaaS)。OpIenStack包含两个主要模块:Nova和Swift,前者是NASA开发的虚拟服务器部署和业务计算模块;后者是Rackspack开发的分布式云存储模块,两者可以一起用,也可以分开单独用。OpenStack除了有Rackspace和NASA的大力支持外,后面还有包括Dell,Citrix,Cisco,Canonical这些重量级公司的贡献和支持,发展速度非常快,有取代另一个业界领先开源云平台Eucalyptus的态势。

  四、开源云技术构建

  随着信息建设的发展,每个单位的信息中心都会面临越来越多的服务器和越来越多的部门需要自己的服务器。原来单位里是按照部门给分配服务器,这样虽然看起来很好,每个部门有自己的服务器。但是资源浪费很大,因为并不是每个部门都可以把服务器资源使用到满负荷,而且每个部分还要有人管理服务器的硬件维护。虚拟化可以很好的解决这个问题,但是对于多服务器的资源整合和动态分配,资源的统一管理等方面虚拟化并不能全部解决。

  我们的想法是在企业的信息中心建立企业内部的私有云。将闲置的服务器资源组成企业的私有云平台来为各个部门服务。考虑到初期的建设难度和技术门槛,我们开始完全可以基于开源的OpenStack技术从原来的虚拟化过度到IaaS(基础设施即服务)的云平台上面。

  OpenStack总体上分为三个部分组成Nova、Swift和Glance。Nova负责云计算平台的资源管理。Swift是存储模块,负责映像存储、备份和归档等。Glance是映像服务模块,负责云平台中虚拟化系统的映像管理。OpenStack每个模块之间是无关联的,我们可以将所有模块部署在一台服务器,也可以部署在多台服务器。作为初步体验云平台,我们完全可以用2台服务器加一台客户机来实现云计算平台的部署。具体部署可以参考OpenStack的官方手册,这里就不在列出。随着云的建立,我们可以将单位中各个部门的服务器全部放在云里。每个部门的服务器其实就是云里的一个虚拟化实例,所有数据统一存储在Glance模块创建的卷里。每个实例可以很方便的在云里不同的硬件服务器中迁移和动态分配不同的资源给实例。

  随着信息化发展,云计算平台将会越来越普及。企业早一步实现自己的云平台,就能在将来的发展中具有更大优势。通过云的应用,可以降低信息化建设成本并降低各部门重复投资的硬件与管理成本。而且目前开源云技术已经日趋成熟和稳定,完全可以满足企业的日常需要。


你可能感兴趣的:(服务器,云计算,平台,虚拟化,linux内核,rackspace)