← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1337359] [NEW] The io_ops_filter is not working while instance is rebuilding.

 

Public bug reported:

I am trying to control the host's ios at the same time. I set the
properties in nova.conf:

scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,IoOpsFilter
max_io_ops_per_host=2

But I can still schedule an instance at the host which has two instances
is rebuilding.

The task status of rebuild instances is
REBUILD_SPAWNING="rebuild_spawning", but the io_workload in stats.py is
:

    @property
    def io_workload(self):
        """Calculate an I/O based load by counting I/O heavy operations."""

        def _get(state, state_type):
            key = "num_%s_%s" % (state_type, state)
            return self.get(key, 0)

        num_builds = _get(vm_states.BUILDING, "vm")
        num_migrations = _get(task_states.RESIZE_MIGRATING, "task")
        num_rebuilds = _get(task_states.REBUILDING, "task")
        num_resizes = _get(task_states.RESIZE_PREP, "task")
        num_snapshots = _get(task_states.IMAGE_SNAPSHOT, "task")
        num_backups = _get(task_states.IMAGE_BACKUP, "task")

        return (num_builds + num_rebuilds + num_resizes + num_migrations +
                num_snapshots + num_backups)


The I/O heavy operations not contain the "rebuild_spawning" status.

** Affects: nova
     Importance: Undecided
         Status: New


** Tags: io ioopsfilter workload

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1337359

Title:
  The io_ops_filter is not working while instance is rebuilding.

Status in OpenStack Compute (Nova):
  New

Bug description:
  I am trying to control the host's ios at the same time. I set the
  properties in nova.conf:

  scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,IoOpsFilter
  max_io_ops_per_host=2

  But I can still schedule an instance at the host which has two
  instances is rebuilding.

  The task status of rebuild instances is
  REBUILD_SPAWNING="rebuild_spawning", but the io_workload in stats.py
  is :

      @property
      def io_workload(self):
          """Calculate an I/O based load by counting I/O heavy operations."""

          def _get(state, state_type):
              key = "num_%s_%s" % (state_type, state)
              return self.get(key, 0)

          num_builds = _get(vm_states.BUILDING, "vm")
          num_migrations = _get(task_states.RESIZE_MIGRATING, "task")
          num_rebuilds = _get(task_states.REBUILDING, "task")
          num_resizes = _get(task_states.RESIZE_PREP, "task")
          num_snapshots = _get(task_states.IMAGE_SNAPSHOT, "task")
          num_backups = _get(task_states.IMAGE_BACKUP, "task")

          return (num_builds + num_rebuilds + num_resizes + num_migrations +
                  num_snapshots + num_backups)

  
  The I/O heavy operations not contain the "rebuild_spawning" status.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1337359/+subscriptions


Follow ups

References