[openstack-dev] [Manila]Rename driver mode

Li, Chen chen.li at intel.com
Thu Jan 8 02:20:19 UTC 2015

Update my proposal again:

As a new bird for manila, I start using/learning manila with generic driver. When I reached driver mode,I became really confuing, because I can't stop myself jump into ideas:   share server == nova instance   &    svm == share virtual machine == nova instance.

Then I tried glusterFS, it is working under "single_svm_mode", I asked why it is "single" mode, the answer I get is " This is approach without usage of "share-servers""  ==>  without using "share-servers", then why "single" ??? More confusing ! :(

Now I know, the mistake I made is ridiculous.
Great thanks to vponomaryov & ganso, they made big effort helping me to figure out why I'm wrong.

But, I don't think I'm the last one person making this mistake.
So, I hope we can change the driver mode name less confusing and more easy to understand.

First, "svm" should be removed, at least change it to ss (share-server), make it consistent with "share-server".
I don't like single/multi, because that makes me think of numbers of share-servers, makes me want to ask:" if I create a share, that share need multi share-servers ? why ?"

Also, when I trying glusterFS (installed it following http://www.gluster.org/community/documentation/index.php/QuickStart), when I testing the GlusterFS volume, it said: "use one of the servers to mount the volume". Isn't that means using any server in the cluster can work and their work has no difference. So, is there a way to change glusterFS driver to add more than one "glusterfs_target", and all glusterfs_targets are replications for each other. Then when manila create a share, chose one target to use. This would distribute data traffic to the cluster, higher bandwidth, higher performance, right ? ==> This is "single_svm_mode", but obviously not "single".

vponomaryov & ganso suggested basic_mode" and "advanced_mode", but I think basic/advanced is more driver perspective concept. Different driver might already have its own concept of basic advanced, beyong manila scope. This would make admin & driver programmer confusing.

As "single_svm_mode" indicate driver just have "information" about "where" to go and "how", it is gotten by config opts and some special actions of drivers while "multi_svm_mode" need to create "where" and "how" with "infomation".

My suggestion is
   "single_svm_mode" ==> "static_mode"
   "multi_svm_mode"  ==> "dynamic_mode".

As "where" to go and "how" are "static" under "single_svm_mode", but "dynamically" create/delete by manila under "multi_svm_mode".

Also, about the share-server concept.

"share-server" is a tenant point of view concept, it does not know if it is a VM or a dedicated hardware outside openstack because it is not visible to the tenant.
Each share has its own "share-server", no matter how it get(get from configuration under single_svm_mode, get from manila under multi_svm_mode).

I get the wrong idea that about glusterFS has no share server based on https://github.com/openstack/manila/blob/master/manila/share/manager.py#L238, without reading driver code, isn't this saying: I create share without share-server. But, the truth is just share-server is not handled by manila, doesn't mean it not exist. E.g. in glusterFS, the share-server is "self.gluster_address".

So, I suggest to edit ShareManager code to get share_server before create_share based on driver mode.
Such as:

This would affect all drivers, but I think it is worth for long term perspective.

Hope to hear from you guys.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150108/c1beecff/attachment-0001.html>

More information about the OpenStack-dev mailing list