|
|
About ::
TODO ::
Blog ::
RSS ::
Old blog ::
Projects ::
GIT ::
Gallery ::
Notes
Tue, 26 Jun 2007
First results in distributed storage development.
Pretty trivial: I've created a device mapper target which sends
data pages over the net. It can be configured
to work with any kind of network media (including various sockets).
Well, it is similar to network block device, but does not require
special process. BIOs remapped in distributed
storage target operates with pages, so with appropriate jumbo frame
setup there should be no copies at all (code uses ->sendpage()).
Right now code only sends data and does not receive it at all,
so appropriate protocol should be designed.
There is also open question about how BIOs/pages should be remapped.
Device mapper supports three types (which are not documented actually):
DM_MAPIO_SUBMITTED - this means that target code will process BIO
by itself - either put it and thus call end_io()
callbacks, or submit to another layers.
DM_MAPIO_REMAPPED - this must be returned when target
remapped all fields in place and will not work with given block IO request anymore,
so generic code can call generic_make_request(), process
that request further and eventually put BIO.
DM_MAPIO_REQUEUE - supposed to be used when BIO should be requeued
at end_io() time. It is used only in multiple path target.
There will be a map of the pages for local and remote nodes, according to appropriate
redundancy self-healing algorithm,
so local BIOs will be moved directly to the next layer via generic_make_request(),
and BIOs/pages for remote nodes will be processed accordingly. In both cases
DM_MAPIO_SUBMITTED path will be used (like now).
There might be a problem, when the same BIO will contain pages for local and remote node,
in that case BIO vector will be changed to only contain pages for local node.
Another problem I see is to how to dispatch reading and writing requests withouth locking the channel,
so that during single write requests there would be possible to read another ones.
Thinking...
/devel/dst :: Link / Comments (0)
Please solve this captcha to be allowed to post (need to reload in a minute): 44 - 72
|