[openstack-dev] [Cinder] Support LVM on a shared LU

Mitsuhiro Tanino mitsuhiro.tanino at hds.com
Mon Jun 2 16:06:15 UTC 2014


Hi Deepak-san,

Thank you for your comment. Please see following comments.

>>1) There is a lof of manual work needed here.. like every time the new host added.. admin needs to do FC zoning to ensure that LU is visible by the host.

Right. Compared to LVMiSCSI driver, proposed driver are needed some manual admin works.

>>Also the method you mentioend for refreshing (echo '---' > ...) doesn't work reliably across all storage types does it ?

The "echo" command is already used in rescan_hosts() at linuxfc.py before connecting new volume to a instance.
As you mentioned,  whether this command works properly or not depends on storage types.
Therefore, admin needs to confirm the command working properly.

>>2) In Slide 1-1 .. how ( and who?) ensures that the compute nodes don't step on each other is using the LVs ? In other words.. how is it ensured that LV1 is not used by compute nodes 1 and 2 at the same time ?

In my understanding, Nova can't assign single cinder volume(ex. VOL1) to multiple instances.
After attaching the VOL1 to an instance, a status of the VOL1 is changed to "in-use" and
user can’t attach the VOL1 to other instances.

>>3) In slide 1-2, you show that the LU1 is seen as /dev/sdx on all the nodes.. this is wrong.. it can be seen as anything (/dev/sdx on control node, sdn on compute 1, sdz on compute 2) so assumign sdx on all nodes is wrong. How does this different device names handled.. in short, how does compute node 2 knows that LU1 is actually sdn and not sdz (assuming you had > 1 LUs provisioned)

Right. Same device name may not be assigned on all nodes.
At my proposed driver, admin needs to create PV and VG manually.
Therefore, all nodes do not have to recognize the LU1 as /dev/sdx.

>>4) What abt multipath ? In most prod env.. the FC storage will be multipath'ed.. hence you will actually see sdx and sdy on each node and you actually need to use mpathN (which is multipathe'd to sdx anx sdy) device and NOT the sd? device to take adv of the customer multipath env. How does the nodes know which mpath? device to use and which mpath? device maps to which LU on the array ?

As I mentioned above, admin creates PV and VG manually at my proposed driver. If a product environment
uses multipath, admin can create a PV and VG on top of mpath device, using "pvcreate /dev/mpath/mpathX".

>>5) Doesnt this new proposal also causes the compute nodes to be physcially connected (via FC) to the array, which means more wiring and need for FC HBA on compute nodes. With LVMiSCSI, we don't need FC HBA on compute nodes so you are actualluy adding cost of each FC HBA to the compute nodes and slowly turning commodity system to non-commodity ;-) (in a way)

I think this is depends on a customer's or cloud provider's requirement.(In slide P9)
If the requirement is low cost and none FC cloud environment, LVMiSCSI is appropriate driver.
If better I/O performance is required, proposed driver or vendor cinder storage driver with FC
are appropriate, because these drivers can directly issue I/O to volumes via FC.

>>6) Last but not the least... since you are using 1 BIG LU on the array to host multiple volumes, you cannot possibly take adv of the premium, efficient snapshot/clone/mirroring features of the array, since they are at LU level, not at the LV level. LV snapshots have limitations (as mentioned by you in other thread) and are always in-efficient compared to array snapshots. Why would someone want to use less efficient method when they invested on a expensive array ?

Right. If user uses array volume directly, user can take adv of efficient snapshot/clone/mirroring features.

As I wrote in a reply e-mail to Avishay-san, in OpenStack cloud environment, workloads of
storages have been increasing and it is difficult to manage the workloads because every user
have a  permission to execute storage operations via cinder.
In order to use expensive array more efficient, I think it is better to reduce hardware based storage
workload by offloading the workload to software based volume operation on a case by case.

If we have two drivers in regards to a storage, we can provide volume both way as the situation demands.
Ex.
  As for "Standard" type storage, use proposed software based LVM cinder driver.
  As for "High performance" type storage, use hardware based cinder driver.(Ex. Higher charge than "Standard" volume)

This is one of use-case of my proposed driver.

Regards,
Mitsuhiro Tanino <mitsuhiro.tanino at hds.com>
     HITACHI DATA SYSTEMS
     c/o Red Hat, 314 Littleton Road, Westford, MA 01886

From: Deepak Shetty [mailto:dpkshetty at gmail.com]
Sent: Wednesday, May 28, 2014 3:11 AM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Cinder] Support LVM on a shared LU

Mitsuhiro,
  Few questions that come to my mind based on your proposal

1) There is a lof of manual work needed here.. like every time the new host added.. admin needs to do FC zoning to ensure that LU is visible by the host. Also the method you mentioend for refreshing (echo '---' > ...) doesn't work reliably across all storage types does it ?
2) In Slide 1-1 .. how ( and who?) ensures that the compute nodes don't step on each other is using the LVs ? In other words.. how is it ensured that LV1 is not used by compute nodes 1 and 2 at the same time ?
3) In slide 1-2, you show that the LU1 is seen as /dev/sdx on all the nodes.. this is wrong.. it can be seen as anything (/dev/sdx on control node, sdn on compute 1, sdz on compute 2) so assumign sdx on all nodes is wrong.
How does this different device names handled.. in short, how does compute node 2 knows that LU1 is actually sdn and not sdz (assuming you had > 1 LUs provisioned)
4) What abt multipath ? In most prod env.. the FC storage will be multipath'ed.. hence you will actually see sdx and sdy on each node and you actually need to use mpathN (which is multipathe'd to sdx anx sdy) device and NOT the sd? device to take adv of the customer multipath env. How does the nodes know which mpath? device to use and which mpath? device maps to which LU on the array ?
5) Doesnt this new proposal also causes the compute nodes to be physcially connected (via FC) to the array, which means more wiring and need for FC HBA on compute nodes. With LVMiSCSI, we don't need FC HBA on compute nodes
so you are actualluy adding cost of each FC HBA to the compute nodes and slowly turning commodity system to non-commodity ;-) (in a way)
6) Last but not the least... since you are using 1 BIG LU on the array to host multiple volumes, you cannot possibly take adv of the premium, efficient snapshot/clone/mirroring features of the array, since they are at LU level, not at the LV level. LV snapshots have limitations (as mentioned by you in other thread) and are always in-efficient compared to array snapshots. Why would someone want to use less efficient method when they invested on a expensive array ?
thanx,
deepak


On Tue, May 20, 2014 at 9:01 PM, Mitsuhiro Tanino <mitsuhiro.tanino at hds.com<mailto:mitsuhiro.tanino at hds.com>> wrote:
Hello All,

I’m proposing a feature of LVM driver to support LVM on a shared LU.
The proposed LVM volume driver provides these benefits.
  - Reduce hardware based storage workload by offloading the workload to software based volume operation.
  - Provide quicker volume creation and snapshot creation without storage workloads.
  - Enable cinder to any kinds of shared storage volumes without specific cinder storage driver.
  - Better I/O performance using direct volume access via Fibre channel.

In the attachment pdf, following contents are explained.
  1. Detail of Proposed LVM volume driver
  1-1. Big Picture
  1-2. Administrator preparation
  1-3. Work flow of volume creation and attachment
  2. Target of Proposed LVM volume driver
  3. Comparison of Proposed LVM volume driver

Could you review the attachment?
Any comments, questions, additional ideas would be appreciated.


Also there are blueprints, wiki and patches related to the slide.
https://blueprints.launchpad.net/cinder/+spec/lvm-driver-for-shared-storage
https://blueprints.launchpad.net/nova/+spec/lvm-driver-for-shared-storage
https://wiki.openstack.org/wiki/Cinder/NewLVMbasedDriverForSharedStorageInCinder
https://review.openstack.org/#/c/92479/
https://review.openstack.org/#/c/92443/

Regards,
Mitsuhiro Tanino <mitsuhiro.tanino at hds.com<http://mitsuhiro.tanino@hds.com>>
     HITACHI DATA SYSTEMS
     c/o Red Hat, 314 Littleton Road, Westford, MA 01886

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev at lists.openstack.org<mailto:OpenStack-dev at lists.openstack.org>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

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


More information about the OpenStack-dev mailing list