U.S. patent application number 13/081963 was filed with the patent office on 2012-10-11 for system of managing remote resources.
This patent application is currently assigned to INFINIDAT LTD.. Invention is credited to Alex WINOKUR.
Application Number | 20120259961 13/081963 |
Document ID | / |
Family ID | 46966965 |
Filed Date | 2012-10-11 |
United States Patent
Application |
20120259961 |
Kind Code |
A1 |
WINOKUR; Alex |
October 11, 2012 |
SYSTEM OF MANAGING REMOTE RESOURCES
Abstract
A system of managing remote resources that includes a local
storage associated with a local storage manager constituting a
local storage system. A remote storage associated with a remote
storage manager constituting a local storage system. The local
storage system is associated with a remote storage system by means
of a first link. The local storage system is configured to send
through the first link I/O remote commands complying with the SCSI
protocol, for execution in the remote storage system. The system
includes a second link associating the local storage system and the
remote storage system. The local storage manager being responsive
to remote storage management commands and being configured to send
through the second link corresponding cross-storage-remote
management commands that comply with the SCSI protocol, for
execution in the remote storage.
Inventors: |
WINOKUR; Alex; (Haifa,
IL) |
Assignee: |
INFINIDAT LTD.
Herzliya
IL
|
Family ID: |
46966965 |
Appl. No.: |
13/081963 |
Filed: |
April 7, 2011 |
Current U.S.
Class: |
709/223 |
Current CPC
Class: |
G06F 3/0619 20130101;
G06F 3/067 20130101; G06F 11/2071 20130101; G06F 3/065
20130101 |
Class at
Publication: |
709/223 |
International
Class: |
G06F 15/16 20060101
G06F015/16 |
Claims
1. A system of managing remote resources, that includes a local
storage associated with a local storage manager constituting a
local storage system and a remote storage associated with a remote
storage manager constituting a local storage system the local
storage system is associated with a remote storage system by means
of a first link; the local storage system is configured to send
through said link at least one I/O remote command complying with an
I/O protocol, for execution in said remote storage system; the
system comprising: a second link associating said local storage
system and remote storage system; the local storage manager being
responsive to at least one remote storage management command) and
being configured to send through said second link at least one
cross-storage-remote management command corresponding to said
remote storage management command, complying with an I/O protocol,
for execution in said remote storage.
2. The system according to claim 1, wherein said I/O protocol being
the SCSI protocol.
3. The system according to claim 1, wherein said first link and
second link are the same.
4. The system according to claim 1, wherein said local storage
system is associated with a host manager by means of a third link
and wherein said host manager is configured to send through said
third link said at least one remote storage management command
complying with said I/O protocol.
5. The system according to claim 1, wherein said local storage
includes a local pool and said remote storage includes an
associated remote pool.
6. The system according to claim 1, wherein said host manager is
associated with said local storage system by means of a fourth link
and wherein said host manager is configured to send through said
fourth link at least one local storage management command complying
with said I/O protocol, for executing in said local storage.
7. The system according to claim 1, wherein said remote storage
management command being a "create remote mirror", including create
a volume in said local storage, indicate in a local data structure
that said volume in the local storage is associated to a volume in
a remote storage, and create volume in said remote storage, and
indicate in a remote data structure that that the volume in the
remote storage is associated to said volume in local storage.
8. The system according to claim 7, wherein said remote storage
management command being a "create remote snapshot", including
create a snapshot of said remote volume in said remote storage.
9. The system according to claim 7, wherein said I/O remote command
being a remote mirror including utilizing said local and remote
data structures and storing in said volume in the remote storage a
mirror of data in the volume of the local storage.
10. The system according to claim 1, wherein the host manager is
attached through a first handle to a local extended pool; said
extended pool is associated with said local storage manager, a
remote extended pool is associated by means of a second handle to
said local manager; the remote extended pool is associated with
said remote storage manager; and wherein said host manager is
configured to send said remote management command to said local
extended pool through said handle, which command is sent to said
local manager, and wherein said local storage manager is configured
to issue a cross storage remote management command and send it
through said second handle to said remote extended pool which
command is sent to said remote storage manager; said remote storage
manager is configured to parse said command and to execute it in
said remote pool.
11. The system according to claim 10, wherein said first handle
includes an initiator port for attaching to the host, a target port
for attaching to a local pool volume of said local extended pool,
and a LUN uniquely identifying the handle; and wherein said second
handle includes an initiator port for attaching to the local
storage, a target port for attaching to a remote pool volume of
said remote extended pool, and a LUN uniquely identifying the
handle.
12. The system according to claim 7, wherein the execution of said
create remote mirror management command obviates intervention of a
human storage administrator.
13. The system according to claim 8, wherein the execution of said
create remote snapshot management command obviates intervention of
a human storage administrator.
14. A system of managing remote resources, that includes a local
storage associated with a local storage manager, constituting a
local storage system and a remote storage associated with a remote
storage manager, constituting a remote storage system; the local
storage system having a first link for association with a remote
storage system; the local storage system is configured to send
through said link at least one I/O remote command complying with an
I/O protocol, for execution in a remote storage system; the system
comprising: the local storage system having a second link for
association with the remote storage system; the local storage
manager being responsive to at least one remote storage management
command and being configured to send through said second link at
least one cross-storage-remote management command corresponding to
said remote storage management command, complying with an I/O
protocol, for execution in said remote storage.
15. The system according to claim 14, wherein said I/O protocol
being the SCSI protocol.
16. The system according to claim 14, wherein said local storage
system having a third link for association with a host manager; the
local storage system is configured to receive from said host
manager through said third link said at least one remote storage
management command complying with said I/O protocol.
17. The system according to claim 14, wherein said local storage
includes a local pool and said remote storage includes an
associated remote pool.
18. A system of managing remote resources, that includes a local
storage associated with a local storage manager, constituting a
local storage system and a remote storage associated with a remote
storage manager, constituting a remote storage system; the remote
storage system having a first link for association with the local
storage system; the remote storage system is configured to receive
through said first link at least one I/O remote command complying
with an I/O protocol, for execution in the remote storage system;
the system comprising: the remote storage system having a second
link for association with the local storage system; the remote
storage manager being configured to send through said second link
at least one cross-storage-remote management command corresponding
to a remote storage management command, complying with an I/O
protocol, for execution in said remote storage. In a system that
includes a local storage associated with a local storage manager,
constituting a local storage system; a remote storage associated
with a remote storage manager, constituting a remote storage
system; the local storage system having a first link for
association with the remote storage system; the local storage
system is configured to send through said link at least one I/O
remote command complying with an I/O protocol, for execution in the
remote storage system, a method for managing remote resources
method comprising: (a) providing for the local storage system a
second link for association with the remote storage system; (b) in
response to receiving at least one remote storage management
command the local storage manager sending through said second link
at least one cross-storage-remote management command corresponding
to said remote storage management command, complying with an I/O
protocol, for execution in said remote storage.
19. The method according to claim 18, wherein said I/O protocol
being the SCSI protocol.
20. A method for managing remote resources in a system that
includes a local storage associated with a local storage manager,
constituting a local storage system; a remote storage associated
with a remote storage manager, constituting a remote storage
system; the remote storage system having a first link for
association with the local storage system; the remote storage
system is configured to received through said link at least one I/O
remote command complying with an I/O protocol, for execution in the
remote storage system, the method comprising: (a) providing for the
remote storage system a second link for association with the local
storage system; (b) the remote storage manager receiving through
said second link at least one cross-storage-remote management
command corresponding to a remote storage management command,
complying with an I/O protocol, for execution in said remote
storage.
Description
FIELD OF THE INVENTION
[0001] This invention relates to remote management operations.
BACKGROUND OF THE INVENTION
[0002] Management operations of storage in remote locations, often
referred to as remote management operations, are typically
executed, at least partially, by human storage administrators and
are quite involved.
[0003] Storage Management commands (operations) are commands that
do not directly concern the I/O operations that are addressed to
the storage system (such as write data to or read data from a
storage). The storage management commands may concern modifications
in the internal structure of data in the storage system (e.g.
volumes, mirrors, snapshots), or in the distribution of data over
the physical components of the storage system, and the like. Remote
Storage management commands are management commands that are
addressed to remote storage systems.
[0004] Thus, remote management operation may include by way of
example one or more of the following management operations: [0005]
1. Communication management: includes part or all of the following:
defining the communication paths between the storage systems to
participate in the operation. Communication management includes
identifying port pairs on local and remote storage systems over
which remote operations and data will flow. [0006] 2. Volume
management includes: part or all of the following: Definition of a
remote mirroring pair, i.e., the relationship between primary
volumes (residing in local storage) and secondary volumes (residing
in remote storage), definition of consistency groups and definition
of the replication type. Consistency group, as is well known,
refers to gathering of a few distinct volumes for the purposes of
applying certain management commands to all of them as atomic
commands. Thus, for instance, a mirroring operation in respect of
the consistency group will create a replica of all the volumes in
the group as an atomic command, and not of each of the specified
volumes in a row. Also: snapshots (either local or remote) of all
volumes in the group are created as an atomic operation.
Replication type, as is well known, includes synchronous and
a-synchronous operation. In the former, the replication action is
terminated upon receipt of acknowledgement from the remote site,
whereas in the latter, operation does not require acknowledgement
for every mirroring transaction. Synchronous operation is more
reliable (as every successful operation is acknowledged), but this
is at the penalty of slower response time, naturally affecting
performance, all as known per se. Note that Volume management is a
very involved task. [0007] 3. Snapshot management includes part or
all of the following: Creation or deletion of snapshots in remote
storage. The snapshots, in remote storage are typically of volume
of the local storage. [0008] 4. Mirror management includes part or
all of the following: creation or termination of the mirror in the
remote storage of volumes in the local storage.
[0009] What complicates the remote management procedures even
further is the fact that in accordance with the prior art, remote
storage is typically managed by a different (human) storage
administrator than the one who manages the primary (local)
storage.
[0010] An exemplary remote I/O operation is remote mirroring. Thus,
for instance, in I/O remote mirroring operation, data that resides
in volumes of local storage, is replicated and copied in accordance
with a known protocol (e.g. synchronous, or asynchronous) into
volume(s) that reside in remote storage. The remote mirroring
affords restoration of lost or damaged data in the local storage,
e.g. by accessing and retrieving the "mirrored data" from the
remote storage. There are known techniques for implementing remote
mirrors, such as in "Information Storage and Management: Storing,
Managing, and Protecting Digital Information" Chapter 14 by EMC
(hereinafter the "Information Storage").
[0011] Note that in the context of remote mirroring, various known
per se mechanisms have been devised to make sure that volumes will
not be overwritten, which significantly complicates the definition
of remote mirroring.
[0012] For a better understanding of the foregoing, attention is
drawn to FIG. 1, illustrating a block diagram of a generalized
system architecture for carrying out remote mirroring, according to
the prior art. As shown, in FIG. 1 Host 10 accesses local storage
11 for executing I/O operations 12, such as reading/writing volumes
or snapshots that reside in local storage. Local storage is
depicted for simplicity as a single unit, although in real life
this is typically not the case. As is further known in the art,
management operations, such as create or delete resources (e.g.
volumes/snapshots) in the local storage, require involvement of
computerized storage manager module 13, possibly also with
significant involvement of human storage administrator 14 through
interface 15. For instance in order to create local volume the
human administrator 14 in charge of the local storage should be
approached. In response, the human administrator activates the
computerized storage manager 13 (through interface 15) for creating
a volume at local storage 11. Remote operations (such as remote
mirroring) not only require a sequence of operations that are
executed at the local storage 11, but also operations performed at
the remote storage 16 and this requires involvement of computerized
remote storage manager module 17 and possibly also of remote human
storage administrator 18 (utilizing interface 19). Note that in
many cases, the remote storage may be of different characteristics
(and/or commercially available from a is different vendor) than the
local storage, and therefore the local and the remote storage
managers are not identical, further hindering the coordination
required to implement the remote management operation. Moreover, in
many cases, the local and remote storage administrators are
different entities, thereby further complicating the remote
management preparatory operations and the actual remote management
implementation. Thus, for example, in order to apply remote
mirroring, a volume (say V1) is created in the local storage 11 in
the manner specified above. Now, the remote human administrator 18
(typically a different entity than the local human administrator
14) is approached and requested to create a remote volume V1' and
to attach it to V1. The remote administrator will activate the
computerized remote storage manager 17 (through interface 18) for
creating remote volume V1' and associating V1' to V1.
[0013] Once establishing the adequate infrastructure for carrying
out remote mirroring (in response to the specified preparatory
operations) known per se procedures can be invoked for implementing
remote mirroring (e.g. through link 100), e.g. in accordance with
the teaching of the specified Information Storage publication.
[0014] As is well known, Storage pools is a mechanism used by
storage administrators or managers to monitor and control storage
allocation to hosts, e.g. in the case of volumes with snapshots or
of thin volumes. A storage manager allocates a storage pool in
accordance with the size of the storage quota to be allocated for a
particular user, which accesses the system via a host or via a
group of hosts. The storage pool forms part of the storage system.
All volumes for this user are allocated then by the storage manager
(e.g. local storage manager 13) from this storage pool. This is
useful for instance in the case of snapshots, because while one can
anticipate the amount of snapshots to be created by the user, it is
difficult to anticipate the rate of change of data in the source
after any snapshot is created, and accordingly it is difficult to
anticipate the amount of additional storage space that will be
needed as new data is created as part of the snapshot mechanism.
Hence, the pools provide a flexible way to manage the space
allocated to a certain user. When the space in the pool is
depleted, no more data can be allocated for volumes associated with
the pool and no new volumes can be created which use space
associated with this pool. At this point the storage
manager/administrator may free some space by deleting some volumes
or snapshots, thus increasing the pool size, or abort the new data
allocation.
[0015] The storage manager (possibly under control of the storage
administrator) is also in charge of imposing security rules, for
instance authorizing or denying access of the host to given
volumes/snapshots (e.g. residing in storage pools).
[0016] There is thus a need in the art to simplify remote operation
management.
[0017] There is still another need in the art to reduce the amount
of coordination between remote storage manager(s) and
administrators.
[0018] There is still another need in the art to allow delegation
of some of the remote management tasks from storage
manager/administrator to the host manager.
SUMMARY OF THE INVENTION
[0019] In accordance with an aspect of the presently disclosed
subject matter, there is provided a system of managing remote
resources, that includes a local storage associated with a local
storage manager constituting a local storage system and a remote
storage associated with a remote storage manager constituting a
local storage system, the local storage system is associated with a
remote storage system by means of a first link; the local storage
system is configured to send through the link at least one I/O
remote command complying with an I/O protocol, for execution in the
remote storage system; the system comprising a second link
associating the local storage system and remote storage system; the
local storage manager being responsive to at least one remote
storage management command) and being configured to send through
the second link at least one cross-storage-remote management
command corresponding to the remote storage management command,
complying with an I/O protocol, for execution in the remote
storage.
[0020] In accordance with an embodiment of the presently disclosed
subject matter, there is further provided a system, wherein the I/O
protocol being the SCSI protocol. In accordance with an embodiment
of the presently disclosed subject matter, there is yet further
provided a system, wherein the first link and second link are the
same.
[0021] In accordance with an embodiment of the presently disclosed
subject matter, there is yet further provided a system, wherein the
local storage system is associated with a host manager by means of
a third link and wherein the host manager is configured to send
through the third link the at least one remote storage management
command complying with the I/O protocol.
[0022] In accordance with an embodiment of the presently disclosed
subject matter, there is yet further provided a system, wherein the
local storage includes a local pool and the remote storage includes
an associated remote pool.
[0023] In accordance with an embodiment of the presently disclosed
subject matter, there is yet further provided a system, wherein the
host manager is associated with the local storage system by means
of a fourth link and wherein the host manager is configured to send
through the fourth link at least one local storage management
command complying with the I/O protocol, for executing in the local
storage.
[0024] In accordance with an embodiment of the presently disclosed
subject matter, there is yet further provided a system, wherein the
remote storage management command being a "create remote mirror",
including create a volume in said local storage, indicate in a
local data structure that the volume in the local storage is
associated to a volume in a remote storage, and create volume in
the remote storage, and indicate in a remote data structure that
that the volume in the remote storage is associated to the volume
in local storage.
[0025] In accordance with an embodiment of the presently disclosed
subject matter, there is yet further provided a system, wherein the
remote storage management command being a "create remote snapshot",
including create a snapshot of the remote volume in the remote
storage.
[0026] In accordance with an embodiment of the presently disclosed
subject matter, there is yet further provided a system, wherein the
I/O remote command being a remote mirror including utilizing the
local and remote data structures and storing in the volume in the
remote storage a mirror of data in the volume of the local
storage.
[0027] In accordance with an embodiment of the presently disclosed
subject matter, there is yet further provided a system, wherein the
host manager is attached through a first handle to a local extended
pool; the extended pool is associated with the local storage
manager, a remote extended pool is associated by means of a second
handle to the local manager; the remote extended pool is associated
with the remote storage manager; and wherein the host manager is
configured to send the remote management command to the local
extended pool through the handle, which command is sent to the
local manager, and wherein the local storage manager is configured
to issue a cross storage remote management command and send it
through the second handle to the remote extended pool which command
is sent to the remote storage manager; the remote storage manager
is configured to parse the command and to execute it in the remote
pool.
[0028] In accordance with an embodiment of the presently disclosed
subject matter, there is yet further provided a system, wherein the
first handle includes an initiator port for attaching to the host,
a target port for attaching to a local pool volume of the local
extended pool, and a LUN uniquely identifying the handle; and
wherein the second handle includes an initiator port for attaching
to the local storage, a target port for attaching to a remote pool
volume of the remote extended pool, and a LUN uniquely identifying
the handle.
[0029] In accordance with an embodiment of the presently disclosed
subject matter, there is yet further provided a system, wherein the
execution of the create remote mirror management command obviates
intervention of a human storage administrator.
[0030] In accordance with an embodiment of the presently disclosed
subject matter, there is yet further provided a system, wherein the
execution of the create remote snapshot management command obviates
intervention of a human storage administrator.
[0031] In accordance with an aspect of the presently disclosed
subject matter, there is yet further provided a system of managing
remote resources, that includes a local storage associated with a
local storage manager, constituting a local storage system and a
remote storage associated with a remote storage manager,
constituting a remote storage system; the local storage system
having a first link for association with a remote storage system;
the local storage system is configured to send through the link at
least one I/O remote command complying with an I/O protocol, for
execution in a remote storage system; the system comprising: the
local storage system having a second link for association with the
remote storage system; the local storage manager being responsive
to at least one remote storage management command and being
configured to send through the second link at least one
cross-storage-remote management command corresponding to the remote
storage management command, complying with an I/O protocol, for
execution in the remote storage.
[0032] In accordance with an embodiment of the presently disclosed
subject matter, there is yet further provided a system, wherein the
I/O protocol being the SCSI protocol.
[0033] In accordance with an embodiment of the presently disclosed
subject matter, there is yet further provided a system, wherein the
local storage system having a third link for association with a
host manager; the local storage system is configured to receive
from the host manager through the third link the at least one
remote storage management command complying with the I/O
protocol.
[0034] In accordance with an embodiment of the presently disclosed
subject matter, there is yet further provided a system, wherein the
local storage includes a local pool and the remote storage includes
an associated remote pool.
[0035] In accordance with an aspect of the presently disclosed
subject matter, there is yet further provided a system of managing
remote resources, that includes a local storage associated with a
local storage manager, constituting a local storage system and a
remote storage associated with a remote storage manager,
constituting a remote storage system; the remote storage system
having a first link for association with the local storage system;
the remote storage system is configured to receive through the
first link at least one I/O remote command complying with an I/O
protocol, for execution in the remote storage system; the system
comprising the remote storage system having a second link for
association with the local storage system; the remote storage
manager being configured to send through the second link at least
one cross-storage-remote management command corresponding to a
remote storage management command, complying with an I/O protocol,
for execution in the remote storage.
[0036] In accordance with an aspect of the presently disclosed
subject matter, there is yet further provided, in a system that
includes a local storage associated with a local storage manager,
constituting a local storage system; a remote storage associated
with a remote storage manager, constituting a remote storage
system; the local storage system having a first link for
association with the remote storage system; the local storage
system is configured to send through the link at least one I/O
remote command complying with an I/O protocol, for execution in the
remote storage system, a method for managing remote resources
method comprising: [0037] (a) providing for the local storage
system a second link for association with the remote storage
system; [0038] (b) in response to receiving at least one remote
storage management command the local storage manager sending
through the second link at least one cross-storage-remote
management command corresponding to the remote storage management
command, complying with an I/O protocol, for execution in the
remote storage.
[0039] In accordance with an embodiment of the presently disclosed
subject matter, there is yet further provided a method, wherein the
I/O protocol being the SCSI protocol.
[0040] In accordance with an aspect of the presently disclosed
subject matter, there is yet further provided, in a system that
includes a local storage associated with a local storage manager,
constituting a local storage system; a remote storage associated
with a remote storage manager, constituting a remote storage
system; the remote storage system having a first link for
association with the local storage system; the remote storage
system is configured to received through the link at least one I/O
remote command complying with an I/O protocol, for execution in the
remote storage system, a method for managing remote resources
method comprising: [0041] (a) providing for the remote storage
system a second link for association with the local storage system;
[0042] (b) the remote storage manager receiving through the second
link at least one cross-storage-remote management command
corresponding to a remote storage management command, complying
with an I/O protocol, for execution in the remote storage.
BRIEF DESCRIPTION OF THE DRAWINGS
[0043] In order to understand the invention and to see how it may
be carried out in practice, embodiments will now be described, by
way of non-limiting example only, with reference to the
accompanying drawings, in which:
[0044] FIG. 1 is a block diagram of a generalized system
architecture for carrying out remote mirroring, according to the
prior art;
[0045] FIG. 2A is a block diagram of a generalized system
architecture, in accordance with certain embodiments of the
invention;
[0046] FIG. 2B illustrates schematically, remote and local
storages, in accordance with certain embodiments of the
invention;
[0047] FIG. 2C illustrates schematically, local and remote volume
management tables, in accordance with certain embodiments of the
invention;
[0048] FIG. 3 is a block diagram of host manager modules, in
accordance with certain embodiments of the invention;
[0049] FIG. 4 is a block diagram of storage manager modules, in
accordance with certain embodiments of the invention;
[0050] FIG. 5 is a schematic illustration of a host and extended
pool, in accordance with certain embodiments of the invention;
[0051] FIG. 6 is a flow chart illustrating a sequence of operations
for generating an extended pool by a storage manager, in accordance
with certain embodiments of the invention;
[0052] FIG. 7 illustrates, schematically, local and remote
operations, in accordance with certain embodiments of the
invention; and
[0053] FIG. 8 illustrates a sequence of operations for implementing
a remote create snapshot command, in accordance with certain
embodiments of the invention.
DETAILED DESCRIPTION OF EMBODIMENTS
[0054] Note that in the drawings and descriptions, identical
reference numerals indicate those components or stages that are
common to different examples.
[0055] Unless specifically stated otherwise, as apparent from the
following discussions, it is appreciated that throughout the
specification discussions utilizing terms such as providing,
sending, executing or the like, include action and/or processes of
a computer that manipulate and/or transform data into other data,
said data represented as physical quantities, e.g. such as
electronic quantities, and/or said data representing the physical
objects.
[0056] Note that unless stated otherwise, in addition to or instead
of what may be construed from the description herein, all technical
and scientific terms used herein may have the same meaning as
understood by one of ordinary skill in the art.
[0057] The operations of the host manager, local storage manager,
or remote storage manager, may be performed by a computer specially
constructed for the desired purposes or by a general purpose
computer specially configured for the desired purpose by a computer
program stored in a computer readable storage medium.
[0058] Note that the terms command and operation are occasionally
used interchangeably. Note also that the term command is not
necessarily confined to a single computer instruction but,
depending upon the particular application, may include a plurality
of instructions.
[0059] Turning now to FIG. 2A, it illustrates a block diagram of a
generalized system architecture, in accordance with certain
embodiments of the invention.
[0060] As shown, the host manager 201 (associated with the host
200) invokes a remote management command, and transmits it to a
local storage manager 202 (associated with local storage 203)
through a link 206. Note that the link between the host and the
local storage (say 12) is used in the prior art architecture of
FIG. 1 to convey I/O commands (such as read/write data to and from
a storage resource). In accordance with certain embodiments as
illustrated in FIG. 2A, a link between host manager (associated
with the host) and the local storage will be used to convey
management commands including remote management commands.
[0061] Note that in accordance with certain embodiments a local
system includes the specified local storage manager and the local
storage.
[0062] In case the command is designated to local storage, the
local storage manager executes the command vis-a-vis the local
storage 203. In case the command is designated to the remote
storage, the local storage manager 202 transmits a cross storage
management command to remote storage manager 204 through link 208,
where the latter executes, in turn, the remote command commands
vis-a-vis the remote storage 205.
[0063] Note that in accordance with certain embodiments, a remote
system includes the specified remote storage manager and the remote
storage.
[0064] Note that the link between the local storage system and
remote storage system (say 100) is used in the prior art
architecture of FIG. 1 to convey I/O commands (such as read/write
data to and from a storage resource). In accordance with certain
embodiments as illustrated in FIG. 2A, a link between the local
storage and the remote storage systems will be used to convey
remote management commands designated to be executed on the remote
storage.
[0065] Note that in accordance with certain embodiments, triggering
remote management commands from the host and utilizing links (e.g.
206 and 208) for conveying the management commands (instead of I/O
non management commands as in the prior art) obviates the need to
involve the local and remote human storage administrators.
[0066] In accordance with certain embodiments, after having
executed the management command, the pertinent I/O commands (e.g.
write snapshot data or mirroring data for storing in remote storage
205 may be transmitted through the same or similar links (as is the
case with prior art architecture).
[0067] In accordance with certain embodiments for a given local
storage 203, there may be associated two or more remote storages
205.
[0068] Turning now to FIG. 2B, it illustrates schematically remote
and local storages, in accordance with certain embodiments of the
invention.
[0069] Thus, in accordance with certain embodiments, a remote
secondary volume (e.g. RV.sub.1 251) resides in a remote pool e.g.
252 (forming part of remote storage 205). A local pool e.g. 253
(forming part of local storage 203) accommodates the primary volume
e.g. V.sub.1 254. As will be exemplified in greater detail below,
the local and remote pools are associated with each other and
within the associated pools, selected local and remote volume(s)
are associated with each other (e.g. volume V.sub.1 254 is
associated with remote volume RV.sub.1 251), for the purpose of
executing remote command, such as remote mirroring. Note that a
volume in a remote pool can be associated to a volume in a local
pool only if the pools are associated.
[0070] Insofar as another remote command is concerned, e.g. remote
snapshot, note that remote snapshot (e.g. 255) of a local volume
(e.g. V1) resides in a remote pool (e.g. 252) only if the latter is
associated with local pool 253 (that accommodates the local
snapshotted volume V.sub.1).
[0071] The association between the volumes may be reflected in
corresponding local and remote volume management tables and may be
utilized e.g, for implementing the specified remote mirroring. This
is illustrated for example in FIG. 2C showing schematic local
volume management table 270 where the data that pertains to local
volume e.g. V.sub.1 is stored in record 271 and among the various
fields characterizing the volume (e.g. size 272) there is further
indicated remote mirror field 273 designated RV.sub.1. Similarly
the remote volume management table 280 includes record 281 for
remote volume RV.sub.1 which includes characterizing fields (e.g.
size 282) and primary volume field 283 designating the counterpart
local volume V.sub.1. The specified databases can be utilized by
the remote mirroring utility to place the mirrors of local volume
V.sub.1 in remote volume RV.sub.1 (in remote pool 252) utilizing to
this end link 208.
[0072] Specific volume management table portions 270 and 280 are
illustrated by way of example only and any known per se data
structures may be used.
[0073] In accordance with certain embodiments, in terms of
privileges, this may include: [0074] The host that originates the
remote management command, must have access to the local pool and
volume (within the pool) in respect of which a remote operation is
performed (e.g. remote mirror or remote snapshot) [0075] For remote
mirror operation, the remote volume (e.g. 251) which accommodates
the remote mirror (of the local volume e.g. 254) must reside in a
remote pool (e.g. 252) that is associated with a local pool e.g.
253 and the remote volume (e.g. 251) must be associated with the
local volume 251). [0076] For remote snapshot operation, the remote
snapshot (e.g. 255) of the local volume e.g. 254 must reside in a
remote pool (e.g. 252) that is associated with a local pool e.g.
253.
[0077] Turning now to FIG. 3, it illustrates a block diagram of
host manager modules, in accordance with certain embodiments of the
invention. Thus, as shown, host manager 201 of FIG. 2, includes
remote management control module 300 which includes remote
mirroring module 301 in charge of commencing remote mirroring
management commands. Also shown is remote snapshot creation module
302 in charge of commencing remote snapshot creation management
commands. Note that by the specific example of FIG. 3 only two
remote management operations are exemplified. The invention is of
course not bound by the specified remote mirroring and remote
create snapshot operations. The host manager further includes local
resource management control module 303 for issuing local resource
management operations at the local storage (pool).
[0078] Note that the invention is not bound by the specific
architecture of FIG. 3.
[0079] Turning now to FIG. 4, it illustrates a block diagram of
storage manager modules, in accordance with certain embodiments of
the invention. Thus, as shown, local storage manager 202 of FIG. 2,
includes pool resource control module 401 (whose operation will be
explained in greater detail below) and management control module
402 which is in charge of commencing cross-storage remote
management operations such as cross-storage mirroring management
commands (in response to a triggering a command from the host
manager module 301). The management control module 402 is
configured to communicate indirectly (as will be exemplified below)
with remote mirroring control (RMC) module 404 forming part of
remote management module 405) of remote storage manager 204 (all as
will be exemplified in greater detail below) which will execute the
specified remote mirror management command.
[0080] The management control module 402 is further in charge of
commencing a cross-storage snapshot creation management command (in
response to triggering a command from the host manager module 301).
The management control module 402 is configured to communicate
indirectly with remote snapshot creation (RSC) module 407 (of
remote storage management module 405) of remote storage manager 204
(all as will be exemplified in greater detail below), for executing
remote snapshot creation management command.
[0081] The remote storage manager further includes remote pool
resource control module 408 whose operation will be explained in
greater detail below.
[0082] Note also that the local storage manager 202 includes local
resource management module 409 for implementing operations on local
storage (pool), all as will be explained in greater detail
below.
[0083] Note that by the specific example of FIG. 4 only two remote
management operations (snapshot creation and mirroring) are
exemplified. The invention is of course not bound by the specified
remote mirroring and remote create snapshot operations.
[0084] Note that the invention is not bound by the specific
architecture of FIG. 4.
[0085] Turning now to FIG. 5, it shows a schematic illustration of
a host and extended storage pool, in accordance with certain
embodiments of the invention.
[0086] As shown, a so called local pool volume 501 is created (e.g.
by means of pool resource controller 401 of the local storage
manager 202--see FIG. 4). The pool volume complies with the general
structure of known per se volumes and in accordance with certain
embodiments has an initial size 0.
[0087] The local storage manager 202 (e.g. by means of pool
resource controller 401) further creates a handle 502 (e.g. in
accordance with the initiator-Target-LUN [ITL] paradigm) allocating
a unique LUN as part of the specified handle (handle being an
example of a link). Note that whilst the handle is depicted for
clarity as a physical connection between the host and volume, those
versed in the art will readily appreciate that the LUN is
indicative of a logical connection between a host and the pool
volume. The pool resource control module 401 further attaches the
handle to the pool volume 501 through target port 503 and the host
manager 201 attaches the handle to the host 10 through initiator
port 504, e.g. in compliance with the known per se volume ITL
paradigm, see U.S. application Ser. No. 12/957,613, filed 1 Dec.
2010, whose contents are incorporated herein by reference.
[0088] The pool volume 501 will be associated with a created pool
505 that forms part of the local storage (e.g. 203 of FIG. 2). Note
that each pool is defined by a name, the size of physical storage
associated with it, and logical volumes associated with it.
[0089] The specified architecture of local extended pool (including
the pool and the associated pool volume) will be utilized by the
host for triggering a management command for managing local
resources (such as create/delete local volumes/snapshots) and for
triggering remote management operations (such as create remote
snapshot/create remote mirror), in a manner that will be described
in more detail below.
[0090] As further shown in FIG. 5, a remote extended pool that
includes remote pool volume 510 and remote pool 511 (the latter
forms part of remote storage 205) and their association is created
by remote pool resource control module 408 of remote storage
manager 204.
[0091] A link between the local storage and the remote storage is
required in to order to convey the remote management commands
(originated from the host) to the remote side for execution at the
remote pool. More specifically, a link (e.g. a handle complying
with the ITL paradigm) is created between the management control
module 402 (of local storage manager 202--see FIG. 4) and the
remote pool volume 510. To this end, the pool resource control
module 408 of the local storage manager 202 (see FIG. 4) defines an
initiator port 507 and attaches it to the management control module
402. The remote pool resource control module 408 (of remote storage
manager 204), in turn, defines a target port 509 and attaches it to
the remote pool volume 510. It further allocates a LUN # (508) and
sends the data to the local pool resource control module for
associating the LUN 508 to initiator port 507, thereby creating a
handle facilitating communication (in compliance with the ITL
paradigm) between the management control module 402 and remote pool
volume 510, all as will be explained in greater detail below.
[0092] Note that the link (e.g. TTL based link, 502-504) between
the host and the local storage as well as between the local storage
and remote storage (e.g. 507 to 509), serve in accordance with
certain embodiments for conveying remote management commands (such
as create remote snapshot or create remote mirror), whereas
according to the prior art such links served for communicating I/O
commands (e.g. read data from/write data to storage resources such
as volumes and/or snapshots). Note also that the ITL paradigm is an
example only and is by no means binding.
[0093] It should be noted that the operation of the specified pool
resource control module 401 associated with the local storage
manager 202 may occasionally require the involvement of a human
resource administrator at the local site.
[0094] It should be also noted that the operation of the remote
pool resource control module 408 associated with the remote storage
manager 202 may occasionally require the involvement of human
resource administrator at the remote site.
[0095] Note also that association between a primary storage pool
e.g. 505 and a secondary storage pool e.g. 511 is performed by
associating the primary pool volume 501 with a secondary pool
volume 510. This is in useful for example if multiple primary pools
on a single primary storage are to be associated with multiple
remote pools on a secondary storage.
[0096] Turning now to FIG. 6 it shows a flow chart illustrating a
sequence of operations for generating a local and remote extended
pools by the respective storage manager (as outlined e.g. in FIG.
4), in accordance with certain embodiments of the invention.
[0097] Thus, in step 601, the pool resource control module 401 of
the storage manager module 202 creates an extended storage pool
that includes a pool of specific size and specific pool name (e.g.
505 of FIG. 5).
[0098] In step 602, the pool resource control module 401 creates a
volume (designated "pool volume" forming part of the extended pool)
of size 0 (e.g. 501) with a name which is algorithmically derived
from the storage pool. For instance, if VOL_TEST_POOL_NAME is the
pool name then the pool volume name (algorithmically derived
therefrom) may be VOL_TEST_POOL_NAME_ POOLVOLUME. Note that the
name relationship between the pool and the pool volume names is not
necessarily algorithmically derived and obviously not limited to
the example above which was provided for illustrative purposes
only.
[0099] In step 603, the pool resource control module 401 grants to
hosts access to the local storage pool 505. This is accomplished by
associating the pool volume 501 with the appropriate handle 502, in
a similar fashion to known per se creating and attaching a volume
to a host.
[0100] In step 604, the resource control module 401 associates
local pool volume 501 to management control modules 402 (of local
storage manager 202) and in step 605 receives a handle data (e.g.
LUN # 508) from the remote side and attaches it to so created
initiator port (e.g. 507) of management control module 402 to
thereby establish an ITL based communication between the local
management control module 402 and the remote pool volume 510. This
handle will serve for conveying remote management commands in an
I/O protocol format (e.g. SCSI)) to remote pool volume 510), all as
will be explained in greater detail below. To this end it
associates an initiator port (e.g. 507) to the management control
modules 402.
[0101] FIG. 6 further elaborates the operational stages performed
by the remote resource pool control module 408 of remote storage
manager 204. Thus, at stage 610, a remote extended storage pool
that includes a pool 511 is created. At stage 611 a remote pool
volume of size 0 with a name that is algorithmically derived from
the storage pool is created (510).
[0102] In stage 612 a target port (e.g. 509) is created at pool
volume 510 and a handle (including 508) is generated. The handle
data is sent (613) for attaching it to the management control
module at the local side (as described above), thereby establishing
an ITL based link between the management control module 402 and the
remote pool volume 510.
[0103] In accordance with certain embodiments the local and remote
pool volume names may also be related.
[0104] It should be noted that the utilization of the pool volumes
in the manner specified prescribes a certain privilege regime.
Thus, for example the utilization of the pool volume will only
allow the host to manage and access a local pool that is associated
to this given host. By the same token, in the remote side, only a
remote pool that is associated with the remote pool volume is
accessible.
[0105] Note that the invention is not bound by the specified
sequence of operations of FIG. 6.
[0106] Turning now to FIG. 7, it illustrates schematically remote
management operations, in accordance with certain embodiments of
the invention. For clarity of explanation, the description focuses
at first on implementing local operations at the local pool (e.g.
pool 505) before moving on to remote operation.
[0107] Thus, the host manager (associated with host 400) issues
through its local resource management module (303), a "create
volume V.sub.52 in a pool" command 701 (e.g. imbedded in a SCSI
command as will be discussed in greater detail below) and sends the
command to the appropriate pool volume 501. To this end, the host
utilizes the dedicated handle 502 attaching the host 400 to the
pool volume 501. The storage manager (e.g. through its local
resource manager 409--see also FIG. 4) receives and parses 702 the
command and executes, in a known per se manner, creation 703 of
volume V.sub.S2 704 in pool 505. For instance, the parsing (at the
local storage manager end, e.g. module 409) may include
transforming the SCSI command into a CLI (Command Line Interface)
format for implementing the management command, such as create
volume. As is well known, the SCSI command appears in a so called
CDB (Command Descriptor Block) format which can be modified to
incorporate a CLI format.
[0108] Reverting now to FIG. 7, note that pool 505 already
accommodates volume V.sub.S1 705 storing data 706 indicative, for
example, of snapshots of a primary volume (not shown in FIG. 7) of
host 400. The local resource management module 409 of the local
storage manager 202 executes this command by creating the requested
volume of the specified name and size in the specified pool,
allocating a free LUN number to it (712) in compliance with the ITL
paradigm. In accordance with certain embodiments, an ITL is created
which is based on this LUN and an initiator port 502 and target
port 711 which are the same as the ones allocated for the pool
volume 501. This can be illustrated, for example, in FIG. 7, where
the initiator port 710 is the same one for both LUN numbers
(represented graphically as LUNs 502 and 712). By the same token,
target port 711 is the same for both LUN numbers. As may be
recalled, the LUN numbers, whilst presented for simplicity as
having physical connections between the host and the respective
volumes, are in fact (as is well known) logical connections and
therefore the target port 711, although presented graphically as
two distinct "locations", may be common to both LUNs 502 and
712.
[0109] The description with reference to FIG. 7 illustrates an
exemplary management command i.e. create volume. Other management
commands can be implemented, e.g. deleting a volume from a given
pool, create local snapshot, etc. mutatis mutandis.
[0110] Note also that in accordance with certain embodiments, in
addition to "pool" and "pool volume", also other resources such as
"volume" and "volume snapshot" may have algorithmically derivative
names. Thus, for instance, a volume called say VOL_TEST is created.
A pool that is associated to this volume may have the name
VOL_TEST_POOL_NAME (where the volume VOL_TEST is algorithmically
derived from the pool name). All the snapshots in this volume may
have names that are algorithmically derived from the volume name,
for example: YYYY.MM.HH.MM.SS-VOL_TEST SNAPs (where VOL_TEST_SNAPs
signifies a snapshot associated with volume VOL_TEST and
YYYY.MM.HH.MM.SS signifies the snapshot's creation time). Note that
the name relationship between the pool, pool volume and other
resources' names is not necessarily algorithmically derived and
obviously not limited to the example above which is provided for
illustrative purposes only.
[0111] Note that the description with reference to FIG. 7
illustrates one form of resource, i.e. a standard volume. The
invention is however applicable to other resources of external
virtual memory, such as snapshots or thin volumes.
[0112] Having described local operations, the description below
with reference to FIG. 7 will now focus on the remote management
operations. Thus, consider for example, a remote operation such as
create remote snapshot, This command is originated by snapshot
creation module 302 (shown in FIG. 3) of remote management control
module 300 in host manager 201. This SCSI command (SCSI being an
example of I/O protocol) is transmitted through the LUN 502 to
local pool volume 501. In contrast to the processing of local
management command in the local resource management module 409 (as
discussed above), the latter module 409 receives the host
originated remote management command, analyses it and concludes
that it is a remote management command rather than local management
command and consequently sends it through link 7000 to management
control module 402. In accordance with certain embodiments, the
management control module 402 optionally generates and transmits a
cross storage (SCSI) command (indicative of create remote snapshot)
to remote pool volume 510 utilizing the ITL handle (initiator port
507, LUN 508 and target port 509).
[0113] Note that the cross-storage command may be the original
command sent from the host manager (using of course a different
initiator and target port, i.e. 507 and 509 instead of 710 and 711)
or a newly generated command (syntactically wise) but semantically
representative of the same host originated command (e.g. create
remote snapshot).
[0114] Note that the specified ITL handle (507 to 509) is typically
implemented over standard wide area network infrastructure, since
as specified, the remote side is typically geographically remote
from the local site.
[0115] The pool volume 510 at the remote side transmits (720) the
so received SCSI command to remote storage manager (not shown in
FIG. 7) and more specifically to remote resource management module
405 thereof. The remotely originated snapshot control module 407 of
the remote resource management 405 parses the command and executes,
in a known per se manner, (i.e. creation of remote snapshot in
remote pool 511). Note that the parsing of the command (at the
remote storage manager end, e.g. module 407) may include
transforming the SCSI command into a CLI (Command Line Interface)
format for implementing the management command, such as create
snapshot. As is well known, the SCSI command appears in a so called
CDB (Command Descriptor Block) format which can be modified to
incorporate a CLI format. Note that in accordance with certain
embodiments, the actual snapshotted data (e.g. the SCSI I/O command
of write snapshot data) utilizes also ITL links between the host
and the local storage as well as between the local storage and the
remote storage, in a known per se manner (as is the case with the
prior art system depicted in FIG. 1).
[0116] Note that the generation of the remote snapshot is
illustrated for example with reference to FIG. 2B, discussed
above.
[0117] An operation of remote mirroring management command is
performed in a similar manner mutatis mutandis, using for instance
remote mirror control module 404 in remote resource management
module 405 of remote storage manager 15.
[0118] Thus, for example, and as has been explained with reference
to FIG. 2B and 2C, local and remote volumes (say V.sub.1 and
RV.sub.1, respectively) are created utilizing the local storage
manager and remote storage managers, respectively. Having created
the volumes, a SCSI remote mirroring management command (e.g.
create volume pair V.sub.1, RV.sub.1) is originated by the host
manager. The SCSI command is transmitted to the local storage 203
(through LUN 502) and processed (including parsing) at the local
resource management module 409. The latter will indicate in local
volume management table 270 (at the remote mirror field 273
thereof) that the mirror volume of local volume V.sub.1 is
RV.sub.1. Next the command will be sent to the management control
module 402 which will generate a cross-storage "create volume pair"
SCSI command (having the same or different syntax) and will send it
through handle (LUN 508) to remote volume 510 which sends it to
remotely originated mirror creation module 404 (of remote resource
management module 405). Module 404 parses and processes the command
and consequently updates the primary volume field 283 of remote
table 280 by designating that V.sub.1 is the primary volume for
which RV.sub.1 serves as a mirroring module. Now, after having
created the volumes and utilizing the local and remote management
commands originated from the host for updating the respective
tables (thereby associating the volumes V.sub.1 and RV.sub.1),
known per se mirroring techniques may be utilized (also employing
in accordance with certain embodiments ITL based handles linking
between the host and the local storage as well as between the local
storage and remote storage) for implementing I/O commands (e.g.
SCSI) for actually writing at the remote volume RV.sub.1 the
mirrored data.
[0119] Note that whilst the description with reference to FIGS. 2
and 7 exemplified one to one correspondence between associated
modules (V.sub.1 and RV.sub.1), this is not necessarily the case
and accordingly, in accordance with certain embodiments, a few
mirror volumes may be associated to one primary volume.
[0120] Note that the description with reference to FIG. 7
illustrated only one pool 505 associated with the pool volume 501.
This however is not obligatory, and there may be more than one pool
associated with the specified pool volume. In this case the SCSI
command should indicate the name of the target pool.
[0121] Note that whilst the description with reference to FIG. 7
and various other embodiments illustrate usage of an SCSI command,
this is a non limiting example of I/O protocol for communicating a
storage.
[0122] Bearing this in mind attention is drawn to FIG. 8,
illustrating a sequence of operations for implementing a remote
create snapshot management command, in accordance with certain
embodiments of the invention. The description of FIG. 8 will
occasionally refer also to FIG. 7. Note that in accordance with
certain embodiments, when invoking a "create remote snapshot
management command", it is assumed that there is already available
a remote volume that is associated with a local volume and
designated to be a mirror thereof. The remote snapshot will be
performed for the remote volume, however, due to the "mirror"
relationship between the remote and local volumes, the remote
snapshot is in fact a snapshot of the local volume. Thus, at the
onset the host manager (e.g. remote management control module 300)
invokes a "create remote snapshot command" 801 embedded in SCSI
protocol. The purpose of this command is to generate a snapshot (at
a remote pool) to a volume stored in a remote pool. In accordance
with certain embodiments the host manager ascertains if the host
has permission to access the specified volume 802 (by this specific
example, this is achieved by simply accessing the pool volume which
is associated to a pool storing volumes that the host is permitted
to access), and if in the affirmative 803 the sequence continues,
otherwise the operation is aborted 804. The command is transmitted
through the local pool volume (e.g. 501) to local resource
management module 409. Since the command is a remote operation, it
is transmitted by the local resource management module local pool
volume to management control module 402. The management control
module identifies the remote volume (at the remote pool 505) that
corresponds to the local volume (step 805)) (e.g. utilizing table
270 of FIG. 2C). Having identified the corresponding volume, a
cross storage command is invoked 806 (e.g. CREATE REMOTE SNAPSHOT,
REMOTE VOLUME NAME). The command is embedded in a SCSI command and
is communicated through the ITL handle to remote pool volume 510
and is then parsed by the remote resource management module 405 and
converted to actually create remote snapshot in remote pool 511
(stage 807 at module 407). Note that the actual snapshotted data of
local volume V.sub.1 will be sent (according to the data snapshot
policy) for storing in the corresponding remote volume through a
link associating the local and remote storages, all as known per
se.
[0123] As may be recalled, the resulting remote snapshot 255 of the
remote volume 251 is depicted by way of example in FIG. 2B. The
actual data in the remote snapshot will be written only upon
invoking the BO remote operation of create remote snapshot, all as
known per se.
[0124] Note that the invention is not bound by the specified
specific sequence of operations as depicted in FIG. 8, and also not
by the specific modules depicted in FIG. 7.
[0125] It should be noted that in accordance with certain
embodiments, the notion of an extended storage pool is extended to
primary extended storage pool and secondary extended storage pool.
With reference (for clarity) to FIG. 2B, the notion of primary pool
(e.g. 253) and secondary pool (e.g. 202) is similar to the notion
of a primary volume (e.g. 254) and a secondary volume (e.g. 251).
That is, in the context of remote operations a primary storage pool
253 is associated with a secondary storage pool 252 on the remote
storage such that: [0126] 1. A remote secondary volume 251 will
reside in a remote pool 252 associated with the pool 253 of the
primary volume 254 [0127] 2. A remote snapshot 255 of a volume 251
will reside in a remote pool 252 associated with the pool 253 of
the local volume 254.
[0128] In accordance with certain embodiments, once the remote
storage pool is attached to the primary storage, it is viewed as an
extension of the primary storage, and from this point onwards the
primary storage administrator has full control over it by the ITL
access control mechanism. This mechanism minimizes the need for
coordination between the primary storage manager and the secondary
storage manager.
[0129] Thus, in accordance with certain embodiments, the following
advantages are achieved: [0130] Minimizes the need to coordinate
between local and remote storage administrators. [0131] Unifies
cross storage communication definition (e.g. ITL based between
local and remote pool volumes) to that of a storage host
communication definition (e.g. ITL based between the local host and
local storage)
[0132] In accordance with certain embodiments, when local and
remote pools are associated, one can specify that when creating a
volume in the primary volume, a mirror volume is automatically
created in the remote pool, either sync or a async, based on the
definition for the relationship between the pools. This may be
implemented, for example, by automatically triggering a CREATE
VOLUME PAIR command (see discussion below) in response to CREATE
LOCAL VOLUME command which generates a command at the local storage
(pool).
[0133] The following sections explain how a host (host manager) can
create/delete remote snapshots and manage remote mirroring using a
set of management operations in accordance with certain
embodiments. To execute these operations the host manager needs the
appropriate privileges to run these commands on the host, but these
privileges do not need to propagate to the storage, i.e. the
storage subsystem does not have to manage other privileges than
that of access control to volumes based on ITLs. In accordance with
certain embodiments, the utilization of pool volumes in the manner
specified may achieve the specified privileges.
[0134] Note that the invention is not bound by the listed commands
and/or their syntax and semantics.
Create Remote Snapshot
[0135] In accordance with certain embodiments, Create remote
snapshot command is of the form Create_Remote_Snapshot Volume_Name.
This command will create a snapshot of Volume_Name at the remote
site. The command is imbedded in a SCSI command and directed to the
primary volume for which the snapshot is to be taken. If the host
has access to the volume, the command will not be rejected. The
local storage system finds the corresponding name of the remote
volume and issues a cross storage system internal command of the
form Create.sub.-- Snapshot Remote_Volume_Name. Remote storage
system will not reject the command provided the remote volume
resides in a pool attached to the primary storage. Remote storage
subsystem will create a snapshot in the remote pool exactly the
same as for a host that creates a snapshot on the primary storage
system.
Delete Remote Snapshot
[0136] Delete remote snapshot command is of the form
Delete_Remote_Snapshot Remota_Snapshot_Name, Primary_Volume_Name.
This command will delete a remote snapshot Remote_Snapshot_Name of
a primary volume Volume_Name. Primary storage will honor the
command from the host if the latter has access to Volume_Name. The
local storage system finds the corresponding name of the remote
pool and issues a cross storage system internal command of the form
Delete_Snapshot Snapshot_Name, Remote_Pool_Volume_Name. Remote
storage system will not reject the command provided the remote pool
attached is attached the primary storage.
Query Remote Volumes
[0137] Query remote volumes command is of the form
Query_Remote_Volumes Primary_Pool_Name. This command lists all
remote volumes and their corresponding remote snapshots in a remote
pool corresponding to the primary pool. For regular remote volumes
the command will also list their corresponding local volumes if the
volumes are in mirroring relationship. Access control is as
above.
[0138] The following Create Volume Pair command will facilitate
remote mirroring operation, in accordance with certain
embodiments.
Create Volume Pair
[0139] Create Volume Pair is of the form Create_Volume_Pair
Primary_volume_name. This command will create a volume with a name
which optionally is uniquely derived from the primary volume name
on a remote storage pool corresponding to the storage pool in which
the primary volume resides. Once volume is created and associated
(e.g. in corresponding volume tables) the command will initiate
mirroring based on known per se mirroring command parameters (with
initial data synchronization, without data synchronization etc.),
utilizing e.g. in accordance with the specified Information Storage
publication. Note also that remote mirroring means either sync and
async mirroring all as known per se.
[0140] Note that in accordance with certain embodiments, the Create
pair operation will merely associate the respective volumes which
were created independently, as described above with reference to
certain embodiments of the invention.
Terminate Volume Pair
[0141] Terminate Create Volume Pair is of the form
Terminate_Volume_Pair Primary_volume_name. This command will
terminate a volume pair with the logic as above. Once executing the
specified command, remote mirroring will be terminated for the
specified local volume,
Delete/Create Remote Volume
[0142] Delete/Create Remote Volume allows a system administrator to
delete or create a volume from a remote pool provided the system
administrator has access to the corresponding local pool. The
command is of the form Delete/create_Remote_Volume
Remote_Volume_name, Primary_Pool_Name. Remote_Volume_Name is
created or deleted in a remote pool associated with
Primary_Pool_Name. Access control is as above. Note: volume
deletion is honored only if it is not a part of a mirror pair.
[0143] In accordance with certain embodiments, whenever remote
snapshot is specified in the command, it is identified by its name
and the associated primary volume. Alternatively, a remote snapshot
can be also identified by its name and remote pool name or by its
name and the corresponding primary pool name.
[0144] In accordance with certain embodiments, all consistency
group related commands both for snapshots and for remote mirroring,
are based on mechanisms above by providing the necessary atomicity
of operation on multiple volumes.
[0145] In embodiments of the presently disclosed subject matter,
fewer, more and/or different stages than those shown in FIGS. 6 and
8 may be executed. In embodiments of the presently disclosed
subject matter one or more stages illustrated in FIGS. 6 and 8 may
be executed in a different order and/or one or more groups of
stages may be executed simultaneously. FIGS. 2A, 3, 4, 5 and 7,
illustrate schematically the system architecture in accordance with
certain embodiments of the presently disclosed subject matter. Each
module in FIGS. 2A, 3, 4, 5 and 7 can be made up of any combination
of software, hardware and/or firmware that performs the functions
as defined and explained herein. The modules in FIGS. 2A, 3, 4, 5
and 7 may be centralized in one location or dispersed over more
than one location. In other embodiments of the presently disclosed
subject matter, the system may comprise fewer, more, and/or
different modules than those shown in FIGS. 2A, 3, 4, 5 and 7.
[0146] The subject matter of the present application can have
features of different aspects and/or embodiments described above or
their equivalents, in any combination thereof.
[0147] It will also be understood that the system according to the
presently disclosed subject matter may be a suitably programmed
computer. Likewise, the presently disclosed subject matter
contemplates a computer program being readable by a computer for
executing the method of the presently disclosed subject matter. The
presently disclosed subject matter further contemplates a computer
program product that includes a storage storing computer code for
executing the method of the presently disclosed subject matter.
[0148] While various embodiments have been shown and described, it
will be understood that there is no intent to limit the presently
disclosed subject matter by such disclosure, but rather, it is
intended to cover all modifications and alternate constructions
falling within the scope of the presently disclosed subject matter,
as defined in the appended claims:
* * * * *