OpenStack介绍

来源:互联网 发布:旅游拼车 知乎 编辑:程序博客网 时间:2024/05/22 23:33

OpenStack介绍

一、云计算的定义

Cloud computing is a type of Internet-based computing that provides shared computer processing resources and data to computers and other devices on demand.(云计算是基于互联网的计算资源,它将计算处理资源和数据按需提供给计算机或者其它设备)——维基百科

云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。——百度百科

我的理解:

云计算是一种按需分配的服务,通过虚拟化技术将传统的服务器构建成计算资源池,可以按需对用户提供计算和存储等资源服务,用户可以通过互联网远程访问分配的资源。

二、云计算业界主要厂商

国外

  • 亚马逊AWS:亚马逊的Amazon Web Services (AWS)于2006年推出,以Web服务的形式向企业提供IT基础设施服务,亚马逊网络服务所提供服务包括:亚马逊弹性计算网云(Amazon EC2)、亚马逊简单储存服务(Amazon S3)、亚马逊简单数据库(Amazon SimpleDB)等。亚马逊目前处于行业老大的地位,已经拥有较完善的产品体系和运营模式,并且AWS在亚马逊销售额中的占比逐年扩大。AWS已经为全球190个国家/地区内成百上千家企业提供支持。数据中心位于美国、欧洲、巴西、新加坡和日本。
  • VMware vSphere:VMware vSphere 是业界领先且最可靠的虚拟化平台。VMware优势在于服务器虚拟化技术,拥有一套完整的服务器虚拟化解决方案。vSphere核心组建ESX Server是一款可以独立安装和运行在祼机上的系统,通过vSphere Client 远程连接控制。ESX是从内核级支持硬件虚拟化,运行于其中的虚拟服务器在性能与稳定性上不亚于普通的硬件服务器,而且更易于管理维护。
  • IBM:IBM拥有强大的大数据处理能力,很早就提出了智慧城市的概念,已经形成了IaaS(SoftLayer和CMS)、PaaS(Bluemix)、SaaS(据称有100多套解决方案)传统意义的的三层云计算市场,还有竞争对手没有的企业咨询服务。

国内

  • 阿里巴巴:阿里云创立于2009年,目前主要立足于国内。阿里云的服务群体中,活跃着微博、知乎、魅族、锤子科技、小咖秀等一大批明星互联网公司。在天猫双11全球狂欢节、12306春运购票等极富挑战的应用场景中,阿里云保持着良好的运行纪录。此外,阿里云广泛在金融、交通、基因、医疗、气象等领域输出一站式的大数据解决方案。阿里云已经成为国内很多初创公司租赁云服务的首选。
  • 华为FusionSphere&HWS:华为是一家设备供应商,在云计算领域拥有全套的解决方案。华为FusionSphere是华为服务器虚拟化解决方案,通过核心组建FusionCompute实现计算的虚拟化,在FC的基础上建立公有云或私有云。公有云领域,华为已经为包括德国电信、Telefonica、中国电信在内的运营商构建了自己的公有云服务,同时2015年华为发布了自己的公有云服务HWS,提供类似于亚马逊AWS的公有云服务,通过公有云为中小企业提供云服务;在私有云领域,通过FusionSphere为企业提供私有云,FusionAccess为企业构建桌面云服务。
小结:

除了以上的云计算厂商,还有众多云计算厂商,例如国外微软、EMC、戴尔、惠普等,国内腾讯、百度等,其中EMC在收购了VMware后,又被戴尔收购,合并后的戴尔将成为一家集服务器虚拟化、存储虚拟化和设备于一体的云计算巨头。由于中国特殊的环境,国外的亚马逊等一些云计算厂商很难进入中国市场,这就给中国的云计算厂商提供了发展的空间,通过模仿国外云计算厂商的模式占领国内市场,从而拓展海外市场。国内的阿里云更像是中国的亚马逊,主要通过公有云为中小企业提供云服务的租赁服务,目前已经有了一定的气候,是中国最主要的云服务运营商。华为有两种身份,一种是云设备供应商,类似于VMware vSphere,是利用自己的公有云解决方案,为运营商搭建它们的公有云服务;另外一种身份是云服务运营商,华为在发布HWS后,开始转型为运营商,提供类似于亚马逊AWS的服务,同时也支持AWS的EC2和S3接口,兼容AWS的接口,便于AWS的客户使用HWS。华为云服务HWS更多是起到标杆的作用,以此向电信运营商推广自己的公有云解决方案。另外,开源云计算平台OpenStack的出现,吸引了很多云计算厂商的加入,OpenStack基金会包括8个白金会员(AT&T、Canonical、惠普、IBM、英特尔、Rackspace、红帽和SUSE)和一定数量的黄金会员(Aptira、CCAT台湾云端运算产业协会、思科、戴尔、DreamHost、EMC、爱立信、富士通、日立、华为、inwinStack、Juniper、Mirantis、NEC、NetApp、Odin、赛门铁克和雅虎)。众多传统厂商都纷纷通过开发驱动将自己的设备和软件接入到OpenStack,OpenStack以其开放架构,实现了对异构厂商产品的统一管理,拥有较大竞争力。很多企业通过基于OpenStack构建自己的云计算解决方案,搭建云计算平台已经不是少数几家传统大型云计算厂商能做到的了。

三、OpenStack架构

1、OpenStack定义

image description
OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.(OpenStack是一个云操作系统,可以控制整个数据中心的大量计算,存储和网络资源,所有这些都通过一个仪表板进行管理,从而使管理员能够控制用户通过Web界面提供资源。)

2、OpenStack主要软件模块

OpenStack目前的七个核心组件,分别是计算(Compute)、对象存储(Object Storage)、认证(Identity)、用户界面(Dashboard)、块存储(Block Storage)、网络(Network)和镜像服务(Image Service):
- Nova:计算模块,它根据需求提供虚拟机服务,比如创建虚拟机或对虚拟机做热迁移。但Nova并不提供虚拟化,需要通过驱动介入KVM等虚拟化软件。
- Swift:对象存储模块,它允许存储或检索对象。
- Keystone:为所有OpenStack服务提供身份验证和授权,跟踪用户及他们的权限。
- Horizon:它为所有OpenStack的服务提供一个模块化的基于Django的界面。
- Cinder:提供块存储服务,通过驱动接入快存储设备。
- Neutron:用于提供网络连接服务,允许用户创建自己的虚拟网络并连接各种网络设备接口。
- Glance:它是OpenStack的镜像服务组件。


小结:

Nova是OpenStack最早的模块之一,起初在提供计算服务的同时,也提供网络服务,随后网络模块从Nova中独立出来,Nova提供对虚拟机的创建、删除、查询、修改等功能,但Nova本身不提供虚拟化功能,需要接入虚拟化软件,包括KVM、QEMU、VMware vSphere、Xen、Hyper-V等。Nova在启动虚拟时,需要从Glance(镜像管理模块)加载虚拟机的镜像,Glance的镜像存储在Swift(对象存储)上,Cinder位虚拟机提供存储节制,负责虚拟机卷的创建、删除、查询、修改,将创建好的卷挂在给虚拟机VM。Neutron(网络管理模块)位虚拟机及内部模块之间提供网络访问服务,实现网络分层,是一种软件定义网络SDN。Keystone(鉴权模块)可以供内部各个模块调用,提供网络鉴权服务,在通过Keystone授权后,才能调用对应的接口,采用集中鉴权模式。Horizon作为界面,调用哥哥模块的API接口,将集群信息通过界面展示。OpenStack在H版本中又加入了两个新的模块,Ceilometer和Heat,其中,Ceilometer作为监控管理模块,可以通过在Nova、Cinder、Neutron等模块上部署代理Agent,实现监控集群中的虚拟机、卷、网络状况,Ceilometer同样也支持插件方式。Heat作为任务编排模块,能够将OpenStack各模块提供的接口服务结合起来,实现复杂的任务。OpenStack是由多个模块组成的,各个模块相互独立,通过标准的Restful接口对外提供服务,各模块通过Ribbit-MQ进行通信,实现了模块去耦合,使其作为一个开放平台逐渐壮大。

3、物理部署架构

image description
整个OpenStack由控制节点,计算节点,网络节点,存储节点四大部分组成:
控制节点:负责了对其余节点的控制,包含虚拟机建立,迁移,网络分配,存储分配等等。
计算节点:负责了虚拟机运行。
网络节点:负责了对外网络与对内网络之间的通信。
存储节点:负责了对虚拟机的额外存储管理等等

控制节点架构

控制节点包括以下服务:
- 管理支持服务
管理支持服务包含MySQL与Qpid两个服务
MySQL:数据库作为基础/扩展服务产生的数据存放的地方
Qpid:消息代理(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务
- 基础管理服务
基础管理服务包含Keystone,Glance,Nova,Neutron,Cinder,Swift这些服务。
- 扩展管理服务
扩展管理服务包含Horizon,Trove,Heat,Centimeter,Manila等服务。

控制节点一般来说只需要一个网络端口用于通信/管理各个节点

网络节点架构

网络节点仅包含Neutron服务。
- Neutron:负责管理私有网段与公有网段的通信,以及管理虚拟机网络之间的通信/拓扑,管理虚拟机之上的防火等等。

网络节点包含三个网络端口:
- eth0:用于与控制节点进行通信
- eth1:用于与除了控制节点之外的计算/存储节点之间的通信
- eth2:用于外部的虚拟机与相应网络之间的通信

计算节点架构

计算节点包含Nova,Neutron,Telemeter三个服务
基础服务
- Nova:提供虚拟机的创建,运行,迁移,快照等各种围绕虚拟机的服务,并提供API与控制节点对接,由控制节点下发任务
- Neutron:提供计算节点与网络节点之间的通信服务
- Telmeter:提供计算节点的监控代理,将虚拟机的情况反馈给控制节点,是Centimeter的代理服务

计算节点包含最少两个网络端口:
- eth0:与控制节点进行通信,受控制节点统一调配
- eth1:与网络节点,存储节点进行通信

存储节点架构

存储节点包含Cinder,Swift等服务
- Cinder:块存储服务,提供相应的块存储,简单来说,就是虚拟出一块磁盘,可以挂载到相应的虚拟机之上,不受文件系统等因素影响,对虚拟机来说,这个操作就像是新加了一块硬盘,可以完成对磁盘的任何操作,包括挂载,卸载,格式化,转换文件系统等等操作,大多应用于虚拟机空间不足的情况下的空间扩容等等
- Swift:对象存储服务,提供相应的对象存储,简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件

存储节点包含最少两个网络接口
- eth0:与控制节点进行通信,接受控制节点任务,受控制节点统一调配
- eth1:与计算/网络节点进行通信,完成控制节点下发的各类任务

四、OpenStack社区

OpenStack 是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(简称IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。
OpenStack 源码在github上的镜像:https://github.com/openstack/openstack
OpenStack官方网站:http://www.openstack.org
OpenStack中文社区:http://www.openstack.cn

0 0