RE: Moving a backing device between 2 cachesets

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

 



> -----Original Message-----
> From: linux-bcache-owner@xxxxxxxxxxxxxxx [mailto:linux-bcache-
> owner@xxxxxxxxxxxxxxx] On Behalf Of Gabriel de Perthuis
> Sent: mercredi 29 janvier 2014 11:42
> To: linux-bcache@xxxxxxxxxxxxxxx
> Subject: Re: Moving a backing device between 2 cachesets
>
> On Tue, 28 Jan 2014 21:59:02 +0000, Patrick Zwahlen wrote:
>
> > Hi,
> >
> > We're working on a 2-nodes pacemaker cluster that provides iSCSI LUNs
> via
> > SCST. The LUNs are either software RAID arrays located in a shared
> JBOD, or
> > DRBD ressources (active/passive).
> >
> > We are adding bcache to the game with local SSDs (ie not shared, but
> > dedicated to each cluster node).
> >
> > We are using write-through.
> >
> > I need to evaluate the risk when moving a backing device (md) from
> cacheset1
> > (on node #1) to cacheset2 (on node #2) and then back to cacheset #1.
> >
> > Scenario
> > - md attached to cacheset1 and working (on node 1)
> > - md detached from cacheset1
> > - md stopped on node 1
> > - md started on node 2
> > - md attached to cacheset2 on node 2
> >
> > At this point, cacheset1 is attached to nothing, but still has valid
> blocks
> > "linked" to the backing md device
>
> From bcache.h:
>
> When you register a newly formatted backing device it'll come up
> in passthrough mode, and then you can attach and detach a backing device
> from
> a cache set at runtime - while it's mounted and in use. Detaching
> implicitly
> invalidates any cached data for that backing device.
>
> After flushing, detaching does two things:
> - the backing device gets flagged as detached
> - the backing device is removed from the cache set's metadata
> (stored as uuid_entry in a special bucket; the entry is flagged
> with a bogus uuid but not reused).  The offset in that uuids
> array constitutes an id, local to the cache set, that is not
> reused after detaching.
>
> The second step invalidates the backing device's id in the cache set,
> and indirectly invalidates all buckets that referenced it (through
> bkey->inode in the bucket key).

I understand that we are safe, then. Right ? 

Thanks for your clarifications

>
> > - md detached from cacheset2
> > - md stopped on node 2
> > - md started on node 1
> > - md RE-attached to cacheset1 on node 1
> >
> > At this point, I need to make sure that bcache will not serve "old"
> blocks
> > that were linked to the backing device.
> >
> > My understanding is that as we have attached the backing device to a
> new
> > cacheset (#2) in-between, this will be "recorded" in the bcache
> headers and
> > all the blocks that used to be valid in the first place won't be
> served.
> >
> > Can you please validate if this is safe or if we need to take special
> care
> > about invalidating the original cacheset ?
>
> > Thanks a lot, - Patrick -
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bcache"
> in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Attachment: smime.p7s
Description: S/MIME cryptographic signature


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux ARM Kernel]     [Linux Filesystem Development]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux