声明:
本博客欢迎转载,但请保留原作者信息!
作者:华为云计算工程师 林凯
团队:华为杭州研发中心OpenStack社区团队
由于工作原因接触OpenStack不久,下面对自己的Openstack的学习资料进行简单的总结和梳理,之前对于云计算及Openstack几乎没有接触过,这方面的学习也几乎是从零开始,所以有一些理解错误和不全面的地方,望不吝赐教和指正。
本文主要是对Openstack核心组件Nova进行初步的分析和解读。
1. 基础概念
Openstack云中实例(instances)生命周期的所有活动都由组件Nova处理。这样使得Nova成为一个负责管理计算资源、网络、所需可扩展性的平台。其功能和特点在于:
1) 实例生命周期
2) 管理计算
3) REST(Representional StateTransfer表征状态转移软件架构风格,具有CS结构,连接协议无状态性等特点,适合云计算环境)风格的API
4) 异步的一致性通信
5) Hypervisor透明:支持Xen,XenServer/XCP,KVM,UML,VMware vSphere and Hyper-V
2. Nova组件构成
Nova组件有以下六部分组成:
1) API服务器 API Server(Nova-api)
2) 计算工作者Compute Workers(Nova-compute)
3) 网络控制器Network Controller(Nova-network)
4) 卷工作者Volume Worker(Nova-volume)
5) 调度器Schedule(Nova-schedule)
6) 消息队列Message Queue(rabbitmq server)
图1 Nova软件框架图
上图是Nova的软件架构图,Nova中的各个组件(除了消息队列组件以外)都是有Python代码编写的守护进程,由上图可以看出每个进程之间通过队列(Queue)和数据库(Nova database)来交换信息。
下面对Nova的组件进行介绍。
1) API服务器 API Server(Nova-api)
Nova-API对外提供一个与云基础设施交互的接口,也是外部可用于管理基础设施的唯一组件。它负责发起相应的类似运行新虚拟机实例这样的资源调度活动。
在实现层面上,nova-api是Python实现的WSGI应用。(WSGI即Web服务器网关接口是Python应用程序或框架和Web服务器之间的一种接口,已经被广泛接受,它已基本达成可移植性方面的目标)
2) 计算工作者Compute Workers(Nova-compute)
Nova-compute处理管理实例生命周期,负责对虚拟机实例进行创建、终止、迁移、Resize的操作。