Storage system, NAS server and snapshot acquisition method

The correspondence relationship between local paths in local namespaces for snapshots FS0-SNAP0, FS1-SNAP0, and FS2-SNAP0 of file systems FS0, FS1, and FS2 and global paths in a global namespace for those snapshots is defined so that the directory configuration in the global namespace of the snapshots FS0-SNAP0, FS1-SNAP0, and FS2-SNAP0 becomes the same as the directory configuration in the global namespace of the file systems FS0, FS1, and FS2.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application relates to and claims priority from Japanese Patent Application No. 2005-356941, filed on Dec. 9, 2005, the entire disclosure of which is incorporated herein by reference.

BACKGROUND

The present invention relates to a storage system, NAS (Network Attached Storage) server, and snapshot acquisition method, more particularly to a technique for applying a global namespace formed by grouping namespaces of one or more local file systems to snapshots of the respective file systems.

NAS, in which a storage system is connected to a network and managed as a shared disk for computers connected to the network well known. The NAS includes a NAS server having a network interface and a disk drive (or a disk array system combining a number of disk drives) for storing data. In recent years, a plurality of NAS servers has been combined to provide one service to deal with increase in storage capacity and sharing of load. In the above described NAS server management, a global namespace is well known, where namespaces of file systems managed by each NAS server are grouped into one namespace to eliminate the need for changes in the settings in the client required as a result of changes in the configuration of the file systems managed by each NAS server.

For example, U.S. Pat. No. 6,671,773 discloses a technique for presenting file systems including a plurality of network elements and disk elements as a single file system.

Meanwhile, a technique called “snapshot” for taking, at a certain time, the entire image of a file system managed by the NAS for the purpose of backing up or recovering a file or file system is well known. For example, a snapshot of a file system is obtained regularly and mounted to a predetermined local directory. Even if a failure occurs in a file or file system, the broken file or file system can be recovered by using the snapshot taken when that file or file system was working properly. Moreover, a user can perform recovery by him/herself, without an administrator. It is an advantage for the user. Usually, a snapshot is not a copy of data itself, but a technique for copying data link information and maintaining only differential data in updated data. Accordingly, a snapshot can be taken within a comparatively short time. The LVM (Logical Volume Manager) in Linux (Registered Trademark) has a snapshot function.

SUMMARY

However, in the above-described conventional technique, even if snapshots of file systems that provide a global namespace are obtained, a global namespace cannot be applied to those snapshots. Since a global snapshot cannot be obtained, a client has to understand the local namespaces of the file systems to access the snapshots of those file systems.

As shown inFIG. 13, when snapshots of the file systems FS0, FS1, and FS2managed by the NAS servers NAS0, NAS1, and NAS2are separately taken and those snapshots are mounted to “/mnt/fs0/snap0/fs0,” “/mnt/fs1/snap0/fs1” and “/mnt/fs2/snap0/fs2,” the directory configuration is as shown inFIG. 14. A global namespace cannot be applied to the snapshots FS0-SNAP0, FS1-SNAP0, and FS2-SNAP0of the file systems FS0, FS1, and FS2. If a snapshot of the file “cc” can be accessed with the path “/snap0/fs0/fs2/cc” (the root “/” in the global path being replaced with the root “/snap0” in the snapshot global path), the client does not need to know the local paths for the file systems FS0, FS1, and FS2. It is convenient for the client. However, the file “cc” cannot be accessed with the path “/snap0/fs0/fs2/cc,” as shown inFIG. 14. The client needs to know the local paths for the file systems FS0, FS1, and FS2to access the file “cc,” and therefore, the advantage of the global namespace cannot be utilized.

The present invention was devised in light of the above described problem, and an object of the present invention is to apply a global namespace formed by grouping namespaces of one or more local file systems to snapshots of the respective file systems.

To achieve the above-stated object, a storage system according to the present invention includes: a storage device for storing a file; one or more file systems for managing the file; and one or more NAS servers for controlling access from a client to the file system via a global namespace formed by grouping local namespaces of the one or more file systems. The NAS server has a global snapshot construction means for reconfiguring the global namespace so that the directory configuration in the global namespace of a snapshot of a file system obtained by its own or other NAS servers becomes the same as the directory configuration in the global namespace of the file system.

According to the present invention, a global namespace that includes a local namespace of a file system is also applied to a snapshot of the file system.

DETAILED DESCRIPTION

Embodiments of the present invention will be described below with reference to the drawings. The embodiments do not limit the scope of claims, and not all features described in the embodiments are essential to the present invention.

In Embodiment 1, one NAS server operates as a master NAS server, which instructs other NAS servers to obtain snapshots, and also creates and transmits snapshot management tables.

FIG. 1shows the system configuration of a storage system101according to Embodiment 1.

The storage system101is connected, via an external network127such as a LAN (Local Area Network), to one or more clients126and a computer125.

The computer125instructs the storage system101to generate file systems128A to128D in the storage system101, mount the file systems128A to128D, and take a snapshot. The computer125is a management terminal for managing the storage system101. Because the computer125is operated by an administrator, it has, at least, a user interface described later.

The client126is a computer (NAS client) that accesses files in the storage system101. More specifically, the client126writes files to, and reads files from, the storage system101. When the client126reads/writes a file, the file systems128A to128D in the storage system101are used. Although two clients126are shown inFIG. 1, only one or three or more client(s)126may be connected to the storage system101.

The external network127is a network for performing data communication according to a communication protocol, such as TCP/IP.

The storage system101is network attached storage (NAS). The storage system101includes one or more NAS servers110; a disk array system120; and a storage area network (SAN)130that mutually connects them.

Each NAS server110accesses files in the disk array system120in response to file access requests from the client(s)126.

The storage system101includes one or more NAS servers110. Although the storage system101shown in the example inFIG. 1includes two NAS servers110, it may include three or more NAS servers. A NAS server is also referred to as a “NAS head” or a “NAS node.”

The NAS server110includes: a network interface111; a CPU112, a local disk113; a memory114; and an adapter118.

The network interface111is an interface connected to the external network127to communicate with the client(s)126and the computer125.

The CPU112is a processor for controlling the operation of the NAS server110. More specifically, the CPU112executes a program stored in the memory114.

The local disk113stores server software115and various kinds of management information stored in the memory114. The memory114is, for example, semiconductor memory, and stores programs executed by the CPU112and data referred to by the CPU112. More specifically, the memory114stores: the server software115, a global namespace management table116, and a snapshot management table117.

The server software115usually includes a plurality of programs executed by the CPU112. The server software115will be described later in detail.

The global namespace management table116is a management table including information about the configuration of a global namespace. The global namespace management table116is defined in advance by a system administrator, and shared by all NAS servers110that provide the global namespace. When the NAS server110receives a file access request from the client(s)126, it refers to the global namespace management table116. When the directory configuration in the global namespace is changed, the global namespace management table116is also changed accordingly.

The snapshot management table117is a management table including information about the configuration of a local snapshot and global snapshot. The snapshot management table117is created every time a global snapshot is obtained, and referred to when the NAS server110receives a request from the client(s)126to access the snapshot data.

The adapter118is an interface connected to the SAN130to communicate with the disk array system120.

The SAN130is a network for performing communication according to fibre channel or SCSI protocol.

The NAS servers110are mutually connected via an inter-server network131and can communicate with each other. When the content of the global namespace management table116in a first NAS server110from among a plurality of the NAS servers110is updated, the updated content is transmitted via the inter-server network131to a second NAS server110from among the NAS servers110, and the content in the global namespace management table116in the second NAS server110is also updated. The snapshot management table117and data required for creating the snapshot management table117are also transmitted and received, via the inter-server network131, to/from the NAS servers110.

In the present embodiment, the inter-server network131that is independent from the SAN130and the external network127is provided as shown inFIG. 1. However, the NAS servers110may also communicate via the SAN130or the external network127. Alternatively, the NAS servers110may communicate by using a disk cache122in the disk array system120. For example, when the global namespace management table116in a first NAS server110from among a plurality of NAS servers110is updated, the first NAS server110writes the updated content to the disk cache122. A second NAS server110from among the NAS servers110then reads the updated content written in the disk cache122and updates the global namespace management table116in the second NAS server110. Alternatively, when a number of storage systems101are mutually connected, the NAS servers110included in the storage systems101can use any communication means out of the inter-server network131, the SAN130, the external network131, and the disk cache122. The present embodiment can be used whichever communication means the NAS server110uses.

When a global namespace includes only the file systems managed by some of the NAS servers110, the global namespace management table116and the snapshot management table117may be shared only by those NAS servers.

The disk array system120includes: a disk controller121; a disk cache122; and a plurality of disk drives123A to123D.

The disk controller121has one or more ports for connection with the SAN130, communicates with the NAS servers110, and controls the disk array system120. More specifically, the disk controller121communicates, via the SAN130, with the NAS servers110, and controls data input/output to/from the disk drives123A to123D in response to file access requests from any NAS server110.

The disk cache122is, for example, semiconductor memory, and temporarily stores data that is to be read and written by the disk drives123A to123D.

The disk drives123A to123D are storage devices for storing data. The disk drives123A to123D may be various kinds of disk drive, such as FC (Fibre Channel) disk drives, SATA (Serial Advanced Technology Attachment) disk drives, PATA (Parallel Advanced Technology Attachment) disk drives, FATA (Fibre Advanced Technology Attachment) disk drives, and SCSI (Small Computer System Interface) disk drives. Although four disk drives123A to123D are included in the disk array system120in the example shown inFIG. 1, any number of disk drives may be included.

RAID (Redundant Arrays of Inexpensive Disks) configuration can be applied in a storage area provided by the disk drives123A to123D. The storage area provided by each of the disk drives123A to123D is divided into an arbitrary number of logical devices124A to124D. The logical devices124A to124D are storage areas managed as logical disk drives by the disk controller121. When the RAID configuration is applied in the disk drives123A to123D, one logical device may be composed of the storage areas of a plurality of disk drives123A to123D as shown inFIG. 1. Each of the logical devices124A to124D has an arbitrary storage capacity. The server software115uses one or more logical devices124A to124D as logical volumes for storing the file systems128A to128D and snapshots. The NAS servers110control file access from the client(s)126to the disk array system120by using the file systems128A to128D created on the logical volume or the snapshots.

The storage system101may include a plurality of disk array systems120. In that case, those disk array systems120are connected to the SAN130. The NAS servers110can access any disk array system120via the SAN130.

FIG. 2shows the software configuration of the server software115according to the present embodiment. The server software115includes: a network processing program201, a file system processing program202, a disk access program203, a server management processing program204, an inter-server communication processing program205, and a snapshot instruction management program206.

The network processing program201controls communication between the client(s)126, the computer125, and the NAS servers110via the external network127.

The file system processing program202handles requests for access from each client126to files in the file systems128A to128D and performs processing concerning the file systems128A to128D. For example, the file system processing program202generates the file systems128A to128D in response to an instruction from the computer125. Also, upon receiving a file handle request designating a directory name or a file name from each client126, the file system processing program202performs name resolution and returns the file handle. The file system processing program202also obtains snapshots of the file systems128A to128D, creates the snapshot management table117, and transmits the snapshot management table117to other NAS servers110, in response to an instruction from the computer125. The file system processing program202functions as a global snapshot construction means.

The disk access program203accesses the data in the file systems128A to128D in response to access requests from the client(s)126.

The server management processing program204communicates with the computer125and configures the settings for the NAS servers110. For example, the server management processing program204, receiving an instruction to obtain a snapshot from the computer125or other NAS servers110, communicates the instruction to the file system processing program202, and obtains the snapshot.

The inter-server communication processing program205controls communication between the NAS servers110via the inter-server network131. When the global namespace management table116is updated or the snapshot management table117is created, the inter-server communication processing program205transmits the updated or created content to other NAS servers110.

The snapshot instruction management program206instructs its own or other NAS server110to obtain a snapshot. More specifically, the snapshot instruction management program206instructs other NAS servers110to obtain a snapshot, via the inter-server communication processing program205. The snapshot instruction management program206also schedules snapshot acquisition in its own NAS server110and instructs the file system processing program202to obtain the snapshot according to the schedule. The snapshot instruction management program206functions as snapshot acquisition instruction means.

FIG. 3shows the system configuration of the computer125. The computer125includes: a network interface111, a CPU112, a local disk113, a memory114, and an adapter118. Its hardware configuration is the same as that of the NAS server110. The memory114in the computer125stores management terminal software1101. The management terminal software1101includes: a user interface program1102; a snapshot instruction management program1103; and a network processing program1104. The memory114in the computer125may store the global namespace management table116and/or the snapshot management table117. The adapter118is not always necessary.

The user interface program1102receives processing instructions from a system administrator and displays processing results.

The snapshot instruction management program1103instructs the NAS servers110to obtain snapshots. The snapshot instruction management program1103schedules the timing to instruct the NAS servers110to obtain the snapshot, and instructs the file system processing program202in each NAS server110to obtain the snapshot according to the predetermined schedule. The snapshot instruction management program1103creates the snapshot management table117based on information from the NAS server110that has been instructed to obtain the snapshot, and transmits the table to the NAS server110.

The network processing program1104controls communication between the computer125and the NAS servers110via the external network127.

FIG. 4shows the directory configuration of a local file system according to the present embodiment. InFIG. 4, three NAS servers110(respectively referred to as NAS0, NAS1, and NAS2in some cases, for the interest of convenience) are shown. In NAS0, the file system FS0is mounted to a directory path represented by “/mnt/fs0,” and the file “aa” in the file system FS0can be accessed with the path represented by “/mnt/fs0/aa.”

Although, for ease of explanation, one NAS server manages one file system in the present embodiment, one NAS server may manage a plurality of file systems.

FIG. 5shows the directory configuration of a global namespace according to the present embodiment. InFIG. 5, a global namespace is formed by grouping the local namespaces of the file systems FS0, FS1, and FS2provided by NAS0, NAS1, and NAS2shown inFIG. 4. For example, the file “cc” in the file system FS2can be accessed with a path (global path) represented by “/fs0/fs2/cc.”

The part enclosed by a dotted line is a namespace referred to as a pseudo file system in NFSv4, based on directory paths for connecting separate namespaces. The pseudo file system looks like common directories for clients.

FIG. 7shows the global namespace management table116according to the present embodiment. The global namespace management table116includes: a file system name501, a global path502, and a local path503. The file system name501is the name of a local file system. The global path502is a directory path indicating the connection point in the global namespace of a file system specified by the file system name501. The local path503is a directory path indicating the mount point on the NAS server of a file system specified by the file system name501. For example, the file system FS0is connected to the directory with the global path502represented by “/fs0” in the global namespace, and mounted to a directory with the local path503represented by “/mnt/fs0” on the NAS server0.

By sharing the global namespace management table116among all NAS servers that provide the global namespace and allocating the different file accesses from the clients126to the respective NAS servers110, the file systems FS0, FS1, and FS2provided by the NAS servers110shown inFIG. 4can be presented to the clients126as a single namespace shown inFIG. 5.

FIG. 6shows the directory configuration in the global namespace based on the snapshot according to the present embodiment. In the example shown inFIG. 6, snapshots FS0-SNAP0, FS1-SNAP0, and FS2-SNAP0of the respective file systems FS0, FS1, and FS2are connected to the global path represented by “/snap0,” and the directory configuration of each of the snapshots FS0-SNAP0, FS1-SNAP0, and FS2-SNAP0(the directory configuration with the root (starting point) “/snap0”) is the same as the directory configuration in the global namespace (the directory configuration with the root “/”) including the local namespaces of the file systems FS0, FS1, and FS2.

FIG. 8shows a snapshot management table117according to the present embodiment. The snapshot management table117includes: a snapshot name901, a global path902, and a local path903. The snapshot name901is a name of a snapshot of a local file system. The global path902is a directory path indicating the connection point in the global namespace of a snapshot specified by the snapshot name901. The local path903is a directory path indicating the mount point on the NAS server of a snapshot specified by the snapshot name901. For example, FS0-SNAP0is a snapshot that is mounted to a directory with the global path902represented by “/snap0/fs0” in the global namespace and mounted to a directory with the local path903represented by “/mnt/fs0/snap0/fs0” on the NAS server0.

As described above, access via the global namespace to a snapshot can be provided to the clients126by defining the correspondence relationship (i.e. defining the connection point in the global namespace of the snapshots FS0-SNAP0, FS1-SNAP0, and FS-SNAP0) between the local paths for the snapshots FS0-SNAP0, FS1-SNAP0, and FS2-SNAP0in the local namespace and the global paths for those snapshots in the global namespace so that the directory configuration in the global namespace of the snapshots FS0-SNAP0, FS1-SNAP0, and FS2-SNAP0of the file systems FS0, FS1, and FS2obtained by the NAS server110becomes the same as the directory configuration in the global namespace of the file systems FS0, FS1, and FS2.

FIG. 9is a sequence chart showing snapshot acquisition processing according to the present embodiment. When a system manager operates the computer125to instruct the snapshot acquisition, the computer125gives a snapshot acquisition instruction to any one of the NAS servers110(referred to as a “master NAS server”) that provide a global namespace (S11). The master NAS server receives the snapshot acquisition instruction in cooperation with the server management processing program204and the snapshot instruction management program206.

The master NAS server manages and transmits the global namespace management table116and the snapshot management table117. The master NAS server may be determined in advance from among a plurality of NAS servers; or NAS server110that has been accessed first by the computer125.

Next, the master NAS server refers to the global namespace management table116that its own apparatus has, and sequentially or simultaneously instructs the file system processing program202in all NAS servers110, which manage their respective file systems described in the global namespace management table116, to obtain a snapshot of each file system (S12). As described above, the snapshot acquisition instruction program206in the master NAS server is transmitted to the file system processing program202in the designated NAS server via the inter-server communication program205in the master NAS and that in the designated NAS server.

In the case where the master NAS server instructs its own apparatus to obtain a snapshot, the snapshot acquisition instruction is transmitted from the snapshot acquisition instruction program206to the file system processing program202in the master NAS server.

The NAS server110, receiving the snapshot acquisition instruction, activates the file system processing program202and performs processing for acquiring a snapshot of the designated file system (S13).

Next, that NAS server110mounts the obtained snapshot to a predetermined local directory and notifies the master NAS server of the local path for that snapshot (S14).

The master NAS server creates a snapshot management table117based on that global namespace management table116(S15). In other words, the master NAS server obtains the global path902for the snapshot name901(The snapshot name may be set arbitrarily, as long as it can be recognized by a manager or the client(s)126.) corresponding to the file system name501by replacing the root “/” in the global path502with the root “/snap0” in the global path902(The root of the global path902may be set to an arbitrary directory.) for the snapshot, writes that global path902to the snapshot management table117, and writes the local path903to the snapshot management table117based on the information about the local path for the snapshot it was sent from by the NAS servers110in S14.

Even when the notification of the local path from some of the NAS servers is delayed, the master NAS server can easily determine the instruction the notification has been made for, from “snap0” included in the local path sent from each NAS server, because the master NAS server instructs each NAS server to obtain the snapshot identified by, e.g. SNAP0, or to mount the obtained snapshot to the local path including “snap0” in the present embodiment.

When the local path has not been sent from some of the NAS servers even after a certain period of time has passed since the master NAS server instructed the NAS servers to obtain a snapshot, the entire global namespace of the snapshot at this moment may be made invalid and processing after S15may be skipped. Alternatively, the global namespace may be constructed to include only the local namespaces of the snapshots that have been communicated.

However, when the file systems are hierarchically connected in the global namespace as FS0and FS2in the present embodiment, and the relevant NAS server fails to obtain a snapshot of the upper file system, or the snapshot FS0-SNAP0of FS0in this example, and do not communicate the local path of that snapshot, FS2-SNAP0cannot be connected to the global namespace. In this case, the global namespace can be constructed to include the local namespaces of successfully obtained FS2-SNAP0and FS1-SNAP0by defining the directory “/snap0/fs0/fs2” for connecting FS2-SNAP0as a pseudo-file system, as shown in the example inFIG. 17. At this moment, only the rows corresponding to the snapshot names901(FS1-SNAP0and FS2-SNAP0) in the snapshot management table117shown inFIG. 8are filled.

In the sequence chart shown inFIG. 9, processing in only one NAS server other than the master NAS server is shown, for ease of explanation. When there is a plurality of NAS servers besides the master NAS server, those other NAS servers execute the same processing.

When the snapshot acquisition for all file systems is finished and the snapshot management table117is completed, the master NAS server transmits the snapshot management table117created in S15to all NAS servers that provide the global namespace (S16). Even when the snapshot acquisition for some file systems fails as described above and the snapshot management table117is created using only the successfully obtained snapshots, the master NAS server transmits the snapshot management table117to all NAS servers including those that manage the snapshots that have not been successfully obtained in S16.

After that, the global namespace can be constructed in the storage system101to include local namespaces of snapshots by using the snapshot management table117. Accordingly, access from the clients126to the snapshots becomes easier.

FIGS. 1 to 8apply not only to Embodiment 1, but also to other embodiments.

In Embodiment 2, the computer125instructs each NAS server110to obtain a snapshot, creates the snapshot management table117based on snapshot local paths received from the NAS servers110in response to the above instruction, and transmits the snapshot management table117to the NAS servers110. The snapshot instruction management program1103in the computer125instructs snapshot acquisition, and creates and transmits the snapshot management table117. The global namespace management table116may be managed in the computer125, or the computer125may obtain the global namespace management table116from any of the NAS servers110when creating the snapshot management table117.

FIG. 10is a sequence chart showing snapshot acquisition processing according to the present embodiment. When the system administrator instructs a user interface program1102in the computer125to obtain a snapshot, the snapshot instruction management program1103refers to the global namespace management table116, and sequentially or simultaneously instructs the file system processing programs202in all NAS servers110that manage the file systems written in the global namespace management table116to obtain a snapshot of their respective file systems (S21). The snapshot acquisition instruction from the snapshot instruction management program1103in the computer125is transmitted, via the network processing program1104in the computer125and the inter-server communication processing program205in the designated NAS server110, to the file system processing program202in the designated NAS server110.

The NAS server110, receiving the snapshot acquisition instruction, activates the file system processing program202and performs processing for acquiring a snapshot of the designated file system (S22).

Next, that NAS server110mounts the obtained snapshot to a predetermined local directory and notifies the master NAS server of the local path for that snapshot (S23).

The computer125creates a snapshot management table117based on the global namespace management table116(S24). In other words, the computer125obtains the global path902for the snapshot name901(The snapshot name may be set arbitrarily, as long as it can be recognized by a manager or the client(s)126.) corresponding to the file system name501by replacing the root “/” in the global path502with the root “/snap0” in the global path902(The root of the global path902may be set to an arbitrary directory.) for the snapshot, writes that global path902to the snapshot management table117, and writes the local path903to the snapshot management table117based on the information about the local path for the snapshot it was sent from by the NAS servers110in S23.

Even when the notification of the local path from some of the NAS servers is delayed, the computer125can easily determine the instruction the notification has been made for, from “snap0” included in the local path sent from each NAS server, because the computer125instructs each NAS server to obtain the snapshot identified by, e.g. SNAP0, or to mount the obtained snapshot to the local path including “snap0” in the present embodiment.

When the local path has not been sent from some of the NAS servers even after a certain period of time has passed since the computer125instructed the NAS servers to obtain a snapshot, the entire global namespace of the snapshot at this moment may be made invalid and processing after S24may be skipped. Alternatively, the global namespace may be constructed to include only the local namespaces of the snapshots that have been communicated.

However, when the file systems are hierarchically connected in the global namespace as FS0and FS2in the present embodiment, and the relevant NAS server fails to obtain a snapshot of the upper file system, or the snapshot FS0-SNAP0of FS0in this example, and do not communicate the local path of that snapshot, FS2-SNAP0cannot be connected to the global namespace. In this case, the global namespace can be constructed to include the local namespaces of successfully obtained FS2-SNAP0and FS1-SNAP0by defining the directory “/snap0/fs0/fs2” for connecting FS2-SNAP0as a pseudo-file system, as shown in the example inFIG. 17. At this moment, only the rows corresponding to the snapshot names FS1-SNAP0and FS2-SNAP0in the snapshot management table117shown inFIG. 8are filled.

In the sequence chart shown inFIG. 10, processing in only one NAS server is shown, for ease of explanation. When there is a plurality of NAS servers, those other NAS servers execute the same processing.

When the snapshot acquisition for all file systems is finished and the snapshot management table117is completed, the computer125transmits the snapshot management table117created in S24to all NAS servers that provide the global namespace (S25). Even when the snapshot acquisition for some file systems fails as described above and the snapshot management table117is created using only the successfully obtained snapshots, the computer125transmits the snapshot management table117to all NAS servers including those that manage the snapshots that have not been successfully obtained in S25.

After that, the global namespace can be constructed in the storage system101to include local namespaces of snapshots by using the snapshot management table117. Accordingly, access from the clients126to the snapshots becomes easier.

In Embodiment 3, the NAS servers110operate synchronously with each other and are scheduled to obtain their respective snapshots at the same predetermine time. One of a plurality of NAS servers110operates as a master NAS server, and creates the snapshot management table117and transmits the table to the other NAS servers110. In the snapshot instruction management program206in each NAS server110, the timing (or hour) of acquiring a snapshot of each file system is preset and all NAS servers that provide the global namespace operate synchronously with each other.

FIG. 11is a sequence chart showing snapshot acquisition processing according to the present embodiment. In each NAS server110, a snapshot acquisition instruction is transmitted at the same predetermined time from the snapshot instruction management program206to the file system processing program202in its own apparatus, and the file system processing program202performs processing for acquiring a snapshot for a file system (S31).

Next, each NAS server110mounts the obtained snapshot to a predetermined local directory and notifies the master NAS server of the local path for the snapshot (S32).

In the sequence chart shown inFIG. 11, only processing in one NAS server other than the master NAS server is shown, for ease of explanation. When there are several NAS servers besides the master NAS server, those other NAS servers perform the same processing.

Next, the master NAS server creates a snapshot management table117based on the global namespace management table116(S33). In other words, the master NAS server obtains the global path902for the snapshot name901(The snapshot name may be set arbitrarily, as long as it can be recognized by a manager or the client(s)126.) corresponding to the file system name501by replacing the root “/” in the global path502with the root “/snap0” in the global path902(The root of the global path902may be set to an arbitrary directory.) for the snapshot, writes that global path902to the snapshot management table117, and writes the local path903to the snapshot management table117based on the information about the local path for the snapshot it was sent from by the NAS servers110in S32.

Even when the notification of the local path from some of the NAS servers is delayed, the master NAS server can easily determine the instruction the notification has been made for, from “snap0” included in the local path sent from each NAS server, because the master NAS server instructs each NAS server to obtain the snapshot identified by, e.g. SNAP0, or to mount the obtained snapshot to the local path including “snap0” in the present embodiment.

When the local path has not been sent from some of the NAS servers even after a certain period of time has passed since the master NAS server instructed the NAS servers to obtain a snapshot, the entire global namespace of the snapshot at this moment may be made invalid and processing after S33may be skipped. Alternatively, the global namespace may be constructed to include only the local namespaces of the snapshots that have been communicated.

However, when the file systems are hierarchically connected in the global namespace as FS0and FS2in the present embodiment, and the relevant NAS server fails to obtain a snapshot of the upper file system, or the snapshot FS0-SNAP0of FS0in this example, and do not communicate the local path of that snapshot, FS2-SNAP0cannot be connected to the global namespace. In this case, the global namespace can be constructed to include the local namespaces of successfully obtained FS2-SNAP0and FS1-SNAP0by defining the directory “/snap0/fs0/fs2” for connecting FS2-SNAP0as a pseudo-file system, as shown in the example inFIG. 17. At this moment, only the rows corresponding to the snapshot names FS1-SNAP0and FS2-SNAP0in the snapshot management table117shown inFIG. 8are filled.

When the snapshot acquisition for all file systems is finished and the snapshot management table117is completed, the master NAS server transmits the snapshot management table117created in S33to all NAS servers that provide the global namespace (S34). Even when the snapshot acquisition for some file systems fails as described above and the snapshot management table117is created using only the successfully obtained snapshots, the master NAS server transmits the snapshot management table117to all NAS servers including those that manage the snapshots that have not been successfully obtained in S34.

After that, the global namespace can be constructed in the storage system101to include local namespaces of snapshots by using the snapshot management table117. Accordingly, access from the clients126to the snapshots becomes easier.

In Embodiment 4, the NAS servers110operate synchronously with each other and are scheduled to obtain their respective snapshots at a predetermined time, and the computer125creates the snapshot management table117and transmits the table to the other NAS servers110. The global namespace management table116may be managed in the computer125. Alternatively, the computer125may obtain the global namespace management table116from any of the NAS servers110when creating the snapshot management table117.

FIG. 12is a sequence chart showing snapshot acquisition processing according to the present embodiment. In each NAS server110, a snapshot acquisition instruction is transmitted at a pre-synchronized time from the snapshot instruction management program206to the file system processing program202in its own apparatus, and the file system processing program202performs processing for acquiring a snapshot for a file system (S41).

Next, each NAS server110mounts the obtained snapshot to a predetermined local directory and notifies the computer125of the local path for the snapshot (S42).

In the sequence chart shown inFIG. 12, only processing in one NAS server is shown, for ease of explanation. When there are several NAS servers, those NAS servers perform the same processing.

Next, the computer125creates a snapshot management table117based on the global namespace management table116(S43). In other words, the computer125obtains the global path902for the snapshot name901(The snapshot name may be set arbitrarily, as long as it can be recognized by a manager or the client(s)126.) corresponding to the file system name501by replacing the root “/” in the global path502with the root “/snap0” in the global path902(The root of the global path902may be set to an arbitrary directory.) for the snapshot, writes that global path902to the snapshot management table117, and writes the local path903to the snapshot management table117based on the information about the local path for the snapshot it was sent from by the NAS servers110in S42.

Even when the notification of the local path from some of the NAS servers is delayed, the computer125can easily determine the instruction the notification has been made for, from “snap0” included in the local path sent from each NAS server, because the computer125instructs each NAS server to obtain the snapshot identified by, e.g. SNAP0, or to mount the obtained snapshot to the local path including “snap0” in the present embodiment.

When the local path has not been sent from some of the NAS servers even after a certain period of time has passed since the computer125instructed the NAS servers to obtain a snapshot, the entire global namespace of the snapshot at this moment may be made invalid and processing after S43may be skipped. Alternatively, the global namespace may be constructed to include only the local namespaces of the snapshots that have been communicated.

However, when the file systems are hierarchically connected in the global namespace as FS0and FS2in the present embodiment, and the relevant NAS server fails to obtain a snapshot of the upper file system, or the snapshot FS0-SNAP0of FS0in this example, and do not communicate the local path of that snapshot, FS2-SNAP0cannot be connected to the global namespace. In this case, the global namespace can be constructed to include the local namespaces of successfully obtained FS2-SNAP0and FS1-SNAP0by defining the directory “/snap0/fs0/fs2” for connecting FS2-SNAP0as a pseudo-file system, as shown in the example inFIG. 17. At this moment, only the rows corresponding to the snapshot names FS1-SNAP0and FS2-SNAP0in the snapshot management table117shown inFIG. 8are filled.

When the snapshot acquisition for all file systems is finished and the snapshot management table117is completed, the computer125transmits the snapshot management table117created in S43to all NAS servers that provide the global namespace (S44). Even when the snapshot acquisition for some file systems fails as described above and the snapshot management table117is created using only the successfully obtained snapshots, the master NAS server transmits the snapshot management table117to all NAS servers including those that manage the snapshots that have not been successfully obtained in S44.

After that, the global namespace can be constructed in the storage system101to include local namespaces of snapshots by using the snapshot management table117. Accordingly, access from the clients126to the snapshots becomes easier.

Embodiments 1 to 4 have been described for the case where a global namespace is constructed to include local namespaces of snapshots obtained at a certain point in time. In Embodiment 5, a plurality of global namespaces is constructed when each NAS server obtains snapshots at different points in time.

However, because the processing sequence for constructing the global namespace to include local namespaces of snapshots at each point in time is identical to that described in any of Embodiments 1 to 4, the description will be omitted.

FIG. 16shows an example of the configuration in the global namespace including local namespaces of a plurality of snapshots according to the present embodiment.

For example, when the snapshot obtained by each NAS server110at a certain point in time is mounted to a local path, as shown inFIG. 13, and a global namespace including the local namespace of the snapshot is constructed on the root “/snap0” according to the sequence described in any of Embodiments 1 to 4, the snapshot obtained by each NAS server110at the next point in time is mounted to a local path including “/snap1” as shown inFIG. 15, and a global namespace including the local namespace of that snapshot can also be constructed on the root “/snap1” as shown inFIG. 16, according to the processing sequence described in any of Embodiments 1 to 4.

In the same manner, global namespaces including snapshots obtained at several points in time can be constructed on the roots “/snap2,” “/snap3,” . . . etc.

Also, the snapshot management table117at each point in time may be obtained by the snapshot instruction management program1103in the computer125from the NAS servers110, transmitted to the user interface program1102, and output by the user interface program1102to the management display1901shown inFIG. 18.

In the management display1901inFIG. 18, a snapshot acquisition time1903, a file system1904, and a local path1905that a snapshot corresponding to a snapshot identifier1902is mounted to are presented for each snapshot identifier1902. Regarding any snapshot that has not been obtained successfully, the local path is not displayed, as in the entry in the file system column1904for FS0corresponding to the snapshot identifier1902which indicates SNAP2. When a new file system is added to the global namespace, a new file system column1904is added and the local path1905for a snapshot corresponding to the snapshot identifier1902obtained thereafter is written. When a file system is deleted, the file system column1904is not changed, but the local path1905is not written there in the entry corresponding to the identifier of a snapshot obtained after the file system is deleted. Accordingly, even when the configuration in the global namespace is changed, the changes can be managed in the management display1901.