OpenStack

OpenStack 提供了一种模块化云基础架构。OpenStack 是一个云操作系统,在整个数据中心控制大量的计算、存储和网络资源池,通过 API 进行管理,并提供通用的认证机制。

OpenStack 全景图

OpenStack 目前一共包含 65 个服务组件,其中 6 个核心服务主要担纲系统的基础架构,其余项目则负责管理控制面板、编排、裸机部署、信息传递、容器及统筹管理等操作。

OpenStack 架构

模块化架构

OpenStack 采用模块化架构,提供一组服务,可扩展性和弹性是其核心设计原则。以下 7 个组件为实验环境部署的组件服务,除控制面板(Dashboard)外都为核心服务。

概念体系结构

主要服务组件之间的关系

逻辑架构

最常见的 OpenStack 云架构,加粗表示实验环境部署的服务组件。

  • Keystone:身份认证服务
  • Glance:镜像服务
  • Nova:计算服务
  • Neutron:网络服务
  • Swift:对象存储
  • Cinder:块存储
  • Dashboard:控制面板
  • Ceilometer:计量服务
  • Heat:编排服务
  • Ironic:裸金属服务
  • Trove:数据库即服务
  • Sahara:提供大数据处理框架

核心组件交互逻辑

OpenStack 逻辑架构展示了 OpenStack 中最常见的集成服务以及它们之间的交互。终端用户可以通过控制面板、终端命令行和 API 与服务进行交互。所有服务都通过公共的身份认证服务进行身份验证,各个服务通过公共 API 交互,但需要特权管理员命令的情况除外。

以上组件的相关日志文件

Node type Service Log location
Cloud controller nova-* /var/log/nova
Cloud controller glance-* /var/log/glance
Cloud controller cinder-* /var/log/cinder
Cloud controller keystone-* /var/log/keystone
Cloud controller neutron-* /var/log/neutron
Cloud controller horizon /var/log/apache2/
All nodes misc (swift, dnsmasq) /var/log/syslog
Compute nodes libvirt /var/log/libvirt/libvirtd.log
Compute nodes Console (boot up messages) for VM instances: /var/lib/nova/instances/instance-/console.log
Block Storage nodes cinder-volume /var/log/cinder/cinder-volume.log

核心组件日志

Identity Service (keystone)

Service Service Name Log Path
OpenStack Identity Service openstack-keystone.service /var/log/keystone/keystone.log

Image Service (glance)

Service Service Name Log Path
OpenStack Image Service API server openstack-glance-api.service /var/log/glance/api.log
OpenStack Image Service Registry server openstack-glance-registry.service /var/log/glance/registry.log

Compute (nova)

Service Service Name Log Path
OpenStack Compute API service openstack-nova-api.service /var/log/nova/nova-api.log
OpenStack Compute certificate server openstack-nova-cert.service /var/log/nova/nova-cert.log
OpenStack Compute service openstack-nova-compute.service /var/log/nova/nova-compute.log
OpenStack Compute Conductor service openstack-nova-conductor.service /var/log/nova/nova-conductor.log
OpenStack Compute VNC console authentication server openstack-nova-consoleauth.service /var/log/nova/nova-consoleauth.log
Informational messages nova-manage command /var/log/nova/nova-manage.log
OpenStack Compute NoVNC Proxy service openstack-nova-novncproxy.service /var/log/nova/nova-novncproxy.log
OpenStack Compute Scheduler service openstack-nova-scheduler.service /var/log/nova/nova-scheduler.log

Networking (neutron)

Service Service Name Log Path
OpenStack Neutron DHCP Agent neutron-dhcp-agent.service /var/log/neutron/dhcp-agent.log
OpenStack Networking Layer 3 Agent neutron-l3-agent.service /var/log/neutron/l3-agent.log
Metadata agent service neutron-metadata-agent.service /var/log/neutron/metadata-agent.log
Metadata namespace proxy n/a /var/log/neutron/neutron-ns-metadata-proxy-UUID.log
Open vSwitch agent neutron-openvswitch-agent.service /var/log/neutron/openvswitch-agent.log
OpenStack Networking service neutron-server.service /var/log/neutron/server.log

Object Storage (swift)

OpenStack Object Storage sends logs to the system logging facility only.

Block Storage (cinder)

Service Service Name Log Path
Block Storage API openstack-cinder-api.service /var/log/cinder-api.log
Block Storage Backup openstack-cinder-backup.service /var/log/cinder/backup.log
Informational messages The cinder-manage command /var/log/cinder/cinder-manage.log
Block Storage Scheduler openstack-cinder-scheduler.service /var/log/cinder/scheduler.log
Block Storage Volume openstack-cinder-volume.service /var/log/cinder/volume.log

Dashboard (horizon)

Service Service Name Log Path
Log of certain user interactions Dashboard interface /var/log/horizon/horizon.log

端到端核心组件交互 —— 创建实例

在 OpenStack 上创建实例时,端到端的组件交互,包括网络和卷的请求与分配。

创建实例的状态改变。

从另一个视角看组件间的交互。

组件之间的交互依赖于控制节点,控制节点使用消息队列(RabbitMQ)对组件交互消息进行排序,使用 REST API 并遵循 AMQP 协议;而组件内部的交互使用 RPC ,例如 nova 中的四个模块。

参阅