一、云计算的前世今生
所有的新事物都不是突然冒出来的,都有前世和今生。云计算也是IT技术不断发展的产物。 要理解云计算,需要对IT系统架构的发展过程有所认识。
IT系统架构的发展到目前为止大致可以分为3个阶段:
1、 物理机架构 这一阶段,应用部署和运行在物理机上。 比如企业要上一个ERP系统,如果规模不大,可以找3台物理机,分别部署Web服务器、应用服务器和数据库服务器。 如果规模大一点,各种服务器可以采用集群架构,但每个集群成员也还是直接部署在物理机上。 我见过的客户早期都是这种架构,一套应用一套服务器,通常系统的资源使用率都很低,达到20%的都是好的。
2、虚拟化架构 决定了物理服务器的计算能力越来越强,虚拟化技术的发展大大提高了物理服务器的资源使用率。 这个阶段,物理机上运行若干虚拟机,应用系统直接部署到虚拟机上。 虚拟化的好处还体现在减少了需要管理的物理机数量,同时节省了维护成本。
3、云计算架构 虚拟化提高了单台物理机的资源使用率,随着虚拟化技术的应用,IT环境中有越来越多的虚拟机,这时新的需求产生了: 如何对IT环境中的虚拟机进行统一和高效的管理。 有需求就有供给,云计算登上了历史舞台。
二、OpenStack 简介
1、什么是云计算:云计算是一种按使用量付费的服务模式,这是一种能够提供可用的、便捷的、按需求的网络访问模式,计算共享池能够快速的为用户提供网络、服务器、存储、应用软件及其他服务,并且只需要花费很少的管理时间。
2、NIST还针对于云计算的服务模式提出了3个服务层次:
-
- Saas( Software as a Service): 把在线软件作为一种服务。提供给用户的是云计算基础设施上的应用程序,用户只需要在客户端界面访问即可使用到所需资源,而接触不到云计算的基础设施。
- Paas( Platform as a Service): 把平台作为一种服务。提供给用户的是云计算中的开发和分发应用的解决方案,用户能够部署应用程序,也可以控制相关的托管环境,比如云服务器及操作系统,但用户不需要接触到云计算中的基础设施
- Iaas( Infrastructure as a Service):把硬件设备作为一种服务。提供给用户的是云计算基础设施,包括CPU、内存、存储、网络等其他的资源服务,用户不需要控制存储与网络等基础设施。
3、OpenStack:是一个开源的 IaaS(基础设施及服务)组件,让任何人都可以自行建立和提供云端运算服务,此外,OpenStack也用作建立防火墙内的“私有云”(Private Cloud),提供机构或企业内各部门共享资源。Openstack项目的版本按照ABCDEFG……的顺序发布,每6个月更新一次。Openstack最初是由NASA和Rackspace共同发起的云端计算服务项目,该项目以Apache许可证授权的方式成为了一款开源产品,目的是将多个组件整合后从而实现一个开源的云计算平台,目前Openstack项目正在被红帽、IBM、AMD、Intel、戴尔、思科、微软等超过一百家厂商共同研发,并已经支持了几乎所有的常见云计算环境,拥有了良好的可扩展性,而且部署搭建Openstack服务也变得十分简单,目前国内对于云计算的需求也逐渐增加,华胜天成、高德地图、京东、阿里巴巴、百度、中兴、华为等中国企业也加入到了Openstack项目研发当中,Openstack项目也正在随着全球内得到了众多厂商的参与支持而快速成熟。
4、OpenStack社区与链接
OpenStack官方网站:https://www.openstack.org/
社区:www.openstack.org, wiki.openstack.org
邮件列表:http://wiki.openstack.org/MailingLists#General_List
http://wiki.openstack.org/MailingLists#Development_List
http://wiki.openstack.org/MailingLists#Operators
如何贡献代码:http://wiki.openstack.org/HowToContribute
源代码管理:http://wiki.openstack.org/GerritWorkflow
文档 :http://docs.openstack.org
三、openstack架构及优势
OpenStack为私有云和公有云提供可扩展的弹性的云计算服务,这种服务云必须是简单部署并且扩展性强。
1、模块松耦合
2、组件配置较为灵活
3、二次开发容易
四、openstack构成组件
OpenStack共享服务组件:
数据库服务( Database Service ):MairaDB 及 MongoDB
消息传输(Message Queues):RabbitMQ
缓存(cache): Memcached时间(time sync):NTP
存储(storge provider):ceph、GFS、LVM、ISICI等
高可用及负载均衡:pacemaker、HAproxy、keepalive、lvs等
OpenStack核心组件:
功能 | 项目名称 |
描述 |
计算服务 | Nova |
负责虚拟机的创建、开关机、挂起、迁移、调整CPU、内存等规则。 (核心服务) |
对象存储 (Object Storage) |
Swift |
用于在大规模可扩展系统中通过内置的冗余及高容差机制实现对象存储的系统。(可选服务) |
镜像服务 (Network) |
Glance |
用于创建、上传、删除、编辑镜像信息的虚拟机镜像查找及索引系统。 (核心服务) |
身份服务 | Keystone |
为其他的功能服务提供身份验证、服务规则及服务令牌的功能。 (核心服务) |
网络管理 | Neutron |
用于为其他服务提供云计算的网络虚拟化技术,可自定义各种网络规则,支持主流的网络厂商技术。(核心服务) |
块存储 (Block Storage) |
Cinder |
为虚拟机实例提供稳定的数据块存储的创建、删除、挂载、卸载、管理等服务。(核心服务) |
图形界面 (Dashboard) |
Horizon |
为用户提供简单易用的Web管理界面,降低用户对功能服务的操作难度。 |
测量服务 (Metering) |
Ceilometer |
收集项目内所有的事件,用于监控、计费或为其他服务提供数据支撑。 |
部署编排 (Orchestration) |
Heat |
实现通过模板方式进行自动化的资源环境部署服务。 |
数据库服务 | Trove |
为用户提供可扩展的关系或非关系性数据库服务。 |
五、Openstack服务组件协同工作拓扑图
中间菱形VM是虚拟机,围绕 VM 的那些长方形代表 OpenStack 不同的模块