OpenStack API实现

sme*_*eeb 0 virtualization cloud-platform openstack openstack-nova openstack-neutron

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

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

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

认为我得到了基本的概念,但是想要反省我的理解,另外我很难看到关于OpenStack组件主题的"穿越树林".

我的理解是OpenStack:

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

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

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

  • Nova(VM经理)
  • Keystone(auth提供商)
  • Neutron(网络经理)
  • Cinder(块存储管理器)
  • 等等...

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

Mig*_*uel 5

不完全的.

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

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

当您真实地执行此操作时,您可以在物理机群集上安装OpenStack.在OpenStack的安装指南建议为你的云以下最低结构:

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

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

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

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

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

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

Nova,是CRUD为您的租户提供虚拟机/节点的OpenStack组件/模块,它能够以某种方式将其运行的客户虚拟机转换为自己的虚拟机管理程序,并在其内部启动1+个虚拟机(因此您拥有VM内部的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您的节点的硬件,那么你应该没事.