Discussion:
[Libstoragemgmt-devel] [Question]The reason that libstoragemgmt cannot support snaphost
Qixiaozhen
2014-03-28 02:28:14 UTC
Permalink
Hi, all

I am very interested in and have focused on the snapshot function of libstoragemgmt.

However, the libstoragemgmt does not support snapshot yet.

What is the reason of this?

My opinion:

1) Various vendors of backend storage realize the volume snapshot with different ways.

2) Libstroagemgmt cannot integrate those method into a interface.

Sincerely,

Xiaozhen

From: Qixiaozhen
Sent: Thursday, March 27, 2014 10:38 AM
To: 'Gris Ge'
Cc: libstoragemgmt-***@lists.sourceforge.net; Gaoxiaodong (Leo); Liuzhenghui; Wangshen (Peter); Zhangbo (L); Luohao (brian)
Subject: [Openstack Cinder Driver For Libstoragemgmt]Libstoragemgmt does not support for cinder? Is there plan for this?

Hi, Gris

As we know, libstoragemgmt has the main functions that openstack-cinder required.

The operation in cinder driver is 'create_volume', 'create_volume_from_snapshot', 'create_cloned_volume', 'delete_volume', 'create_snapshot', 'delete_snapshot', 'extend_volume' and etc.

Libstoragemgmt does not support snapshot yet(with smi-s plug-in). Is there any plan for snapshot? URL: http://sourceforge.net/p/libstoragemgmt/code/ci/master/tree/lsm/lsm/

Thanks,

Xiaozhen

-----------------------------------------------------------
Xiaozhen Qi
Huawei Technologies Co.,LTD.
IT Product Line CloudOS PDU
China, Xi'an
Mobile: +86-13609283376
Email: ***@huawei.com<mailto:***@huawei.com>
Gris Ge
2014-03-28 06:22:54 UTC
Permalink
Post by Qixiaozhen
Hi, all
I am very interested in and have focused on the snapshot function of libstoragemgmt.
However, the libstoragemgmt does not support snapshot yet.
What is the reason of this?
Hi Qixiao Zhen,

I have to admit current design of volume/LUN snapshot needs some care.

I will email out the proposal fro volume/LUN snapshot LSM design update
today or within next week.

If you already have patches or class/API design, I would more than happy
to review or help on.

Thanks.
--
Gris Ge
Qixiaozhen
2014-03-28 10:03:29 UTC
Permalink
Post by Gris Ge
Post by Qixiaozhen
Hi, all
I am very interested in and have focused on the snapshot function of libstoragemgmt.
However, the libstoragemgmt does not support snapshot yet.
What is the reason of this?
Hi Qixiao Zhen,
I have to admit current design of volume/LUN snapshot needs some care.
I will email out the proposal fro volume/LUN snapshot LSM design update today
or within next week.
Very good news!
Post by Gris Ge
If you already have patches or class/API design, I would more than happy to
review or help on.
Some of my analysis about snapshot lists here:
1.Create Snapshot
Step1: Get the ReplicationService instance in the computer system;
Step2: Invoke the method named ' CreateElementReplica ', with the syncType=7

2.Delete Snapshot
Step1: Get the ReplicationService instance in the computer system;
Step2: Invoke the method named ' ModifyReplicaSynchronization', operation code=19

3.Get Snapshot
Step1: Get the volume instance that the snapshot belong to
Step2: Get the snapshot list with Associators() calling

Reference Link:
1) https://github.com/openstack/cinder/blob/master/cinder/volume/drivers/emc/emc_smis_common.py
Tony Asleson
2014-03-28 15:53:11 UTC
Permalink
Post by Qixiaozhen
Post by Qixiaozhen
Hi, all
I am very interested in and have focused on the snapshot function of libstoragemgmt.
However, the libstoragemgmt does not support snapshot yet.
What's your definition of a snapshot? If it's a read & writable space
efficient copy of a volume, then yes we have it and we call it a clone.

By calling the volume_replicate method and specifying clone I believe
you will get what you are referring to as a snapshot.

LibStorageMgmt uses 'snapshot' to refer to a point in time read only
copy, see http://sourceforge.net/p/libstoragemgmt/wiki/Terminology/
Post by Qixiaozhen
1.Create Snapshot
Step1: Get the ReplicationService instance in the computer system;
Step2: Invoke the method named ' CreateElementReplica ', with the syncType=7
2.Delete Snapshot
Step1: Get the ReplicationService instance in the computer system;
Step2: Invoke the method named ' ModifyReplicaSynchronization', operation code=19
3.Get Snapshot
Step1: Get the volume instance that the snapshot belong to
Step2: Get the snapshot list with Associators() calling
1) https://github.com/openstack/cinder/blob/master/cinder/volume/drivers/emc/emc_smis_common.py
Gris Ge
2014-04-01 08:50:14 UTC
Permalink
Post by Qixiaozhen
1.Create Snapshot
Step1: Get the ReplicationService instance in the computer system;
Step2: Invoke the method named ' CreateElementReplica ', with the syncType=7
2.Delete Snapshot
Step1: Get the ReplicationService instance in the computer system;
Step2: Invoke the method named ' ModifyReplicaSynchronization', operation code=19
3.Get Snapshot
Step1: Get the volume instance that the snapshot belong to
Step2: Get the snapshot list with Associators() calling
1) https://github.com/openstack/cinder/blob/master/cinder/volume/drivers/emc/emc_smis_common.py
I am not sure whether I can use Apache codes in this project or not.

Anyway, merely following work flow in SNIA SMI-S 'Copy Service' and
'Replication' profile when I coding the SMI-S plugin does no harm.

I will working on supporting snapshot in SMI-S plugin once API design
finished(please refer to another email).

Thanks for the notes.
Best regards.
--
Gris Ge
Loading...