Thread (2 messages) 2 messages, 2 authors, 2017-02-10

Re: replacing cache device "live"

From: Eric Wheeler <hidden>
Date: 2017-02-10 19:32:30

On Fri, 10 Feb 2017, Jens-U. Mozdzen wrote:
Hi *,

I'd like to change the cache device setup of my servers, with a minimum of
downtime (if at all).

https://evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt?h=bcache-dev
describes the steps required to replace the caching device:

- detach the caching device (echo 1 > /sys/block/bcacheX/bcache/detach)

- unregister the cache set (echo 1 > /sys/fs/bcache/<uuid>/stop)

I believe that issuing that second step will break access to /dev/bcacheX, so
cannot be done without interrupting the service (description for cset "stop"
in bcache.txt: "Write to this file to shut down the cache set - waits until
all attached backing devices have been shut down.").

What I'm actually looking for is to change the sectors per block value of the
caching device, without having to shut down operations on the according bcache
device (cache_mode=none at that time). Is there any way to do so?
Yes, detaching the cache device should be safe.  It will writeback the 
data (if writeback) and then detach.  Sometimes writeback takes a while.

Then you should be able to `make-bcache -C -w 4096 /dev/cachedev` with any 
other opts you like and attach it to the cache dev.  Here are my notes 
for hot-remove-replace of cachedevs.  My cache device is /dev/ssd/bcache_cache:

# To remove cache:
~] bcache-super-show /dev/ssd/bcache_cache
[...]
cset.uuid		3db83b23-1af7-43a6-965d-c277b402b16a

~] echo 3db83b23-1af7-43a6-965d-c277b402b16a > /sys/block/bcache0/bcache/detach
~] watch cat /sys/block/bcache0/bcache/dirty_data
  # wait until 0
~] echo 1 > /sys/fs/bcache/3db83b23-1af7-43a6-965d-c277b402b16a/unregister

# To add cache without recreating backing volume
~] make-bcache -w 4096 -C /dev/ssd/bcache_cache --writeback
[...]
Set UUID:		492d94e3-8298-4a5b-9ee1-c12cbda2c780

~] bcache-super-show /dev/ssd/bcache_cache
[...]
cset.uuid		492d94e3-8298-4a5b-9ee1-c12cbda2c780

~] echo /dev/ssd/bcache_cache > /sys/fs/bcache/register
~] echo 492d94e3-8298-4a5b-9ee1-c12cbda2c780 > /sys/block/bcache0/bcache/attach

--
Eric Wheeler

Regards,
Jens

--
To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help