← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1662432] [NEW] DiskFilter incorrectly filters hosts that are over committed even when no disk allocation is required

 

Public bug reported:

Steps to reproduce
==================

1. Create flavor A that permits ephemeral storage. For example, an optional 200 GB ephemeral root disk.
2. Create flavor B that does not permit ephemeral storage.
3. Ensure that the DiskFilter is configured.
4. Use flavor A both with and without ephemeral storage in quantity, until the sum of the possible ephemeral storage usage exceeds the capacity of the machine. This can eventually be the state of every hypervisor.
5. Try to schedule a virtual machine with flavor B.

Expected result
===============

The DiskFilter should permit the scheduler to use any hypervisor whether
or not it has available local storage, as the flavor does not require or
require any ephemeral storage, so over commitment of ephemeral storage
should not be a factor.

Actual result
=============

The DiskFilter will prevent the scheduler from using any hypervisor
where the sum of the possible ephemeral storage usage exceeds the
capacity of the machine. The virtual machine does not get scheduled, and
a vague error is provided to the user.

Environment
===========

Nova 14.0.2 (Newton)
Libvirt + KVM
Ephemeral storage is local QCOW2.

Analysis
========

The DiskFilter expects the used local storage to be less than the
capacity, even if scheduling a virtual machine which does not require
local storage. In some cases, the used local storage calculation can
exceed the capacity calculation, and this results in a negative
"available storage" calculation. The check for available storage should
be bypassed if no storage is being requested.

** Affects: nova
     Importance: Undecided
     Assignee: MarkMielke (mark-mielke)
         Status: In Progress

** Patch added: "nova.patch"
   https://bugs.launchpad.net/bugs/1662432/+attachment/4814529/+files/nova.patch

** Description changed:

  Steps to reproduce
  ==================
  
  1. Create flavor A that permits ephemeral storage. For example, an optional 200 GB ephemeral root disk.
  2. Create flavor B that does not permit ephemeral storage.
  3. Ensure that the DiskFilter is configured.
  4. Use flavor A both with and without ephemeral storage in quantity, until the sum of the possible ephemeral storage usage exceeds the capacity of the machine. This can eventually be the state of every hypervisor.
  5. Try to schedule a virtual machine with flavor B.
  
  Expected result
  ===============
  
  The DiskFilter should permit the scheduler to use any hypervisor whether
- or not it has available local storage, as the flavor does not require
- ephemeral storage, so over commitment of ephemeral storage should not be
- a factor.
- 
+ or not it has available local storage, as the flavor does not require or
+ require any ephemeral storage, so over commitment of ephemeral storage
+ should not be a factor.
  
  Actual result
  =============
  
  The DiskFilter will prevent the scheduler from using any hypervisor
  where the sum of the possible ephemeral storage usage exceeds the
  capacity of the machine. The virtual machine does not get scheduled, and
  a vague error is provided to the user.
  
  Environment
  ===========
  
  Nova 14.0.2 (Newton)
  Libvirt + KVM
  Ephemeral storage is local QCOW2.
  
  Analysis
  ========
  
  The DiskFilter expects the used local storage to be less than the
  capacity, even if scheduling a virtual machine which does not require
  local storage. In some cases, the used local storage calculation can
  exceed the capacity calculation, and this results in a negative
  "available storage" calculation. The check for available storage should
  be bypassed if no storage is being requested.

-- 
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/1662432

Title:
  DiskFilter incorrectly filters hosts that are over committed even when
  no disk allocation is required

Status in OpenStack Compute (nova):
  In Progress

Bug description:
  Steps to reproduce
  ==================

  1. Create flavor A that permits ephemeral storage. For example, an optional 200 GB ephemeral root disk.
  2. Create flavor B that does not permit ephemeral storage.
  3. Ensure that the DiskFilter is configured.
  4. Use flavor A both with and without ephemeral storage in quantity, until the sum of the possible ephemeral storage usage exceeds the capacity of the machine. This can eventually be the state of every hypervisor.
  5. Try to schedule a virtual machine with flavor B.

  Expected result
  ===============

  The DiskFilter should permit the scheduler to use any hypervisor
  whether or not it has available local storage, as the flavor does not
  require or require any ephemeral storage, so over commitment of
  ephemeral storage should not be a factor.

  Actual result
  =============

  The DiskFilter will prevent the scheduler from using any hypervisor
  where the sum of the possible ephemeral storage usage exceeds the
  capacity of the machine. The virtual machine does not get scheduled,
  and a vague error is provided to the user.

  Environment
  ===========

  Nova 14.0.2 (Newton)
  Libvirt + KVM
  Ephemeral storage is local QCOW2.

  Analysis
  ========

  The DiskFilter expects the used local storage to be less than the
  capacity, even if scheduling a virtual machine which does not require
  local storage. In some cases, the used local storage calculation can
  exceed the capacity calculation, and this results in a negative
  "available storage" calculation. The check for available storage
  should be bypassed if no storage is being requested.

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


Follow ups