← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1841363] Re: nova cannot attach volume whose source_type='block' when setting disk_cache_modes as writethrough or writeback

 

Reviewed:  https://review.opendev.org/682772
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=af2405e1181d70cdf60bcd0e40b3e80f2db2e3a6
Submitter: Zuul
Branch:    master

commit af2405e1181d70cdf60bcd0e40b3e80f2db2e3a6
Author: Arthur Dayne <huyueheng@xxxxxxxxxx>
Date:   Tue Sep 17 19:08:59 2019 +0800

    libvirt:driver:Disallow AIO=native when 'O_DIRECT' is not available
    
    Because of the libvirt issue[1], there is a bug[2] that if we set cache mode
    whose write semantic is not O_DIRECT (.i.e unsafe, writeback or writethrough),
    there will be a problem with the volume drivers
    (.i.e nova.virt.libvirt.volume.LibvirtISCSIVolumeDriver,
    nova.virt.libvirt.volume.LibvirtNFSVolumeDriver and so on), which designate
    native io explicitly.
    
    That problem will generate a libvirt xml for the instance,
    whose content contains
    
    ```
    ...
    <disk ... >
      <driver ... cache='unsafe/writeback/writethrough' io='native' />
    </disk>
    ...
    ```
    In turn, it will fail to start the instance or attach the disk.
    
    > When qemu is configured with a block device that has aio=native set, but
    > the cache mode doesn't use O_DIRECT (i.e. isn't cache=none/directsync or any
    > unnamed mode with explicit cache.direct=on), then the raw-posix block driver
    > for local files and block devices will silently fall back to aio=threads.
    > The blockdev-add interface rejects such combinations, but qemu can't
    > change the existing legacy interfaces that libvirt uses today.
    
    [1]: https://github.com/libvirt/libvirt/commit/058384003db776c580d0e5a3016a6384e8eb7b92
    [2]: https://bugzilla.redhat.com/show_bug.cgi?id=1086704
    
    Closes-Bug: #1841363
    Change-Id: If9acc054100a6733f3659a15dd9fc2d462e84d64


** Changed in: nova
       Status: In Progress => Fix Released

** Bug watch added: Red Hat Bugzilla #1086704
   https://bugzilla.redhat.com/show_bug.cgi?id=1086704

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

Title:
  nova cannot attach volume whose source_type='block' when setting
  disk_cache_modes as writethrough or writeback

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  Wheh nova.conf is set as

  ...

  [libvirt]
  ...
  disk_cachemodes = block=writethrough
  ...

  OR

  [libvirt]
  ...
  disk_cachemodes = block=writeback
  ...

  Nova cannot attache volume whose source_type is 'block', because of a
  libvirt issue: https://bugzilla.redhat.com/show_bug.cgi?id=1086704

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


References