WO2016098152A1 - 情報システム - Google Patents

情報システム Download PDF

Info

Publication number
WO2016098152A1
WO2016098152A1 PCT/JP2014/083108 JP2014083108W WO2016098152A1 WO 2016098152 A1 WO2016098152 A1 WO 2016098152A1 JP 2014083108 W JP2014083108 W JP 2014083108W WO 2016098152 A1 WO2016098152 A1 WO 2016098152A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
storage device
file server
program
information
Prior art date
Application number
PCT/JP2014/083108
Other languages
English (en)
French (fr)
Inventor
純平 滝安
健志 北村
幸二 帆波
信之 雑賀
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2014/083108 priority Critical patent/WO2016098152A1/ja
Publication of WO2016098152A1 publication Critical patent/WO2016098152A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Definitions

  • a computer such as a server or a PC (Personal Computer) has a main storage device composed of a volatile storage medium and an auxiliary storage device such as an HDD. Normally, operation using information stored in the main storage device is performed, but when the operation is stopped, the information is saved in the auxiliary storage device.
  • the memory dump function dumps the entire main storage device data to an auxiliary storage device such as a flash memory, and then assists the OS when it is restarted.
  • auxiliary storage device such as a flash memory
  • One object of the present invention is to speed up recovery when an OS failure occurs.
  • An information system includes one or more bases having a local file server and a client, and a data center having a center file server.
  • the local file server provides information on the updated file in the memory of the local file server.
  • the file is recorded in the updated list, the file in which the information is recorded in the update list is reflected on the center file server, and then the information about the file is deleted from the update list.
  • the local file server When the local file server cannot continue the execution of the first program group, the local file server causes the processor to start executing the second program.
  • the local file server By executing the second program, the local file server a) Identify the area where the update list exists from the memory, b) reading information about the updated file from the identified area; c) A process of storing information about the read updated file in the storage device is performed.
  • the file server can be quickly returned to an operable state without causing data loss.
  • program may be used as the subject, but in practice, the program is executed by a processor (CPU (Central Processing Unit)) to perform a predetermined process. However, to prevent the explanation from becoming redundant, the program may be described as the subject. Further, part or all of the program may be realized by dedicated hardware.
  • Various programs may be stored in a computer-readable storage medium, and the various programs may be installed in each device via the storage medium.
  • the storage medium for example, an IC card, an SD card, a DVD, or the like may be used.
  • various programs may be distributed and installed on each device by a program distribution server.
  • Core is a base (aggregation base) including a remote computer system, for example, a base that collectively manages servers and storage devices or a base that provides cloud services.
  • Enterprise is a base including a local computer system, for example, a base where a user actually performs business such as a branch office, a sales office, or a remote office.
  • a “stub” is an object (metadata) associated with file storage location information (information indicating a link destination).
  • “Stubbing” refers to deleting data (actual data) from an Edge (Edge computer system) file and maintaining only management information. Since the stubbed file does not hold actual data, it is necessary to acquire actual data from the Core computer system when accessed. For this reason, access performance to a stubbed file is lower than that of a normal file.
  • Replication refers to copying (duplicating) files created and updated with Edge to Core.
  • replication since the contents of the files in Edge and Core become the same by copying the file in Edge to Core, “replication” is sometimes referred to as “synchronization”.
  • Migration refers to staggering an Edge file after replicating the file in Edge to Core.
  • “File system” generally means a program for retrieving and operating data stored in a storage device, or on a storage device to enable data retrieval and operation. May also mean created data structure.
  • a program for searching and operating data stored in a storage device is called a “file system program”, and a data structure created on the storage device is called a “file”. Called "system”.
  • “Mount” means a procedure (process) for allowing an application program or operating system to access a file system.
  • a procedure for enabling access to a data structure (file system) stored in a storage device is referred to as “mounting a file system”.
  • Device file refers to an interface for the operating system to access an input / output device such as a disk.
  • An operating system (such as the first kernel) executed by the local file server 30 in the embodiment described below is managed by assigning a unique device file name to each storage device such as a logical unit (LU).
  • a program executed on the local file server 30 can access the LU by designating a device file name and issuing an access request.
  • LU logical unit
  • FIG. 1 is a diagram illustrating a hardware configuration of the information system according to the embodiment.
  • the computer system of Edge 10 includes a storage device 20, one or more local file servers 30, and one or more clients 40.
  • the local file server 30 is an example of a local file server.
  • the local file server 30 is connected to the client 40 via, for example, a communication network 50 (for example, a LAN (Local Area Network)).
  • the local file server 30 is connected to the storage apparatus 20 via, for example, a communication network 60 (for example, SAN (Storage Area Network)).
  • FIG. 1 shows a configuration in which only one CTL 21 and DISK 23 exist, but a plurality of CTLs 21 and DISKs 23 may exist.
  • One or more RAID groups may be configured by the plurality of DISKs 23.
  • the storage device 20 exchanges block level I / O requests with the local file server 30.
  • the I / O request transmitted from the local file server 30 is received by the CTL 21, and the CTL 21 that has received the I / O request executes data I / O to an appropriate DISK 23 based on the content of the I / O request. To do.
  • the local file server 30 includes a memory 31, a CPU 32, a NIC (Network Interface Controller) 33, and an HBA (Host Bus Adapter) 34.
  • a CPU 32 is connected to the memory 31, the NIC 33, and the HBA 34.
  • the NIC 33 is a communication interface device that communicates with the center file server 120 and the client 40.
  • the HBA 34 is a communication interface device that communicates with the storage apparatus 20.
  • the memory 31 is a high-speed accessible storage device such as a RAM (Random Access Memory).
  • the CPU 32 executes a program (for example, an OS (Operating System) kernel program) that controls the local file server 30 stored on the memory 31.
  • the local file server 30 may have another type of storage resource in addition to or instead of the memory 31.
  • the memory 31 is an example of a storage device.
  • the client 40 includes a memory 41, a CPU 42, a NIC 43, and a DISK 44.
  • the client 40 may have other types of storage resources in addition to or instead of the memory 41 and / or the DISK 44. Further, for example, HDD or SSD is used for the DISK 44.
  • the configuration in which the DISK 44 is built in the client 40 is not essential, and the DISK 44 may be an external configuration, that is, a configuration in which the DISK 44 and the client 40 are connected to each other via an HBA or the like.
  • the CPU 42 reads the program stored in the DISK 44 onto the memory 41 and executes the program. Further, the client 40 transmits a file level I / O request to the local file server 30 via the NIC 43.
  • the user 1 who is a user of the information system according to the embodiment of the present invention can move to each Edge 10 and can use the client 40 in any Edge 10.
  • the storage device 110 includes a storage controller (denoted as CTL in the figure) 111 and a DISK 113.
  • the configuration of the storage device 110 and the configuration of the storage device 20 are the same.
  • a storage device that adopts a hardware configuration different from that of the storage device 20 may be used as the storage device 110.
  • the center file server 120 includes a memory 121, a CPU 122, a NIC 123, and an HBA 124. Instead of or in addition to the memory 121, another type of storage resource may be provided.
  • the CPU 122 executes a program (for example, an OS kernel program) that controls the center file server 120 stored on the memory 121.
  • the center file server 120 communicates with the local file server 30 via the NIC 123 and the communication network 80.
  • the center file server 120 performs block level I / O to the storage apparatus 110 via the HBA 124.
  • FIG. 2 is a software configuration diagram of the information system according to the embodiment.
  • the CTL 21 (111) uses one or more storage areas of the DISK 23 to form one or a plurality of LUs (Logical Units) 24 (114), and the local file server 30 (center file server 120). ).
  • the local file server 30 (center file server 120) stores a file in the LU 24 (114) provided from the storage apparatus 20 (110).
  • various programs used by the local file server 30 may be stored in the LU provided by the storage apparatus 20 (110).
  • the information system according to the present embodiment employs a configuration in which various programs used by the local file server 30 (center file server 120) are stored in the LU 25 (115) formed by the storage apparatus 20 (110). This LU 25 (115) is called OS LU 25 (115) in order to distinguish it from the LU 24 (114).
  • a data mover program 37 (125) and a file system program 36 (126) are stored in the memory 31 of the local file server 30 and the memory 121 of the center file server 120.
  • the memory 31 of the local file server 30 further stores a file sharing program 35, a first kernel 38, a second kernel 38-2, and a hypervisor 39.
  • a kernel 127 is stored in the memory 121 of the center file server 120.
  • the program executed by the local file server 30 is stored in the OS LU 25 before the local file server 30 is activated.
  • the program executed by the center file server 120 is stored in the OS LU 115 before the center file server 120 is activated.
  • the data mover program 37 in the local file server 30 is referred to as “local mover”, and the data mover program 125 in the center file server 120 is referred to as “remote mover”. "Mover program”. Files are exchanged between the local file server 30 and the center file server 120 via the local mover 37 and the remote mover 125.
  • the file system program 36 (126) is a program for storing and managing files and file management information in the LU 24 (114).
  • the file management information includes various information (for example, information indicating the size and location of the file) regarding each file and directory.
  • the file management information the contents of management information necessary for replication processing and pre-download processing, which will be mainly described in the embodiment of the present invention, will be described later.
  • the file sharing program 35 is a program that provides a file sharing service to the client 40 using a communication protocol defined for file access, such as CIFS (Common Internet File System), NFS (Network File System), or the like.
  • CIFS Common Internet File System
  • NFS Network File System
  • the file sharing program 35 calls the local mover 37, reads the file to be accessed from the LU 24, and returns it to the client 40.
  • FIG. 4 is an explanatory diagram of file management information managed by the local file server 30 (or the center file server 120) according to the embodiment of the present invention.
  • a data structure of a metadata area 241 and an actual data area 242 is constructed.
  • the metadata area 241 stores inode that is management information of each file
  • the actual data area 242 stores actual data of the file.
  • This data structure in the LU 24 is created by the file system program 36 when the local file server 30 uses the LU 24 for the first time.
  • a data structure similar to that described above is also constructed in the LU 114 used by the center file server 120 to store files. This is created when the file system program 126 uses the LU 114 for the first time.
  • file system the above-described data structure built in the LU 24 (114) is referred to as a “file system”.
  • the process of creating this file system in the LU 24 (114) is called “creating a file system”.
  • file system means a program for interpreting this data structure and performing data operations in response to a user request, in addition to the data structure constructed on the storage device for storing the file.
  • file system program 36 (126) a data structure constructed in the LU 24 (114) is referred to as a “file system”.
  • a program (file system program 36 (126)) for interpreting the contents of the file system and performing data (file) operations is referred to as a “file system program”.
  • the configuration of the file inode 201 stored in the metadata area 241 will be described. Although information other than the information described below can be stored in the inode, here, the information used in the processing performed in the embodiment of the present invention will be mainly described.
  • the inode 201 is a field of an inode number 220a, an owner 220b, an access right 220c, a size 220d, a last access date / time 220e, a stubbing flag 220f, a replication completed flag 220g, a link destination 220h, and a data block address 220i.
  • Each inode 201 in the metadata area 241 is assigned a unique number in the metadata area 241 called an inode number, and the inode number 220a stores this inode number.
  • the owner 220b and the user ID of the owner of the file managed by this inode 201 are stored.
  • the access right 220c stores access right information (readable, writeable, etc.) of the file managed by the inode 201.
  • the size 220d stores the size of the file managed by this inode 201.
  • the latest access date / time 220e stores information on the latest date / time when the file managed by the inode 201 was accessed.
  • the data block address 220i is a plurality of fields in one inode 201, and stores the address of the area where the actual data of the file managed by this inode 201 is stored.
  • the stubbing flag 220f, the replicated flag 220g, and the link destination 220h are fields used by the local mover 37 according to the embodiment of the present invention.
  • information indicating whether or not the file managed by the inode 201 is stubbed is stored by the local mover 37. When “0” is stored, this file is not stubbed, and when “1” is stored, this file is stubbed.
  • the replicated flag 220g information indicating whether or not the file managed by the inode 201 has been replicated to the center file server 120 is stored by the local mover 37. When “0” is stored, this indicates that the file managed by this inode 201 has not yet been replicated to the center file server 120. When “1” is stored, the file managed by this inode 201 Represents that it has been replicated to the center file server 120.
  • the link destination 220h information indicating the storage destination (link destination) in the Core 100 of the actual data of the file managed by the inode 201 is stored.
  • information on the storage location in the center file server 125 is stored in the link destination 220h.
  • a URL Uniform Resource Locator
  • the data mover program 125 of the center file server 120 determines the storage location.
  • the center file server 120 transfers a file in response to a request from the local file server 30, the file management information including the link destination 220h is also transferred to the local file server 30.
  • the local mover 37 is a program that is called from the file sharing program 35 and operates. When called from the file sharing program 35, the local mover 37 uses the file system program 36 to read and write the file to be accessed. It is also a program for performing processing such as replication described below.
  • the local mover 37 uses the file system program 36 to read a file to be replicated (actual data of the file indicated by the inode 201 and the data block address 220i of the inode). Then, the local mover 37 transfers the read file to the center file server 120.
  • the remote mover 125 writes the file (replication target file) transferred from the local mover 37 to the LU 114 of the storage apparatus 110 using the file system program 126.
  • the local mover 37 uses the file system program 36 to set the replication flag 220g of the target file stored in the LU 24 to “1”.
  • the contents of an update list 402 described later are updated. The update list 402 will be described later.
  • the local mover 37 deletes the replicated file (strictly, the actual data of the file) in the LU 24, and the LU 24 stores the stub ( (Metadata) only (perform so-called stubbing process).
  • This realizes substantial migration of replicated files.
  • “1” is stored in the stubbing flag 220f of the file to be stubbed, and the value of the data block address 220i is set to NULL.
  • the local mover 37 receives a read request from the client 40 for the file from which the actual data has been deleted, the local mover 37 refers to the stub (file management information, i.e., inode), thereby transferring the actual data of the file via the remote mover 125.
  • the acquired file is transmitted to the client 40.
  • the “stub” is an object (metadata) associated with file storage location information (information indicating a link destination, that is, a link destination 220h). Due to the action of the local mover 37, the client 40 does not recognize that the file stored in the LU 24 is a stub without actual data.
  • one local mover 37 and one file sharing program 35 are executed for one file system. Therefore, for example, when two file systems are created in the local file server 30 (the file systems are called file system A and file system B), the local file server 30 performs processing for the file system A.
  • the local mover 37 and the file sharing program 35 in charge are executed, and the local mover 37 and the file sharing program 35 in charge of processing for the file system B are executed.
  • the local mover 37 and the file sharing program 35 in charge of processing for a certain file system (referred to as “file system X”) are respectively referred to as “local mover 37 for file system X” and “file system X”.
  • the file sharing program 35 "is called.
  • Management software 70 is software for managing the local file server 30.
  • the management software 70 is used when an administrator (user) of the local file server 30 stops (shuts down) the local file server 30 for maintenance work or when the local file server 30 is instructed to synchronize files. .
  • the management software 70 provides a GUI or CLI to the administrator (user) of the local file server 30, and the administrator issues an instruction to the local file server 30 using this GUI or CLI.
  • the management software 70 may be implemented as a part of the first kernel 38, the hypervisor 39, or the data mover program 37.
  • the memory 41 of the client 40 stores an application 45, a file system program 46, and a kernel 47.
  • the application 45 is software (application program) that the client 40 uses according to the purpose of work.
  • the kernel 47 is substantially the same as the kernel 38 (127) described above.
  • the file system program 46 is a program for processing a file access request from the application 45 or the like.
  • the file system program 46 receives a file access request from the application 45 or the like, if the file to be accessed is a file in the DISK 44, the file system program 46 performs an access process to the file stored in the DISK 44.
  • the file to be accessed is a file managed by the local file server 30, it communicates with the file sharing program 35 using a protocol such as CIFS or NFS, and is stored in the LU 24 (the file managed by the local file server 30).
  • a protocol such as CIFS or NFS
  • the hypervisor 39 is a program for operating a so-called virtual machine on the local file server 30.
  • the hypervisor 39 operates at least two virtual machines.
  • one of the two virtual machines is referred to as VM # 1 (element 391 in FIG. 3), and the other is referred to as VM # 2 (element 392 in FIG. 3).
  • the hypervisor 39 virtualizes the CPU 32 and the memory 31 that are physical resources in the local file server 30 and creates a virtual machine using the virtualized memory and the virtualized CPU. .
  • programs such as the first kernel 38 are executed using a virtual CPU and a virtual memory on the virtual machine.
  • a virtual machine has virtualized resources in addition to a virtualized CPU and virtualized memory. For example, there are virtualized input / output devices (network devices, etc.). (The explanation is omitted because it is not directly related to the explanation of the example)
  • a storage space constructed with virtual memory allocated to VM # 1 (391) is referred to as VM memory space 311.
  • a storage space constructed by virtual memory allocated to VM # 2 (392) is referred to as VM memory space 312.
  • the VM memory space 311 and the VM memory space 312 are spaces of the same size.
  • a program operating on the VM memory space 311 cannot directly access the VM memory space 312.
  • a program that operates on the VM memory space 312 cannot directly access the VM memory space 311.
  • FIG. 3 shows a state in which the first kernel 38 is executed only on VM # 1.
  • the first kernel 38 is stored in the VM memory space 311 and executed by a virtual CPU (not shown).
  • the first kernel 38 when the first kernel 38 starts execution (starts up) in the VM # 1, the first kernel 38 is a predetermined storage area in the VM memory space 311 (second kernel area 311 ′ in FIG. 3). Secure.
  • the first kernel 38 stores the second kernel 38-2 (which is a program as described above) in a partial area on the second kernel area 311 '.
  • the second kernel 38-2 is not executed normally. Although details will be described later, the execution of the second kernel 38-2 is started when the execution of the first kernel 38 is stopped due to a problem such as a program defect.
  • the first kernel 38 normally uses an area other than the second kernel area 311 ′ in the VM memory space 311 (the area other than the second kernel area 311 ′ in the VM memory space 311 is used as a file. Various programs such as the system program 36 are loaded and executed). The operation of the second kernel 38-2 will be described later.
  • a file (or a file to be updated) created in the local file server 30 by a user who uses the client 40 is referred to as a “user file”.
  • the user file includes a directory created / updated by the user.
  • the local file server 30 creates management information (file) called an update list 402 one by one in each LU 24.
  • the update list 402 is one of the files managed by the file system program 36, but is not created by the user. Created by the local mover 37.
  • the update list 402 is created in the file system, for example, directly under the root directory. When there are a plurality of LUs 24, the update list 402 is created for each LU 24. That is, one update list is created for each file system.
  • FIG. 6 An example of the update list 402 is shown in FIG. As shown in FIG. 6, a plurality of sets of MAGIC Number 411 and path name list 412 are stored in the update list 402 side by side.
  • MAGIC Number 411 is a character string (byte string) created according to a predetermined rule.
  • the data stored immediately after the MAGIC Number 411 that is, the path name list 412 is provided so as to be identified as the contents of the update list 402.
  • file names of files to be reflected on the center file server 120 are stored with full paths.
  • the same byte string is stored in all MAGIC Numbers 411 in one update list 402.
  • the local file server 30 is configured to construct a file system in a plurality of LUs 24 and store files in each LU 24, a different MAGIC Number 411 is used for each update list 402.
  • the device file name (file name such as / dev / sd1c) assigned to each LU 24 by the first kernel 38 is included in the MAGIC Number 411.
  • MAGIC Number 411 and path name list 412 each have a fixed size.
  • the size of the MAGIC Number 411 is 32 bytes
  • the size of the path name list 412 is 992 bytes.
  • the MAGIC Number 411 is arranged in the update list 402 at 1 KB intervals.
  • file names that could not be stored in the first path name list 412 are stored in the second and subsequent path name lists 412.
  • NULL is stored immediately after the last file name stored in each path name list 412.
  • an inode number may be stored instead of a configuration in which a file name (path name) is stored in the path name list 412.
  • the update list 402 is finally stored in the LU 24.
  • the update list 402 is edited on the VM memory space 311. I do.
  • the update list 402 resides in the VM memory space 311 and is reflected in the LU 24 asynchronously (for example, every 10 minutes) with editing (update) of the update list 402. Therefore, even when a large number of user files 401 are updated in the local file server 30 in a short period of time, only the update list 402 existing in the memory (on the VM memory space 311) is updated in principle.
  • the first kernel 38 may be stopped (shut down) according to an instruction from the administrator of the local file server 30. This event may occur, for example, when the local file server 30 is maintained. In this case, the contents of the update list 402 on the VM memory space 311 are reflected in the LU 24 before the first kernel 38 is stopped.
  • the flag file 403 is a file created by the local mover 37 and stored in the LU 24. When there are a plurality of LUs 24, a flag file is stored in each LU 24. The flag file 403 is used to determine whether the local file server 30 was abnormally stopped last time when the local file server 30 was started. Specific usage will be described later.
  • the file name of the flag file 403 is a file name having a name different from any file name stored in the root directory of the LU 24 (for example, a name “.flagfile”). Further, the flag file 403 may be a file having no actual data (a file having a size of 0 bytes). Although the example in which the flag file 403 is stored in the LU 24 has been described above, a rule of storing the flag file in the OS LU 25 may be adopted.
  • the processing flow of the local mover 37 will be described with reference to FIGS.
  • the VM memory space 311 may be abbreviated as “memory”, but “memory” refers to the VM memory space 311 unless otherwise specified.
  • the local mover 37 is read into the memory (VM memory space 311) by the first kernel 38 when the first kernel 38 is activated, and its execution is started. At that time, the file sharing program 35 and the file system program 36 are also loaded on the VM memory space 311 and started to be executed.
  • the local mover 37 When the execution of the local mover 37 is started, the local mover 37 confirms whether the flag file 403 exists in the LU 24. If the flag file 403 exists (S501: Y), the contents of the replicated flag 220g are checked for all files in the LU 24 (S502). Then, the local mover 37 creates the update list 402 on the memory, and stores the file name of the file whose replication completed flag 220g is “0” in the update list 402 (S503). The update list 402 created here is also stored in the LU 24.
  • an event refers to a processing request from a user or another program (for example, the file system program 36).
  • An event includes a type of processing (hereinafter referred to as “event type”) and information necessary for the processing.
  • event type a type of processing
  • the local mover 37 performs processing designated by the event type included in the event.
  • An event is a request issued from a program other than the local mover 37 in principle. However, when the local mover 37 issues an event and the local mover 37 receives the event, the local mover 37 may perform the process specified by the event.
  • the local mover 37 determines the event type. Events include at least a synchronization event, a file update event, and an OS stop event.
  • the local mover 37 receives the synchronization event, the file that has not been replicated to the center file server 120 among the files stored in the local file server 30 is copied to the center file server 120. This process is called “synchronization process”.
  • the administrator of the local file server 30 issues a synchronization instruction (referred to as a synchronization event) to the local mover 37 using the management software 70, the synchronization event is received by the local mover 37 and the synchronization process is started. Further, the local mover 37 may issue a synchronization event periodically (such as every 5 minutes). In this case, when the local mover 37 receives the synchronization event issued by itself, the synchronization process is started.
  • the local mover 37 reads the update list 402 (S507).
  • the update list 402 if the update list 402 is in the memory (VM memory space 311), the update list 402 on the memory is read.
  • the update list 402 may not exist in the memory immediately after the local file server 30 is started. In that case, the local mover 37 reads the update list 402 on the LU 24 and stores it in the memory.
  • an update list 402 exists for each LU 24. Therefore, the update list 402 of each LU 24 is read.
  • the local mover 37 reads the update target file recorded in the update list 402 from the LU 24 using the file system program 36. Then, the read file is transferred to the center file server 120 (S508).
  • the local mover 37 stores “1” in the replication completed flag 220g of the file that has been transferred (S509). Then, the local mover 37 deletes the file name recorded in the update list 402 (the file name of the file that has been transferred) (S510). Thereafter, the process returns to S505 again, and the local mover 37 waits for an event to arrive.
  • the file update event is a file creation or update instruction issued by the file sharing program 35.
  • the file sharing program 35 issues an update event to the local mover 37.
  • the update event includes the file name to be created (or updated) and the actual data of the file.
  • the local mover 37 instructs the file system program 36 to create or update a file (S522).
  • the file system program 36 stores the file in the LU 24 and stores “0” in the replication completed flag 220g of the file to be created (or updated).
  • the local mover 37 adds the file name of the file to be created (or updated) to the update list 402 (S523).
  • the update list 402 exists in the memory. Therefore, the local mover 37 performs processing for adding a file name to the update list 402 on the memory. If the update list 402 does not exist in the memory, the update list 402 is read from the LU 24 and stored in the memory. Then, a process for adding a file name to the update list 402 stored in the memory is performed. When the process of S523 is completed, the process returns to S501.
  • the local mover 37 may perform a process of storing the update list 402 on the memory in the LU 24 (S525). This process may be performed at an opportunity independent of the process of S523 (for example, at intervals of several minutes). The process of S525 is not essential.
  • the local file server 30 is stopped (shut down).
  • the OS stop event is an event issued by the management software 70 when an administrator instructs the OS stop using the management software 70.
  • the local mover 37 receives the OS stop event (S531: Y)
  • the local mover 37 stores the update list 402 stored in the memory in the LU 24 (S532).
  • the local mover 37 deletes the flag file 403 (S533).
  • the flag file 403 is stored in the LU 24 while the first kernel 39 and the local mover 37 are being executed.
  • the OS first kernel 39
  • the local file server 30 is operated according to the rule that the flag file 403 is deleted.
  • the flag file 403 does not exist at the time of activation, it means that the local file server 30 has been normally stopped before the activation.
  • the flag file 403 exists at the time of startup, it means that the local file server 30 has stopped abnormally before startup.
  • a plurality of local movers 37 are executed on the VM # 1 (391).
  • the local mover 37 that has received the OS stop event deletes the instruction to store the update list 402 in the LU 24 and the flag file 403 for all other local movers 37 being executed on the VM # 1 (391). Give instructions to do.
  • the local mover 37 that has received this instruction performs a process of storing the update list 402 in the LU 24 (file system) that it is in charge of and a process of deleting the flag file 403.
  • the local mover 37 stops (shuts down) the OS (S534). Specifically, the OS is stopped by issuing a shutdown request to the first kernel 38 executed in the VM # 1 (391). When the OS stops, all programs executed on the VM # 1 (391), including the local mover 37, are terminated.
  • the first kernel 38 of the local file server 30 determines that the process cannot be continued due to a program defect or hardware abnormality, the first kernel 38 stops executing and is used for the second kernel. It has a function of starting the second kernel 38-2 loaded in advance in the area 311 ′.
  • the second kernel 38-2 is a program similar to the first kernel 38. However, the second kernel 38-2 is a program executed to restore the update list 402. Therefore, it differs from the first kernel 38 in that a program that is not essential for the recovery of the update list 402 is not included. Since the access to the LU 24 of the storage apparatus 20 is essential when the update list 402 is restored, the second kernel 38-2 includes at least a disk device driver for accessing the LU 24 (and the OS LU 25). When the recovery of the update list 402 is completed, the second kernel 38-2 finishes execution.
  • the flow of processing performed by the second kernel 38-2 after the second kernel 38-2 is activated by the first kernel 38 will be described with reference to FIG. Similar to the above description, the case where the second kernel 38-2 is executed by VM # 1 (391) will be described as an example. Therefore, the second kernel 38-2 and other programs are stored in the second kernel area 311 'in the VM memory space 311. In the following description, the VM memory space 311 is referred to as “memory”.
  • the second kernel 38-2 starts the OS on the VM # 2 (392) (S601).
  • the OS is started on the VM # 2 (392). Details of the activation process at this time will be described later.
  • the second kernel 38-2 searches the entire area of the memory (the entire VM memory space 311) and specifies the area where the update list 402 is stored on the memory (S602). Since the update list 402 includes a MAGIC Number 411, the second kernel 38-2 searches the MAGIC Number 411 to identify an area on the memory where the update list 402 is stored.
  • the method for specifying the update list on the memory is not limited to the method described here. Any method can be used as long as it can identify the update list 402 stored in the memory.
  • the update list 402 may be created at a predetermined address on the memory.
  • the second kernel 38-2 can read the update list 402 by reading data from a predetermined address on the memory.
  • a plurality of file systems are constructed in the local file server 30.
  • a plurality of update lists 402 exist in the memory. If there are a plurality of update lists 402 in the memory, the second kernel 38-2 repeats the processing of S602 to S604.
  • the second kernel 38-2 restores the update list 402 for all LUs 24 to VM # 2 (392). Is notified (S606). Thereafter, the second kernel 38-2 stops processing (S607).
  • the second kernel 38-2 requests the hypervisor 39 to stop the VM # 1 (391).
  • the hypervisor 39 receives this request, it stops the VM # 1 (391).
  • stopping VM # 1 (391) is not an essential process. In order for the VM # 1 (391) to immediately start the first kernel when the OS (first kernel 39) running on the VM # 2 (392) terminates abnormally, the VM # 1 (391) ) May be left in operation.
  • the second kernel 38-2 executed on the VM # 1 (391) may request the OS to be started on the VM # 2 (392).
  • the hypervisor 39 instructs to start the OS on the virtual machine (VM # 1 or VM # 2).
  • the virtual machine according to the present embodiment has a function of recognizing whether the second kernel 38-2 requests the OS to be started or whether the OS has been started for other reasons. Specifically, when the first kernel 38 is activated, information on the activation trigger is passed from the hypervisor 39 to the first kernel 38.
  • the flow of processing when the OS is started on the VM # 2 (392) will be described with reference to FIG.
  • the VM # 2 (392) loads the first kernel 38 onto the VM memory space 312 and starts executing the first kernel 38 (S1010).
  • the first kernel 38 secures a second kernel area 311 ′ on the VM memory space 312. Then, the first kernel 38 loads the second kernel into the second kernel area 311 '.
  • the first kernel 38 refers to the information about the activation trigger passed at the time of activation, and determines whether or not the activation of the OS is requested from the second kernel 38-2 on the VM # 1.
  • the OS startup is requested from the second kernel 38-2 on the VM # 1 (S1030: Y)
  • the first kernel 38 determines whether or not the notification is a notification that the recovery of the update list 402 has been completed for all the LUs 24 (S1050).
  • the notification is that the update list 402 of the specific LU 24 has been recovered (S1040: N)
  • the notification includes information for specifying the LU 24 in which the recovered update list 402 is stored (device file name, etc.) It is included.
  • the first kernel 38 mounts the file system on the LU 24 specified by the information included in the notification (S1060), and deletes the flag file stored in the mounted file system (S1070).
  • the file system mounted in S1060 is made accessible to the client 40 (S1080).
  • the processing of FIG. 7 is started. Note that the process of S1080 may be a process of “starting a file sharing service”. Thereafter, the processing is repeated again from S1040.
  • the first kernel 38 performs a file system mount (S1060 ') and starts a file sharing service (S1080'), and the activation process ends.
  • the processes of S1060 'and S1080' are the same processes as S1060 and S1080, respectively. However, if there are a plurality of LUs 24, the file system is mounted on each LU 24 in S1060 '. In S1080 ', a file sharing service start process is performed for each LU 24.
  • the information stored in the memory at that time can be appropriately saved in a nonvolatile storage medium such as a DISK (HDD).
  • a nonvolatile storage medium such as a DISK (HDD).
  • information on files updated by the local file server is stored in an update list on the memory of the local file server. Based on this update list, the local file server reflects the contents of the file updated on the local file server on the center file server.
  • the local file server installs the second kernel, which is a program for recovering the update list, when the OS cannot continue processing due to a program defect or hardware abnormality (abnormal termination).
  • the activated second kernel searches the memory to identify the update list remaining in the memory, and stores this in a nonvolatile storage medium such as DISK.
  • the restarted OS and a program group that executes processing related to the file access request such as the data mover reads the update list stored in the DISK, and thereby the center file server among the files in the local file server. Can be identified.
  • the local file server searches the memory instead of specifying the update list by reading the memory contents (memory dump) stored in the non-volatile storage medium by the memory dump function normally provided in the OS. To identify and save the update list. Therefore, the update list can be specified and saved at high speed.
  • the local file server according to the embodiment executes the OS on the virtual machine, and restarts the OS on another virtual machine in parallel with the update list specification and save processing by the second kernel when the OS is down. As a result, the local file server can be restored to a state where the file access service from the client can be accepted more quickly.
  • the second kernel may not be started when the OS terminates abnormally.
  • a failure such as a power failure occurs.
  • the local file server according to the present embodiment includes, in the management information (inode) of each file, information (replication completed flag 220g) that can specify whether reflection is necessary for the center file server. It is added.
  • the local file server according to the present embodiment checks the replicated flag 220g of all files when the OS is restarted, and identifies a file that needs to be reflected in the center file server.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 本発明の一観点に係る情報システムは、ローカルファイルサーバとクライアントを有する1以上の拠点と、センターファイルサーバを備えたデータセンタとで構成される。ローカルファイルサーバは、ローカルファイルサーバに格納されたファイルが更新された時、更新されたファイルについての情報を更新リストに記録し、更新リストに情報が記録されているファイルをセンターファイルサーバに反映し、その後当該ファイルについての情報を更新リストから削除するための第1プログラム群を有する。ローカルファイルサーバは、第1のプログラム群の実行を継続できなくなった時、プロセッサに第2プログラムの実行を開始させる。第2プログラムが実行されることにより、メモリに残っている、更新されたファイルについての情報が読み出され、当該更新されたファイルについての情報が記憶デバイスに退避される。

Description

情報システム
 本発明は、通信ネットワークに接続されるファイルサーバに関する。
 一般に、サーバやPC(Personal Computer)等の計算機では、揮発性記憶媒体で構成される主記憶装置と、HDD等の補助記憶装置とを有する。通常は主記憶装置に格納されている情報を用いた運用が行われるが、停止時にはこれらの情報は補助記憶装置に退避される。
 計算機のOSに障害が発生した場合、主記憶装置上のデータを補助記憶装置に退避することができないため、必要なデータが消失するおそれがある。この問題を解決するために、たとえば特許文献1には、OSの障害時に、メモリダンプ機能により主記憶装置のデータをまるごとフラッシュメモリ等の補助記憶装置にダンプし、その後、OSの再起動時に補助記憶装置上にダンプされたデータから再び主記憶上にデータを再格納する技術が開示されている。
特開2009-266115号公報
 特許文献1に開示の技術では、OSの障害時に主記憶上に格納されていたデータの復旧が可能であるが、データの復旧が完了するまでは、計算機は通常運用ができない状態にある。
 たとえばファイルサーバのように、多くのクライアントから利用される計算機の場合には、障害発生時に迅速に回復できることが求められる。特許文献1に開示の技術ではOSの障害時に主記憶の内容をまるごと補助記憶装置にダンプした後にOSを再起動し、さらにダンプした内容を読み出してデータの復旧を行う必要があるため、データの復旧が完了するために長時間を要する。本発明の1つの目的は、OS障害時の復旧を迅速化することにある。
 本発明の一観点に係る情報システムは、ローカルファイルサーバとクライアントを有する1以上の拠点と、センターファイルサーバを備えたデータセンタとで構成される。ローカルファイルサーバは、第1のプログラム群が実行されることにより、ローカルファイルサーバに格納されたファイルが更新された時、前記更新されたファイルについての情報を、前記ローカルファイルサーバのメモリ上に設けられた更新リストに記録し、前記更新リストに前記情報が記録されているファイルを、前記センターファイルサーバに反映し、その後当該ファイルについての情報を、前記更新リストから削除するよう動作する。
 ローカルファイルサーバは、第1のプログラム群の実行を継続できなくなった時、プロセッサに第2プログラムの実行を開始させる。第2プログラムが実行されることにより、ローカルファイルサーバは、
 a)メモリから、前記更新リストの存在する領域を特定し、
 b)特定された領域から、前記更新されたファイルについての情報を読み出し、
 c)読み出した更新されたファイルについての情報を、記憶デバイスに格納する
処理を行う。
 本発明によると、ファイルサーバのOSがダウンした場合でも、データ損失を生じることなく、迅速にファイルサーバを運用可能状態に復帰させることができる。
実施例に係る情報システムのハードウェア構成図である。 実施例に係る情報システムのソフトウェア構成図である。 ローカルファイルサーバで稼働する仮想マシンの記憶空間の概念図である。 inodeの構成を示す図である。 ローカルファイルサーバで取り扱われるファイルの内容を示した図である。 更新リストの内容を示した図である。 データムーバで実行される処理の流れ図である。 データムーバで実行される処理の流れ図である。 第2カーネル起動時の処理の流れ図である。 仮想マシン起動時の処理の流れ図である。
 以下、本発明の実施例について、図面を用いて説明する。なお、以下に説明する実施例は特許請求の範囲に係る発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
 また、以後の説明では「プログラム」を主語として説明を行う場合があるが、実際には、プログラムはプロセッサ(CPU(Central Processing Unit))によって実行されることで、定められた処理が行われる。ただし説明が冗長になることを防ぐため、プログラムを主語として説明することがある。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。また、各種プログラムは計算機が読み取り可能な記憶メディアに格納され、当該記憶メディアを介して各種プログラムが各装置にインストールされてもよい。記憶メディアとしては、例えば、ICカード、SDカード、DVD等であってもよい。あるいは各種プログラムがプログラム配布サーバによって、各装置に配布され、インストールされるようにしてもよい。
 ここで、以下で説明する実施例で用いられる各種用語について説明する。「Core」とは、リモートの計算機システムを含んだ拠点(集約拠点)であり、例えば、サーバやストレージ装置を一括管理する拠点やクラウドサービスを提供する拠点である。「Edge」とは、ローカルの計算機システムを含んだ拠点であり、例えば、支店、営業所、リモートオフィスなどユーザが実際に業務を行う拠点である。「スタブ」とは、ファイルの格納先情報(リンク先を表す情報)が関連付けられたオブジェクト(メタデータ)である。
 「スタブ化」とは、Edge(Edgeの計算機システム)のファイルについて、データ(実データ)を削除し、管理情報のみを保持した状態にすることをいう。スタブ化されたファイルは、実データを保持していないため、アクセスされるとCoreの計算機システムから実データを取得する必要がある。このため、スタブ化されたファイルへのアクセスは、通常のファイルに比べてアクセス性能が低下する。
 「レプリケーション」とは、Edgeで作成・更新されたファイルをCoreにコピー(複製)することをいう。また、EdgeにあるファイルをCoreにコピーすることで、EdgeとCoreにあるファイルの内容が同じになるため、「レプリケーション」のことを「同期」と呼ぶこともある。「マイグレーション」とは、EdgeにあるファイルをCoreにレプリケーションした後、Edgeのファイルをスタブ化することをいう。
 「ファイルシステム」とは一般に、記憶デバイスに格納されたデータの検索や操作を行うためのプログラムのことを意味することもあれば、あるいはデータの検索や操作を可能にするために記憶デバイス上に作成されたデータ構造を意味することもある。本明細書では混同を避けるため、記憶デバイスに格納されたデータの検索や操作を行うためのプログラムのことを「ファイルシステムプログラム」と呼び、記憶デバイス上に作成されたデータ構造のことを「ファイルシステム」と呼ぶ。
 「マウント」とは、アプリケーションプログラムやオペレーティングシステムがファイルシステムにアクセスできるようにするための手続き(処理)を意味する。ある記憶デバイスに格納されているデータ構造(ファイルシステム)にアクセスできるようにする手続きのことを、「ファイルシステムをマウントする」という。
 「デバイスファイル」とは、オペレーティングシステムが、ディスクなどの入出力装置にアクセスするためのインタフェースのことを指す。以下で説明する実施例におけるローカルファイルサーバ30で実行されるオペレーティングシステム(第1カーネルなど)は、論理ユニット(LU)等の記憶デバイスごとに固有のデバイスファイル名を付して管理している。ローカルファイルサーバ30上で実行されるプログラムは、デバイスファイル名を指定してアクセス要求を発行することで、LUにアクセスすることができる。
 以下で、本発明の実施例に係る情報システムの構成を説明していく。図1は、実施例に係る情報システムのハードウェア構成を示す図である。
 本発明の実施例に係る情報システムは、データセンタであるCore100と、データセンタとは異なる拠点である複数のEdge10とに配置される。Edge10とはたとえば、企業の支店、事業所等であり、各Edge10は、Core100とは地理的に異なる場所に存在する。ただし、本発明は、各Edge10間の距離、あるいは各Edge10とCore100間の距離に依存しない。各Edge10とCore100が近接した地点に存在している場合でも、各Edge10とCore100間が離れている場合でも、本発明は有効である。また図1に示す例ではCore100が単数であるが、Core100が複数存在する構成もあり得る。またEdge10が単数でも良い。以下では説明の簡単化のため、Edge10とCore100がそれぞれ単数の構成の場合を例にとって説明する。
 まず、Edge10に配置される計算機システムの構成から説明する。Edge10の計算機システムは、ストレージ装置20と、1以上のローカルファイルサーバ30と、1以上のクライアント40とを備える。ローカルファイルサーバ30は、ローカルのファイルサーバの一例である。ローカルファイルサーバ30は、例えば、通信ネットワーク50(例えばLAN(Local Area Network))経由で、クライアント40に接続されている。また、ローカルファイルサーバ30は、例えば、通信ネットワーク60(例えばSAN(Storage Area Network))経由で、ストレージ装置20に接続されている。
 ストレージ装置20は、ストレージコントローラ(CTLと略記されることもある)21とDISK23とを備える。ストレージコントローラ21は、ローカルファイルサーバ30に接続される通信インタフェースや、DISK23へのI/O要求を処理するためのプロセッサなどを備えた装置である。DISK23は、ローカルファイルサーバ30からのライトデータを格納する、不揮発性の記憶デバイスである。一例として、HDD(Hard Disk Drive)をDISK23に用いることができる。ただしHDD以外に、SSD(Solid State Drive)などの記憶デバイスを、DISK23に適用してもよい。
 CTL21、DISK23は、図1ではそれぞれ1つのみが存在する構成が示されているが、複数存在しても良い。複数のDISK23で、1以上のRAIDグループが構成されてよい。
 ストレージ装置20は、ローカルファイルサーバ30との間でブロックレベルのI/O要求をやりとりする。ローカルファイルサーバ30から送信されたI/O要求は、CTL21が受信し、I/O要求を受信したCTL21は、I/O要求の内容に基づいて、適切なDISK23へのデータI/Oを実行する。
 ローカルファイルサーバ30は、メモリ31と、CPU32と、NIC(Network Interface Controller)33と、HBA(Host Bus Adaptor)34を備える。メモリ31、NIC33及びHBA34に、CPU32が接続されている。NIC33は、センターファイルサーバ120及びクライアント40と通信する通信インタフェース装置である。HBA34は、ストレージ装置20と通信する通信インタフェース装置である。
 メモリ31は、例えばRAM(Random Access Memory)等の、高速アクセス可能な記憶デバイスである。ローカルファイルサーバ30では、CPU32がメモリ31上に格納されたローカルファイルサーバ30を制御するプログラム(例えばOS(Operating System)カーネルプログラム)を実行する。ローカルファイルサーバ30は、メモリ31に加えて又は代えて、別種の記憶資源を有してもよい。メモリ31は、記憶デバイスの一例である。
 ローカルファイルサーバ30は、NIC33経由で、クライアント40からファイルレベルのI/O要求を受信する。ローカルファイルサーバ30は、ファイルレベルのI/O要求をブロックレベルI/O要求に変換してストレージ装置20に送信する。
 クライアント40は、メモリ41と、CPU42と、NIC43と、DISK44と、を備える。クライアント40は、メモリ41及び/又はDISK44に加えて又は代えて、別種の記憶資源を有してもよい。また、DISK44にはたとえば、HDDやSSDが用いられる。また、DISK44がクライアント40に内蔵されている構成は必須ではなく、DISK44が外付けの構成、つまりクライアント40の外部にあり、HBAなどを介してDISK44とクライアント40が接続される構成でも良い。
 クライアント40では、CPU42がDISK44に格納されているプログラムをメモリ41上に読み込み、プログラムを実行する。また、クライアント40は、NIC43経由で、ファイルレベルのI/O要求をローカルファイルサーバ30に送信する。
 本発明の実施例に係る情報システムの利用者であるユーザ1は、各Edge10に移動可能で、任意のEdge10にあるクライアント40を利用することができる。
 続いて、Core100に配置される計算機システムの構成を説明する。Core100の計算機システムは、センターファイルサーバ120と、センターファイルサーバ120に接続されたストレージ装置110とを備える。センターファイルサーバ120は、各Edgeのローカルファイルサーバ30に格納されたデータを受信し、ストレージ装置110に保存するための装置である。センターファイルサーバ120とストレージ装置110は、一種のアーカイブ装置(アーカイブシステム)の役割を果たしている。
 ストレージ装置110は、ストレージコントローラ(図中ではCTLと表記)111とDISK113とを備える。本実施例では、ストレージ装置110の構成とストレージ装置20の構成が同一とする。ただしストレージ装置110に、ストレージ装置20と異なるハードウェア構成を採用するストレージ装置が用いられてもよい。
 センターファイルサーバ120は、メモリ121と、CPU122と、NIC123と、HBA124と、を備える。メモリ121に代えて又は加えて、別種の記憶資源が備えられてもよい。センターファイルサーバ120では、CPU122がメモリ121上に格納されたセンターファイルサーバ120を制御するプログラム(例えばOSカーネルプログラム)を実行する。また、センターファイルサーバ120は、NIC123及び通信ネットワーク80経由で、ローカルファイルサーバ30と通信する。センターファイルサーバ120は、HBA124経由で、ストレージ装置110に対してブロックレベルI/Oを行う。
 図2は、実施例に係る情報システムのソフトウェア構成図である。ストレージ装置20(110)では、CTL21(111)が1以上のDISK23の記憶領域を用いて、1または複数のLU(Logical Unit)24(114)を形成し、ローカルファイルサーバ30(センターファイルサーバ120)に提供している。ローカルファイルサーバ30(センターファイルサーバ120)は、ストレージ装置20(110)から提供されるLU24(114)に対して、ファイルを格納する。
 また、ストレージ装置20(110)が提供するLUに対して、ローカルファイルサーバ30(センターファイルサーバ120)が使用する各種プログラムが格納されていても良い。本実施例に係る情報システムでは、ストレージ装置20(110)が形成するLU25(115)に、ローカルファイルサーバ30(センターファイルサーバ120)が使用する各種プログラムが格納される構成を採る。このLU25(115)のことを、LU24(114)と区別するために、OS LU25(115)と呼ぶ。
 続いてローカルファイルサーバ30及びセンターファイルサーバ120が実行する各種プログラムについて説明する。ローカルファイルサーバ30のメモリ31及びセンターファイルサーバ120のメモリ121には、データムーバプログラム37(125)と、ファイルシステムプログラム36(126)が格納されている。ローカルファイルサーバ30のメモリ31には、更に、ファイル共有プログラム35、第1カーネル38、第2カーネル38-2、ハイパーバイザ39が格納されている。またセンターファイルサーバ120のメモリ121には、カーネル127が格納されている。なお、ローカルファイルサーバ30が実行するプログラムは、ローカルファイルサーバ30の起動前には、OS LU25に格納されている。またセンターファイルサーバ120が実行するプログラムは、センターファイルサーバ120の起動前には、OS LU115に格納されている。
 以下、ローカルファイルサーバ30内のデータムーバプログラム37を、「ローカルムーバ」と言い、センターファイルサーバ120内のデータムーバプログラム125を、「リモートムーバ」と言い、それらを特に区別しない場合に、「データムーバプログラム」と言う。ローカルファイルサーバ30とセンターファイルサーバ120との間では、ローカルムーバ37及びリモートムーバ125を介して、ファイルのやり取りが行われる。
 第1カーネル38(カーネル127)は、ローカルファイルサーバ30(センターファイルサーバ120)上で動作する複数のプログラム(プロセス)のスケジュール制御を行うプログラムで、いわゆるオペレーティングシステム(OS)の中核をなすプログラムである。また、ハードウェアの制御を行うためのプログラムである、いわゆるデバイスドライバも第1カーネル38(カーネル127)に含まれている。
 第2カーネル38-2も第1カーネル38と同様のプログラムであるが、第2カーネル38-2の詳細は後述する。ハイパーバイザ39は、ローカルファイルサーバ30上でいわゆる仮想マシンを稼働させるプログラムである。ハイパーバイザ39の詳細も後述する。
 ファイルシステムプログラム36(126)は、LU24(114)にファイル及びファイル管理情報を格納して管理するプログラムである。ファイル管理情報は、各ファイル、ディレクトリに関する様々な情報(例えば、ファイルのサイズや場所などを表す情報等)を含む。ファイル管理情報のうち、本発明の実施例で中心に説明される、レプリケーション処理や事前ダウンロード処理で必要な管理情報の内容については、後述する。
 ファイル共有プログラム35は、CIFS(Common Internet File System)、NFS(Network File System)等の、ファイルアクセス用に規定された通信プロトコルを使用して、クライアント40にファイル共有サービスを提供するプログラムである。ファイル共有プログラム35は、クライアント40からファイルアクセス要求(たとえばリード要求)を受け付けると、ローカルムーバ37を呼び出して、LU24からアクセス対象のファイルを読み出し、クライアント40に返送する。
 ローカルムーバ37について説明する前に、まずファイルシステムプログラム36(126)の管理するファイル管理情報について説明する。図4は、本発明の実施例に係る、ローカルファイルサーバ30(またはセンターファイルサーバ120)で管理される、ファイル管理情報の説明図である。
 ローカルファイルサーバ30がファイルを格納するために用いるLU24内には、メタデータ領域241と実データ領域242というデータ構造が構築されている。メタデータ領域241には、各ファイルの管理情報であるinodeが格納され、実データ領域242にはファイルの実データが格納される。LU24内のこのデータ構造は、ローカルファイルサーバ30がはじめてLU24を使用する際に、ファイルシステムプログラム36が作成する。またセンターファイルサーバ120がファイルを格納するために用いるLU114にも、上で説明したものと同様のデータ構造が構築される。これはファイルシステムプログラム126が、LU114を初めて使用する際に作成する。
 本実施例では、LU24(114)内に構築される、上で説明したデータ構造のことを、「ファイルシステム」と呼ぶ。そしてこのファイルシステムをLU24(114)内に作成する処理は、「ファイルシステムを作成する」と呼ぶ。一般に「ファイルシステム」とは、ファイルを格納する記憶デバイス上に構築されるデータ構造以外に、このデータ構造を解釈して、ユーザの要求に応じてデータの操作を行うためのプログラムを意味することもある。しかし本明細書では、ファイルシステムプログラム36(126)との混同を避けるため、LU24(114)内に構築されたデータ構造のことを「ファイルシステム」と呼ぶ。そして、このファイルシステムの内容を解釈してデータ(ファイル)操作を行うためのプログラム(ファイルシステムプログラム36(126))のことを、「ファイルシステムプログラム」と呼ぶ。
 1つのLU24を複数のパーティションに分割し、各パーティションにファイルシステムを作成すること、つまり1つのLU24内に複数のファイルシステムを作成することも可能である。ただし本実施例では、1つのLU24にファイルシステムを1つだけ作成する場合の例について説明する。
 メタデータ領域241に格納される、ファイルのinode201の構成について説明する。なお、inodeには、以下で説明する情報以外の情報も格納され得るが、ここでは本発明の実施例で行われる処理で用いられる情報を中心に説明する。inode201は、inode番号220aと、所有者220bと、アクセス権220cと、サイズ220dと、最終アクセス日時220eと、スタブ化フラグ220fと、レプリケーション済みフラグ220gと、リンク先220h、データブロックアドレス220iのフィールドを有する。
 メタデータ領域241内にある各inode201には、inode番号と呼ばれる、メタデータ領域241内で一意な番号が付されており、inode番号220aには、このinode番号が格納される。所有者220bと、このinode201で管理されるファイルの所有者のユーザIDが格納される。アクセス権220cには、このinode201で管理されるファイルのアクセス権情報(リード可、ライト可等)が格納される。サイズ220dには、このinode201で管理されるファイルのサイズが格納される。最終アクセス日時220eには、このinode201で管理されるファイルがアクセスされた最新の日時の情報が格納される。データブロックアドレス220iは、1つのinode201の中に複数存在するフィールドで、このinode201で管理されるファイルの実データが格納されている領域のアドレスが格納される。
 スタブ化フラグ220f、レプリケーション済みフラグ220gと、リンク先220hは、本発明の実施例に係るローカルムーバ37で用いられるフィールドである。スタブ化フラグ220fには、このinode201で管理されるファイルがスタブ化されているか否かを表す情報が、ローカルムーバ37によって格納される。“0”が格納されている場合、このファイルはスタブ化されていないことを表し、“1”が格納されている場合、このファイルはスタブ化されていることを表す。
 レプリケーション済みフラグ220gには、このinode201で管理されるファイルがセンターファイルサーバ120にレプリケーション済みか否かを表す情報が、ローカルムーバ37によって格納される。“0”が格納されている場合、このinode201で管理されるファイルが、まだセンターファイルサーバ120にレプリケーションされていないことを表し、“1”が格納されている場合、このinode201で管理されるファイルがセンターファイルサーバ120にレプリケーション済みであることを表す。
 リンク先220hには、このinode201で管理されるファイルの実データの、Core100内での格納先(リンク先)を表す情報が格納される。具体的にはリンク先220hには、センターファイルサーバ125内での格納場所の情報が格納される。格納場所の情報の表記方法としては、たとえばURL(Uniform Resource Locator)が用いられる。またセンターファイルサーバ120のデータムーバプログラム125が格納場所を決定する。そしてローカルファイルサーバ30からの要求に応じてセンターファイルサーバ120がファイルを転送する際に、リンク先220hを含むファイル管理情報もローカルファイルサーバ30に転送される。
 ローカルファイルサーバ30及びセンターファイルサーバ120の持つプログラムの説明に戻る。ローカルムーバ37は、ファイル共有プログラム35から呼び出されて動作するプログラムである。ローカルムーバ37はファイル共有プログラム35から呼び出されると、ファイルシステムプログラム36を用いて、アクセス対象のファイルの読み書きを実施する。また、以下で説明するレプリケーション等の処理を実施するプログラムでもある。
 ローカルムーバ37はレプリケーション処理を実施する際、ファイルシステムプログラム36を用いて、レプリケーション対象のファイル(inode201及びinodeのデータブロックアドレス220iで指し示されているファイルの実データ)を読み出す。そしてローカルムーバ37は、読み出されたファイルをセンターファイルサーバ120に転送する。リモートムーバ125は、ローカルムーバ37から転送されてきたファイル(レプリケーション対象のファイル)を、ファイルシステムプログラム126を用いてストレージ装置110のLU114に書き込む。ファイルのセンターファイルサーバ120への転送が完了すると、ローカルムーバ37は、ファイルシステムプログラム36を用いて、LU24に格納されている対象ファイルのレプリケーション済みフラグ220gを“1”にする。また、後述する更新リスト402の内容の更新を行う。更新リスト402については後述する。
 また、ローカルムーバ37はある所定の条件が満たされた場合に、LU24内のレプリケーション済みファイル(厳密にはそのファイルの実データ)を削除し、LU24には実データが削除されたファイルのスタブ(メタデータ)のみを置く(いわゆるスタブ化処理を行う)。これにより、レプリケーション済みファイルの実質的なマイグレーションを実現する。具体的には、スタブ化されるファイルのスタブ化フラグ220fに“1”を格納し、データブロックアドレス220iの値をNULLにする。その後、ローカルムーバ37は、実データが削除されたファイルに対してクライアント40からリード要求を受けた場合、スタブ(ファイル管理情報つまりinode)を参照することにより、ファイルの実データをリモートムーバ125経由で取得し、取得したファイルをクライアント40に送信する。なお、本実施例において、「スタブ」とは、ファイルの格納先情報(リンク先を表す情報、つまりリンク先220h)が関連付けられたオブジェクト(メタデータ)である。ローカルムーバ37の働きにより、クライアント40からは、LU24に格納されているファイルが実データのないスタブであっても、そのことは認識されない。
 なお、本実施例に係るローカルファイルサーバ30では、1つのファイルシステムについて、1つのローカルムーバ37と1つのファイル共有プログラム35が実行される。そのため、たとえばローカルファイルサーバ30で2個のファイルシステムが作成されている場合(仮にそれぞれのファイルシステムを、ファイルシステムA,ファイルシステムBと呼ぶ)、ローカルファイルサーバ30では、ファイルシステムAに対する処理を担当するローカルムーバ37とファイル共有プログラム35が実行されるとともに、ファイルシステムBに対する処理を担当するローカルムーバ37とファイル共有プログラム35が実行される。以下では、あるファイルシステム(仮に「ファイルシステムX」と呼ぶ)についての処理を担当するローカルムーバ37とファイル共有プログラム35のことをそれぞれ、「ファイルシステムX用のローカルムーバ37」、「ファイルシステムX用のファイル共有プログラム35」と呼ぶ。
 ただし、1つのローカルムーバ37が複数のファイルシステムについての処理を担当する構成を採ってもよい。同様に、1つのファイル共有プログラム35が複数のファイルシステムについての処理を担当する構成を採ってもよい。
 管理ソフト70は、ローカルファイルサーバ30の管理を行うためのソフトウェアである。ローカルファイルサーバ30の管理者(ユーザ)が、保守作業のためにローカルファイルサーバ30を停止(シャットダウン)する場合、あるいはローカルファイルサーバ30にファイル同期を指示する場合等に、管理ソフト70が用いられる。管理ソフト70は、ローカルファイルサーバ30の管理者(ユーザ)に、GUIあるいはCLIを提供し、管理者はこのGUIあるいはCLIを用いてローカルファイルサーバ30に指示を出す。管理ソフト70は、第1カーネル38、ハイパーバイザ39、あるいはデータムーバプログラム37のプログラムの一部として実装されていてもよい。
 次に、クライアント40のメモリ41に格納されている各種プログラムについて説明する。クライアント40のメモリ41には、アプリケーション45と、ファイルシステムプログラム46と、カーネル47とが記憶されている。
 アプリケーション45は、クライアント40が、作業の目的に応じて使うソフトウェア(アプリケーションプログラム)である。カーネル47は、上述のカーネル38(127)とほぼ同様である。
 ファイルシステムプログラム46は、アプリケーション45等からのファイルアクセス要求を処理するプログラムである。ファイルシステムプログラム46はアプリケーション45等からファイルアクセス要求を受け付けた時、アクセス対象のファイルがDISK44にあるファイルである場合には、DISK44に格納されているファイルへのアクセス処理を行う。一方、アクセス対象のファイルがローカルファイルサーバ30の管理するファイルである場合、CIFS、NFSといったプロトコルを用いてファイル共有プログラム35と通信し、ローカルファイルサーバ30の管理するファイル(LU24に格納されているファイル)へのアクセス処理を行う。
 続いて、ローカルファイルサーバ30の、第1カーネル38、第2カーネル38-2、ハイパーバイザ39について、図3を用いて説明する。ハイパーバイザ39は、ローカルファイルサーバ30上でいわゆる仮想マシンを稼働させるプログラムである。本実施例に係るローカルファイルサーバ30では、ハイパーバイザ39は少なくとも2つの仮想マシンを稼働させる。以下、2つの仮想マシンのうち、一方をVM#1(図3の要素391)、もう一方をVM#2(図3の要素392)と呼ぶ。
 よく知られているように、ハイパーバイザ39はローカルファイルサーバ30中の物理資源であるCPU32やメモリ31等を仮想化し、仮想化されたメモリ及び仮想化されたCPUを用いて仮想マシンを作成する。そして本実施例に係るローカルファイルサーバ30では、第1カーネル38等のプログラムは、仮想マシン上の仮想的なCPU、仮想的なメモリを用いて実行される。(仮想マシンには、仮想化されたCPUや仮想化されたメモリ以外にも、仮想化された資源が存在する。たとえば仮想化された入出力デバイス(ネットワークデバイス等)も存在するが、本実施例の説明には直接関係するものではないため、説明を省略する)
 VM#1(391)に割り当てられた仮想的なメモリで構築される記憶空間を、VMメモリ空間311と呼ぶ。またVM#2(392)に割り当てられた仮想的なメモリで構築される記憶空間を、VMメモリ空間312と呼ぶ。VMメモリ空間311とVMメモリ空間312は原則として、同じサイズの空間である。またVMメモリ空間311上で動作するプログラムは、VMメモリ空間312に直接アクセスすることはできない。逆にVMメモリ空間312上で動作するプログラムも、VMメモリ空間311に直接アクセスすることはできない。
 通常時(障害が発生していないとき)、第1カーネル38はVM#1またはVM#2のいずれか一方でのみ実行される。図3ではVM#1でのみ、第1カーネル38が実行されている状態を表している。この時、第1カーネル38はVMメモリ空間311上に格納され、仮想的なCPU(非図示)により実行される。
 また第1カーネル38がVM#1で実行を開始する時(起動される時)、第1カーネル38はVMメモリ空間311上の所定の記憶領域(図3の、第2カーネル用領域311’)を確保する。そして第1カーネル38は、第2カーネル用領域311’上の一部の領域に第2カーネル38-2(先にも述べたとおり、これはプログラムである)を格納する。
 なお、第2カーネル38-2は、通常時は実行されない。詳細は後述するが、プログラムの不具合等の問題のために第1カーネル38の実行が停止した時に、第2カーネル38-2の実行が開始される。第1カーネル38は通常時、VMメモリ空間311のうち、第2カーネル用領域311’以外の領域を用いる(VMメモリ空間311のうち、第2カーネル用領域311’以外の領域を用いて、ファイルシステムプログラム36等の各種プログラムがロードされ、また実行される)。第2カーネル38-2の動作については、後述する。
 続いて、ローカルファイルサーバ30で管理される各ファイルについて、図5を用いて説明する。クライアント40を使用するユーザによって、ローカルファイルサーバ30に作成されるファイル(または更新されるファイル)のことを、「ユーザファイル」と呼ぶ。なお、ユーザファイルには、ユーザによって作成/更新されるディレクトリも含まれる。
 またローカルファイルサーバ30は、各LU24内に1つずつ、更新リスト402という管理情報(ファイル)を作成する。更新リスト402はファイルシステムプログラム36によって管理されるファイルの1つであるが、ユーザによって作成されるものではない。ローカルムーバ37が作成する。更新リスト402は、ファイルシステム中の、たとえばルートディレクトリ直下に作成される。また、LU24が複数存在する場合、更新リスト402はLU24ごとに作成される。つまり更新リストは、1つのファイルシステムにつき1つ作成される。
 更新リスト402の例を、図6に示す。図6に示すように、更新リスト402内には、MAGIC Number 411とパス名リスト412のセットが複数並んで格納されている。MAGIC Number 411は、所定の規則で作成された文字列(バイト列)である。これにより、MAGIC Number 411の直後に格納されているデータ(つまりパス名リスト412)が、更新リスト402の内容であることを識別できるように設けられている。パス名リスト412は、センターファイルサーバ120に反映すべきファイルのファイル名が、フルパスで格納されている。
 1つの更新リスト402内の全てのMAGIC Number411には、同一のバイト列が格納されている。ただしローカルファイルサーバ30が複数のLU24にファイルシステムを構築し、それぞれのLU24にファイルを格納する構成の場合、更新リスト402毎に異なるMAGIC Number411が用いられる。本実施例に係るローカルファイルサーバ30では、第1カーネル38が各LU24に付しているデバイスファイル名(/dev/sd1cなどのファイル名)が、MAGIC Number411の中に含まれるようにする。
 MAGIC Number 411とパス名リスト412はそれぞれ、固定サイズである。たとえば、MAGIC Number 411のサイズが32バイト、パス名リスト412のサイズが992バイトである。これにより、MAGIC Number 411は、更新リスト402内に1KB間隔で配置される。センターファイルサーバ120に反映すべきファイルのファイル名が非常に多く、1つのパス名リスト412にすべてのファイル名を格納しきれない場合がある。その場合、1番目のパス名リスト412に格納できなかったファイル名は、2番目以降のパス名リスト412に格納される。また、各パス名リスト412に格納されている最後のファイル名の直後にはNULLが格納される。
 なお、パス名リスト412にファイル名(パス名)を格納する構成に代えて、inode番号を格納するようにしてもよい。
 更新リスト402は、最終的にLU24に格納されるが、ローカルファイルサーバ30が更新リスト402の内容を編集(反映すべきファイルのファイル名を追加する等)する場合、VMメモリ空間311上で編集を行う。そして更新リスト402は原則として、VMメモリ空間311上に常駐し、更新リスト402の編集(更新)とは非同期(たとえば10分間隔等)に、LU24に反映される。そのため、ローカルファイルサーバ30で短期間に多数のユーザファイル401の更新が発生した場合でも、原則としてメモリ上(VMメモリ空間311上)に存在する更新リスト402のみが更新される。結果として、LU24への書き込み(更新リスト402の書き込み)が多数発生することを防ぎ、システム性能が低下することを防ぐことができる。なお、別の実施形態として、更新リスト402を非同期にLU24に反映する処理も行わない態様もあり得る。
 また、ローカルファイルサーバ30の管理者からの指示により、第1カーネル38が停止(シャットダウン)される場合もある。この事象はたとえば、ローカルファイルサーバ30の保守を行う場合等に発生し得る。この場合、第1カーネル38の停止前に、VMメモリ空間311上の更新リスト402の内容は、LU24に反映される。
 続いてフラグファイル403について説明する。フラグファイル403は、ローカルムーバ37によって作成されるファイルで、LU24に格納される。LU24が複数ある場合、各LU24にフラグファイルが格納される。フラグファイル403は、ローカルファイルサーバ30の起動時に、前回ローカルファイルサーバ30が異常停止したか否かを判定するために用いられる。具体的な用いられ方は後述する。
 フラグファイル403のファイル名は、LU24のルートディレクトリに格納されるどのファイル名とも異なる名称のファイル名(たとえば“.flagfile”という名称)である。またフラグファイル403は、実データを持たないファイル(サイズが0バイトのファイル)であってよい。なお、上ではフラグファイル403がLU24に格納される例について説明したが、OS LU25にフラグファイルを格納するという規則を採用してもよい。
 続いて、ローカルムーバ37の処理フローを、図7、図8を用いて説明する。なお、以下ではVM#1(391)で第1カーネル38、ローカルムーバ37、ファイル共有プログラム35、ファイルシステムプログラム36が実行されている場合、つまりこれらのプログラムがVMメモリ空間311上にロードされて実行されている場合について中心に説明する。そのため、VMメモリ空間311のことを「メモリ」と略記することもあるが、特に断りのない限り、「メモリ」とはVMメモリ空間311のことを指す。
 ローカルムーバ37は、第1カーネル38の起動時に、第1カーネル38によってメモリ(VMメモリ空間311)に読み込まれ、その実行が開始される。またその時点では、ファイル共有プログラム35とファイルシステムプログラム36もVMメモリ空間311上にロードされ、実行を開始している。
 ローカルムーバ37の実行が開始されると、ローカルムーバ37はLU24にフラグファイル403が存在するか確認する。フラグファイル403が存在した場合(S501:Y)、そのLU24内の全ファイルについて、レプリケーション済みフラグ220gの内容をチェックする(S502)。そしてローカルムーバ37は、メモリ上で更新リスト402を作成するとともに、レプリケーション済みフラグ220gが“0”であるファイルのファイル名を、更新リスト402に格納する(S503)。ここで作成された更新リスト402は、LU24にも格納される。
 S503の後、ローカルムーバ37はフラグファイル403をLU24に作成し(S504)、イベントを待つ(S505)。なお、S502,S503が実行された時には、フラグファイル403が存在しているので、S504は必ずしも実行されなくともよい。図7、図8の処理フローの説明において、イベントとは、ユーザあるいは他のプログラム(たとえばファイルシステムプログラム36等)からの処理要求のことをいう。イベントには処理の種別(以下では「イベント種別」と呼ぶ)と、その処理に必要な情報が含まれている。ローカルムーバ37はイベントを受信すると、イベントに含まれているイベント種別で指定されている処理を行う。イベントは原則として、ローカルムーバ37以外のプログラムから発行される要求である。ただしローカルムーバ37自身がイベントを発行し、そのイベントをローカルムーバ37が受信することで、ローカルムーバ37がそのイベントで指定された処理を行うこともある。
 S506でローカルムーバ37は、イベント種別を判別する。イベントには少なくとも、同期イベント、ファイル更新イベント、OS停止イベントがある。ローカルムーバ37が同期イベントを受信すると、ローカルファイルサーバ30に格納されているファイルのうち、まだセンターファイルサーバ120にレプリケーションされていないファイルを、センターファイルサーバ120にコピーする処理を行う。この処理を「同期処理」と呼ぶ。ローカルファイルサーバ30の管理者が、管理ソフト70を用いてローカルムーバ37に同期指示(同期イベントと呼ぶ)を発行することで、ローカルムーバ37に同期イベントが受信され、同期処理が開始される。また、ローカルムーバ37が定期的(5分間隔等)に同期イベントを発行するようにしてもよい。この場合ローカルムーバ37が、自身が発行した同期イベントを受信することで、同期処理が開始される。
 受信したイベントが同期イベントの場合(S506:Y)、ローカルムーバ37は更新リスト402を読み出す(S507)。更新リスト402を読み出す際、更新リスト402がメモリ(VMメモリ空間311)にある場合には、メモリ上の更新リスト402を読み出す。なお、たとえばローカルファイルサーバ30の起動直後等にはメモリ上に更新リスト402が存在しない場合がある。その場合、ローカルムーバ37はLU24上の更新リスト402を読み出してメモリ上に格納する。また、ファイルシステムを構築したLU24が複数存在する場合、LU24毎に更新リスト402が存在する。そのため、各LU24の更新リスト402を読み出す。
 続いてローカルムーバ37は、ファイルシステムプログラム36を用いて、更新リスト402に記録されている更新対象ファイルをLU24から読み出す。そして読み出されたファイルをセンターファイルサーバ120に転送する(S508)。
 センターファイルサーバ120へのファイル転送が完了すると、ローカルムーバ37は転送の完了したファイルのレプリケーション済みフラグ220gに“1”を格納する(S509)。そしてローカルムーバ37は更新リスト402に記録されているファイル名(転送の完了したファイルのファイル名)を削除する(S510)。その後処理は、再びS505に戻り、ローカルムーバ37はイベントの到着を待つ。
 受信したイベントがファイル更新イベントの場合(S506:N、かつS521:Y)、ファイル更新処理が実施される。ファイル更新イベントは、ファイル共有プログラム35が発行する、ファイル作成または更新の指示である。ファイル共有プログラム35は、クライアント40からファイル作成または更新要求を受信すると、ローカルムーバ37に更新イベントを発行する。更新イベントには、作成(または更新)対象のファイル名、ファイルの実データが含まれている。ローカルムーバ37は、更新イベントを受信すると、ファイルシステムプログラム36に対してファイルの作成または更新を指示する(S522)。ファイルシステムプログラム36は、ファイルの作成または更新の指示を受信すると、ファイルをLU24に格納するとともに、作成(または更新)対象のファイルのレプリケーション済みフラグ220gに“0”を格納する。
 続いてローカルムーバ37は、更新リスト402に、作成(または更新)対象ファイルのファイル名を追加する(S523)。この時、原則として、更新リスト402はメモリ上に存在する。そのためローカルムーバ37は、メモリ上の更新リスト402にファイル名を追加する処理を行う。もし更新リスト402がメモリ上に存在しない場合には、LU24から更新リスト402を読み出してメモリ上に格納する。そしてメモリ上に格納された更新リスト402にファイル名を追加する処理を行う。S523の処理が完了すると、処理はS501に戻る。
 また、ローカルムーバ37は、メモリ上の更新リスト402をLU24に格納する処理を行ってもよい(S525)。この処理は、S523の処理とは独立した契機で(たとえば数分間隔で)実施すればよい。S525の処理は必須ではない。
 受信したイベントがOS停止イベントの場合(S502:N、かつS521:N、かつS531:Y)、ローカルファイルサーバ30の停止(シャットダウン)が行われる。OS停止イベントは、管理者が管理ソフト70を用いてOS停止の指示を行った時に、管理ソフト70によって発行されるイベントである。ローカルムーバ37がOS停止イベントを受信すると(S531:Y)、ローカルムーバ37はメモリ上に格納されている更新リスト402をLU24に格納する(S532)。
 続いてローカルムーバ37は、フラグファイル403を削除する(S533)。本実施例に係るローカルファイルサーバ30では、第1カーネル39やローカルムーバ37が実行中の間、フラグファイル403がLU24に格納されている。そしてOS(第1カーネル39)の停止時には、フラグファイル403を削除するという規則でローカルファイルサーバ30が運用されている。これにより、第1カーネル39の起動時に、フラグファイル403の有無を確認することで、以前ローカルファイルサーバ30が停電等の要因で異常終了したか否かを判定することができる。起動時にフラグファイル403が存在しない場合には、起動前にローカルファイルサーバ30は正常に停止したことを意味する。逆に起動時にフラグファイル403が存在した場合には、起動前にローカルファイルサーバ30が異常停止したことを意味する。
 なお、LU24が複数ある場合、VM#1(391)上で複数のローカルムーバ37が実行されている。OS停止イベントを受信したローカルムーバ37は、VM#1(391)上で実行中の、その他の全てのローカルムーバ37に対して、更新リスト402をLU24に格納する指示、及びフラグファイル403を削除する指示を出す。この指示を受信したローカルムーバ37は、自身が処理を担当するLU24(ファイルシステム)に更新リスト402を格納する処理、そしてフラグファイル403を削除する処理を行う。
 フラグファイル403を削除した後、ローカルムーバ37はOSの停止(シャットダウン)を行う(S534)。具体的には、VM#1(391)で実行されている第1カーネル38に、シャットダウン要求を発行することで、OSを停止させる。OSが停止する際、ローカルムーバ37をはじめ、VM#1(391)上で実行されている全プログラムは終了する。
 次に、第1カーネル38が異常終了した時に、ローカルファイルサーバ30で行われる処理の流れを説明する。本実施例に係るローカルファイルサーバ30の第1カーネル38は、プログラムの不具合やハードウェアの異常により、処理を継続できないと判断した時、第1カーネル38の実行を停止するとともに、第2カーネル用領域311’にあらかじめロードしてある第2カーネル38-2を起動させる機能を持つ。
 第2カーネル38-2は、第1カーネル38と同様のプログラムである。ただし第2カーネル38-2は、更新リスト402の復旧を行うために実行されるプログラムである。そのため更新リスト402の復旧に必須でないプログラムは含まれていない点が、第1カーネル38と異なる。更新リスト402の復旧の際、ストレージ装置20のLU24へのアクセスは必須であるため、第2カーネル38-2は少なくとも、LU24(そしてOS LU25)にアクセスするためのディスクデバイスドライバを含んでいる。また更新リスト402の復旧が完了すると、第2カーネル38-2は実行を終了する。
 第1カーネル38によって第2カーネル38-2が起動された後、第2カーネル38-2によって行われる処理の流れを、図9を用いて説明する。なお、上での説明と同様、第2カーネル38-2が、VM#1(391)で実行される場合を例にとって説明する。そのため、第2カーネル38-2及びその他のプログラムはVMメモリ空間311の第2カーネル用領域311’に格納される。また、以下の説明では、VMメモリ空間311のことを「メモリ」と呼ぶ。
 第2カーネル38-2はまず、VM#2(392)上で、OSを起動させる(S601)。これはハイパーバイザ39に指示を発行することで、VM#2(392)上でのOSの起動が実施される。この時の起動処理の詳細は後述する。
 続いて第2カーネル38-2は、メモリの全領域(VMメモリ空間311全体)を検索し、メモリ上に更新リスト402が格納されている領域を特定する(S602)。更新リスト402には、MAGIC Number411が含まれているので、第2カーネル38-2はこのMAGIC Number411を検索することで、更新リスト402の格納されているメモリ上の領域を特定する。
 ただし、メモリ上にある更新リストの特定方法は、ここで説明する方法に限定されない。メモリ上に格納されている更新リスト402を特定できる方法であれば、任意の方法を使用することができる。たとえば更新リスト402をメモリ上に作成する場合、必ずメモリ上のあらかじめ決められたアドレスに更新リスト402を作成するようにしてもよい。このような方法で更新リスト402を作成すると、第2カーネル38-2はメモリ上のあらかじめ決められたアドレスからデータを読み出すことで、更新リスト402を読み出すことができる。
 メモリ上に存在した更新リスト402を特定すると、第2カーネル38-2は特定された更新リスト402をLU24に反映する(S603)。更新リスト402のMAGIC Number411には、更新リスト402が格納されるべきLU24のデバイスファイル名が含まれている。そのため、第2カーネル38-2は、メモリ上の更新リスト402が反映されるべきLU24を容易に特定できる。その後第2カーネル38-2は、更新リスト402がLU24に反映されたことを、VM#2(392)に通知する。この通知には、更新リスト402が反映されたLU24を特定できる情報(デバイスファイル名等)が含まれている。
 なお、ローカルファイルサーバ30で複数のファイルシステムが構築されている場合がある。その場合、複数の更新リスト402がメモリ上に存在する。複数の更新リスト402がメモリ上に存在する場合には、第2カーネル38-2はS602~S604の処理を繰り返す。
 メモリ上に存在したすべての更新リスト402について、S602~S604の処理が完了したら(S605:Y)、第2カーネル38-2はVM#2(392)に、全てのLU24について更新リスト402の復旧が完了した旨を通知する(S606)。その後第2カーネル38-2は処理を停止する(S607)。停止の際、第2カーネル38-2はハイパーバイザ39に対し、VM#1(391)の停止を依頼する。ハイパーバイザ39はこの依頼を受信すると、VM#1(391)を停止する。ただしVM#1(391)の停止は必須の処理ではない。VM#2(392)上で稼働するOS(第1カーネル39)が異常終了した際に、即座にVM#1(391)で第1カーネルを起動できるようにするために、VM#1(391)を稼働状態にしておいてもよい。
 続いて、仮想マシン(VM#1またはVM#2)上で、OSが起動される時の処理の流れを説明する。なお、以下では、VM#2(392)上でOSが起動される場合について説明する。
 仮想マシン上での、OSの起動の契機には何通りかの契機が存在する。1つは、上で述べたように、VM#1(391)で実行されていた第2カーネル38-2が、VM#2(392)上でのOSの起動を要求する場合がある。またそれ以外に、管理者(ユーザ)がローカルファイルサーバ30の電源をONにした契機で、ハイパーバイザ39から、仮想マシン(VM#1またはVM#2)上でのOSの起動を指示される場合がある。本実施例に係る仮想マシンでは、第2カーネル38-2がOSの起動を要求しているのか、それ以外の要因でOSの起動が行われたのか、認識できる機能を持つ。具体的には第1カーネル38が起動される際、ハイパーバイザ39から起動契機についての情報が、第1カーネル38に渡される。
 以下、図10を用いて、VM#2(392)上でのOS起動時の処理の流れを説明する。OSの起動が指示されると、VM#2(392)は第1カーネル38をVMメモリ空間312上にロードして、第1カーネル38の実行を開始する(S1010)。第1カーネル38の実行が開始されると、第1カーネル38はVMメモリ空間312上に第2カーネル用領域311’を確保する。そして第1カーネル38は第2カーネルを、第2カーネル用領域311’にロードする。
 次に第1カーネル38は、起動時に渡されている起動契機についての情報を参照し、VM#1上の第2カーネル38-2からOSの起動を要求されたのか否かを判定する。VM#1上の第2カーネル38-2からOSの起動を要求された場合(S1030:Y)、VM#1上では、上で図9を用いて説明した処理、つまり更新リスト402の復旧処理が行われていることを意味する。そのため、第1カーネル38は、VM#1からの通知(特定のLU24の更新リスト402が復旧された旨の通知、あるいは全LU24について更新リスト402の復旧が完了した旨の通知)を待つ(S1040)。
 VM#1から通知を受領すると(S1040:Y)、第1カーネル38はその通知が、全LU24について更新リスト402の復旧が完了した旨の通知か否かを判定する(S1050)。特定のLU24の更新リスト402が復旧された旨の通知であった場合(S1040:N)、その通知には、復旧された更新リスト402が格納されたLU24を特定する情報(デバイスファイル名等)が含まれている。第1カーネル38は通知に含まれている情報により特定されるLU24について、ファイルシステムマウントを実施し(S1060)、マウントされたファイルシステム内に格納されているフラグファイルを削除する(S1070)。そしてファイル共有プログラム35及びデータムーバ37を起動することで、S1060でマウントされたファイルシステムを、クライアント40からアクセス可能な状態にする(S1080)。S1080でデータムーバ37が起動されることにより、図7の処理が開始される。なお、S1080の処理は、「ファイル共有サービスを開始する」処理ということもある。この後再びS1040から処理を繰り返す。
 全LU24について更新リスト402の復旧が完了した旨の通知を受信した場合(S1050:Y)、起動処理は終了する。
 一方S1030の判定が否定的であった場合、第1カーネル38は、ファイルシステムマウント(S1060’)、ファイル共有サービスの開始(S1080’)を行い、起動処理は終了する。S1060’、S1080’の処理はそれぞれ、S1060,S1080と同じ処理である。ただし、LU24が複数ある場合、S1060’では各LU24についてファイルシステムマウントが行われる。またS1080’では、各LU24についてファイル共有サービスの開始処理が行われる。
 以上が、本発明の一実施例に係る情報システムの説明である。本実施例に係る情報システムでは、ローカルファイルサーバのOSがダウンした場合でも、その時にメモリ上に格納された情報を、DISK(HDD)等の不揮発記憶媒体に適切に退避できる。本実施例に係る情報システムの場合、たとえばローカルファイルサーバで更新されたファイルの情報が、ローカルファイルサーバのメモリ上の更新リストに格納される。ローカルファイルサーバはこの更新リストに基づいて、ローカルファイルサーバで更新されたファイルの内容をセンターファイルサーバに反映している。
 ローカルファイルサーバのOSがダウンし、メモリ上の更新リストの内容にアクセスできなくなると、ローカルファイルサーバで更新されたファイルの内容をセンターファイルサーバに反映することができなくなる。本実施例に係るローカルファイルサーバは、プログラムの不具合やハードウェアの異常により、OSが処理を継続できなくなった(異常終了した)場合、更新リストの復旧を行うためのプログラムである第2カーネルを起動させる。起動された第2カーネルは、メモリ内を検索することで、メモリ上に残されている更新リストを特定し、これをDISK等の不揮発記憶媒体に格納する。その後再起動されたOS(及びデータムーバなどの、ファイルアクセス要求に係る処理を実行するプログラム群)は、DISKに格納された更新リストを読み出すことで、ローカルファイルサーバ内のファイルのうちセンターファイルサーバに反映すべきものを特定することができる。
 また、実施例に係るローカルファイルサーバは、OSが通常備えるメモリダンプ機能によって、不揮発記憶媒体に格納されたメモリ内容(メモリダンプ)を読み出すことで更新リストを特定するのではなく、メモリ上を検索することで更新リストを特定し退避する。そのため、更新リストの特定及び退避を高速に行うことができる。また実施例に係るローカルファイルサーバは、仮想マシン上でOSを実行し、OSダウン時には第2カーネルによる更新リストの特定及び退避処理と並行して、別の仮想マシン上でOSを再起動させる。これにより、ローカルファイルサーバをより迅速に、クライアントからのファイルアクセスサービスを受け付けられる状態に復旧させることが可能になる。
 さらに、障害の種類によっては、OSが異常終了した時に、第2カーネルを起動させることができない場合もある。たとえば停電等の障害が発生した場合が例として挙げられる。本実施例に係るローカルファイルサーバは、このような場合に備え、各ファイルの管理情報(inode)に、センターファイルサーバに反映が必要であるか否かを特定できる情報(レプリケーション済みフラグ220g)を付加している。停電等の障害が発生した場合には、本実施例に係るローカルファイルサーバは、OSの再起動時に全ファイルのレプリケーション済みフラグ220gを確認し、センターファイルサーバに反映が必要なファイルを特定する。
 以上、本発明の実施例を説明したが、これは、本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。すなわち、本発明は、他の種々の形態でも実施する事が可能である。
10 Edge、30 ローカルファイルサーバ、100 Core、120 センターファイルサーバ。

Claims (13)

  1.  クライアントと、1以上のファイルを格納するセンターファイルサーバと、前記センターファイルサーバと前記クライアントに接続され、1以上の前記ファイルを格納するローカルファイルサーバを有する情報システムにおいて、
     前記ローカルファイルサーバは、メモリとプロセッサと記憶デバイスと第1のプログラム群と第2プログラムを有し、
     前記第1のプログラム群は前記プロセッサに、
     前記記憶デバイスに格納されたファイルに対するクライアントからのアクセス要求を受け付け、
     前記記憶デバイスに格納されたファイルが更新された時、前記更新されたファイルについての情報を、前記ローカルファイルサーバのメモリ上に設けられた更新リストに記録し、
     前記更新リストに前記情報が記録されているファイルを、前記センターファイルサーバに反映し、
     前記センターファイルサーバに反映されたファイルについての情報を、前記更新リストから削除する、
    処理を実行させるものであって、
     前記ローカルファイルサーバは、前記第1のプログラム群の実行を継続できなくなった時、前記プロセッサに前記第2プログラムの実行を開始させ、
     前記プロセッサは、前記第2プログラムが実行されることにより、
     a) 前記メモリから、前記更新リストの存在する領域を特定し、
     b) 前記特定された領域から、前記更新されたファイルについての情報を読み出し、
     c) 前記更新されたファイルについての情報を、前記記憶デバイスに格納する、
    ことを特徴とする、情報システム。
  2.  前記プロセッサは、前記第2プログラムが実行されることにより、
     前記c)の後に、
     前記記憶デバイスに格納されたファイルに対するクライアントからのアクセス要求の受け付けを開始する、
    ことを特徴とする、請求項1に記載の情報システム。
  3.  前記ローカルファイルサーバでは、第1の仮想計算機と第2の仮想計算機が稼働しており、
     前記第1の仮想計算機は、前記第1の仮想計算機で実行されている前記第1のプログラム群の実行を継続できなくなったことを契機に、前記第2プログラムの実行を開始し、
     前記第1の仮想計算機は、前記第2プログラムが実行されることにより、前記第2の仮想計算機で前記第1のプログラム群の実行を開始させ、
     前記第2の仮想計算機は、前記第1のプログラム群の実行の開始後、前記第1の仮想計算機から、前記更新されたファイルについての情報を前記記憶デバイスに格納した旨の通知を受信するまで、前記記憶デバイスに格納されたファイルに対するクライアントからのアクセス要求の受け付けを待機する、
    ことを特徴とする、請求項2に記載の情報システム。
  4.  前記ローカルファイルサーバは、複数の記憶デバイスを有し、
     前記第1の仮想計算機は、前記複数の記憶デバイスのうちの第1記憶デバイス内の前記更新されたファイルについての情報を前記第1記憶デバイスに格納した後、前記第2の仮想計算機に、第1記憶デバイス内の前記更新されたファイルについての情報を前記第1記憶デバイスに格納した旨の第1通知を送信し、前記複数の記憶デバイスのうちの第2記憶デバイス内の前記更新されたファイルについての情報を前記第2記憶デバイスに格納した後、前記第2の仮想計算機に、第2記憶デバイス内の前記更新されたファイルについての情報を前記第2記憶デバイスに格納した旨の第2通知を送信し、
     前記第2の仮想計算機は、前記第1通知を受信すると、前記第1記憶デバイスに格納されたファイルに対するクライアントからのアクセス要求の受け付けを開始し、
     前記第2の仮想計算機は、前記第2通知を受信するまでは、前記第2記憶デバイスに格納されたファイルに対するクライアントからのアクセス要求の受け付けを待機する、
    ことを特徴とする、請求項3に記載の情報システム。
  5.  前記ローカルファイルサーバは、前記ファイルが更新されたとき、前記記憶デバイスに格納される前記ファイルの管理情報に、前記ファイルが更新された旨を表す情報を格納し、
     前記ローカルファイルサーバは、前記プロセッサに第2プログラムの実行を開始させることができなかった場合、
     前記記憶デバイスに格納される前記ファイルの管理情報を参照し、
     前記管理情報に前記ファイルが更新された旨を表す情報が格納されている場合、前記ファイルについての情報を、前記更新リストに記録する、
    ことを特徴とする、請求項1に記載の情報システム。
  6.  前記ローカルファイルサーバは、
     起動時に、前記記憶デバイスにフラグファイルを作成し、
     外部からの指示によりシャットダウンされる時に、前記記憶デバイスに格納されているフラグファイルを削除するよう構成されており、
     前記ローカルファイルサーバは再起動時に、前記記憶デバイスにフラグファイルが格納されている場合、
     前記再起動前に前記第1のプログラム群の実行を継続できなくなり、かつ前記プロセッサに第2プログラムの実行を開始させることができなかったと判断する、
    ことを特徴とする、請求項5に記載の情報システム。
  7.  クライアントとセンターファイルサーバに接続され、1以上のファイルを格納したローカルファイルサーバであって、
     前記ローカルファイルサーバは、メモリとプロセッサと記憶デバイスと第1のプログラム群と第2プログラムを有し、
     前記第1のプログラム群は前記プロセッサに、
     前記記憶デバイスに格納されたファイルに対するクライアントからのアクセス要求を受け付け、
     前記ローカルファイルサーバに格納されたファイルが更新された時、前記更新されたファイルについての情報を、前記ローカルファイルサーバのメモリ上に設けられた更新リストに記録し、
     前記更新リストに前記情報が記録されているファイルを、前記ローカルファイルサーバに接続されたセンターファイルサーバに反映し、
     前記センターファイルサーバに反映されたファイルについての情報を、前記更新リストから削除する、
    処理を実行させるものであって、
     前記ローカルファイルサーバは、前記第1のプログラム群の実行を継続できなくなった時、前記プロセッサに第2プログラムの実行を開始させ、
     前記プロセッサは、前記第2プログラムが実行されることにより、
     a) 前記メモリから、前記更新リストの存在する領域を特定し、
     b) 前記特定された領域から、前記更新されたファイルについての情報を読み出し、
     c) 前記更新されたファイルについての情報を、前記記憶デバイスに格納する、
    ことを特徴とする、ローカルファイルサーバ。
  8.  前記プロセッサは、前記第2プログラムが実行されることにより、
     前記c)の後に、
     前記記憶デバイスに格納されたファイルに対するクライアントからのアクセス要求の受け付けを開始する、
    ことを特徴とする、請求項7に記載のローカルファイルサーバ。
  9.  前記ローカルファイルサーバでは、第1の仮想計算機と第2の仮想計算機が稼働しており、
     前記第1の仮想計算機は、前記第1の仮想計算機で実行されている前記第1のプログラム群が異常終了したことを契機に、前記第2プログラムの実行を開始し、
     前記第1の仮想計算機は、前記第2プログラムが実行されることにより、前記第2の仮想計算機で前記第1のプログラム群の実行を開始させ、
     前記第2の仮想計算機は、前記第1のプログラム群の実行の開始後、前記第1の仮想計算機から、前記更新されたファイルについての情報を前記記憶デバイスに格納した旨の通知を受信するまで、前記記憶デバイスに格納されたファイルに対するクライアントからのアクセス要求の受け付けを待機する、
    ことを特徴とする、請求項8に記載のローカルファイルサーバ。
  10.  前記ローカルファイルサーバは、前記ファイルが更新されたとき、前記記憶デバイスに格納される前記ファイルの管理情報に、前記ファイルが更新された旨を表す情報を格納し、
     前記ローカルファイルサーバは、前記プロセッサに第2プログラムの実行を開始させることができなかった場合、
     前記記憶デバイスに格納される前記ファイルの管理情報を参照し、
     前記管理情報に前記ファイルが更新された旨を表す情報が格納されている場合、前記ファイルについての情報を、前記更新リストに記録する、
    ことを特徴とする、請求項7に記載のローカルファイルサーバ。
  11.  前記ローカルファイルサーバは、
     起動時に、前記記憶デバイスにフラグファイルを作成し、
     外部からの指示によりシャットダウンされる時に、前記記憶デバイスに格納されているフラグファイルを削除するよう構成されており、
     前記ローカルファイルサーバは再起動時に、前記記憶デバイスにフラグファイルが格納されている場合、
     前記再起動前に前記第1のプログラム群の実行を継続できなくなり、かつ前記プロセッサに第2プログラムの実行を開始させることができなかったと判断する、
    ことを特徴とする、請求項10に記載のローカルファイルサーバ。
  12.  第1のプログラム群と第2のプログラムが記録された記憶媒体であって、
     前記第1のプログラム群は、メモリとプロセッサと記憶デバイスを有するコンピュータの前記プロセッサに、
     前記コンピュータに接続されたクライアントからの、前記記憶デバイスに格納されたファイルに対するアクセス要求を受け付け、
     前記ファイルが更新された時、前記更新されたファイルについての情報を、前記メモリ上の更新リストに記録し、
     前記更新リストに前記情報が記録されているファイルを、前記コンピュータに接続されたセンターファイルサーバに反映し、
     前記センターファイルサーバに反映されたファイルについての情報を、前記更新リストから削除する、
    処理を実行させるよう構成されており、
    前記プロセッサにより前記第1のプログラム群の実行が継続できなくなった時、前記第1のプログラム群は前記プロセッサに前記第2プログラムの実行を開始させ、
     前記第2プログラムは前記プロセッサに、
     a) 前記メモリから、前記更新リストの存在する領域を特定し、
     b) 前記特定された領域から、前記更新されたファイルについての情報を読み出し、
     c) 前記更新されたファイルについての情報を、前記記憶デバイスに格納する、
    処理を実行させることを特徴とする、記憶媒体。
  13.  前記第2プログラムは前記プロセッサに、
     前記c)の後に、
     前記記憶デバイスに格納されたファイルに対するクライアントからのアクセス要求の受け付けを開始させる、
    ことを特徴とする、請求項12に記載の記憶媒体。
PCT/JP2014/083108 2014-12-15 2014-12-15 情報システム WO2016098152A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/083108 WO2016098152A1 (ja) 2014-12-15 2014-12-15 情報システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/083108 WO2016098152A1 (ja) 2014-12-15 2014-12-15 情報システム

Publications (1)

Publication Number Publication Date
WO2016098152A1 true WO2016098152A1 (ja) 2016-06-23

Family

ID=56126078

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/083108 WO2016098152A1 (ja) 2014-12-15 2014-12-15 情報システム

Country Status (1)

Country Link
WO (1) WO2016098152A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0417040A (ja) * 1990-05-11 1992-01-21 Hitachi Ltd 分散処理システムのプログラム管理方法
US20020007237A1 (en) * 2000-06-14 2002-01-17 Phung Tam A. Method and system for the diagnosis of vehicles
JP2002312312A (ja) * 2001-04-13 2002-10-25 Kit Asp:Kk 論理的階層構造のネットワーク構成を用いたアプリケーションサービス方法及びアプリケーションサーバシステム
WO2013061388A1 (ja) * 2011-10-28 2013-05-02 株式会社日立製作所 情報処理システム、及び、それを用いたファイル復元方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0417040A (ja) * 1990-05-11 1992-01-21 Hitachi Ltd 分散処理システムのプログラム管理方法
US20020007237A1 (en) * 2000-06-14 2002-01-17 Phung Tam A. Method and system for the diagnosis of vehicles
JP2002312312A (ja) * 2001-04-13 2002-10-25 Kit Asp:Kk 論理的階層構造のネットワーク構成を用いたアプリケーションサービス方法及びアプリケーションサーバシステム
WO2013061388A1 (ja) * 2011-10-28 2013-05-02 株式会社日立製作所 情報処理システム、及び、それを用いたファイル復元方法

Similar Documents

Publication Publication Date Title
US11892912B2 (en) Incremental file system backup using a pseudo-virtual disk
US11836155B2 (en) File system operation handling during cutover and steady state
US11663084B2 (en) Auto-upgrade of remote data management connectors
US9727430B2 (en) Failure recovery method in information processing system and information processing system
US12066904B2 (en) Array integration for virtual machine backup
US20120246271A1 (en) Method and system for transferring duplicate files in hierarchical storag management system
US20150227543A1 (en) Method and apparatus for replication of files and file systems using a deduplication key space
US10664441B2 (en) Information processing system, information processing apparatus, and non-transitory computer-readable recording medium
US11645237B2 (en) Replicating data utilizing a virtual file system and cloud storage
US20190243682A1 (en) Real-time distributed job scheduler with job self-scheduling
US11032156B1 (en) Crash-consistent multi-volume backup generation
JP6133396B2 (ja) 計算機システム、サーバ、及び、データ管理方法
US11182081B2 (en) Performing a recovery copy command to restore a safeguarded copy backup to a production volume
US11886226B2 (en) Consolidating snapshots using partitioned patch files
US20200104216A1 (en) Fileset passthrough using data management and storage node
US11599276B1 (en) Snapshot shipping to multiple cloud destinations
US10496493B1 (en) Method and system for restoring applications of particular point in time
US20240134761A1 (en) Application recovery configuration validation
US20230315503A1 (en) Snapshot-based virtual machine transfer across hypervisors
US20230289263A1 (en) Hybrid data transfer model for virtual machine backup and recovery
WO2016098152A1 (ja) 情報システム
US11954000B2 (en) Efficient file recovery from tiered cloud snapshots
US12008011B2 (en) Computing resource migration across cloud environments
US20230236936A1 (en) Automatic backup distribution for clustered databases
US11947493B2 (en) Techniques for archived log deletion

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14908362

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14908362

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP