Gris Ge
2014-04-01 08:48:44 UTC
Hi Team,
In order to support volume snapshot, clone, mirror and etc replication
in LSM, I drafted this wiki for volume replication:
http://goo.gl/uHVVuC
In short:
* Class name: lsm.VolumeReplication
* Properties:
id, name, type, time_stamp, src_volume_id, tgt_volume_id,
sync_progress
* Terminology: (Based on SMI-S Copy Profile)[1]
UNSYNC_DELTA_RO
Read Only, delta based copy. AKA, Snapshot.
UNSYNC_DELTA_RW
Read write, delta based copy,
Example: NetApp clone or EMC Snapshot Mount Point.
UNSYNC_FULL_LOCAL
Read write, full copy, on local system.
Example: NetApp Copy or EMC VNX/CX SAN Copy, EMC VMAX/DMX Clone
UNSYNC_FULL_REMOTE
Read write, full copy, on remote system.
Example: EMC VNX/CX SAN Copy, EMC VMAX/DMX RClone
SYNC_LOCAL
Mirror data in local system. In sync mode(Block I/O until
both target and source committed the data).
Example: EMC VNX/CX SnapView Clone, EMC VMAX/CX BCV
SYNC_REMOTE
Mirror data in remote system. In sync mode.
Example: NetApp SnapMirror, EMC VNX/CX MirrorView, EMC VMAX/CX RDF
ASYNC_LOCALE
Mirror data in local system. In async mode(return I/O once
source volume committed the data, sync data with internval).
No storage array support this yet. Just place holder for
future.
ASYNC_REMOTE
Mirror data in remote system. In async mode(return I/O once
source volume committed the data, sync data with internval).
Example: EMC VNX/CX MirrorView, EMC VMAX/CX RDF/A
API user can translate them into their favorite terminologies.
* Methods:
lsm.Client.volume_replications()
lsm.Client.volume_replication_create()
lsm.Client.volume_replication_delete()
lsm.Client.volume_replication_resync()
lsm.Client.volume_replication_restore()
lsm.Client.volume_replication_failover()
lsm.Client.volume_replication_giveback()
lsm.Client.volume_replication_split()
On vendor implementation notes:
* NetApp ONTAP SDK
Only support UNSYNC_DELTA_RO, UNSYNC_DELTA_RW, UNSYNC_FULL_LOCAL,
SYNC_LOCAL.
Maybe if we are on cluster mode, we might be able to do more
remote replication, but I don't have such array or simulators yet.
* SMI-S
SMI-S 1.6 "Copy Service" profile is stable. We can base on that
first.
SMI-S 1.6 "Replication" profile is experimental, we only use them
for performance or feature coverage issue.
EMC SMI-S provider provides well support on this including the
experimental replication profile.
* Targetd.
LVM snapshot not support yet.
* Other plugin.
No time to investigate.
It's clearly my initial design is buggy and unreasonable.
Please kindly provide your feedback to improve this or maybe provide a
complete new one if my design sucks too much(It happens a lot).
Thank you in advance.
Best regards.
[1] I am tired on explaining what snapshot, mirror, clone means. So I
choose the names SNIA do. SNIA is actually using "snapshot, mirror,
clone" names in newer profile -- Replication Profile, but that was
experimental.
In order to support volume snapshot, clone, mirror and etc replication
in LSM, I drafted this wiki for volume replication:
http://goo.gl/uHVVuC
In short:
* Class name: lsm.VolumeReplication
* Properties:
id, name, type, time_stamp, src_volume_id, tgt_volume_id,
sync_progress
* Terminology: (Based on SMI-S Copy Profile)[1]
UNSYNC_DELTA_RO
Read Only, delta based copy. AKA, Snapshot.
UNSYNC_DELTA_RW
Read write, delta based copy,
Example: NetApp clone or EMC Snapshot Mount Point.
UNSYNC_FULL_LOCAL
Read write, full copy, on local system.
Example: NetApp Copy or EMC VNX/CX SAN Copy, EMC VMAX/DMX Clone
UNSYNC_FULL_REMOTE
Read write, full copy, on remote system.
Example: EMC VNX/CX SAN Copy, EMC VMAX/DMX RClone
SYNC_LOCAL
Mirror data in local system. In sync mode(Block I/O until
both target and source committed the data).
Example: EMC VNX/CX SnapView Clone, EMC VMAX/CX BCV
SYNC_REMOTE
Mirror data in remote system. In sync mode.
Example: NetApp SnapMirror, EMC VNX/CX MirrorView, EMC VMAX/CX RDF
ASYNC_LOCALE
Mirror data in local system. In async mode(return I/O once
source volume committed the data, sync data with internval).
No storage array support this yet. Just place holder for
future.
ASYNC_REMOTE
Mirror data in remote system. In async mode(return I/O once
source volume committed the data, sync data with internval).
Example: EMC VNX/CX MirrorView, EMC VMAX/CX RDF/A
API user can translate them into their favorite terminologies.
* Methods:
lsm.Client.volume_replications()
lsm.Client.volume_replication_create()
lsm.Client.volume_replication_delete()
lsm.Client.volume_replication_resync()
lsm.Client.volume_replication_restore()
lsm.Client.volume_replication_failover()
lsm.Client.volume_replication_giveback()
lsm.Client.volume_replication_split()
On vendor implementation notes:
* NetApp ONTAP SDK
Only support UNSYNC_DELTA_RO, UNSYNC_DELTA_RW, UNSYNC_FULL_LOCAL,
SYNC_LOCAL.
Maybe if we are on cluster mode, we might be able to do more
remote replication, but I don't have such array or simulators yet.
* SMI-S
SMI-S 1.6 "Copy Service" profile is stable. We can base on that
first.
SMI-S 1.6 "Replication" profile is experimental, we only use them
for performance or feature coverage issue.
EMC SMI-S provider provides well support on this including the
experimental replication profile.
* Targetd.
LVM snapshot not support yet.
* Other plugin.
No time to investigate.
It's clearly my initial design is buggy and unreasonable.
Please kindly provide your feedback to improve this or maybe provide a
complete new one if my design sucks too much(It happens a lot).
Thank you in advance.
Best regards.
[1] I am tired on explaining what snapshot, mirror, clone means. So I
choose the names SNIA do. SNIA is actually using "snapshot, mirror,
clone" names in newer profile -- Replication Profile, but that was
experimental.
--
Gris Ge
Gris Ge