lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Tue, 29 Nov 2011 11:18:28 +0100
From:	Vivien Bernet-Rollande <vivien.bernet-rollande@...en.alterway.fr>
To:	linux-kernel@...r.kernel.org
Subject: Flushing block-level read cache for a single (shared) device.

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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ