Nova (OpenStack Compute), 是OpenStack三大核心组件之一, 是所谓的云计算的“计算平台”, 它类似Amazon EC2的概念, 但是它不包含虚拟化的软件, 只是它提供了支持多种虚拟机的兼容, 和提供的一系列的API。 本文不会详细阐述Nova的概念, 具体的信息, 可以在Nova的网站上查询。 不过我个人认为在安装和部署Nova之前, 有必要了解一下Nova中的一些概念, 否则, 你在做试验的时候可能会一头雾水。 所以, 这次试验和之前不太一样, 我把它分成了两个部分, 第一部分是对Nova的一些概念的介绍, 第二部分才是真正的动手试验。 由于本人能力有限, 文中不免出现错漏, 希望有高手看过, 能够指点一二。
OpenStack Hands on lab系列相关文章 见
相关阅读:
CentOS 6.4 安装OpenStack Nova
简介Nova和其他OpenStack中的项目差不多, 只是它应该是最复杂的部分, 涵盖的内容最多, 也是让大伙儿寝食难安的一个硬骨头。 它涵盖了虚拟化、网络、存储、调度和云计算控制等专业领域知识, 它的架构如下图所示。
我觉得还是非常有必要简单描述一下Nova中的一些概念, 如果你曾经了解过这些, 可以直接跳过这部分, 或者你觉得需要更进一步了解, 可以查看 Nova Concepts and Introduction, 来自Nova dev documentation project. 本文的大多数内容是我对该文档的翻译并加上我自己的理解, 如果你觉得我的理解有失偏颇, 我建议你最好能看一下原文。
Users, ProjectsNova也支持多种验证支持, 包括Ldap, 数据库, Keystone等, 因为我们的试验建立在一个完整的OpenStack POC的基础上, 所以本文使用的是Keystone的验证。
Projects, 用来分隔资源, 在我写这篇文章的时候, Nova已经在ESSEX中支持Keystone里的Tenant, 所以如果我们使用Keystone的话, 这里的Project可以理解为Tenant
Users, 每个用户可以通过自己的账号密码或者是EC2兼容的ACCESS_KEY和SECRET_KEY来访问Nova, 同样也可以有自己的Keypaires.
Virtualization (虚拟化)Nova中提供对虚拟化的兼容支持, 但是虚拟化本身是一个复杂的概念, 好在我们平时也都或多或少的接触过一些虚拟化的技术, 例如我们租用的Virtual Private Server(VPS), 桌面用的虚拟机和应用程序虚拟化。 如果你是Linux、Unix死忠, 或者是Mac用户, 那么你一定或多或少的去尝试过虚拟一个Windows来解决网上银行、密码控件之类的问题。 这里顺便吐槽一下, 我觉得这些完全依赖Windows的并且是日常生活必须的应用软件这样设计完全没有道理, 标准的安全解决方案同样很多, 而不是通过一个ActiveX控件来解决, 况且, 这样就真的安全了吗? 至于你信不信, 反正我不信。
Ok,刚才跑题了, 现在来说说Nova中的虚拟化。 Nova本身不提供一个虚拟化的平台, 而是借助目前已有的例如Xen、KVM、qemu、LXC和Vmware, Hyper-V曾经也支持, 但是邮件列表里讨论由于无人维护, 所以官方考虑取消对其的支持。 Anyway, OpenStack是一个建立在Linux环境上的平台, 那么我们使用对Linux更加友好的虚拟化Hypervisor是不是更加好?
Instance (运行实例)一个Instance就是运行在OpenStack中的一个虚拟机。
Instance Type (实例类型)这个概念描述了一个虚拟机的配置, 实例通过Image来启动, 在启动的时候我们会配置将要运行实例的CPU、内存、存储空间等等。
Storage (存储)Volumes
Local Storage
Quotas (限额)Nova支持每个项目(Project)一个限额, 它表示该项目可以使用的资源。 例如可以使用Instance的数量、CPU的核心数、内存、Volume和Floating ip的数量等。
RBAC (Role based access control)Nova提供基于角色的访问控制(RBAC), 来控制对API的访问。 一个用户可以拥有一个或多个角色, 一个角色用来定义了哪些API可以被用户使用。
APINova支持EC2兼容的API和使用自己的API(OpenStack/Rackspace)
Networking