一、逻辑概念模型

Nova云管理平台的主要功能均是围绕几个关键的概念模型进行管理的,如下图所示:

openstack租户 用户 角色 openstack租户和用户区别_openstack租户 用户 角色

理解一下这个概念模型:

用户(Users)即租户,每个租户是通过项目管理自有云资源的,通过项目的方式实现业务方面的分类管理,如对于软件研发团队而言,开发、测试环境分别可以用不同项目实现资源的管理。

镜像(Image),即带操作系统的“虚拟机”。

虚拟机(Instances),通过虚拟化技术如KVM、Xen、HyperV、VMware等Hypervisor实现将物理宿主机划分为多个不同的小“主机”,在虚拟机上运行的应用程序完全感知不到是运行在虚拟机上。

云硬盘(Volumes),虚拟机的块设备存储,即常说的硬盘,如Linux sda、Windows d盘等。通过虚拟化技术,可以为虚拟机按需增加硬盘,实现扩容。

安全组(Security Groups),即网络访问规则的组合,包括防火墙控制等,用于控制虚拟机的网络安全访问管理,比如对于公网运营的虚拟机Web服务器。一般开通TCP 80端口用于页面访问。安全组由很多网络访问规则组成。

IP资源(Public IPs),即每个虚拟机都有一个私网IP,可以拥有多个公网IP。

密钥(keys),即访问虚拟机的安全密钥文件,如登陆虚拟机的ssh密钥文件。

下面以某网站如何在公用云运营商“优云”上租用虚拟机为例分析以上概念的实际应用。

1、网站负责人(租户)创建两个项目,即“某网正式环境”和“某网测试环境”两个项目;

2、创建访问密钥文件:“正式环境密钥”;

3、创建Web访问安全组:“Web安全组”,仅允许TCP 80端口和TCP 22端口(SSH远程访问控制)访问。

4、其中“某网正式环境”项目通过镜像“Redhat Linux 6”构建3台虚拟机,1台Web服务器、1台应用服务器、1台数据库。其中,Web服务器设置使用“Web安全组”;

5、创建一个500G的云硬盘挂载至数据库中,作为数据存储盘,日后如果数据库服务器宕机后,别的虚拟机也可以继续使用该云硬盘,保证数据部丢失;

6、为Web服务器分别设置公网IP地址。


二、逻辑模块划分

Nova各模块自己的协作交互如图:

openstack租户 用户 角色 openstack租户和用户区别_openstack_02

其中,最核心的AMQP通过消息中间件实现各模块之间的消息通信。各模块职责如下:

Nova-api负责接收和响应终端用户有关虚拟机Compute和云硬盘Volumn的请求。提供OpenStack API、亚马逊EC2 API,以及管理员控制API。一句话:Nova-api就是整个Nova的入口。它接收用户请求,将指令发送至消息队列AMQP指定的主题Topic,由订阅相应主题Topic的守护进程接收和执行相关指令消息。

Nova-compute主要执行守护进程,职责是基于各类虚拟化技术Hyperivisor实现创建和终止虚拟机。