7.OpenStack核心服务
7.1Horizon:界面管理服务
Horizon提供了OpenStack中基于web界面的管理控制页面,用户或者是管理员都需要通过该服务进行OpenStack的访问和控制
界面管理服务需要依赖于keystone服务进行访问控制和权限管理。登录用户的角色、权限都需要依赖keystone认证服务进行管理。
7.2Keystone:认证管理服务
提供身份验证,服务发现,分布式多租户授权(分布式代表keystone并不是一个节点,多租户指的就是用户数量非常的多,授权代表keystone可以记录每个用户的权限)
7.2.1账户、用户、租户、账号
账户和账号本身来说可以理解为是一个概念,用户是使用资源的对象,用户分为人机用户和机机用户,用户和账户是一对多的关系。如果账户的使用单位是一个集体,比如公司账号或者部门账号,为了进行管理,可以在账户的下面创建租户,租户属于账户。
7.2.2权限管理:用户/租户/账户、用户组、角色、权限
一个良好的权限管理框架,要保证权限的分配最小化。权限分配的步骤最小化。
权限分配给角色,角色分配给用户组,用户选择性加组。加组的用户继承用户组的角色,拥有角色的权限。
Keystone核心组件有LDAP(核心数据库)、Oauth(认证管理服务)、OpenIDConnect(连接转发服务)。Keystone是OpenStack中最核心的服务。在公有云中,我们一般称该服务为IAM服务,缩写可能根据厂商的不同有区别,但是中文翻译为统一身份认证服务。如果统一身份认证服务出现故障,那么整个云框架的所有服务都会处于不可用状态。
7.3Glance:镜像服务
对于OpenStack而言,其提供的是IaaS基础设施服务,通过OpenStack用户可以创建虚拟机、裸金属、容器。但是这些资源都要有操作系统,操作系统的安装、部署、维护就需要通过镜像去实现。在最早的OpenStack A版本中,在没有镜像服务的前提下,所有用户都需要自行维护自己所使用的镜像,这就导致重复的镜像多次上传,镜像之间的共享无法实现。所以为了提升共享性、同时降低重复镜像的上传,节约存储空间。在B版本中发布了Glance镜像服务。
镜像服务分为了公共镜像、私有镜像、共享镜像三个类型。
公共镜像一般是由OpenStack的管理员上传的面向于所有普通用户的镜像。普通用户创建资源的时候看到的公共镜像,这个状态就叫做镜像发现
私有镜像一般是用户自定义的镜像。当用户上传自己的私有镜像到云上的时候,就叫做镜像注册。当用户有大量镜像需要筛选,就叫做镜像检索
当用户将自己的私有镜像传递给其他用户使用的时候,这个镜像就叫做共享镜像。
镜像可以存储在本地、对象存储或者是块存储等有存储空间的位置。
7.4Nova:计算服务
提供大规模(可以允许海量计算资源的管理),可扩展(资源不足的时候可以允许动态扩展物理资源),按需自助服务(计算资源的创建封装等一系列操作是不需要人为干预的,OpenStack可以自动化执行)。
Nova需要管理裸机(裸金属)、虚拟机和容器。提供最基础的计算资源虚拟化服务
Nova依赖镜像服务,网络服务。
7.5Cinder:块存储服务
所谓块存储就是SAN存储服务,Cinder可以将物理存储虚拟化成逻辑硬盘。Cinder提供的是持久化的存储。Cinder将所有的物理存储空间整合为一个逻辑的存储资源池,然后按需进行资源分配。用户视角只能看到资源池。存储空间来自于哪个设备的哪块硬盘是不可见的。
7.6Swift:对象存储服务
对象存储具有高可用性(高安全性保护),分布式(存储空间的提供不是由某一台设备实现的,而是最少3台)
7.7Neutron:网络服务
本质上是SDN(Software design Network软件定义网络),通过软件实现网络的虚拟化功能。
Neutron可以实现的最大的价值就是通过它可以实现VXLAN(隧道网络)。如果没有VXLAN技术,就没有现在的云服务。
8.OpenStack创建一个VM的流程
- 用户下发一个创建的请求,从Horizon界面进行任务的下发。
- OpenStack的管理进程收到请求之后,会将任务拆分,将计算封装任务交给Nova
- Nova收到请求之后,会检查集群中负载压力最小的节点,然后将请求转发到该设备上,设备收到请求之后,根据请求中的规格进行资源的封装,形成虚拟机VM。
- 虚拟机创建完成之后,本质上是一个空机,所以我们需要提供镜像给虚拟机进行部署。
- 镜像安装部署在哪里?目前的虚拟机是没有可以安装的位置的,所以下一步OpenStack就需要根据用户的请求,封装对应大小的硬盘,给VM挂载。然后将镜像安装在硬盘内。
- 安装完成之后,为了外部对内部的访问顺畅,我们需要通过Neutron服务,挂载网卡到虚拟机,提供对外访问的服务。
- 以下为非必选项:
- 如果我们需要对该VM进行保护,那么就可以将Cinder提供的硬盘周期性的备份到OBS对象存储中
- 如果用户需要对VM的各项规格进行调整,就会影响和干扰VM的正常运行,属于高危操作。对于高危操作,就必须要用户通过keystone认证,保证用户具有相关的操作权限
接下来,详细展开OpenStack架构组件的说明
9.Horizon架构
- 底层服务:Horizon的总体目标是为了通过自身的web界面对其他服务做管理,所以Horizon需要做到和所有服务建立连接。所以Horizon的底层是OpenStack的其他服务。
- 那么Horizon如何和其他的服务构建连接呢?因为在设计OpenStack的时候,时间顺序是有先后的。所以Horizon使用的是API连接进行构建。所有的基于Horizon的操作,最终在用户提交的时候,都会被转换成对应组件的API命令进行下发。
- 基于对相关服务的连接,我们可以进行查询、创建、修改、删除以及生命周期中所有的资源管理项目的设置。该层叫做view访问层。
- Template模板:用户在配置Horizon的相关设置的时候,页面中应该显示什么,需要配置什么,哪些是可选,哪些是必选,这就需要提前在Horizon中预制配置模板。