1. Field of the Invention
The present invention relates generally to methods of backing up storage systems. In particular, the present invention relates to backing up of clustered file servers having multiple host interfaces and processors.
2. Description of Related Art
Clustering is the use of multiple computers, multiple storage devices, and redundant interconnections, to form what appears to users as a single highly-available system. Clustering can be used for load balancing as well as for high availability. A clustered file system (clustered Network Attached Storage (NAS)) includes a plurality of file systems, and creates at least one single namespace. A namespace is a set of valid names recognized by a file system that identifies the directory tree structure of the directories and file path names that combine to form a complete file system. The file system imposes structure on the address space of one or more physical or virtual disks so that applications may deal more conveniently with abstractly-named data objects of variable size, i.e., files. In a clustered file system, the file system (sometimes referred to as a “global file system”) may be distributed across multiple NAS devices, while appearing to a user as a complete single file system located on a single device. In the global file system, the namespace (or directory tree) of the file system may extend across multiple file servers or NAS systems. One method of achieving this under the Network File System (NFS) version 4 protocol involves providing network file system software on the NAS hosts whereby referrals on one host indicate the storage location of directories and files on another host.
Often, NAS systems may be heterogeneous, wherein the NAS hosts provide file services to distributed systems that may be running different operating systems or network protocols (i.e., a heterogeneous network). A standard backup protocol for a heterogeneous NAS system is referred to as Network Data Management Protocol (NDMP), which defines a common architecture for the way heterogeneous file servers on a network are backed up. This protocol (e.g., NDMP Version 4) is supported by most NAS systems for backing-up data (see, e.g., www. ndmp.org/download/sdk_v4/draft-skardal-ndmp4-04.doc). The NDMP protocol defines a mechanism and protocol for controlling backup, recovery, and other transfers of data between primary and secondary storages. The protocol will allow the creation of a common agent used by the central back-up application to back up different file servers running different platforms and platform versions. With NDMP, network congestion is minimized because the data path and control path are separated. Back up can occur locally from file servers directly to tape drives, while management can occur from a central location.
However, the NDMP protocol does not disclose how to backup data in a plurality of file systems using a single operation. Rather, when using NDMP for the backup operations, the backup programs that support NDMP have to issue a backup request in each file system. When NDMP is applied to a clustered NAS or a clustered file system, even if there is a single namespace, the backup program has to issue a plurality of backup requests due to there being a plurality of NAS hosts. Therefore, from the perspective of a user or client host, issuing a plurality of backup requests is a non-intuitive operation given that in the clustered NAS or clustered file system the file system is presented to the user as a single file system. This leads to an inconvenience and burden placed on the user or host that the present invention seeks to avoid.
Examples of prior art include Mike Kazar, “Spinserver Systems and Linux Compute Farms”, NetApp Technical Report White Paper, Network Appliance Inc., February 2004, www.netapp.com/tech_library/3304.html; Amina Saify et al., “Achieving Scalable I/O Performance in High-Performance Computing Environments”, Dell Power Solutions, February 2005, pp. 128-132, www.ibrix.com/dell_saify.pdf; and U.S. Pat. No. 6,782,389 to Chrin et al. These prior art documents provide general introductions to clustered file systems or clustered NAS. However, these documents do not disclose how to backup data in a clustered file system or clustered NAS environment.
Additionally, an updated Network File System (NFS) protocol, NFSv4 has been proposed (see, e.g., “NFS version 4 Protocol”, www.ietf.org/rfc/rfc3530.txt). However, while the NFSv4 protocol sets forth a “migration function”, this protocol also does not disclose any backup method in a clustered file system or clustered NAS environment.
Under the present invention, the backup operation for users or client hosts in clustered file systems is simplified. According to one aspect, the storage system has a plurality of file servers, a plurality of storage volumes, and interconnecting means to connect the plurality of file servers and plurality of storage volumes. Each file server manages at least its own local file system and constructs a single namespace from a plurality of local file systems in other file servers. Upon receipt of a backup request at a particular file server, that particular file server issues backup requests to other file servers.
These and other features and advantages of the present invention will become apparent to those of ordinary skill in the art in view of the following detailed description of the preferred embodiments.
The accompanying drawings, in conjunction with the general description given above, and the detailed description of the preferred embodiments given below, serve to illustrate and explain the principles of the preferred embodiments of the best mode of the invention presently contemplated.
In the following detailed description of the invention, reference is made to the accompanying drawings which form a part of the disclosure, and, in which are shown by way of illustration, and not of limitation, specific embodiments by which the invention may be practiced. In the drawings, like numerals describe substantially similar components throughout the several views. Further, the drawings, the foregoing discussion, and following description are exemplary and explanatory only, and are not intended to limit the scope of the invention or this application in any fashion.
Each disk storage 3A-3N has a FC interface 31, and disks 32A-1 to 32N-1 and 32A-2 to 32N-2. These disks may be hard disk drives or logical devices arranged and operable using a RAID (redundant arrays of independent disks) technique or other configurations. Client hosts 4 are typical PC/AT based architecture running UNIX or Windows operating systems, or the like. Client hosts 4 issue file access requests such as Network File System (NFS) or Common Interface File System (CIFS) protocol requests to file servers 1A-1N via a LAN switch 5 (e.g., an Ethernet switch).
A backup server 6 is provided to manage backup and restore operations for the file servers 1A-1N and is also connected to LAN switch 5. The hardware architecture of backup server 6 can be similar to the client hosts 4 or may be of a different hardware architecture. Backup device 7 may be a magnetic tape drive, magnetic tape library apparatus, optical disk drive, optical disk library or other type of storage device. Backup device 7 is connected to FC switch 2 such that it can be accessed by each file server 1A-1N using FC protocol.
According to one embodiment, file servers 1A-1N, FC switch 2 and disk storages 3A-3N are stored in a single cabinet. Alternatively, each of these elements may be placed at different locations. The number of file servers 1A-1N and the number of disk storages 3A-3N is variable and their numbers may not necessarily be equal to each other as in the exemplary illustration of
According to the present embodiment, even though each file server 1A-1N is physically connected with each disk storage 3A-3N, the file server only accesses one of the disk storages 3A-3N. File server 1A accesses storage system 3A, file server 1B accesses storage system 3B, and file server 1N accesses storage system 3N. However, according to a different embodiment, each file server 1A-1N may access all of the disk storages 3A-3N.
Under the invention, backup program 104 receives a backup or restore request from a backup manager 61 that resides on backup server 6. In response, backup program 104 executes backup/restore operations in the file system data of each file server 1A-1N, respectively, as will be discussed in greater detail below. The backup program 104 may reside in memory 13, be stored on disk, or be stored on other computer readable medium on the backup server 6. In another embodiment, the backup program 104 may reside in one of the client hosts 4 with NFS client program 41.
The local file system 102 of each file server 1A-1N creates a data structure in each disk 32 (corresponding to disks 32A-1 to 32N-1 and disks 32A-2 to disk 32N-2) so that one or more files or directories can be managed on each disk. This may be referred to as file system data. An example of such a data structure of file system data is illustrated in
Additionally, directory entry region 120 is composed of a plurality of directory entries 121. Each directory entry 121 corresponds to a directory in the file system data, and each directory entry 121 includes i-node number 71 and file/directory name 81 that are located under the directory. According to the present embodiment, each local file system of each file server 1A-1N maintains two file system data: a first file system data to store the binary files or the configuration files in each file server 1A-1N; and a second file system data to store the data from client hosts 4. For example, in file server 1A, the file system data to store the binary or the configuration files (the programs that work in the file server 1A such as local filesystem 102, backup program 104, and so on) is maintained in the disk 32A-2, and the file system data to store data from client hosts 4 is maintained in the disk 32A-1. As for the file system data to store data from client hosts 4, file server 1A maintains the directory tree that starts from “/hosta” (e.g. file server 1A mounts the file system data in the disk 32A-2 under the directory “/hosta”, where is under the root directory “/” in the file system data in the disk 32A-1), file server 1B maintains the directory tree that starts from “/hostb”, and file server 1N maintains the directory tree that starts from “/hostN”.
Network file system 103 presents to client hosts 4 (or backup server 6) a single (virtual) directory tree 175 by aggregating a plurality of directory trees constructed in the local file system 102 in each file server 1A-1N. An example of a single directory tree 175 is shown in
An example of the operation between each client host 4 and file server 1A-1N is explained below. According to the present embodiment, network file system 103 uses NFSv4 protocol and uses the “migration function” supported by that protocol. First, each client host 4 mounts the file system using the following command:
mount hostA:/hosta/usr1
After the mount operation, client host 4 can access all the file system data in hosts 1A-1N, such as the directory tree shown in
Is—al/usr1/a1/a3
This command is converted to a request in accordance with NFSv4 protocol by NFS client program 41, and the converted request is sent to host 1A. Supposing that the contents of the directory entry 121 of the directory “/hosta/a1” is as illustrated in
Is—al/usr1/a1/a4/b6.
In the present embodiment, the information that the files/directories under the directory “a4” are managed by host 1B is stored in the directory entry 121. When the i-node number 71 in the directory entry 121 is ‘−1’, it means that the files/directories under the directory whose name is in the file/directory name field 81 is in another file server, and the necessary information to access another file server is described in the file/directory name field 81 as the format of ‘directory name’:‘hostname’:‘filesystem name’ (the top directory name in the target file server where the corresponding directory resides). In
In this prior art backup method, the backup of the file system data is done using a single file server or a single NAS appliance. On the other hand, according to the present embodiment, since a single namespace is constructed over a plurality of file servers 1A-1N, the plurality of file servers 1A-1N need to backup data in the file system data that each is managing, and need to manage the backed-up data such that the backed up data from each of the files servers correlates with each other. Thus, in the present embodiment, a plurality of file system data are required to be backed-up in a single namespace which is composed of a plurality of file system data constructed across a plurality of file servers 1A-1N.
This operation may be performed sequentially. For example, first, file server 1A issues a backup request to file server 1B and when the backup operation of file server 1B is completed, file server 1A issues the backup request to the next file server having namespace data until the request has finally been sent to file server 1N. Once this is accomplished, the backup operation of the single namespace is completed. On the magnetic tape media 210, FILE-1 (213) is first recorded following the beginning of the tape 211 and EOF 212 is written. Next, FILE-2 (214) is created by file server 1B, is recorded on tape 210, and EOF 201 is written thereafter. Next, FILE-3 (215) is created and written to tape 210 by the next file server containing files to be backed up, and finally, when all the data has been backed up, another EOF 212 is written to the tape.
Elements 402-406 are attribute information of the archived file. When a single namespace has multiple archived files, multiple sets of these elements are stored. In the example of
Devicename 405 is a device file name (such as “/dev/hda2”, “/dev/dsk/c1t0d0s2”, etc.) assigned to the disk 32 by driver 101 where the file system data corresponding to pathname 404 is stored. Size 406 represents the total size of the file system data that is backed-up as archived data. Current file 407 stores the file no. information of the archived file that is stored in the archived data field (element 408). Finally, archived data 408 is the data of the archived file. Various types of data formats can be used such as that used by the UNIX tar command.
At step 1001, the process determines whether the file server 1A that received the request contains any of the directories or files specified in the request. It checks the directory entry 121 if the files or directories to be backed up are in the file server 1A or not. If all of the directories or files are in other file servers, the step proceeds to step 1010, and a backup request is issued to another file server by server 1A.
However, if the process determines that there are one or more files or directories managed by the file server 1A that received the request, the process proceeds to step 1002, where, if the backup manager 61 issues a request to create a snapshot of the file system data before backup, a snapshot is created. Thus, the invention also makes provision for creating snapshots for the namespace.
Next, at step 1003, the process collects information of file system data that is to be backed-up to create the attribute information for each file, such as file no. 402, root 403, pathname 404, devicename 405, and size 406 in
At step 1004, file server 1A issues requests to other file servers to collect backup information. When the other file servers receive this request, the backup programs in the other file servers perform steps 1002 and 1003, and send the collected information back to file server 1A. The details of the process that other file servers do are illustrated in
At step 1005, file server 1A receives the information collected by other file servers to which requests were issued.
At step 1006 file server 1A sends its own file system information to other file servers that may have requested this, if any.
At step 1007, the file system information (as described with reference to
Referring now to
At step 1013 the process determines whether there are other files or directories that are managed by other file servers that need to be backed up. If so, the process proceeds to step 1014. If not, the process ends.
At step 1014, the process issues a request to one of the other file servers to backup data by specifying the top directory name of the local file system data. Alternatively, when only backing up one or more files, the process specifies the list of file names to be backed-up. When the other file server receives the request, it executes the process described above with respect to step 1012 to create archived data by reading its disks and writing the archived data 408 to tape. After the backup operation finishes in the other file server, the other file server notifies file server 1A that the backup operation is finished. Upon receiving such notice at file server 1A, the process proceeds to step 1015.
At step 1015 the process determines if there are other file servers having additional files or directories that need to be backed-up and for which a backup operation has not been finished. If so, the process returns to step 1014 to issue a backup request to the second other file server where the additional files or directories are located. The requested second other file server performs the process described above for step 1012. When all of the file servers that need to back up data have finished backing-up the data, the process ends. Furthermore, according to a modified embodiment, step 1004 could be accomplished immediately after a snapshot is created in step 1002, and prior to data backup, in order to reduce the time lag in sequential creation of snapshots by the other servers.
Additionally, in another embodiment, rather than having the first file server to receive the request send all the backup requests in a centralized fashion, the backup requests may be distributed from the first file server to a second file server, and from the second file server to a third file server, and so forth, until all data has been backed up. This may be accomplished in the process described above, by backup programs 104 on the other file servers. Thus, when the second file server receives the backup request from the first file server, instead of merely carrying out step 1012, the program may begin the process of
Restore destination of the backup data: The combination of the “file server name and device filename”, or directory name of the file system is specified. When the restored destination is not specified, the data is restored to the original location (the same location as when the backup was done).
Files or directories to be restored: When not all of the files or directories need to be restored, the backup manager 61 specifies which files or directories should be restored and the restore destination must be specified.
Number of disks: When the file system in a single namespace is backed-up, the data may be spread across multiple file servers (and multiple disks). When the total size of the backed-up data is less than the size of a disk, users can choose the option to restore data into a single disk 32 or to the same number of disks as were in use when backup was performed. For example, according to one embodiment, when providing information of the number of the disks for restoring data to, users can choose “0” or “1”. If “0” is chosen, it may mean that the number of disks to be restored is the same as when the backup was performed. If “1” is chosen, it may mean that data is to be restored to a single disk. Further, when “1” is chosen, the restore destination must be specified, and should be specified as the device filename.
In
At step 1102 it is determined whether the restore destination is in the file server that received the restore request. If so, the process proceeds to step 1103, if not, the process proceeds to step 1106.
At step 1103, the file system data that are placed just under the root directory in the single directory tree 175 is restored to the disk. In the example of
At step 1104, the process determines if the number of disks to be restored is specified. If the process determines that data should be restored to a single disk the process proceeds to step 1105. If not, the process proceeds to step 1107.
At step 1105, the process restores the backup data into the same disk. In this case, some of the directory name information will need to be changed or updated. For example, when restoring data that host 1B had managed (b6, b7, b8 . . . ) into the same disk as the directories a1, a3 . . . , the directory information of a4 needs to be updated. Then, the directories or files (b6, b7, b8 . . . ) may be placed under directory a4.
Step 1106 a restore request is issued to the destination file server by the local server if the local server is determined not to be the destination to which the data is to be restored. When the destination file server receives the request the destination file server starts processing at step 1101 in
At step 1107, the process restores the backup data into other disks. At step 1102, if the destination is not the local file server, the restore request is issued to the destination file server.
Referring now to
At step 1202, a process similar to that at step 1103 of restoring the root file system data to the disk is performed.
At step 1203, a restore request is issued to the next file server. For example, when a second archived file that is stored in the tape device was originally backed-up by file server 1B, the process issues a restore request to file server 1B. After the restore operation is finished restoring data in the file server that received the restore request, the process receives notification that the restore by the other file server is completed. After receiving such notification, the process proceeds to step 1204.
At step 1204, it is determined whether all of the data is restored. If not, the process returns to step 1203 so that the restore request can be issued to the next file server. If all of the data is restored, the process ends.
Step 1205 is similar to step 1203 in that it issues a restore request to another file server. When the other file server receives the request the other file server starts processing at step 1101 in
In the above embodiments, the description was based on a file server system that creates a single namespace in accordance with NFSv4 protocol. However, the present invention is also applicable to other clustered file systems.
Thus, it may be seen that the present invention sets forth a simplified backup operation for users or client hosts in clustered file systems. A single backup command may be issued to a server to cause all files in a namespace spread across multiple storages to be automatically located and backed up. Further, while specific embodiments have been illustrated and described in this specification, those of ordinary skill in the art appreciate that any arrangement that is calculated to achieve the same purpose may be substituted for the specific embodiments disclosed. This disclosure is intended to cover any and all adaptations or variations of the present invention, and it is to be understood that the above description has been made in an illustrative fashion, and not a restrictive one. Accordingly, the scope of the invention should properly be determined with reference to the appended claims, along with the full range of equivalents to which such claims are entitled.