REMOTE VOLUME ACCESS AND MIGRATION VIA A CLUSTERED SERVER NAMESPACE
First Claim
1. A method of accessing data on a volume of a remote storage server via an extended global namespace of volumes of a cluster of storage servers, comprising the steps of:
- providing a global namespace of volumes of said cluster of storage servers, each of said volumes of said cluster of storage servers being linked into said global namespace via a junction corresponding to an internal mount point in said global namespace for a respective one of said volumes of said cluster of storage servers;
receiving, at one of said storage servers of said cluster of storage servers, at least one request from at least one client regarding data on at least one volume of said remote storage server, the client request including a volume identifier for the respective remote storage server volume,wherein said global namespace is extended to include the volume of said remote storage server, the volume of said remote storage server being linked into the extended global namespace via a junction corresponding to an internal mount point in the extended global namespace for the volume of said remote storage server;
querying, by said one of said storage servers of said cluster of storage servers using the volume identifier for the remote storage server volume, at least one database to obtain location information for the remote storage server volume, said location information being associated with said internal mount point in the extended global namespace for the remote storage server volume;
locating the remote storage server volume using said location information obtained from the database; and
accessing data associated with the located remote storage server volume.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method that provides users of network data storage systems with the ability to gain the advantages of a clustered storage server system, in which volumes stored on multiple server nodes are linked into a virtual global hierarchical namespace, without first having to migrate their data to the clustered storage server system. The system employs an extended virtual global hierarchical namespace that allows client systems to access, via the extended global namespace, volumes stored on the clustered storage server system and on one or more storage servers that are remote from and do not constitute a part of the clustered system. The extended global namespace can also be employed to perform migration of volume data among the multiple nodes of the clustered storage server system and the remote storage servers.
-
Citations
64 Claims
-
1. A method of accessing data on a volume of a remote storage server via an extended global namespace of volumes of a cluster of storage servers, comprising the steps of:
-
providing a global namespace of volumes of said cluster of storage servers, each of said volumes of said cluster of storage servers being linked into said global namespace via a junction corresponding to an internal mount point in said global namespace for a respective one of said volumes of said cluster of storage servers; receiving, at one of said storage servers of said cluster of storage servers, at least one request from at least one client regarding data on at least one volume of said remote storage server, the client request including a volume identifier for the respective remote storage server volume, wherein said global namespace is extended to include the volume of said remote storage server, the volume of said remote storage server being linked into the extended global namespace via a junction corresponding to an internal mount point in the extended global namespace for the volume of said remote storage server; querying, by said one of said storage servers of said cluster of storage servers using the volume identifier for the remote storage server volume, at least one database to obtain location information for the remote storage server volume, said location information being associated with said internal mount point in the extended global namespace for the remote storage server volume; locating the remote storage server volume using said location information obtained from the database; and
accessing data associated with the located remote storage server volume. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A method of tracking lock information pertaining to one or more lock requests issued by one or more clients to access one or more corresponding data storage entities, the corresponding data storage entities being stored on one or more storage servers within a network data storage environment including a plurality of storage servers, said method comprising the steps of:
-
in a first receiving step, receiving, by a first storage server, at least one lock request from at least one client to access at least one corresponding data storage entity, the corresponding data storage entity being stored on a second storage server, said first storage server having an associated lock manager; in a forwarding step, forwarding, by said first storage server, the lock request to said second storage server to obtain the requested lock on the corresponding data storage entity; in an obtaining step, obtaining, by said first storage server using said associated lock manager, a lock on a corresponding shadow data storage entity, said corresponding shadow data storage entity being representative of the data storage entity stored on said second storage server; in a storing step, storing, by said first storage server using said associated lock manager, lock information pertaining to said lock on said corresponding shadow data storage entity, wherein the stored lock information includes an identifier for the client obtaining the lock on the corresponding data storage entity, and an identifier for the corresponding data storage entity; in a second receiving step, receiving, at said first storage server, at least one notify request from said second storage server, the notify request pertaining to at least one data storage entity stored on said second storage server for which the client obtained a lock; and in response to the receipt of the notify request; in a consulting step, consulting the stored lock information to identify the data storage entity stored on said second storage server for which the client obtained the lock, and to identify the client that obtained the lock on the data storage entity; in a releasing step, releasing the lock on the shadow data storage entity representative of the identified data storage entity; and in a transmitting step, transmitting a notify request to the identified client. - View Dependent Claims (50, 51, 52, 53, 54, 55, 56, 57)
-
-
58. A method of migrating data from a source volume of a source storage server to a destination volume of a destination storage server, for use in a network data storage system including a cluster of storage servers and at least one remote storage server, said method comprising the steps of:
-
beginning a migration of said data by copying a first portion of said data from said source volume of said source storage server to said destination volume of said destination storage server, one or more of said source storage server and said destination storage server corresponding to said at least one remote storage server; in the event a predetermined remaining portion of said data has not yet been copied from said source volume to said destination volume, pausing client access to said source storage server; and while said client access to said source storage server is paused, performing the steps of; completing said migration of said data by copying said predetermined remaining portion of said data from said source volume to said destination volume; and modifying a global namespace of volumes of said cluster of storage servers to allow access to the migrated data on said destination volume via the modified global namespace. - View Dependent Claims (59, 60, 61)
-
-
62. A system for accessing data on a volume of a remote storage server via an extended global namespace of volumes of a cluster of storage servers, comprising:
-
a cluster of storage servers; wherein each of a plurality of volumes of said cluster of storage servers is linked into a global namespace via a junction corresponding to an internal mount point in said global namespace for a respective one of said volumes of said cluster of storage servers; at least one remote storage server; wherein said global namespace is extended to include at least one volume of said remote storage server, the volume of said remote storage server being linked into the extended global namespace via a junction corresponding to an internal mount point in the extended global namespace for the volume of said remote storage server; wherein at least one storage server of said cluster of storage servers is operative; to receive at least one request from at least one client regarding data on at least one volume of said remote storage server, the client request including a volume identifier for the respective remote storage server volume; to query, using the volume identifier for the remote storage server volume, at least one database to obtain location information for the remote storage server volume, said location information being associated with said internal mount point in the extended global namespace for the remote storage server volume; to locate the remote storage server volume using said location information obtained from the database; and to access data associated with the located remote storage server volume.
-
-
63. A system for tracking lock information pertaining to one or more lock requests issued by one or more clients to access one or more corresponding data storage entities, the corresponding data storage entities being stored on one or more storage servers within a network data storage environment including a plurality of storage servers, comprising:
-
a first storage server; a second storage server; wherein said first storage server has an associated lock manager; and wherein said first storage server is operative; to receive at least one lock request from at least one client to access at least one corresponding data storage entity, the corresponding data storage entity being stored on said second storage server; to forward the lock request to said second storage server to obtain the requested lock on the corresponding data storage entity; to obtain, using said associated lock manager, a lock on a corresponding shadow data storage entity, said corresponding shadow data storage entity being representative of the data storage entity stored on said second storage server; to store, using said associated lock manager, lock information pertaining to said lock on said corresponding shadow data storage entity, wherein the stored lock information includes an identifier for the client obtaining the lock on the corresponding data storage entity, and an identifier for the corresponding data storage entity; to receive at least one notify request from said second storage server, the notify request pertaining to at least one data storage entity stored on said second storage server for which the client obtained a lock; and in response to the receipt of the notify request, to consult the stored lock information to identify the data storage entity stored on said second storage server for which the client obtained the lock and to identify the client that obtained the lock on the data storage entity, to release the lock on the shadow data storage entity representative of the identified data storage entity, and to transmit a notify request to the identified client.
-
-
64. A system for migrating data from a source volume of a source storage server to a destination volume of a destination storage server, comprising:
-
a plurality of storage servers; wherein said plurality of storage servers includes a cluster of storage servers and at least one remote storage server; wherein a first one of said plurality of storage servers corresponds to a source storage server; wherein a second one of said plurality of storage servers corresponds to a destination storage server; wherein at least one of said plurality of storage servers is operative; to begin a migration of data by copying a first portion of said data from a source volume of said source storage server to a destination volume of said destination storage server, one or more of said source storage server and said destination storage server corresponding to said at least one remote storage server; in the event a predetermined remaining portion of said data has not yet been copied from said source volume to said destination volume, to pause client access to said source storage server; and while said client access to said source storage server is paused, to complete said migration of said data by copying said predetermined remaining portion of said data from said source volume to said destination volume, and to modify a global namespace of volumes of said cluster of storage servers to allow access to the migrated data on said destination volume via the modified global namespace.
-
Specification