[openstack-dev] [cinder] RemoteFS drivers refactoring: move code, which works with images to separate classes

Dmitry Guryanov 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.

Dmitry Guryanov

More information about the OpenStack-dev mailing list