OpenStack私有云详细介绍

引言

企业部署云计算服务的模式有公有云、私有云、混合云三大类。

公有云是云计算服务提供商为公众提供服务的云计算平台,理论上任何人都可以通过授权接入该平台。

私有云是云计算服务提供商为企业在其内部建设的专有云计算系统,私有云系统存在于企业防火墙之内,只为企业内部服务。

混合云则是同时提供公有和私有服务的云计算系统,它是介于公有云和私有云之间的一种折中方案。

本章主要介绍OpenStack的私有云技术

OpenStack介绍

1. 什么是OpenStack

OpenStack是一系列开源工具(或开源项目)的组合,主要使用池化虚拟资源来构建和管理私有云及公共云。其中的六个项目主要负责处理核心云计算服务,包括计算、网络、存储、身份和镜像服务。还有另外十多个可选项目,用户可把它们捆绑打包,用来创建独特、可部署的云架构

2. 云计算模式

OpenStack从一开始就是为了云计算服务的。简单来说,它就是一个操作系统,一套软件,一套laaS软件(基础设施即服务)

(云计算的三种服务模式:laaS、PaaS、SaaS)

3. OpenStack架构

1)管理"基础设施资源",便于用户调用和使用,是OpenStack的首要任务

2)基础设施资源,主要包括三个方面:计算、存储、网络(说通俗点就是CPU、硬盘、网卡)

3)正是因为资源能够被灵活调用,所以用户使用资源时,这个云平台可以根据用户的需要,动态增加和删减资源,不用中断用户的使用,更无需全新申请。这就是"弹性"

4)那么是如何实现的呢?------通过它的众多组件

OpenStack拥有众多的组件,通过组件之间协同进行工作

|------------------------|--------------|-----------------------------------------------------------------|
| 服务 | 项目名称 | 描述 |
| Computer (计算服务) | Nova | 负责实例生命周期的管理,计算资源的单位。对Hypervison进行屏蔽,支持多种虚拟化的技术(红帽默认为KVM),支持横向拓展 |
| Network (网络服务) | Neutron | 负责虚拟网络的管理,为实例创建网络的拓扑结构,是面向租户的网络管理,可以自己定义自己的网络,各个租户之间互不影响 |
| Idententity (身份认证服务) | Keystone | 类似于LDAP服务,对用户,租户和角色,服务进行认证与授权,且支持多认证机制 |
| Dashboard (控制面板服务) | Horizon | 提供一个Web管理界面,与openstack底层服务进行交互 |
| Image Service (镜像服务) | Glance | 提供虚拟机镜像模板的注册与管理,将做好的操作系统拷贝为镜像模板,在创建虚拟机时直接使用,可支持多格式的镜像 |
| Block Storage (块存储服务) | Cinder | 负责为运行实例提供持久的块存储设备,可进行方便的拓展,按需付费,支持多种后端存储 |
| Object Storge (对象存储服务) | swift | 为openstack 提供云的弹性存储,支持群集无单点故障 |
| Telemetry (计量服务) | Ceilometer | 用于度量、监控和控制数据资源的集中来源,为openstack用户提供记账用途 |

4. 核心组件

OpenStack认证服务------Keystone

1)Keystone为所有的OpenStack组件提供认证和访问策略服务,它依赖自身REST(基于Identity API)系统进行工作,主要对(但不限于)Swift、Glance、Nova等进行认证与授权。事实上,授权通过对动作消息来源者请求的合法性进行鉴定

(身份认证流程)

2)Keystone采用两种授权方式:

一种基于用户名/密码,另一种基于令牌(Token)

3)Keystone提供以下三种服务:

令牌服务:含有授权用户的授权信息

目录服务:含有用户合法操作的可用服务列表

策略服务:利用Keystone具体指定用户或群组某些访问权限

OpenStack计算设施------Nova

1)Nova是OpenStack计算的弹性控制器。OpenStack云实例生命期所需的各种动作都将由Nova进行处理和支撑,这就意味着Nova以管理平台的身份登场,负责管理整个云的计算资源、网络、授权及测度。虽然Nova本身并不提供任何虚拟能力,但是它将使用libvirt API与虚拟机的宿主机进行交互。Nova通过Web服务API来对外提供处理接口,而且这些接口与Amazon的Web服务接口是兼容的

2)功能及特点:

实例生命周期管理

计算资源管理

网络与授权管理

基于REST的API异步连续通信

3)Nova弹性云(OpenStack计算部件)包含以下主要部分:

|-----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| API Server (nova-api) | API服务器提供了云设施与外界交互的接口,它是外界用户对云实施管理的唯一通道。通过使用web服务来调用各种EC2的API,接着API服务器便通过消息队列把请求送达至云内目标设施进行处理。作为对EC2-api的替代,用户也可以使用OpenStack的原生API,我们把它叫做"OpenStack API" |
| 消息队列 (rabbit-mq server) | OpenStack内部在遵循AMQP(高级消息队列协议)的基础上采用消息队列进行通信。Nova对请求应答进行异步调用,当请求接收后便则立即触发一个回调。由于使用了异步通信,不会有用户的动作被长置于等待状态。例如,启动一个实例或上传一份镜像的过程较为耗时,API调用就将等待返回结果而不影响其它操作,在此异步通信起到了很大作用,使整个系统变得更加高效 |
| 运算工作站 (nova-compute) | 运算工作站的主要任务是管理实例的整个生命周期。他们通过消息队列接收请求并执行,从而对实例进行各种操作。在典型实际生产环境下,会架设许多运算工作站,根据调度算法,一个实例可以在可用的任意一台运算工作站上部署 |
| 网络控制器 (nova-network) | 网络控制器处理主机的网络配置,例如IP地址分配,配置项目VLAN,设定安全群组以及为计算节点配置网络 |
| 卷管理 (nova-volume) | 卷工作站管理基于LVM的实例卷,它能够为一个实例创建、删除、附加卷,也可以从一个实例中分离卷 卷管理为何如此重要?因为它提供了一种保持实例持续存储的手段,比如当结束一个实例后,根分区如果是非持续化的,那么对其的任何改变都将丢失。可是,如果从一个实例中将卷分离出来,或者为这个实例附加上卷的话,即使实例被关闭,数据仍然保存其中。这些数据可以通过将卷附加到原实例或其他实例的方式而重新访问。因此,为了日后访问,重要数据务必要写入卷中。这种应用对于数据服务器实例的存储而言,尤为重要 |
| 调度器 (nova-scheduler) | 调度器负责把nova-API调用送达给目标。调度器以名为"nova-schedule"的守护进程方式运行,并根据调度算法从可用资源池中恰当地选择运算服务器。有很多因素都可以影响调度结果,比如负载、内存、子节点的远近、CPU架构等等。强大的是nova调度器采用的是可插入式架构 目前nova调度器使用了几种基本的调度算法: 随机化:主机随机选择可用节点 可用化:与随机相似,只是随机选择的范围被指定 简单化:应用这种方式,主机选择负载最小者来运行实例。负载数据可以从别处获得,如负载均衡服务器 |

OpenStack镜像服务器------Glance

1)OpenStack镜像服务器是一套虚拟机镜像发现、注册、检索系统

可以将镜像存储到以下任意一种存储中:

本地文件系统(默认)

S3直接存储

S3对象存储(作为S3访问的中间渠道)

OpenStack对象存储等等

2)功能及特点:提供镜像相关服务

3)Glance构件:

1)Glance-API

主要负责接收响应镜像管理命令的Restful请求,分析消息请求信息并分发其所带的命令(如新增,删除,更新等)。默认绑定端口是9292。

2)Glance-Registry

主要负责接收响应镜像元数据命令的Restful请求。分析消息请求信息并分发其所带的命令(如获取元数据,更新元数据等)。默认绑定的端口是9191

OpenStack存储设施------Swift

1)Swift为OpenStack提供一种分布式、持续虚拟对象存储,它类似于Amazon Web Service的S3简单存储服务。Swift具有跨节点百级对象的存储能力。Swift内建冗余和失效备援管理,也能够处理归档和媒体流,特别是对大数据(千兆字节)和大容量(多对象数量)的测度非常高效

2)swift功能及特点:

海量对象存储

大文件(对象)存储

数据冗余管理

归档能力-----处理大数据集

为虚拟机和云应用提供数据容器

处理流媒体

对象安全存储

备份与归档

良好的可伸缩性

3)Swift服务器

Swift代理服务器

用户都是通过Swift-API与代理服务器进行交互,代理服务器正是接收外界请求的门卫,它检测合法的实体位置并路由它们的请求。

此外,代理服务器也同时处理实体失效而转移时,故障切换的实体重复路由请求

Swift对象服务器

对象服务器是一种二进制存储,它负责处理本地存储中的对象数据的存储、检索和删除。对象都是文件系统中存放的典型的二进制文件,具有扩展文件属性的元数据(xattr)。

注意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所支持,但是并没有有效测试证明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同样能运行良好。不过,XFS被认为是当前最好的选择。

Swift容器服务器

容器服务器将列出一个容器中的所有对象,默认对象列表将存储为SQLite文件(译者注:也可以修改为MySQL,安装中就是以MySQL为例)。容器服务器也会统计容器中包含的对象数量及容器的存储空间耗费。

Swift账户服务器

账户服务器与容器服务器类似,将列出容器中的对象。

Ring(索引环)

Ring容器记录着Swift中物理存储对象的位置信息,它是真实物理存储位置的实体名的虚拟映射,类似于查找及定位不同集群的实体真实物理位置的索引服务。这里所谓的实体指账户、容器、对象,它们都拥有属于自己的不同的Rings

OpenStack管理的Web接口------Horizon

1)Horizon是一个用以管理、控制OpenStack服务的Web控制面板,它可以管理实例、镜像、创建密匙对,对实例添加卷、操作Swift容器等。除此之外,用户还可以在控制面板中使用终端(console)或VNC直接访问实例

2)Horizon的特点

  1. 实例管理:创建、终止实例,查看终端日志,VNC连接,添加卷等
  2. 访问与安全管理:创建安全群组,管理密匙对,设置浮动IP等
  3. 偏好设定:对虚拟硬件模板可以进行不同偏好设定
  4. 镜像管理:编辑或删除镜像
  5. 查看服务目录
  6. 管理用户、配额及项目用途
  7. 用户管理:创建用户等
  8. 卷管理:创建卷和快照
  9. 对象存储处理:创建、删除容器和对象
  10. 为项目下载环境变量
相关推荐
xy123062 天前
OpenStack Train 部署实战(三)控制节点--keystone服务
centos·openstack
BingoGo2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack2 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo3 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack3 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack4 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
哈里谢顿4 天前
云计算基础架构工程师面试终极准备指南(OpenStack 背景专属)
openstack
哈里谢顿4 天前
云计算基础架构工程师”面试通关 Checklist
openstack
BingoGo4 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack5 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel