[dm-devel] dm-cache caching network volume
Alex Elsayed
eternaleye at gmail.com
Wed Jun 19 01:23:00 UTC 2013
Étienne BERSAC wrote:
> Hi,
>
> I'm testing dm-cache for using a local SSD as a cache for a network
> volume. My goal is to test dm-cache behaviour when network is down.
>
> The device is shared through iSCSI. The first test is filling a huge
> file with dd from /dev/zero. So, this is sequential access. While dd is
> running, i remove the tun iface from the bridge on the host. iSCSI
> properly detects the network failure.
>
> I expected dm-cache to continue filling dirty blocks, even if the
> network device is blocking. But it doesn't. The status shows that dirty
> blocks count stays the same. dd is blocking.
>
> I'm wondering if there is some cache desactivation due to
> sequential_threshold. But increasing sequential_threshold did not help.
> Where does dm-cache blocks ?
>
> Is it possible to have dm-cache "bufferize" blocks for network
> failures ?
>
> Regards,
Disclaimer: Not an expert, and not actually involved in writing bcache
Well, since you didn't mention changing it, I suspect you are operating in
the default "writethrough" mode - this doesn't return to userspace until the
data is on the backing (iSCSI in your case) device. For bcache over a
network volume, this is the safe option, since the client machine dying
won't lose data.
If you put bcache in writethrough mode, it may well do exactly as you
describe, but only if iSCSI itself recovers from the connection loss (and
possibly other caveats I'm not thinking of). If it doesn't, or if it does
but doesn't manage to maintain the exact state it was in on disconnection,
then you will lose data.
More information about the dm-devel
mailing list