-1
  • Assert: I don't understand about OPS/Redhat explaination. Because all of information said nova-conductor will help database-accessing for nova-compute, every chart/image showed, too.

From OPS Community

nova-conductor module: Mediates interactions between the nova-compute service and the database. It eliminates direct accesses to the cloud database made by the nova-compute service. The nova-conductor module scales horizontally. However, do not deploy it on nodes where the nova-compute service runs.

From Redhat

The nova-conductor service enables OpenStack to function without compute nodes accessing the database. Conceptually, it implements a new layer on top of nova-compute. It should not be deployed on compute nodes, or else the security benefits of removing database access from nova-compute are negated.

  • Reality: When I download OPS Nova source code looked into nova/compute/manager.py, I saw the many many block code that queries the data from the database (instance list) and updates the data (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])

So the assertion of the Openstack and Redhat development community is wrong or true????

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

1 Answers1

0

I really don't see the confusion here, both quotes are essentially the same explanation - Conductor is a data-access layer between Compute and the DB to allow for scaling, it's as simple as that.

Then the bit you wrote that starts 'Reallity', I don't see a clear question in there.

Chopper3
  • 101,299
  • 9
  • 108
  • 239
  • But the block code told that "directly" without any nova-conductor support. Please check that @Chopper3. Where are the supports from nova-conductor to nova-compute, can you explain? – Huy võ lê Jan 09 '23 at 10:08