1OpenStack自身特点详解
OpenStack是什么?如果你是当今的IT技术人员,你说自己不知道OpenStack,保不准有人会在暗地里偷笑你。OpenStack是一个美国国家航空航天局和Rackspace合作研发的,以Apache许可证授权,并且是一个自由软件和开放源代码项目。
图 OpenStack官网
OpenStack不是一个软件,而是一个云平台管理的项目,它由几个主要的组件组合起来完成一些具体的工作。
2011年,OpenStack采用的调查报告中显示:73%的被调查者认为OpenStack部署由节约成本和害怕厂家锁定所驱动。
OpenStack在过去几年的增长迅速,并有了巨大的影响力,将继续支持OpenStack项目,目标是提供客户完整的监控与分析解决方案。很多人会有疑惑,为什么OpenStack会这么火?
先来了解一下OpenStack自身的特点吧。
OpenStack自身特点详解
OpenStack Compute (Nova)是一套控制器,用于为单个用户或使用群组启动虚拟机实例。它同样能够用于为包含着多个实例的特定项目设置网络。OpenStack Compute在公共云处理方面堪与Amazon EC2相提并论;而在私有云方面也毫不逊色于VMware的产品。在公共云中,这套管理机制将提供预制的镜像或是为用户创建的镜像提供存储机制,这样用户就能够将镜像以虚拟机的形式启动。
OpenStack 对象存储(Swift)是一套用于在大规模可扩展系统中通过内置冗余及容错机制实现对象存储的系统。这些对象能够通过一个REST API或是像Cyberduck这样可以对接对象存储API的客户端加以恢复。
OpenStack镜像服务 (Glance)是一套虚拟机镜像查找及检索系统。它能够以三种形式加以配置:利用OpenStack对象存储机制来存储镜像;利用Amazon的简单存储解决方案(简称S3)直接存储信息;或者将S3存储与对象存储结合起来,作为S3访问的连接器。OpenStack镜像服务支持多种虚拟机镜像格式,包括VMware(VMDK)、Amazon镜像(AKI、ARI、AMI)以及VirtualBox所支持的各种磁盘格式。镜像元数据的容器格式包括Amazon的AKI、ARI以及AMI信息,标准OVF格式以及二进制大型数据。
2OpenStack帮我们做了些什么
OpenStack是以Python编程语言编写的,整合Tornado网页服务器、Nebula运算平台,使用Twisted软件框架。在标准上,OpenStack 遵循Open Virtualization Format、AMQP、SQLAlchemy等标准。虚拟机器软件支援包括:KVM、Xen、VirtualBox 、QEMU、 LXC等。
OpenStack包含两个主要模块:Nova和Swift,前者是NASA开发的虚拟服务器部署和业务计算模块;后者是 Rackspack开发的分布式云存储模块,两者可以一起用,也可以分开单独用。OpenStack是开源项目,除了有 Rackspace和NASA的大力支持外,后面还有包括 Dell、Citrix、 Cisco、 Canonical这些重量级公司的贡献和支持,发展速度非常快,有取代另一个业界领先开源云平台 Eucalyptus 的态势。
那么,OpenStack帮我们做了些什么呢?
OpenStack是由Rackspace和NASA共同开发的云计算平台,帮助服务商和企业内部实现类似于Amazon EC2和S3的云基础架构服务(Infrastructure as a Service,IaaS)。OpenStack是IaaS(基础设施即服务)组件,让任何人都可以自行建立和提供云端运算服务。此外,OpenStack也用作建立防火墙内的“私有云”(Private Cloud),提供机构或企业内各部门共享资源。
OpenStack第一个受益者当然是NASA。当前,OpenStack已经完成的项目包括,Nova运算项目、Swift面向对象数据存贮项目、Glance虚拟机器磁盘映像档(Virtual Machine Image)传送服务、美国国家航空航天局、加拿大半官方机构CANARIE网络的DAIR(Digital Accelerator for Innovation and Research)项目等,以及向大学与中小型企业提供研究和开发云端运算环境;DAIR用户可以按需要快速建立网络拓扑。
而且,现在少有哪个IT厂商不支持OpenStack。现时已表示支持OpenStack项目的大型硬件厂商包括:AMD、Intel和戴尔、微软、华为等。2011年2月,思科系统正式加入OpenStack项目,重点研制OpenStack的网络服务。2012年10月,Viacloud互联云平台加入OpenStack项目,研制OpenStack公有云平台和私有云平台。未来,Ubuntu将在堆栈方面的云网络化方案。
3OpenStack如何帮你构建私有云
第一步是设置正确的硬件和网络环境。尽管OpenStack允许在一个单一的平面网络上部署一切,从安全的角度来看并不安全。取决于你所使用的管理程序以及虚拟网络接口,它会允许guest虚拟机嗅探管理流量。建议至少使用两个网络:一个用来管理流量,一个用来进行虚拟机之间的对话。这意味着所有的云计算结点中你需要两个网卡(一个运行实例)和网络管理者。
这些应该运行在不同的IP范围中。计算结点和实例的网络也需要支持VLAN标记,因为这是在“项目”之间隔绝流量所使用的机制。一个项目等价于你的亚马逊EC2账户,除了你不能按照你所希望的数目创建和分配之外。每一个项目都有自己的管理员和用户,在既定项目中的所有实例可以彼此通信。通过指派每一个项目自己的VLAN以及内部和外部的IP地址池来执行。
一旦硬件和网络设置好,下一步就是确定在哪里部署所有的OpenStack组件。标准部署应有一个控制器和一系列计算结点。控制器运行消息服务器,数据库和其他的组件来编排云,同时计算几点运行实例。
但是你也可以分解控制器为地理的部分,从而改善性能,像把MySQL放在不同的物理盒中。对于安全而言,最关键的是确保每一部分都安装在安全的主机上,你只需要将其附加在网络上,让云运转即可。
只有两部分需要暴露给外面的世界(即使那只是你的企业网络):API服务器/Web 控制台(如果开启)和网络管理者。这些服务器需要过硬,你甚至可以使用第三方网络接口来隔离后端管理用户连接产生的流量。
如果你遵循默认安装说明书,可能这些部分并不如他们应该的那样安全。下面是一些具体的改变:
* MySQL服务器使用指定的用户账户,不是根MySQL管理账户。这个账户和密码将会暴露在每一个云结点上,即使使用基于证书的认证,因此所有结点需要访问这个数据库服务器。
* MySQL配置文件中,限制访问服务器,OpenStack用户账户为唯一授权IP地址。
* 移除任何不需要的OS组件并确保你所设置的服务器只支持通过SSH的基于密钥的登陆。
* 默认MySQL和RabbitMQ(消息服务器)流量不加密。如果你隔离了管理网络和坚固的主机,这就不应该是一个很糟糕的风险。如果你的云网络易于嗅探(例如,它和其他服务器共享网络),你需要加密流量。你可以使用OpenSSL来进行MySQL 和RabbitMQ处理。(我个人还没进行测试,因此配置可能有点难。)
下一步,记住如果支持Web管理控制台,默认不适用SSL。
4Openstack的优势
Openstack的优势到底有哪些?
很多人都好奇的询问,说了这么多Openstack功能和结构,以及项目名称。你能总结一下Openstack的优势到底在哪里吗?
可以,有媒体为Openstack做了一个优势的总结。
首先,第一个是控制性。开源的平台意味着不会被某个特定的厂商绑定和限制,而且模块化的设计能把遗留的和第三方的技术进行集成,从而来满足自身业务需要。OpenStack项目所提供的云计算,让IT团队可以成为自己的云计算服务厂商,虽然构建和维护一个开源私有云计算并不适合每一家公司;但是如果拥有基础设施和开发人员,OpenStack将是很好的选择。
其次是兼容性。OpenStack公共云的兼容性可以使企业在将来很容易的将数据和应用迁移到基于安全策略的、经济的和其他关键商业标准的公共云中。使用亚马逊网络服务及其他云服务的企业,抱怨最多的就是“用户被绑架,无法轻易转移数据”。在云计算社区,有一个流行的概念,即数据是有重量的,一旦将数据存在某个云计算提供商那里,它就变得繁重而难以迁移,作为企业最重要的资源,如果在迁移的过程中不能保护好数据安全,很有可能会给企业带来灭顶之灾,相信没有公司愿意承担这个风险。
第三是可扩展性。目前,主流的Linux操作系统,包括Fedora、SUSE等都将支持OpenStack。OpenStack在大规模部署公有云时,在可扩展性上有优势,而且也可用于私有云,一些企业特性也在逐步完善中。随着Ubuntu 12.04 LTS正式全面将Eucalyptus替换成OpenStack,OpenStack将超过Eucalyptus成为云平台基础的第一选择。
第四是灵活性。灵活性是OpenStack最大的优点之一,用户可以根据自己的需要建立基础设施,也可以轻松地为自己的集群增加规模。主要用Python编写的OpenStack代码质量相当高,很容易遵循,带有一个完全文档的API,用户可以使用JSON或者XML消息格式的不同组件的代码,这相当有利于项目的发展壮大。此外,OpenStack项目的代码将在极为宽松自由的Apache 2许可下发布,这意味着任何第三方都可以重新发布这些代码,在其基础上开发私有软件并按照新的许可发布,给众多的云计算企业,留下了的更大的发展空间。
第五是行业标准。来自全球十多个国家的60多家领军企业,包括Cisco、Dell、Intel以及微软都参与到了OpenStack的项目中,并且在全球使用OpenStack技术的云平台在不断的上线。云计算领军企业的加入,会无形透露出一个信息,就是OpenStack未来可能会成为一个行业标准,而且OpenStack项目研发的初衷就是制定一套开源软件标准。
第六是实践检验。实践是检验真理的唯一标准,OpenStack的云操作系统,已被全球正在运营的大型公有云和私有云技术所验证过,比如,Dell公司已经推出了OpenStack安装程序Crowbar,不仅如此,OpenStack在中国的发展趋势也是非常之好,包括物联网用户、国内高校以及部分大小企业,都开始利用OpenStack建立云计算环境,整合企业架构以及治理公司内部的IT基础架构。
小结:在RackSpace宣布推出开源云计算平台OpenStack后,曾经震动了业界。在2010年的10月,微软表示将推动Windows Server 2008 R2和OpenStack的整合。之后不久,思科也宣布加入OpenStack,着重于OpenStack的网络功能并推出了新的NaaS服务(Network as a Service)。2011年7月底,Dell推出了第一套支持OpenStack架构的解决方案,开发了一个OpenStack安装程序Crowbar,可供企业使用Power Edge C服务器来建设一个OpenStack环境。随后HP云服务副总经理Emil Sayegh也在官方BBS上宣布加入OpenStack计划,除了提供赞助外,HP云端开发团队也将参与OpenStack计划的开发。
随着云计算创新的步伐不断加快,新一代的技术和成果也在快速增长。但是云计算市场的分散性导致客户难以选择云计算厂商和合作伙伴,一旦做错决定将不得不转移到新的云上进行重新构建。这对于一些大的公司来说,确实是一个挑战。 鉴于上述原因,云需要一个开源的操作系统,开源云可以避免被锁的问题,而OpenStack就是这样一个开源的云操作系统,RackSpace CTO John Engates更将OpenStack的发展比作Linux和MySQL。