[openstack-dev] [cinder] RemoteFS drivers refactoring: move code, which works with images to separate classes
dguryanov at virtuozzo.com
Tue Oct 13 18:57:24 UTC 2015
RemoteFS drivers combine 2 logical tasks. The first one is how to mount
a filesystem and select proper share for a new or existing volume. The
second one: how to deal with an image files in given directory (mount
point) (create, delete, create snapshot e.t.c.).
The first part is different for each volume driver. The second - the
same for all volume drivers, but it depends on selected volume format:
you can create qcow2 file on NFS or smbfs with the same code.
Since there are several volume formats (raw, qcow2, vhd and possibly
some others), I propose to move the code, which works with image to
separate classes, 'VolumeFormat' handlers.
This change have 3 advantages:
1. Duplicated code from remotefs driver will be removed.
2. All drivers will support all volume formats.
3. New volume formats could be added easily, including non-qcow2 snapshots.
Here is a draft version of a patch:
Although there are problems in it, most of the operations with volumes
work and there are only about 10 fails in tempest.
I'd like to discuss this approach before further work on the patch.
More information about the OpenStack-dev