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

[Nbd] Snapshot / resize / disconnect2 / delete



Wouter et al,

I am thinking of adding the following commands to NBD:

NBD_CMD_SNAPSHOT: generate a snapshot of the disk in its existing form.
Return to the client an export name that can be mounted.

NBD_CMD_RESIZE: change the size of an existing disk (generally enlarging
the disk is more useful than making it smaller).

NBD_CMD_DISC2: like existing disconnect command, save that it sends a reply,
so you know when it's actually completed (the current one sends no reply);
this is relevant if you want to know (say) when it is safe to remount it.

I'd also like to introduce a flag into NBD_CMD_DISC2 which will cause the
backing store for the disk to be deleted (if honoured by the server).

SNAPSHOT & RESIZE will need to be implemented through adding to the
ioctl code (i.e. they will need kernel changes). For the moment I propose
snapshot to work like lvm snapshots, i.e. be pretty dumb and leave
quiescing the write stream, ensuring disk consistency etc. as an
"interesting problem for the user". Using NBD_CMD_DISC2 would require
a kernel code change too, though I'd leaving it supporting NBD_CMD_DISC
when called with existing parameters.

I'm happy to implement these on nbd-client & ndb-server and write
a test suite for them. I have to be honest and say some of my
motivation for this is my rather specialist not-yet-open-source
nbd compatible server. I think SNAPSHOT, RESIZE and DISC2 are
genuinely useful for mainstraim nbd, but the delete option is
probably only really of use where there isn't a configuration file
that would also need editing.

Any opinions?

--
Alex Bligh



Reply to: