public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Flushing block-level read cache for a single (shared) device.
@ 2011-11-29 10:18 Vivien Bernet-Rollande
  0 siblings, 0 replies; only message in thread
From: Vivien Bernet-Rollande @ 2011-11-29 10:18 UTC (permalink / raw)
  To: linux-kernel

Hi list.

I have two Xen hypervisors. Virtual machines use raw ISCSI devices for 
storage.

I ran into a cache coherency issue with live migration.

Let's say VM "a" runs on hypervisor "x1", and I want to move it to "x2". 
This works fine.
Now, I let "a" do some file system operations on "x2".

The problem arises when I move "a" back to "x1". What happens is x1 
still has it's old caches for the iscsi LUN. After a few minutes, the 
filesystem of the VM gets heavily corrupted, and is basically unrecoverable.

I'm currently working around this issue by running something like "sync; 
echo 3 > /proc/sys/vm/drop_caches" on the destination before any 
migration. This works, and I no longer have any data corruption. However 
I feel dropping all caches is not a satisfying solution.

I'm looking for a way to invalidate the cache for a single block device. 
I know of BLKFLSBUF to flush write buffers, but I couldn't find anything 
related to read caches.

-- 
Vivien Bernet-Rollande
Systems&  Networking Engineer
Alter Way Hosting


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2011-11-29 10:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-29 10:18 Flushing block-level read cache for a single (shared) device Vivien Bernet-Rollande

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox