Nova-Conductor 和 Nova-Compute 角色区别

Nova-Conductor 和 Nova-Compute 角色区别
  • 断言:我不明白 OPS/Redhat 的解释。因为所有信息都说 nova-conductor 将帮助 nova-compute 访问数据库,所以每个图表/图像也都显示出来。

来自 OPS 社区

nova-conductor 模块:调解 nova-compute 服务和数据库之间的交互。它消除了 nova-compute 服务对云数据库的直接访问。nova-conductor 模块可水平扩展。但是,请不要将其部署在运行 nova-compute 服务的节点上。

来自 Redhat

nova-conductor 服务使 OpenStack 无需计算节点访问数据库即可运行。从概念上讲,它在 nova-compute 之上实现了一个新层。它不应部署在计算节点上,否则从 nova-compute 中删除数据库访问的安全优势将被抵消。

  • 现实:当我下载 OPS Nova 源代码并查看 nova/compute/manager.py 时,我看到许多从数据库(实例列表)查询数据并更新数据(instance.save)的块代码。
def _poll_rescued_instances(self, context):
        if CONF.rescue_timeout > 0:
            filters = {'vm_state': vm_states.RESCUED,
                       'host': self.host}
            rescued_instances = objects.InstanceList.get_by_filters(
                context, filters, expected_attrs=["system_metadata"],
                use_slave=True)
def _allocate_network(self, context, instance, requested_networks,
                          security_groups, resource_provider_mapping,
                          network_arqs):
        """Start network allocation asynchronously.  Return an instance
        of NetworkInfoAsyncWrapper that can be used to retrieve the
        allocated networks when the operation has finished.
        """
        # NOTE(comstud): Since we're allocating networks asynchronously,
        # this task state has little meaning, as we won't be in this
        # state for very long.
        instance.vm_state = vm_states.BUILDING
        instance.task_state = task_states.NETWORKING
        instance.save(expected_task_state=[None])

那么Openstack和Redhat开发社区的断言是错误的还是正确的???

  1. 链接 1:https://docs.openstack.org/nova/pike/install/get-started-compute.html
  2. 链接2:https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/8/html/configuration_reference_guide/section_conductor
  3. 鏈接 n:....

答案1

我真的不明白这里有什么混淆,两句话本质上都是相同的解释 - Conductor 是 Compute 和 DB 之间的数据访问层,用于实现扩展,就这么简单。

然后,您写的以“现实”为开头的部分,我没有看到其中有一个明确的问题。

相关内容