OpenStack的架构详解
基于OpenStack的私有云架构设计与实现
基于OpenStack的私有云架构设计与实现
私有云是一个基于虚拟化技术的云计算模式,在企业中被广泛应用。随着云计算市场的不断扩大和发展,各种云计算技术也越来越成熟。OpenStack作为一种开源的云计算平台,已经成为了私有云的标准选择。本文将基于OpenStack,探讨基于OpenStack的私有云架构设计与实现。
一、OpenStack简介
OpenStack是一种开源的云计算平台,支持私有云和公有云部署,并提供了一系列的API,允许用户很容易地创建和管理虚拟机、存储和网络资源。OpenStack 有一个庞大的社区,由众多企业和开发者共同构建和维护。
OpenStack由多个组件组成,包括计算、网络、存储和控制器等。其中,计算组件和控制器组件分别构成了Compute和Controller节点。网络组件提供了网络功能,包括虚拟网络和物理网络之间的互联。存储组件允许用户创建、分配、管理存储资源,支持多种存储后端,如Ceph、GlusterFS、iSCSI等。
二、私有云架构设计
基于OpenStack的私有云架构设计可以分为以下几个方面:
1.硬件
硬件是私有云建设中最基础的部分。在私有云中,需要为计算、存储和网络资源分配硬件,这些硬件需要保证性能和可扩展性。对于计算节点,需要选择能够支持虚拟化的CPU和足够的内存。对于存储节点,需要选择高速硬盘和RAID控制器,以保证数据可靠性和性能。对于网络节点,需要选择高性能交换机和路由器,以保证网络带宽和可靠性。
2.软件
软件是建立私有云的核心技术。在私有云中,需要选择适合自己的云平台。OpenStack是一个开源的云平台,拥有庞大的社区和广泛的支持。使用OpenStack
openstack发展历程及其架构简介
openstack发展历程及其架构简介
1.0 Openstack介绍
OpenStack既是⼀个社区,也是⼀个项⽬和⼀个开源软件,它提供了⼀个部署云的操作平台或⼯具集。其宗旨在于,帮助组织运⾏为虚拟计算或存储服务的云,为公有云、私有云,也为⼤云、⼩云提供可扩展的、灵活的云计算。
2.0 Openstack版本历程
2.1 2010.10 Austin
作为OpenStack第⼀个正式版本,Austin主要包含两⼦项⽬,Swift是对象存储模块,Nova是计算模块;带有⼀个简单的控制台,允许⽤户通过web管理计算和存储;带有⼀个部分实现的Image⽂件管理模块,未正式发布。
2.2 2011.2 Bexar
Bexar 在此基础上补充了 Image Service (Glance),它在许多⽅⾯与计算和存储有交集。1、镜像代表存储在 OpenStack 上的模板虚拟机,⽤于按需快速启动计算实例;
2、Swift增加了对⼤⽂件(⼤于5G)的⽀持;
3、增加了⽀持S3接⼝的中间件;
4、增加了⼀个认证服务中间件Swauth;
5、Nova增加对raw磁盘镜像的⽀持,增加对微软Hyper-V的⽀持;
6、开始了Dashboard控制台的开发。
2.3 2011.4 Cactus
1、Nova增加新的虚拟化技术⽀持,如LXC容器(Linux containers的简称,是⼀种基于容器的操作系统层级的虚拟化技术)、
VMWare/vSphere、ESX/ESXi 4.1;
2、⽀持动态迁移运⾏中的虚机;
3、增加⽀持Lefthand/HP SAN作为卷存储的后端。
openstackkeystone原理
openstackkeystone原理
Keystone是OpenStack的身份认证服务组件。它提供了用户、服务和终端设备之间的身份认证、访问控制和授权机制。Keystone使用了多租户模型,允许OpenStack的各个组件和服务以统一的方式进行认证和授权。
Keystone的原理可以分为以下几个方面:
1.架构和组件:
Keystone由多个组件组成,包括:
- 身份服务(Identity Service):负责存储和管理用户、项目、角色和权限等信息。
- 令牌服务(Token Service):负责颁发身份验证令牌以及验证和管理令牌。
- 目录服务(Catalog Service):负责服务目录的管理和查询。
- 策略服务(Policy Service):负责定义和管理访问策略。
- 通知服务(Notification Service):负责发送通知消息以进行审计和监控。
- LDAP驱动(LDAP Driver):负责与LDAP目录服务进行交互。
2.用户认证和授权:
Keystone提供了多种身份认证机制,如用户名和密码、令牌、OpenID Connect、OAuth等。用户在登录时提供凭证进行身份认证。
Keystone通过验证用户的凭证,如用户名和密码,来确定用户的身份。
一旦身份得到确认,Keystone将为用户颁发一个认证令牌。
令牌包含了用户的身份信息以及所具备的角色和权限。Keystone通
过持久化存储(如数据库)或者中间件(如Memcached)来管理和验证令牌。令牌的默认有效期为24小时,过期后用户需要重新进行身份认证。
OpenStack详解
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
OpenStack入门
OpenStack入门之基本组件
写在前面
OpenStack 核心的项目:
Nova 、 Cinder、 Neutron、 Swift、 Keystone、 Glance、 Horizon
1. Nova
又被称为 OpenStack Compute,主要作用是控制虚拟机的创建,以及改变它的容量和配置,还可以做虚拟机的销毁,虚拟机的整个生命周期都是由 Nova 来控制的;
Nova的部署运行一般有两种情况:一类是 Nova 作为 Controller 节点去运行,Controller 节点是用来控制其它的一些计算节点的;另外一类节点就是Compute 节点,是计算节点,上面是运行实际的虚拟机的;
那么有什么区别呢?
∙在 Compute 节点上部署的 Nova,它上面核心运行的一个东西叫作 Nova Compute,主要是为了去对虚拟机进行控制,它去和 Hypevisor 进行交互,对虚拟机进行控制;
∙在 Controller 上运行的 Nova 就相对复杂一些,它有 Scheduler、Conductor、Nova Cell;
∙Scheduler 在用户发起请求的时候决定这个虚拟机应该在哪个机器上启动,应该在哪个计算节点上启动;
∙Conductor 是对所有的计算节点进行一个统一的管理;
∙Nova Cell 的作用是级联
控制虚拟机的生命周期
控制节点:Scheduler(决定虚拟机的启动位置)、Conductor(对所有的计算节点进行统一管理)、Nova Cell(级联)
计算节点:对虚拟机进行控制
openstack技术原理
openstack技术原理
OpenStack技术是一个开源的云计算平台,它提供了一组丰富的工具和服务,用于构建和管理公有云和私有云环境。OpenStack技术的原理主要包括以下几个方面:
1. 架构:OpenStack采用了分层架构,包括计算层、网络层和存储层。计算层提供了虚拟机实例的管理和调度功能;网络层提供了虚拟网络的创建和管理功能;存储层提供了对象存储和块存储的服务。这种分层架构使得OpenStack具有高度的可扩展性和灵活性。
2. 组件:OpenStack由多个组件组成,包括Nova、Neutron、Cinder、Glance等。Nova是OpenStack的计算组件,用于管理虚拟机实例的创建、调度和销毁;Neutron是OpenStack的网络组件,用于创建和管理虚拟网络;Cinder是OpenStack的块存储组件,用于提供持久化的块存储服务;Glance是OpenStack的镜像组件,用于管理虚拟机实例的镜像。
3. 虚拟化技术:OpenStack支持多种虚拟化技术,包括KVM、Xen、VMware和Hyper-V等。这些虚拟化技术可以将物理服务器划分为多个虚拟机实例,并提供虚拟机实例的管理和调度功能。
4. API:OpenStack提供了丰富的API接口,用于与OpenStack 进行交互。通过这些API接口,用户可以创建虚拟机实例、创建虚拟网络、上传镜像等操作。同时,OpenStack还提供了CLI命令行
工具和Web界面,方便用户进行操作和管理。
5. 高可用性:OpenStack具有高可用性的特性,可以通过配置多个控制节点和计算节点,实现故障切换和负载均衡。同时,OpenStack还提供了监控和告警功能,可以及时发现和解决故障。
服务器虚拟化技术OpenStackvsProxmoxVE
服务器虚拟化技术OpenStackvsProxmoxVE 随着云计算的快速发展,服务器虚拟化技术成为了企业管理和运维
中不可忽视的一部分。其中,OpenStack和Proxmox VE是两种备受关
注的虚拟化平台。本文将对它们进行比较和分析,帮助读者更好地了
解它们的优势和适用场景。
一、OpenStack简介
OpenStack是一个用于构建和管理云计算平台的开源软件,它提供
了一系列的组件,用于实现云计算中的虚拟化、网络、存储等功能。OpenStack旨在提供弹性、可扩展、安全的云计算解决方案,被广泛应
用于公共云、私有云和混合云环境。
1.1 OpenStack的特点
OpenStack具有以下特点:
1. 开源:OpenStack是开源软件,允许用户自由访问和修改代码,
满足个性化需求。
2. 弹性扩展:OpenStack采用分布式架构,可以根据需求自由扩展
计算、存储和网络资源。
3. 多租户支持:OpenStack能够实现多个租户共享同一套基础设施,提高资源利用率。
4. 健壮可靠:OpenStack具备高可用性和自动化管理能力,能够保
证云计算平台的稳定运行。
5. 多样化的组件:OpenStack提供了丰富的组件,如Nova、Neutron、Cinder等,可根据需求选择和定制。
1.2 OpenStack的组件
OpenStack包含多个重要组件,如下所示:
1. Nova:用于管理和调度计算资源,提供虚拟机实例的创建、调整
和销毁等功能。
2. Neutron:用于管理网络资源,提供虚拟网络的创建、隔离和连接等功能。
OpenStack云平台核心模块详解
中是什么角色 5. 根据user1的可访问的服务、Project列表,在Project中的角色,以及角色对应的policy权
限,在界面上显示user1可访问的服务、项目、资源 6. 当user1点击Instance时,会将请求发给nova的endpoint,nova根据user1的token进行
• launch/terminate:创建虚拟机、终止虚拟机(终止即删除*) • start/shutoff/reboot:虚拟机的开机、关机、重启操作,重启可以是soft/hard reboot • snapshot:创建快照,对虚拟机的disk镜像文件(不含云硬盘)进行全量备份,生成一个类型为
snapshot的image保存在glance中,快照恢复相当于通过snapshot image创建虚拟机 • pause/resume:暂停虚拟机,将虚拟机状态保存到宿主机内存中,resume的时候再从内存中读回
问该项目的资源,每个项目可设置Quota • user(用户):任何使用OpenStack服务的实体,OpenStack 为 nova、cinder、neutron 等服务创建了相应
的 user • group(用户组):用户的集合,可以对group赋予角色,group中的用户都拥有该角色对应的权限 • role(角色):权限的集合,各服务通过自己的policy.json文件定义各角色的权限,默认只有admin和非admin
openstack培训
OpenStack在云计算平台中的应用案例
案例一
01
某公有云服务商使用OpenStack构建了大规模、高可用的云计
算平台,为上百万用户提供了计算、存储和网络服务。
案例二
02
某政府机构使用OpenStack搭建了政务云平台,实现了各部门
信息资源的共享和协同办公,提高了政务服务效率。
案例三
03
某大型互联网公司使用OpenStack进行容器云平台的构建,实
案例一
某大型银行使用OpenStack构建私有云平台,实现了计算 资源的池化和自动化管理,提高了IT效率和资源利用率。
案例二
某大型电商使用OpenStack进行大规模容器编排,实现了 快速应用部署和容器服务的高可用性。
案例三
某电信运营商使用OpenStack进行多租户资源隔离,确保 了不同业务部门之间的资源互不影响,提高了业务连续性 和可靠性。
3
令牌与证书管理
实现令牌和证书的管理,确保身份认证的安全性。
04 OpenStack管理与运维
OpenStack命令行管理工具
命令行工具概览
OpenStack提供了一系列的命令行工具,用于对云环境进行管理和操 作。
命令行工具分类
根据功能不同,OpenStack的命令行工具可以分为身份认证、计算管 理、网络管理、存储管理、镜像管理、块存储管理等多个类别。
openstack架构工作流程
openstack架构工作流程
OpenStack架构工作流程
OpenStack是一个开源的云计算平台,它提供了一系列的组件,可以帮助用户构建和管理云计算环境。在OpenStack架构中,有多个组件协同工作,以提供完整的云计算服务。本文将介绍OpenStack的架构和工作流程。
一、OpenStack架构
OpenStack的架构由多个组件组成,这些组件可以分为以下三类:
1. 控制节点
控制节点是OpenStack架构中最重要的部分之一。它包括Nova、Neutron、Glance、Cinder、Keystone等组件。这些组件负责管理和控制整个云计算环境。
2. 计算节点
计算节点是运行虚拟机实例的地方。它们与控制节点通信,并接收指
令来创建、销毁或管理虚拟机实例。
3. 存储节点
存储节点是存储虚拟机镜像和数据的地方。它们与控制节点通信,并接收指令来创建、删除或管理存储卷。
二、OpenStack工作流程
1. 用户认证
在使用OpenStack之前,用户必须先进行身份验证。身份验证过程由Keystone完成。用户需要提供用户名和密码才能通过身份验证,并获得访问权限。
2. 资源创建
一旦用户通过身份验证,就可以使用OpenStack创建虚拟机实例、存储卷等资源。用户可以使用Horizon、CLI或API等工具来创建这些资源。在资源创建过程中,OpenStack会根据用户的请求,在控制节点上执行相应的操作。
3. 资源调度
当用户请求创建虚拟机实例时,OpenStack会选择一个计算节点来运行该实例。这个过程称为资源调度。OpenStack使用Nova Scheduler组件来完成此任务。Nova Scheduler根据一系列标准(如计算节点负载、存储容量等)来选择最适合的计算节点。
openstack neutron原理
openstack neutron原理
OpenStack Neutron(先前称为Quantum)是OpenStack项目中的网络服务组件,为云平台提供了虚拟网络的创建、管理和操作能力。它的原理如下:
1. 架构:Neutron采用了插件化的架构,通过各种插件来支持不同的网络技术和设备。它包括核心服务(Core Service)、插件(Plugin)和代理(Agent)三个主要组件。
2. 核心服务:核心服务包括了API服务和插件调度服务。API 服务提供了外部接口,用于接收和转发网络操作请求,并通过RPC(远程过程调用)机制与其他服务通信。插件调度服务用于协调插件的使用和调度,并提供统一的接口给API服务。
3. 插件:插件是Neutron的核心组件,它们负责提供具体的网络功能和技术支持。常见的插件包括Open vSwitch插件、Linuxbridge插件和Cisco插件等。插件通过API与核心服务通信,接收和处理网络请求。
4. 代理:代理是运行在网络节点上的实体,用于处理具体的网络功能和操作。它们包括L3代理、DHCP代理和Metadata代理等。L3代理提供路由功能,负责处理跨子网的数据包;DHCP代理提供DHCP服务,为虚拟机提供动态IP地址;Metadata代理负责处理云平台元数据的访问。
5. 虚拟网络:Neutron通过虚拟网络抽象,将底层物理网络转化为虚拟网络,并为租户提供独立的、可定制的网络环境。虚
拟网络包括了子网、路由和安全组等组件,通过插件和代理来实现不同技术的网络隔离和功能。
OpenStack的架构详解
OpenStack的架构详解
OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。
1. OpenStack是什么
OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。
OpenStack旗下包含了一组由社区维护的开源项目,他们分别是OpenStackCompute(Nova),OpenStackObjectStorage(Swift),以及OpenStackImageService(Glance)。
OpenStackCompute[1],为云组织的控制器,它提供一个工具来部署云,包括运行实例、管理网络以及控制用户和其他项目对云的访问(thecloudthroughusersandprojects)。它底层的开源项目名称是Nova,其提供的软件能控制IaaS云计算平台,类似于AmazonEC2和RackspaceCloudServers。实际上它定义的是,与运行在主机操作系统上潜在的虚拟化机制交互的驱动,暴露基于WebAPI的功能。
OpenStackObjectStorage[2],是一个可扩展的对象存储系统。对象存储支持多种应用,比如复制和存档数据,图像或视频服务,存储次级静态数据,开发数据存储整合的新应用,存储容量难以估计的数据,为Web应用创建基于云的弹性存储。
openstack原理
openstack原理
OpenStack原理。
OpenStack是一个开源的云计算平台,它由一系列相互关联的项目组成,包括
计算(Nova)、网络(Neutron)、存储(Cinder、Swift)、身份认证(Keystone)、图像(Glance)、编排(Heat)等。它的设计理念是建立一个可扩展、可靠的云计算平台,使用户能够轻松地部署和管理私有云、公有云和混合云环境。
OpenStack的基本原理是将计算、网络和存储等资源进行虚拟化,通过统一的
管理接口对这些资源进行统一管理和调度。在OpenStack中,计算资源是通过虚拟
机实现的,网络资源是通过虚拟网络实现的,存储资源是通过虚拟存储实现的。这些虚拟化技术使得用户能够灵活地配置和使用云计算资源,提高资源利用率和灵活性。
在OpenStack中,计算资源的虚拟化是通过Nova项目实现的。Nova项目提供
了一套完整的虚拟机管理功能,包括虚拟机的创建、启动、停止、迁移等。它支持多种虚拟化技术,包括KVM、Xen、VMware等,用户可以根据自己的需求选择
合适的虚拟化技术来部署虚拟机。
网络资源的虚拟化是通过Neutron项目实现的。Neutron项目提供了一套完整的网络管理功能,包括虚拟网络的创建、配置、连接等。它支持多种网络模型,包括VLAN、GRE、VXLAN等,用户可以根据自己的需求选择合适的网络模型来部署
虚拟网络。
存储资源的虚拟化是通过Cinder和Swift项目实现的。Cinder项目提供了一套
完整的块存储管理功能,包括卷的创建、挂载、卸载等。Swift项目提供了一套完
基于OpenStack开放云管理平台研究
基于OpenStack开放云管理平台研究
一、引言
随着云计算的逐渐成熟,企业在应用部署、资源管理和数据处理等方面面临着越来越多复杂的挑战。多数企业已经认识到了云计算资源共享和使用的好处,但在实现时却面临了安全性、可靠性和灵活性等问题。
OpenStack开放云管理平台是当前业内广泛使用的开源云平台之一,它以开放、可扩展、灵活等特点,为企业提供了一种更加便捷、高效的云计算管理方式。本文将探讨OpenStack开放云管理平台的架构设计、技术特点、应用场景以及未来发展方向等方面,旨在为云计算管理提供一些借鉴价值。
二、OpenStack开放云管理平台架构设计
OpenStack开放云管理平台是由NASA和Rackspace在2010年共同推出,是当前最为流行的开源云平台之一。其核心组件如下:Nova:为用户提供虚拟机实例,能够对资源进行自我管理和自我调整。
Cinder:提供Block Storage(块存储)的服务。
Glance:提供镜像服务,提供用户不同环境下需要的镜像。
Keystone:提供身份验证和授权服务的组件,用于用户的身份验证和授权访问云资源。
Neutron:提供网络服务的管理和配置,可配置虚拟网络、路由器和子网等。
Swift:提供对象存储服务,与传统的基于块的存储不同,这里是基于对象的方式管理数据存储。
三、OpenStack技术特点
1. 开放性
OpenStack是一个开源的云平台,在开源社区中积极发展,且容
易扩展。用户可以不需要购买任何许可证就能自由地访问平台,并灵活自由地使用和部署OpenStack平台。
Openstack云操作系统介绍
整个集群至少需要一个nova-scheduler实例处于'up'状态。需如果集群中至少有一个novascheduler实例的状态是'up'的,我们就需要查看查看nova-scheduler的日志来进一步确定原因了 。到控制节点上,查看/var/log/nova/scheduler 日志。
tail -f /var/log/nova/scheduler
nova list --all-tenant --host node-4.domain.tld
20
Nova常用命令
[root@node-1 ~]# nova show testvm01
21
Nova常用命令 列出可用的flavor
[root@node-1 ~]# nova flavor-list
定制flavor,flavor name=test500 flavor id=500 ram=512Mb cpu=2
# source ~/openrc # nova show <虚拟机UUID> (虚拟机UUID是 创建失败的虚拟机的UUID)
如上图所示,关键信息是 fault 字段中包含了 ‘No valid host was found’ 这样的信息。如果出现这类关键信息,可以参考下面的解决办法。
35
Nova常见问题--虚机创建失败
OpenStack_介绍
Millions LOC
19
版本发布
20
生态圈
21
22
23
走进OpenStack
24
Compute - Nova
25
Docker Container Container
HyperV VM
Nova Compute
Allows multiple hypervisor types per cloud. Libvirt / KVM is most commonly used in deployment
Native support since IceHouse
26
Storage - Cinder
主要为虚拟机提供持久化的块存储功能,支持块的创建、挂载卸载、快照 (Snapshot)等生命周期管理,后端可以是DAS、NAS、SAN、对象存储以及分 布式文件系统
Horizon
Cinder CLI
Nova
•
•
•
分布式存储
容器技术(LXC)
Docker, Rocket
•
网络虚拟化
• Openvswitch, netns, SDN, NFV
8
开源云项目
9
10
从云之巅看OpenStack
11
OpenStack software controls large pools of compute, storage, and networking resources throughout a datacenter, managed through a dashboard or via the OpenStack API. OpenStack works with popular enterprise and open source technologies making it ideal for heterogeneous infrastructure.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OpenStack的架构详解
OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。
1. OpenStack是什么
OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。
OpenStack旗下包含了一组由社区维护的开源项目,他们分别是OpenStackCompute(Nova),OpenStackObjectStorage(Swift),以及OpenStackImageService(Glance)。
OpenStackCompute[1],为云组织的控制器,它提供一个工具来部署云,包括运行实例、管理网络以及控制用户和其他项目对云的访问(thecloudthroughusersandprojects)。它底层的开源项目名称是Nova,其提供的软件能控制IaaS云计算平台,类似于AmazonEC2和RackspaceCloudServers。实际上它定义的是,与运行在主机操作系统上潜在的虚拟化机制交互的驱动,暴露基于WebAPI的功能。
OpenStackObjectStorage[2],是一个可扩展的对象存储系统。对象存储支持多种应用,比如复制和存档数据,图像或视频服务,存储次级静态数据,开发数据存储整合的新应用,存储容量难以估计的数据,为Web应用创建基于云的弹性存储。
OpenStackImageService[1],是一个虚拟机镜像的存储、查询和检索系统,服务包括的RESTfulAPI允许用户通过HTTP请求查询VM镜像元数据,以及检索实际的镜像。VM镜像有四种配置方式:简单的文件系统,类似OpenStackObjectStorage的对象存储系统,直接用Amazon'sSimpleStorageSolution(S3)存储,用带有ObjectStore的S3间接访问S3。
三个项目的基本关系如下图1-1所示:
1-1 OpenStack三个组件的关系
2. 云服务提供商的概念架构
OpenStack能帮我们建立自己的IaaS,提供类似AmazonWebService的服务给客户。为实现这一点,我们需要提供几个高级特性:
a)允许应用拥有者注册云服务,查看运用和计费情况;
b)允许Developers/DevOpsfolks创建和存储他们应用的自定义镜像;
c)允许他们启动、监控和终止实例;
d)允许CloudOperator配置和操作基础架构
这四点都直击提供IaaS的核心,现在假设你同意了这四个特性,现在就可以将它们放
进如下所示的概念架构2-1中。
2-1 OpenStack 概念架构
在此模型中,作者假设了需要与云交互的四个用户集:developers, devops, ownersandoperators,并为每类用户划分了他们所需要的功能。该架构采用的是非常普通的分层方法(presentation, logicandresources),它带有两个正交区域。
展示层,组件与用户交互,接受和呈现信息。Webportals为非开发者提供图形界面,为开发者提供API端点。如果是更复杂的结构,负载均衡,控制代理,安全和名称服务也都会在这层。
逻辑层为云提供逻辑(intelligence)和控制功能。这层包括部署(复杂任务的工作流),调度(作业到资源的映射),策略(配额等等),镜像注册imageregistry(实例镜像的元数据),日志(事件和计量)。
假设绝大多数服务提供者已经有客户身份和计费系统。任何云架构都需要整合这些系统。
在任何复杂的环境下,我们都将需要一个management层来操作这个环境。它应该包括一个API访问云管理特性以及一些监控形式(forms)。很可能,监控功能将以整合的形式加入一个已存在的工具中。当前的架构中已经为我们虚拟的服务提供商加入了monitoring和adminAPI,在更完全的架构中,你将见到一系列的支持功能,比如provisioning和configurationmanagement。
最后,资源层。既然这是一个compute云,我们就需要实际的compute、network和storage资源,以供应给我们的客户。该层提供这些服务,无论他们是服务器,网络交换机,NAS(networkattachedstorage)还是其他的一些资源。
3. OpenStack Compute架构
3.1 OpenStack Compute逻辑架构
OpenStack Compute逻辑架构中,组件中的绝大多数可分为两种自定义编写的Python 守护进程(custom written python daemons)。
a) 接收和协调API调用的WSGI应用(nova-api, glance-api, etc)
b) 执行部署任务的Worker守护进程(nova-compute, nova-network, nova-schedule, etc.)
然而,逻辑架构中有两个重要的部分,既不是自定义编写,也不是基于Python,它们是消息队列和数据库。二者简化了复杂任务(通过消息传递和信息共享的任务)的异步部署。
逻辑架构图3-1如下所示:
3-1 OpenStack Compute逻辑架构
从图中,我们可以总结出三点:
a) 终端用户(DevOps, Developers 和其他的 OpenStack 组件)通过和nova-api对话来与OpenStack Compute交互。
b) OpenStack Compute守护进程之间通过队列(行为)和数据库(信息)来交换信息,以执行API请求。
c) OpenStack Glance基本上是独立的基础架构,OpenStack Compute通过Glance API 来和它交互。
其各个组件的情况如下:
a) nova-api守护进程是OpenStack Compute的中心。它为所有API查询(OpenStack API 或 EC2 API)提供端点,初始化绝大多数部署活动(比如运行实例),以及实施一些策略(绝大多数的配额检查)。
b) nova-compute进程主要是一个创建和终止虚拟机实例的Worker守护进程。其过程