|
|
About ::
TODO ::
Blog ::
RSS ::
Old blog ::
Projects ::
GIT ::
Gallery ::
Notes
Sun, 15 Jul 2007
Distributed storage suspend mode or live data migration.
I've just thought what feature I should add into this -
suspend mode or live migration.
Let's say you want to change remote node - either temporary suspend
all IO for given node (for example to change a local disk)
or replace completely one node with another (for example
switch to different remote machine), so that until
data migration from one node to another or during disk replacement
all block requests, which would be completed on given node,
will be frozen until node is ready. Requests to the different nodes should
continue without stops.
Actually I would be surprised if such functionality does not exist in existing block
layer hotplug, but I do not even know how to test if it is there or not -
documentation sucks, there is no feature list (at least I do not know about it),
so I will reinvent the wheel (again).
There is something like queue plug and unplug, but as usual - specs suck. I will
check LWN kernel line, I recall
Jonathan Corbet wrote about it, but even if it does exist, it can not help
in distributed storage, since it is a single device for the block layer
and thus has only one queue, but stopping all IO requests because of one node
is not politically correct I think. Such decision should be made by algorithm of course,
since redundancy might require several nodes to be updated for single block IO,
or even more - to write to some another node algorithm must read some data from suspended node,
so this is the only place which knows about what IO must be frozen.
I'm thinking about should I release alpha version right now (modulo testing I
need to perform for local mode) or implement some other tasty things and show distributed
storage only after that... Pros and cons?
/devel/dst :: Link / Comments (0)
Please solve this captcha to be allowed to post (need to reload in a minute): 24 + 36
|