[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-users] domU sync I/O

  • To: xen-users@xxxxxxxxxxxxx
  • From: Simone Ricci <simone@xxxxxxxxxx>
  • Date: Thu, 29 Oct 2015 16:36:13 +0100
  • Delivery-date: Thu, 29 Oct 2015 15:37:10 +0000
  • List-id: Xen user discussion <xen-users.lists.xen.org>

Good evening everyone,

while trying out xenserver there was a thing that caught my attention: 
apparently every I/O done in the guest magically ends being async toward the 
storage (amongst other things I tried dd with oflags=sync). The storage BOX 
exports the LUNs via FC, with writeback cache enabled. The very same dd command 
issued from dom0, targeted to the same storage (onto an LV manually created on 
the SR VG) acts correctly, i.e. I see SCSI command 0x35 (SYNCHRONIZE CACHE) 
issued to the target after every single block (confirmed via quick-n-dirty 
dtrace script, storage is a zfs-based appliance); that doesn't happen for the 
I/O issued from the guest.

In my point of view, this is a big issue which may compromise data integrity in 
the event of a power failure or a generic HW fault in the storage BOX, which 
may lead to guest filesystems corruption due to the possibility of journal 
becoming corrupt. As a workaround I can obviously disable writeback cache on 
the target, but that leads to unwarranted performance loss (because every 
single I/O becomes synchronous, even there's no need to). Am I missing 
something ?

Some hypothesis I made:

- tapblk3 drops sync cache commands from the guest
- xen_blkfront into the domU ignores sync I/O semantics

I'm running version 6.5.0-90233c.

Any thoughts ?


P.S: I already tried writing in the appropriate forum (the xenserver one), but 
without luckâIâm feeling a bit hopeless.
Xen-users mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.