OpenStack API实现

时间:2015-01-20 17:07:04

标签: virtualization openstack openstack-nova openstack-neutron cloud-platform

我花了最后6个小时阅读流行语,高级,高级文档/博客/文章/幻灯片,试图围绕OpenStack,完全。我理解:

  

OpenStack是一个免费的开源云计算软件平台。用户主要将其部署为基础架构即服务(IaaS)解决方案。

但同样,这是一个非常崇高的,高级的,有光泽的细节总结,对我作为一名工程师来说并没有什么意义。

认为我得到了基本的概念,但是想要反省我的理解,而且我很难看到森林穿过树林"关于OpenStack组件的主题。

我的理解就是OpenStack:

  • 在1+ 虚拟机(来宾虚拟机)上作为可执行应用程序安装;和
  • 不知何故,您的OpenStack集群的所有实例都相互了解(即,您刚安装它们的所有虚拟机上运行的所有实例)并形成一个集合资源池;和
  • 每个OpenStack实例(同样,在自己的VM中运行)包含仪表板应用程序(" Horizo​​n")以及10个左右的其他组件/模块(Nova,Cinder,Glance等);和
  • Nova,是为您的租户提供CRUD虚拟机/节点的OpenStack组件/模块,能够以某种方式将其运行的客户虚拟机转换为自己的虚拟机管理程序,然后启动1其中的虚拟机(因此您在VM内部有一个VM)适用于任何特定租户

所以,如果到目前为止我所说的关于OpenStack的任何内容都不正确,请先纠正我!

假设我或多或少是正确的,我对各种OpenStack组件的理解是它们实际上只是API并且需要开源社区提供具体的实现:

  • Nova(VM经理)
  • Keystone(身份验证提供者)
  • Neutron(网络经理)
  • Cinder(块存储管理器)
  • 等...

上面,我相信所有组件都是API。但是这些API必须具有对OpenStack部署者/维护者有意义的实现。所以我会想象有多个Neutron API提供商,多重Nova API提供商等等。但是,在今天早上审阅了所有官方文档后,我找不到这些API的提供者。这让我感到恶心,就像我从根本上误解OpenStack的组件一样。有人可以帮我点点滴滴吗?

1 个答案:

答案 0 :(得分:5)

不完全。

  

在1+个虚拟机(来宾虚拟机)上作为可执行应用程序安装;和

OpenStack不是一个可执行文件,有许多不同的模块,一些是必需的,一些是可选的。您可以在VM上安装OpenStack(请参阅DevStack,这是一个对虚拟机友好的发行版),但这不是生产的预期用途,您只能用于测试或评估目的。

当您真实地执行此操作时,您可以在物理机群集上安装OpenStack。 OpenStack Install Guide建议您使用云的以下最小结构:

  • 运行核心服务的控制器节点
  • 运行网络服务的网络节点
  • 创建实例的一个或多个计算节点
  • 零个或多个对象和/或块存储节点

但请注意,这是一个最小的结构。对于更强大的安装,您将拥有多个控制器和网络节点。

  

不知何故,您的OpenStack集群的所有实例都相互了解(即,您刚安装它们的所有虚拟机上运行的所有实例)并形成一个集合资源池;

OpenStack节点(无论是虚拟机还是物理机,它在这一点上没有什么区别)相互之间进行交谈。通过配置,他们都知道如何联系其他人。

  

每个OpenStack实例(再次在其自己的VM中运行)包含仪表板应用程序(" Horizo​​n")以及10个左右的其他组件/模块(Nova,Cinder,Glance等);和

没有。在OpenStack术语中,术语"实例"与计算节点中创建的虚拟机相关联。在这里,您的意思是"控制器节点",它包括核心服务和仪表板。再一次,这些并不一定在虚拟机上运行。

  

Nova,是为您的租户提供CRUD虚拟机/节点的OpenStack组件/模块,能够以某种方式将其运行的客户虚拟机转变为自己的虚拟机管理程序,并在其内部启动1+个虚拟机(因此任何特定租户都有VM内的VM

我认为如果你忘记了#34;来宾VM"这会更容易理解。在生产环境中,OpenStack将安装在物理机器上。计算节点是可以托管许多VM的强大机器。 nova-compute服务在这些节点上运行,并与虚拟机管理程序(如KVM)接口,以分配虚拟机,OpenStack调用这些虚拟机"实例"。

如果您的计算节点托管在虚拟机上而不是物理机上,那么事情就会以同样的方式运行。在此设置中,通常管理程序是QEMU,可以安装在VM中,然后可以在VM内部创建VM,但与在物理硬件上运行计算节点相比,性能会受到很大影响。

  

假设我或多或少是正确的,我对各种OpenStack组件的理解是它们实际上只是API

没有。这些服务将自己暴露为API,但并非全部。 API也已实现。

  

并要求开源社区提供具体实现

大多数服务需要与外部服务连接。 Nova需要与虚拟机管理程序,中子接口,网桥,网关等,cinder和swift与存储提供商等进行对话。这实际上只是OpenStack服务所做的一小部分,而且还有很多独立于低级外部服务的内置。 OpenStack服务包括对最常见外部服务的支持,当然任何感兴趣的人都可以实现更多这些服务。

  

上面,我相信所有组件都是API。但是这些API必须具有对OpenStack部署者/维护者有意义的实现。所以我想,有多个Neutron API提供商,多重Nova API提供商等等。

没有。有一个Nova API实现和一个Neutron API实现。根据配置,您可以告诉每个服务如何与较低级别的服务(如虚拟机管理程序,网络堆栈等)进行交互。正如我上面所述,已经实现了对一系列服务的支持,因此如果您使用普通的x86您的节点的硬件,那么你应该没问题。