一、云计算概念
1、简介
狭义的云计算:指 IT 基础设施的交付和使用模式
广义的云计算:指服务的交付和使用模式
云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问
进入可配置的计算资源共享池(资源包括:网络、服务器、存储、计算、应用软件等服务),这些资源能够被快速提供,只需提供很少的管理工作,或只用与服务供应商进行很少的交互
2、特点
① 超大规模
"云"具有相当的规模,企业私有云一般般拥有数百上千台服务器,能给用户提供前所未有的计算能力
② 虚拟化
云计算支持用户在任意位置、使用各种终端获取应用服务
③ 高可靠性
"云"使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性
使用云计算比使用本地计算机可靠
④ 通用性
云计算不针对特定的应用
同一"云"可以同时支撑不同的应用运行
⑤ 高可扩展性
"云"的规模可以动态伸缩,满足应用和用户规模增长的需要
⑥ 按需服务
"云"是一个庞大的资源池,你按需购买
云可以像自来水、电、煤气那样按量计费
⑦ 极其廉价
由于"云"的特殊容错措施,可以采用极其廉价的节点来构成云
"云"的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本
"云"的通用性使资源的利用率较之传统系统大幅提升,因此用户可以充分享受"云"的低成本优势
通常只要花费几百美元、几天时间,就能完成以前需要数万美元、数月时间才能完成的任务
3、三种使用方式
三种云就是三种商业模式
①公有云
公有云就是基础设施完全自己不搭建,只关心怎么使用
公有云分为以下几类:
传统的电信基础设施运营商,比如中国移动、中国联通、中国电信等提供的公有云服务
一类是*主导的地方性云计算平台,也就是常说的*云
互联网巨头打造的公有云平台
部分IDC运营商
还有部分国外的云计算企业
②私有云
私有云就是自己搭建云的环境,设施设备需自己或第三方维护
私有云是为一个用户单独使用而构建的,因而在数据安全性以及服务质量上自己可以有效的管控,私有云的基础是首先你要拥有基础设施并可以控制在此设施上部署应用程序的方式
私有云可以部署在企业数据中心的防火墙内,核心属性是专有资源,比如我们经常使用且比较典型的私有云有 VMware、OpenStack
③混合云
混合云是将公有云和私有云结合起来使用,也是很多企业的使用方式
一般的将核心业务,放在自己的私有云上,次要的放在公有云上
但是也会有一些问题:安全性、数据冗余、法律、服务质量方面等
4、服务模型
①IaaS(基础架构即服务)
提供底层 IT 基础设施服务,包括处理能力、存储空间、网络资源等
面向对象一般是 IT 管理人员
②PaaS(平台即服务)
把安装好开发环境的系统平台作为一种服务通过互联网提供给用户
面向对象一般是开发人员
③SaaS(软件即服务)
直接通过互联网为用户提供软件和应用程序等服务
面向对象一般是普通用户
二、OpenStack 概述
1、简介
NASA (美国国家航空航天局)和 Rackspace(是一家全球领先的托管服务器及云计算提供商)共同发起
以 Apache 许可证(Apache 软件基金会发布的一个*软件许可证)授权的*软件和开放源代码项目,不只是一个软件,这个项目由几个主要的组件组合起来完成一些具体的工作
为公有云及私有云的建设与管理提供可扩展的弹性的云计算服务(开源项目)
覆盖了网络、虚拟化、操作系统、服务器等各个方面
2、openstack服务
openstack内部核心是:实例(虚拟机)
openstack服务都是为实例服务的
服务 | 项目名称 | 描述 |
---|---|---|
Compute (计算服务) |
Nova | ①负责实例生命周期的管理,计算资源的单位 ②对 Hypervisor 进行屏蔽,支持多种虚拟化技术(红帽默认为 KVM),且支持横向扩展 |
Network (网络服务) |
Neutron | ①负责虚拟网络的管理,为实例创建网络的拓扑结构 ②是面向租户的网络管理,可以自己定义自己的网络,各个租户之间互不影响 |
Identity (身份认证服务) |
Keystone | ①类似于 LDAP 服务,对用户、租户和角色、服务进行认证与授权 ②且支持多认证机制 |
Dashboard (控制面板服务) |
Horizon | ①提供一个 Web 管理界面 ②与 OpenStack 底层服务进行交互 |
Image Service (镜像服务) |
Glance | ①提供虚拟机镜像模板的注册与管理,将做好的操作系统拷贝为镜像模板,在创建虚拟机时可直接使用 ②可支持多格式的镜像 |
Block Storage (块存储服务) |
Cinder | ①负责为运行实例提供持久的块存储设备,可进行方便的扩展,按需付费 ②支持多种后端存储 |
Object Storage (对象存储服务) |
Swift | ①为 OpenStack 提供基于云的弹性存储 ②支持集群无单点故障 ③对静态文件的存储 |
Telemetry (计量服务) |
Ceilometer | ①用于度量、监控和控制数据资源的集中来源 ②为 OpenStack 用户提供记账途径 |
3、优势
①控制性
· 完全开源的平台,开源的平台意味着不会被某个特定的厂商绑定和限制
· 提供 API 接口,模块化的设计能把遗留的和第三方的技术进行集成,从而来满足自身业务需要
②兼容性
· OpenStack 兼容其他公有云,方便用户(企业)很容易的将数据和应用迁移
③可扩展性
· 模块化设计,可以通过横向扩展来增加节点、添加资源
目前,主流的 Linux 系统,基本都支持 OpenStack
OpenStack 在大规模部署公有云时,在可扩展性上有优势,而且也可用于私有云,一些企业特性也在逐步完善中
④灵活性
· 用户可以根据自己的需要建立基础设施,也可以轻松地为自己的集群增加规模
在极为宽松*的 Apache 许可下发布,这意味着任何第三方都可以重新发布这些代码,在其基础上开发私有软件并按照新的许可发布,给众多的云计算企业,留下了的更大的发展空间
⑤行业标准
来自全球十多个国家的60多家领军企业,包括 Cisco、Dell、Intel 以及微软都参与到了 OpenStack 的项目中,并且在全球使用 OpenStack 技术的云平台在不断的上线
云计算领军企业的加入,会无形透露出一个信息,就是OpenStack未来可能会成为一个行业标准,而且OpenStack项目研发的初衷就是制定一套开源软件标准
⑥实践检验
实践是检验真理的唯一标准,OpenStack 的云操作系统,已被全球正在运营的大型公有云和私有云技术所验证过
OpenStack 在中国的发展趋势也是非常之好,包括物联网用户、国内高校以及部分大小企业,都开始利用 OpenStack 建立云计算环境,整合企业架构以及治理公司内部的IT基础架构
三、openstack架构
设计原则:
按照不同的功能和功能性划分不同的项目,拆分子系统
按照逻辑计划,规范子系统之间的通信
通过分层设计整个系统架构
不同的功能子系统间提供统一的API接口
1、openstack概念架构
图解:
图中主要的就是其中的组件,组件可细分为以下三种:
1、全局组件(keystone、ceilometer、horizon)
2、核心组件(Nova、swift、cinder、neutron、glance )
3、外部组件(ironic 裸金属服务、trove 数据库管理、heat 可以管理云环境中资源等、sahara 便于创建和管理计算框架集群)
里面的组件都是由Nova组件调用提供并创建虚拟机
2、openstack逻辑架构
图解:
1、介绍了openstack原生架构的组件
这部分就是上面openstack概念架构中表现的内容
2、组件之间如何通信(点到点 )
通过API
3、单个项目内部的很多子功能模块怎么交互
通过消息代理进行交互
补充:OpenStack组件间的通信关系
1、基于 HTTP 协议
通过各项目的 API 建立的通信关系,基本上都属于这一类,这些 API 都是 RESTful Web API
2、基于 AMQP协议(基于消息队列协议)
AMQP(Advanced Message Queuing Protocol)一个提供统一消息服务的应用层标准高级消息队列协议)
主要是每个项目内部各个组件之间的通信
3、基于数据库连接(主要是 SQL 的通信)
属于各个项目内部
4、Native API(基于第三方的 API)
OpenStack 各组件和第三方的软硬件之间
3、openstack物理架构
图解:
根据职能分类
控制节点:管理openstack架构
网络节点:复制各节点之间的通信/交互
计算节点:主要负责承载实例,次要负责具体需求的处理
存储节点:提供存储服务
四、openstack的部署
注意事项
OpenStack组件安装的顺序
1、Keystone (apache)
2、glance
3、nova
4、neutron
部署openstack组件时,需先行安装认证服务(keystone),而认证服务是使用Apache运行的,安装完成后才可以创建、管理账号,然后安装镜像服务(glance)、计算服务(nova)、网络服务(neutron)
其中计算服务和网络服务分为管理端和客户端,所以需要在openstack的管理端安装计算服务和网络服务的管理端,在创建虚拟机的node节点上安装计算服务和网络服务的客户端,最后安装dashboard服务,openstack各种组件的API都是通过apache运行的;
openstack的管理端负责创建、管理虚拟机过程的调度
通过openstack管理端创建虚拟机的相关数据最终都会记录到mysql(mariadb)中;node节点没有权限往数据库中写数据,只有控制端有权限,并且node节点与控制端通讯是通过rabbitmq间接通讯,node节点会监听rabbitmq,控制端也会监听rabbitmq,控制端把创建虚拟机的指令发送到rabbitmq,由监听rabbitmq指定队列的node节点接收消息并创建虚拟机