1 . OpenStack是什么?
1.1OpenStack是虚拟机、裸金属、容器的云基础架构
虚拟机、裸金属、容器,三者的相同点在于他们都是计算资源的封装,其所需要的资源是高度重合的。同时,这三类资源都属于是最基础的计算资源,也是云或者虚拟化的最底层资源。最后,三者都是云的最底层所需要提供的最基础的功能,也就是说OpenStack部署的时候,这三项服务是必选项。三者的不同点在于需要的资源不同,裸金属是物理资源封装,虚拟机是物理资源完全虚拟化的封装。容器只需要封装CPU和内存即可使用,存储和网络资源直接使用底层物理硬件的资源。
为什么要建设云?建设云的最根本的目的就是为了实现物理资源的虚拟化。要实现虚拟化,就必须要做到最根本的四大资源虚拟化。所以OpenStack安装部署的时候,就必须要安装计算、网络和存储虚拟化框架。
所以我们称OpenStack是云的基础架构,实现了最基本的虚拟化功能。
1.2OpenStack可控制整个数据中心的大型计算、存储和网络资源池
OpenStack的基础功能就是实现控制功能,也就是说OpenStack可以实现对于云资源和云集群的整体管理。大型就代表OpenStack具备对于海量的资源管控功能,可以支持大型数据中心的操作和管控。OpenStack可以实现最基础的虚拟化功能,基础虚拟化功能由计算、存储和网络构成,所以OpenStack可以对其进行资源池管理。
1.3所有资源都通过API或web界面进行管理
在OpenStack中,对于资源的管理可以通过API(对外提供的开发接口)或web(网页图形化界面)进行管理。实际上OpenStack还支持通过CLI(命令行管理界面)进行管理。
总结:OpenStack本质上是一个对于云进行基础服务提供和管理的架构,OpenStack并没有脱离它的软件本质。
2.OpenStack的功能
2.1OpenStack提供服务的流程
OpenStack通过一组相互关联的服务提供基础设施即服务(IaaS)的解决方案,每个服务都提供了一个应用程序编程接口来促进这种集成。
解析:一组代表OpenStack的服务是独立松耦合的,每个服务都可以作为一个独立的个体对外提供服务。相互关联指的就是OpenStack的组成服务之间是可以互联的,也就是说OpenStack的服务都是遵循了相同的开发标准。提供基础设施即服务指的是OpenStack只会提供最基础的云资源管理服务。高阶的PaaS和SaaS服务都是由云服务商开发完成打包好的,用户购买的时候,都是购买的服务,底层的IaaS对用户不可见。OpenStack的服务之间是通过相同标准的API进行的连接。
2.2OpenStack的目标
OpenStack项目是一个适用于所有云类型的开源云计算平台,项目目标是为了提供设施简单,可大规模扩展、丰富、标准统一的云计算管理平台。
解析:OpenStack可以满足所有类型的用户和业务需求。OpenStack的设计目标是实施简单(安装、部署、维护的难度要低,学习门槛要低),可大规模扩展(OpenStack必须要实现海量资源管理),丰富(功能要多),标准统一,OpenStack是一个云计算管理平台。
3.OpenStack的组成
3.1OpenStack底座
实际上由一系列叫做脚本的命令构成,这些脚本捆绑在项目的软件包中,软件包用于传递创建云环境的任务。
解析:脚本本身来说,实际上就是一个固定的执行流程所组成的命令集合。一系列的脚本实际上就指代了OpenStack在工作中的所有的相关活动。比如创建虚拟机、管理虚拟机等等。
- 只有脚本是无法实现OpenStack的功能的,安装OpenStack的环境必须要能够支持脚本的执行。所以OpenStack本质上是由两个部分构成的,一部分是怎么做(脚本),另一部分是谁来做(环境)。环境由两个部分组成,一个是虚拟化软件,其负责虚拟化OpenStack需要的计算、存储、网络等相关资源。另一个是基础OS,负责执行命令。
- OpenStack不会虚拟化资源,OpenStack可以操作虚拟化资源创建相关的服务
- 想要实现云的基础架构,OpenStack、虚拟化、基础OS缺一不可
4.OpenStack设计理念
4.1开放
(1)开源:开放所有的程序源代码给所有的用户进行使用。
(2)尽可能在使用其他人的代码的时候,也选择开源项目。
4.2灵活
(1)架构可剪裁:OpenStack中的相关服务除了必选服务之外,其他的功能可以根据用户是否需要进行选装裁剪。
(2)使用插件化方案进行架构设计:也就是说尽量在OpenStack部署的时候,将服务外挂安装在其他的节点上,当OpenStack需要使用的时候,就去调用该服务,服务以插件的形式加入OpenStack的管理架构。可以在最大程度上节约OpenStack的管理资源消耗,提升系统的响应速度,减小响应延迟。
4.3可扩展
(1)由多个相互独立的项目组成,本质上可以理解为由多个相互独立的服务组成。用户根据自身的需求,选择必选服务和可选服务进行架构的组建
(2)每个项目包含多个独立服务组件,每个OpenStack中的功能都可以单独部署安装使用,对外提供服务。
(3)无中心架构:为了解决架构设计中的单点故障设计的,也就是不在架构中设计一个绝对意义上的核心。
(4)无状态架构:服务运行的过程中,服务的状态不会受到节点故障的干扰和影响,前提是节点的损坏和故障不要超过服务能容忍的范围。
5 . OpenStack与虚拟化
5.1OpenStack提供的是一个服务管理器
OpenStack提供的是一个服务管理器,由脚本、软件包和项目构成,所以OpenStack并不会实现最根本的工作,其只是做管理。
5.2OpenStack的实现是需要依赖虚拟化的
OpenStack的实现是需要依赖虚拟化的,但是OpenStack的最终目标是实现云架构的建设,只不过云架构的建设和OpenStack的部署需要虚拟化作为底层实现
5.3OpenStack包含但是不等于虚拟化
OpenStack包含但是不等于虚拟化,OpenStack的业务层面是需要依赖虚拟化实现的,但是云架构的管理是其他服务实现的。所以OpenStack搭建的架构可以称为云,但是虚拟化架构不能叫做云。
6 . 云是什么?
云是一种技术架构,其由多种服务组成并实现,云可以做到资源的池化,资源的分配,资源的封装,以及计费、认证等多种服务,所以云是一个基于虚拟化的服务管理架构的集合。而虚拟化只是单纯的实现资源的管控等工作的技术。
云的重要组成部分就是OpenStack,但是云除了OpenStack所提供的服务之外,还需要包含很多相关的上层服务,比如云接入、云服务、对象管理、权限管理等
虚拟化是一种功能的总称,OpenStack是多种功能服务的管理框架和集成,云计算是基于OpenStack的更高级的资源管理和控制平台,云服务是将云计算的资源对外开放的平台架构