[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2016170619A1 - Computer system - Google Patents

Computer system Download PDF

Info

Publication number
WO2016170619A1
WO2016170619A1 PCT/JP2015/062259 JP2015062259W WO2016170619A1 WO 2016170619 A1 WO2016170619 A1 WO 2016170619A1 JP 2015062259 W JP2015062259 W JP 2015062259W WO 2016170619 A1 WO2016170619 A1 WO 2016170619A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
volume
host computer
data
read
Prior art date
Application number
PCT/JP2015/062259
Other languages
French (fr)
Japanese (ja)
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/JP2015/062259 priority Critical patent/WO2016170619A1/en
Publication of WO2016170619A1 publication Critical patent/WO2016170619A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Definitions

  • the present invention relates to a file server.
  • RAID Redundant Array of Independent (or Inexpensive) Disks
  • Patent Document 1 an information system using a plurality of (for example, two) storage apparatuses (hereinafter referred to as apparatus A and apparatus B). Is constructed, and data is replicated (mirrored) between the device A and the device B.
  • apparatus A and apparatus B an information system using a plurality of (for example, two) storage apparatuses
  • data is replicated (mirrored) between the device A and the device B.
  • the host issues a request (write command) for writing data to the volume of the device A
  • the device A stores a copy of the data in the volume of the device B.
  • the device A After the copy of the data is stored in the volume of the device B, the device A returns to the host that the write command is completed.
  • the same data is always stored in the volume of the device A and the volume of the device B.
  • the access destination is switched to access the volume of device B. Since the same data as the volume of the device A is stored in the volume of the device B, the host can continue the business without any problem.
  • the device A does not send a reply that the write command is completed to the host until it is confirmed that the data copy is stored in the volume of the device B. Make a copy of Therefore, the problem is that the host write response time becomes long. In particular, in the case of a system in which the device B is installed at a remote location away from the device A, the write response time becomes longer, which may adversely affect the performance of the computer system.
  • a computer system includes a host computer, a first storage device having first and second volumes, and a second storage device having third and fourth volumes.
  • the host computer writes a file to the storage
  • the file actual data is written to the first volume
  • metadata that is management information such as the storage location of the file actual data is written to the second volume.
  • data written to the first volume is replicated to the third volume in the asynchronous copy mode
  • data written to the second volume is replicated to the fourth volume in the synchronous copy mode.
  • the I / O response time during normal operation can be shortened, and the business can be continued when a failure occurs.
  • FIG. 10 is a diagram illustrating an overall flow of a write process according to a second embodiment. It is explanatory drawing of the structure of cache information. 10 is a flowchart of file read processing according to the second embodiment.
  • 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 installed in each apparatus by a program distribution server or a computer-readable storage medium.
  • the storage medium for example, an IC card, an SD card, a DVD, or the like may be used.
  • Volume means a storage area (storage space) provided by the storage device to the host.
  • a storage apparatus according to an embodiment described below can provide one or more volumes to a host.
  • the term “logical device” may be used instead of the term “volume”.
  • Remote copy means a process of creating a copy of a storage device volume in a volume of another storage device.
  • the storage apparatus has a function of performing remote copy. Upon receiving write data for the volume from the host, the storage apparatus writes the write data to the volumes of the two storage apparatuses.
  • volume in which data is stored first is called “primary volume”.
  • second volume in which data is stored is called a “secondary volume”.
  • a pair of a primary volume and a secondary volume is called a “volume pair”.
  • a “file system” generally means a program that searches and manipulates data stored in a volume, or is created on a volume to enable data retrieval and manipulation. It may mean a data structure.
  • a program for searching and operating data stored in a volume is called a “file system program”, and a data structure created on the volume is called a “file system”. Call it.
  • the process of creating a data structure for storing a file on a volume is expressed as “creating a file system”.
  • “Mount” means a procedure (process) for allowing an application program or operating system to access a file system.
  • the procedure for enabling access to a data structure (file system) stored in a volume is called "mounting a file system”.
  • Device file refers to an interface for a program executed on the host to access an input / output device such as a disk.
  • a program such as a device driver manages a unique device file name in association with each volume provided by the storage apparatus.
  • a program executed on the host 30 can access a volume associated with a device file name by specifying a device file name and issuing an access request.
  • FIG. 1 is a diagram illustrating a hardware configuration of the computer system according to the first embodiment.
  • the computer system has a host 30 and two storage devices (20a, 20b).
  • the host 30 is connected to one or more clients 40 via the network 50.
  • the storage device 20a and the storage device 20b are devices that store files created by the host 30.
  • the storage device 20 a and the storage device 20 b are connected to the host 30 via the network 60.
  • the hardware configuration of the storage device 20b is not necessarily the same as the hardware configuration of the storage device 20a, in this embodiment, an example in which both hardware configurations are the same will be described.
  • reference numbers without suffix such as “a” and “b” are used.
  • the storage device 20a includes a storage controller (sometimes abbreviated as CTL) 21a and a plurality of DISKs 23a.
  • the storage controller 21a is a device that includes a communication interface for communicating with the host 30 and the storage device 20b, a processor for processing an I / O request from the host 30, a cache memory, and the like.
  • the DISK 23 a is a storage device that stores write data from the host 30.
  • an HDD Hard Disk Drive
  • a storage device such as an SSD (Solid State Drive) may be applied to the DISK 23a.
  • the storage device 20a and the storage device 20b are connected via a communication path 70.
  • the storage apparatus 20a can transmit a copy of data written from the host 30 to the storage apparatus 20a via the communication path 70 to the storage apparatus 20b.
  • FIG. 1 shows a configuration in which each storage apparatus 20 has one CTL 21 and two DISKs 23, but the number is not limited to this. Two or more CTLs 21 may exist in the storage apparatus 20, or three or more DISKs 23 may exist.
  • the host 30 is a computer that operates as a file server for the client 40, and includes a CPU 31, a memory 32, a NIC (Network Interface Controller) 33, and an HBA (Host Bus Adapter) 34.
  • the NIC 33 is a communication interface device for communicating with the client 40.
  • the HBA 34 is a communication interface device for communicating with the storage apparatus 20.
  • the memory 32 is a high-speed accessible storage device such as RAM (Random Access Memory) or ROM (Read Only Memory).
  • RAM Random Access Memory
  • ROM Read Only Memory
  • a program for controlling the host 30 is read onto the memory 32, and the CPU 31 executes the program.
  • the host 30 may have another type of storage resource (such as an HDD) in addition to or instead of the memory 32.
  • the memory 32 is an example of a storage device.
  • the host 30 receives a file level I / O request from the client 40 via the NIC 33.
  • the host 30 converts the file level I / O request into a block level I / O request and transmits it to the storage apparatus 20.
  • the client 40 includes a CPU 41, a memory 42, and a NIC 43.
  • the client 40 may have other types of storage resources in addition to or instead of the memory 42.
  • the client 40 transmits a file level I / O request to the host 30 via the NIC 43.
  • FIG. 2 is a software configuration diagram of the computer system according to the present embodiment.
  • the processor executes the control program 201.
  • the CTL 21 forms a RAID group using one or more storage areas of the DISK 23.
  • data can be recovered and data loss can be prevented.
  • the CTL 21 forms a logical storage device 24 using a part or all of the storage area of the RAID group.
  • this logical storage device is called a logical device (LDEV).
  • the CTL 21 can form a plurality of logical devices.
  • the storage apparatus 20 provides the LDEV 24 to the host 30, and the host 30 issues an I / O request (read command, write command, etc.) to the LDEV 24 provided from the storage apparatus 20.
  • the CTL 21 executes data access to the LDEV 24 in response to the I / O request received from the host 30.
  • the storage apparatus 20 stores the write data received from the host 30 in the cache memory of the CTL 21 before storing it in the DISK 23 configuring the LDEV 24.
  • the CTL 21 performs writing by the write back method. That is, when the write data is stored in the cache memory, the CTL 21 responds to the host 30 that the write processing is completed, and writing of the write data to the DISK 23 is performed asynchronously with the response to the host 30. Therefore, in this embodiment, not only when the write data is stored in the DISK 23 constituting the LDEV, but also when the write data for the LDEV is written into the cache memory of the CTL 21, the data is stored in the LDEV. (Written) ".
  • FIG. 2 shows a configuration in which the storage apparatus 20a has two LDEVs 24 (LDEV 24a-1 and LDEV 24a-2) and the storage apparatus 20b has two LDEVs 24 (LDEV 24b-1 and LDEV 24b-2).
  • the storage apparatus 20 can have more than two LDEVs.
  • the LDEV 24a-1 may be referred to as “LDEVa”, the LDEV 24a-2 as “LDEVc”, the LDEV 24b-1 as “LDEVb”, and the LDEV 24b-2 as “LDEVe”.
  • the storage device 20 further has a function of performing remote copy processing.
  • the storage apparatus 20 manages LDEVa and LDEVb as volume pairs, and manages LDEVc and LDEVe as separate volume pairs.
  • LDEVa and LDEVc are set as primary volumes, and LDEVb and LDEVe are set as secondary volumes.
  • LDEVa and LDEVb which are volume pairs
  • LDEVc and LDEVe which are different volume pairs
  • LDEVe which are different volume pairs
  • the storage apparatus 20a accepts a data write request from the host 30 to the LDEVa area (assuming the address of this area is A), the storage apparatus 20a writes the data to the address A of the LDEVa and, via the communication path 70, the storage apparatus 20b is instructed to write the data passed from the host 30 to the address A of the LDEVb.
  • the storage device 20b receives this instruction (and data), it writes the data to the address A of the LDEVb.
  • Remote copy has two types of copy modes: synchronous copy mode and asynchronous copy mode.
  • synchronous copy mode also called synchronous remote copy
  • processing related to the write request is performed until data is stored in both the primary volume and the secondary volume.
  • remote copy in asynchronous copy mode (also called asynchronous remote copy), when the storage apparatus 20 receives a write request for the LDEV 24 from the host 30, it indicates that the processing related to the write request has been completed when data is stored in the primary volume. Responds to the host 30. The storage of data in the secondary volume may be performed after a notification that processing related to the write request is completed is returned to the host.
  • the I / O response time of the host 30 is shorter than in the remote copy in the synchronous copy mode.
  • the response to the write request is returned from the storage apparatus 20a to the host 30, it is guaranteed that data is stored in the primary volume, but data may not be stored in the secondary volume. is there. Therefore, if a failure occurs in the primary volume at this time, and the host 30 becomes inaccessible, even if the host 30 reads data from the secondary volume, the correct data (the same as the latest data written by the host 30 to the primary volume) Data) may not be read. As a result, the host 30 may not be able to continue business using the secondary volume.
  • the storage apparatuses 20a and 20b according to the present embodiment are set so that remote copy is performed in the synchronous copy mode for the volume pair of LDEVa and LDEVb.
  • the LDEVc and LDEVe volume pair is set to perform remote copy in the asynchronous copy mode. This setting is performed in advance by a user (administrator) of the computer system.
  • the storage apparatuses 20a and 20b allow the host 30 to access any LDEV 24 that constitutes the volume pair for the volume pair that is to be remotely copied in the synchronous copy mode. Therefore, the host 30 may access either the LDEVa or the LDEVb for the LDEVa and LDEVb volume pair.
  • the storage device 20b sends the write request and write data to the storage device 20a
  • the storage device 20a sends the write data to LDEVa that is the primary volume. Write.
  • the storage apparatus 20b stores the write data in the LDEVb, and then returns a completion response to the host 30.
  • the memory 32 of the host 30 stores at least a file service daemon 301, a file system program 302, path replacement software 303, and a device driver 304.
  • the device driver 304 is a program for providing an access interface to the LDEV 24 for a higher-level program (file system program 302, path replacement software 303).
  • the device driver 304 maps the LDEV 24 to the device file.
  • the host program designates a device file and issues a read or write request
  • the device driver 304 issues a read command or a write command to the LDEV 24 mapped to the designated device file.
  • the device driver 304 maps LDEVa to the device file sda (341), maps LDEVb to the device file sdb (342), maps LDEVc to the device file sdc (343), and LDEVe is mapped to the device file sde (344).
  • the device files (device files sda (341) to sde (344)) to which the device driver 304 maps the LDEV 24 are referred to as “scsi device files”.
  • the path replacement software 303 is a program that dynamically switches the access path to the device file.
  • the path alternation software 303 provides device files sddlma (331) and sddlmb (332) to a higher-level program such as the file system program 302.
  • Device files sda (341) and sdb (342) are mapped to the device file sddlma (331).
  • Device files sdcmb (332) and device files sdc (343) and sde (344) are mapped.
  • the path replacement software 303 accesses either sda (341) or sdb (342).
  • the path replacement software 303 changes the access destination to LDEVb (sdb (342)). The access destination is changed transparently to the file system program 302, and it is not necessary to stop the processing in the file system program 302.
  • the path replacement software 303 accesses either sdc (343) or sde (344). If LDEVc (sdc (343)) is inaccessible, the path replacement software 303 changes the access destination to LDEVe (sde (344)) transparently to the file system program 302.
  • the file system program 302 is a program for executing access to a file stored in the LDEV 24.
  • the file system program 302 creates a data structure called a file system in the LDEV 24, thereby storing the file in the LDEV 24 or reading the file stored in the LDEV 24. Details of the file system will be described later.
  • the file service daemon 301 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) or NFS (Network File System).
  • CIFS Common Internet File System
  • NFS Network File System
  • file management information required for file access, such as an area for storing data (actual data) written from the host 30 and a position where the actual data is written, is stored in the file system. ) Is stored.
  • actual data area an area for storing data (actual data) written from the host 30 and a position where the actual data is written.
  • the file system program 302 uses two LDEVs 24 to store one file system.
  • one LDEV 24 is provided with a metadata area
  • the other LDEV 24 is provided with an actual data area.
  • the LDEV 24 provided with the metadata area is referred to as “metadata VOL”
  • the LDEV 24 provided with the actual data area is referred to as “real VOL”.
  • LDEVa and LDEVc are used to store one file system. Since LDEVb and LDEVe store the replicated data of LDEVa and LDEVc, respectively, it can be said that LDEVb and LDEVe are used to store one file system.
  • LDEVb and LDEVe are used to store one file system.
  • a metadata area is provided in LDEVa (LDEVb) and an actual data area is provided in LDEVc (LDEVe).
  • the metadata area includes areas of Superblock (may be abbreviated as SB) 241, InodeEntry block 242, and Inode block 243.
  • SB Superblock
  • the SB 241 is always arranged at a fixed position on the LDEV (for example, the head of the LDEV).
  • the SB 241 has at least areas s_volume_name (241-1), ie_offset (241-2), and i_offset (241-3).
  • S_volume_name (241-1) is an area for storing the name (identifier) of the LDEV 24 in which the actual data area is provided.
  • the name of the LDEV 24 stored in the s_volume_name (241-1) the device file name provided by the path replacement software 303 (sddlmb (332) in the example of FIG. 2) is used.
  • Ie_offset (241-2) is an area in which the head address of the InodeEntry block 242 is stored. Further, i_offset (241-3) is an area in which the head address of the Inode block 243 is stored. When the file system program 302 creates a file system, values are stored in these areas.
  • the information of the SB 241 is used when the file system program 302 mounts the file system.
  • a user administrator of the computer system wants to mount a file system
  • the user makes a device file (sddlma) corresponding to an LDEV (in this embodiment, LDEVa or LDEVc) having a metadata area to the file system program 302. ) Is specified and a mount instruction is issued.
  • the file system program 302 acquires the SB 241 by reading the device file “sddlma” during the mount process.
  • the file system program 302 identifies the LDEV in which the actual data area is stored by referring to s_volume_name (241-1) stored in the SB 241.
  • the file system program 302 makes the SB 241 resident in the memory 32.
  • the InodeEntry block 242 stores a plurality of InodeEntry.
  • a plurality of inodes are stored in the inode block 243.
  • Inode and InodeEntry are file management information. There is one Inode and one InodeEntry for each file. In this specification, a set of Inode and InodeEntry is called file metadata. As shown in FIG. 3, the Inode includes information of i_no (243-1), offset (243-2), size (243-3), and prechk (243-4).
  • Each Inode in the file system is given a unique identification number in the file system. This number is called the Inode number. Inode number is stored in i_no (243-1).
  • the file system program 302 uses an integer value of 0 or more for the Inode number.
  • Offset (243-2) and size (243-3) are areas for storing information for specifying the area where the actual data of the file is stored.
  • the offset (243-2) the head address of the area where the actual data of the file is stored is stored.
  • an address (for example, LBA) on the LDEVc is stored in offset (243-2).
  • the size of the file is stored in size (243-3). The definition of the file size will be described later.
  • Prechk (243-4) is an area of a fixed size (for example, 16 bytes), and stores a check code for enabling later confirmation that the actual data of the file has been correctly written. Details will be described later.
  • the Inode may include things other than the information described above. For example, file access rights, access date information, and the like may be included.
  • InodeEntry includes i_no (242-1) and fileName (242-2).
  • i_no (242-1) is an Inode number, similarly to i_no (243-1).
  • the file name of the file is stored in fileName (242-2).
  • Both InodeEntry and Inode are fixed size information.
  • InodeEntry block 242 a plurality of InodeEntry is successively stored in order from the smallest i_no (242-1) (number 0).
  • Inode block 243 a plurality of Inodes are continuously stored in order from the smallest i_no (243-1).
  • InodeEntry is information for file search.
  • the file system program 302 receives, for example, a read request for a file whose file name is “A” from the application program (hereinafter abbreviated as “AP”) executed on the client 40 via the file service daemon 301 (more precisely, When a file open request and a read request are received, the file system program 302 searches the InodeEntry block 242 for an InodeEntry whose fileName (242-2) is “A”. Then, i_no (242-1) of the searched InodeEntry is specified.
  • AP application program
  • i_no (242-1) of the retrieved InodeEntry is N (N is an integer value equal to or greater than 0)
  • the file system program 302 subsequently searches in the Inode block 243 to obtain i_no (243-1). ) Identifies N inodes. Then, the file system program 302 accesses the actual data using the offset (243-2) and size (243-3) included in the specified Inode.
  • the actual data is stored in the actual VOL (LDEVc in this embodiment).
  • the actual data includes prechk (251) and filedata (252).
  • filedata (252) is the actual data of the file (data requested to be written by the client 40).
  • prechk (251) is the same information as prechk (243-4) included in the inode of the file.
  • the file system program 302 writes a file, the same information is written to prechk (251) and prechk (243-4) included in the inode of the file.
  • the file system program 302 according to the present embodiment stores an integer value with 1 as an initial value in prechk (251) and prechk (243-4).
  • prechk (251) and prechk (243-4) When writing a file for the first time, 1 is written to prechk (251) and prechk (243-4), and prechk (251) is used for the nth write (n is an integer value, n> 1). ) And prechk (243-4) are written n. That is, prechk (243-4) and prechk (251) store values corresponding to the number of file writes. Since the actual data includes prechk (251), the file size (value stored in the size of Inode (243-3)) is set to the length of filedata (252) by the length of prechk (251). It is the added value.
  • FIG. 5 shows an example of the contents of the alternate path management table 330.
  • the alternate path management table 330 is a table for storing management information used by the path alternate software 303, and includes columns of an scsi device file 501, a DM device file 502, an attribute 503, a copy method 504, and an access state 505.
  • the DM device file 502 stores the device file name of the device file provided to the upper program by the path replacement software 303.
  • the scsi device file 501 stores the scsi device file name mapped to the DM device file 502.
  • the attribute 503 stores the LDEV attribute mapped to the device file specified by the DM device file 502. When 0 is stored, this indicates that the LDEV is a primary volume. When other values (for example, 1) are stored, this indicates that the LDEV is a secondary volume.
  • the copy method 504 stores information on the remote copy method executed for the LDEV pair mapped to the DM device file 502. When 0 is stored, copying in the synchronous copy mode is performed, and when 1 is stored, copying in the asynchronous copy mode is performed.
  • the access state 505 information indicating the state of the LDEV 24 mapped to the scsi device file 501 is stored.
  • the state of the LDEV 24 is normal and the host 30 can access the LDEV 24.
  • the status of the LDEV 24 is not normal and the host 30 cannot access the LDEV 24.
  • Information registration in the alternate path management table 330 is performed by a user of the computer system except for information registered in the access state 505.
  • FIG. 6 is a diagram showing an example of the contents of the scsi block mapping table 340.
  • the scsi block mapping table 340 includes columns of a storage 521, an LDEV 522, and an scsi device file 523.
  • the scsi block mapping table 340 stores information used by the device driver 304.
  • the device file specified by the device file name stored in the scsi device file 523 is mapped to the LDEV specified by the LDEV 522.
  • the storage 521 stores identification information (such as a serial number) of the storage apparatus to which the LDEV specified by the LDEV 522 belongs.
  • the device driver 304 recognizes that when a higher-level program (such as the path replacement software 303) issues an access request for the device file “sdb”, for example, the LDEVb may be accessed. it can.
  • Information registration in the scsi block mapping table 340 is performed by a user of the computer system. However, as another embodiment, information may be automatically registered in the scsi block mapping table 340 by the device driver 304 acquiring information from the storage apparatus 20.
  • FIG. 7 shows the flow of processing executed when the file system program 302 receives a file open request.
  • step 1001 the file system program 302 receives a file open request. Since the file open request includes the file name of the access target file, the file system program 302 acquires it.
  • step 1002 the file system program 302 reads the inode of the access target file. Details of this processing will be described later.
  • step 1003 the file system program 302 generates a file descriptor corresponding to the access target file, and stores the generated file descriptor on the memory 32 together with the inode of the access target file.
  • This set of file descriptors stored together with Inode and Inode is called a file structure.
  • a file descriptor is a type of key used to access a file.
  • a file request program is called a file system program.
  • the file descriptor and the file structure are held on the memory 32 until receiving a file close request issued when the client 40 ends the file access. In the present embodiment, the description of the processing when the file close request is received is omitted.
  • the file system program 302 returns the file descriptor to the calling program (file service daemon 301, AP of the client 40) (step 1004), and ends the process.
  • step 1041 the file system program 302 reads ie_offset (241-2) and i_offset (241-3) in the SB 241 in the metadata area, and stores the value of ie_offset (241-2) in the variable offset1.
  • the metadata area is provided in LDEVa (LDEVb), and the device file for accessing LDEVa (LDEVb) is “sddlma”. Therefore, in step 1041, the file system program 302 issues a read request for “sddlma”. This read request is received by the path replacement software 303, and the path replacement software 303 executes reading to LDEVa (LDEVc). In steps 1042 and 1046, which will be described later, data in the metadata area is also read. Similarly to step 1041, the file system program 302 issues a read request for “sdddlma”. Details of this processing will be described later.
  • the file system program 302 reads InodeEntry of the InodeEntry block 242 (Step 1042).
  • the read destination address at this time is the address offset1 of LDEVa (LDEVb). If the read FileName (242-2) of InodeEntry matches the file name to be accessed (step 1043: Yes), the processing after step 1045 is performed. However, if fileName (242-2) is different from the file name to be accessed (step 1043: No), the file system program 302 adds the size of InodeEntry to the variable offset1 (step 1044), and executes the processing of step 1042 again. To do.
  • Steps 1042 to 1044 are repeated until an InodeEntry whose fileName (242-2) matches the file name to be accessed is found.
  • the file system program 302 returns an error to the calling program.
  • the file system program 302 specifies the address at which the Inode to be read is stored based on i_no (242-1) included in the found InodeEntry.
  • the storage address of the inode where i_no (242-1) is N is “I_offset (241-3) + Inode size ⁇ N” Can be specified.
  • the file system program 302 stores the address specified here in the variable offset2.
  • step 1046 the file system program 302 reads the data from the address offset2 of the device file sddlma to acquire the Inode of the access target file, and ends the process.
  • file before update the flow of processing when data is overwritten (updated) on a file that has already been written to the file system.
  • file before update the flow of processing when data is overwritten (updated) on a file that has already been written to the file system.
  • the file system program 302 receives information (offset, size) of the write position of the file descriptor and write data from the calling program (step 1201). In step 1201, the file system program 302 further searches the memory 32 to identify a file structure including a file descriptor having the same value as the received file descriptor. Thereby, the inode information of the access target file can be obtained.
  • the file system program 302 receives write data from the calling program and calculates the write data write position (step 1202).
  • the write data write start address is obtained by adding the offset received in step 1201 to the offset (243-2) included in the Inode.
  • the write data write range is equal to the size received in step 1201.
  • the file system program 302 updates information in the Inode stored in the memory 32 (step 1203). Specifically, 1 is added to the value of prechk (243-4). Further, offset (243-2) and size (243-3) are updated when it is necessary to change (when the file size is enlarged or reduced, or when the file storage position is changed).
  • step 1204 the file system program 302 writes the inode information updated in step 1203 in the metadata area. If the inode has been successfully written (step 1205: Yes), the processing from step 1206 is performed. If the inode writing has failed (step 1205: No, this is a case where an error is returned from the path replacement software 303), the file system program 302 notifies the calling program of the error (step 1209). The process is terminated.
  • step 1206 the file system program 302 writes the write data in the actual data area. If the write data has been successfully written (step 1207: Yes), the file system program 302 notifies the calling program that the process has been completed normally (step 1208), and the process is terminated. If it fails, the file system program 302 notifies the calling program of an error (step 1209) and ends the process.
  • the file system program 302 adds the information of prechk (243-4) updated in step 1203 to the head of the write data, and then writes it in the actual data area. If the processes of steps 1204 and 1206 are normally performed, prechk (243-4) included in the Inode stored in the Inode block 243 and prechk (251) added to the file actual data stored in the actual data area. Will have the same value.
  • step 1204 the inode is written in the metadata area (step 1204) and then the actual data area is written (step 1206), but this order may be reversed.
  • the actual data area is provided in LDEVc (LDEVe), and the device file for accessing LDEVc (LDEVe) is “sddlmb”. Therefore, in steps 1204 and 1206, the file system program 302 issues a write request for “sddlmb”. This write request is received by the path replacement software 303, and the path replacement software 303 executes reading to LDEVc (or LDEVe).
  • steps 1041, 1042, 1046, 1204, and 1206 of the processing described above that is, the file system program 302 makes an access request (read request or write request) to the device file (sddlmma or sddlmb).
  • the path replacement software 303 and the device driver 304 when issuing the command will be described with reference to FIG.
  • the path replacement software 303 refers to the line “sddlma” in the DM device file 502 of the replacement path management table 330. Referring to this line, it can be seen that scsi device files “sda” and “sdb” are mapped to the device file “sddlma”.
  • the path replacement software 303 selects one to be used from the two scsi device files.
  • the path replacement software 303 according to the present embodiment performs selection by the following method.
  • the path replacement software 303 confirms the attributes 503, the copy method 504, and the access status 505 of each scsi device file (“sda” and “sdb”), and selects an scsi device file whose access status 505 is 0 (normal). However, when there are a plurality of scsi device files whose access status 505 is 0, the copy method 504 is confirmed. When the copy method 504 is “1”, an scsi device file having an attribute 503 of 0 is selected. On the other hand, when the copy method 504 is “0”, any scsi device file may be selected.
  • the attribute 503, the copy method 504, and the access status 505 of the scsi device file “sda” are “0”, “synchronization”, and “0”, respectively.
  • the attribute 503, copy method 504, and access state 505 of the scsi device file “sdb” are “1”, “0”, and “0”, respectively.
  • any scsi device file may be selected.
  • a case where the device file “sda” is selected will be described as an example.
  • step 2002 the path replacement software 303 reads or writes the scsi device file (“sda” in the above example) selected in step 2001.
  • the device driver 304 is called.
  • the device driver 304 recognizes that the LDEVa in the storage apparatus 20a is mapped to the scsi device file “sda” by referring to the scsi block mapping table 340. Therefore, an access command (read command or read command) is sent to the LDEVa. Write command) is issued (step 2003).
  • step 2004, the device driver 304 receives a response to the access command issued in step 2003 from the storage apparatus 20.
  • the device driver 304 returns a response indicating that the processing is successful to the calling program (that is, the path replacement software 303).
  • the path replacement software 303 returns a response indicating that the process is successful to the file system program 302 (step 2005), and ends the process. If the access request received from the file system program 302 is a read request, the read data is returned to the file system program 302 together with a response indicating that the processing has been successful.
  • the device driver 304 When the device driver 304 receives a response indicating that the access command processing has failed (step 2004: No), the device driver 304 returns a response indicating that an error has occurred to the path replacement software 303. Upon receiving this response, the path replacement software 303 changes the access state 505 of the scsi device file “sda” to “1” (step 2006).
  • the path replacement software 303 refers to the alternate path management table 330 and confirms whether the access states 505 of the scsi device files (“sda” and “sdb”) are both “1”. If both the access states 505 of the scsi device files (“sda” and “sdb”) are “1”, the path replacement software 303 returns a response indicating that an error has occurred to the file system program 302 (step 2008). The process is terminated.
  • step 2007, as a result of referring to the access state 505 of the scsi device file (“sda” and “sdb”), if either one is “0”, the path replacement software 303 executes step 2001 again. Therefore, for example, when the access to the scsi device file “sda” fails in the first access, but the access state 505 of “sdb” is “0”, the path replacement software 303 gives an error to the file system program 302. Steps 2001 to 2003 are executed again without returning. Therefore, even when access to the scsi device file “sda” (that is, access to LDEVa) fails, the file system program 302 can be changed to the LDEVb as the access destination LDEV without stopping.
  • FIG. 11 shows a flow of write processing including processing performed in the storage apparatus 20.
  • the flow shown in FIG. 11 is a flow of processing when LDEVa and LDEVc are normal and no error occurs during processing.
  • FIG. 11 the flow of processing after step 1204 in FIG. 9 is described.
  • the file system program 302 When the file system program 302 receives a write request from the AP executed by the client 40 (Op. 001), the file system program 302 writes to the device file “sddlm” (Op. 003) and moves to the device file “sddlmb”. Is written (Op.004).
  • Op. 003 corresponds to step 1204 in FIG. 004 is a process corresponding to step 1206.
  • the device driver 304 When the device driver 304 receives a write to the device file “sda”, the device driver 304 issues a write command to the LDEVa (Op.007). When the device driver 304 receives a write to the device file “sdc”, the device driver 304 issues a write command to the LDEVc ( Op.008). This process corresponds to step 2003 in FIG.
  • the storage device 20a When the storage device 20a receives a write command for the LDEVa, the storage device 20a stores the write data in the LDEVa and instructs the storage device 20b to write the write data to the LDEVb (Op.009). This is because LDEVa and LDEVb are set to perform remote copy in the synchronous copy mode.
  • the storage device 20a receives a response from the storage device 20b indicating that the writing to the LDEVb has been completed (Ret.009), the storage device 20a returns a write completion response to the host 30 (device driver 304) (Ret.007). This response is sent back to the file system program 302 via the path replacement software 303 (Ret.005) (Ret.003).
  • the storage device 20a When the storage device 20a receives a write command for the LDEVc, the storage device 20a stores the write data in the LDEVc (Op.008). When the storage of the write data to the LDEVc is completed, the storage apparatus 20a returns a write completion response to the host 30 (device driver 304) (Ret.008). This response is returned to the file system program 302 via the path replacement software 303 (Ret.006) (Ret.004). Since LDEVc and LDEVe are set to perform remote copy in the asynchronous copy mode, the storage apparatus 20a also performs data copy to LDEVe, which is independent of the response to the host 30 (Ret.008). (Op. 010).
  • the response (Ret.004) for writing to the device file “sddlmb” arrives at the file system program 302 earlier than the response (Ret.003) for writing to the device file “sddlmma”. Yes.
  • the response Ret. 003 is a response Ret. It may happen that the file system program 302 arrives earlier than 004. However, when writing to the device file “sddlmb” is performed, a response is returned to the host 30 without waiting for the write data to be written to the LDEV of the storage apparatus 20b (Ret. 008). Therefore, the response Ret. 004 is a response Ret. It may happen that the file system program 302 arrives earlier than 003. Further, since the storage device 20 performs copying to the LDEVe in the asynchronous copy mode, the response time of the host 30 can be shortened.
  • the storage device 20a If the storage device 20a returns a response to the host 30 after confirming that it has been written to the LDEV of the storage device 20b, the response (Ret. 004) is returned to the file system program 302 at least Ret. . After 010. In that case, the response time of the client deteriorates (becomes longer). In particular, when the storage device 20a and the storage device 20b are installed in geographically distant places and the communication path 70 is long, the deterioration of the response time becomes so large that it cannot be ignored. In general, the actual data of a file is larger in size than metadata (Inode), and therefore the influence on the response time due to the increase in the distance of the communication path 70 is great. Therefore, if the asynchronous copy mode is used for data copy of the LDEV that stores the actual data of the file as in the computer system according to the present embodiment, the access response time can be shortened.
  • the storage apparatus 20a responds to the host 30 that writing to the LDEVa and LDEVc has been completed (Ret.007, Ret.008). Therefore, the file system program 302 recognizes that the write process requested by the client 40 has been completed normally, and responds to the client 40 that the write process has been completed normally (Ret. 001). However, if a failure occurs in the storage apparatus 20a thereafter, writing to the LDEVe (Op. 010) is not executed. Therefore, the latest data (the same data as the data written to LDEVc) is not written in LDEVe.
  • the storage apparatus 20a After that, when the client 40 issues a read request to the host 30 in order to access the file, the storage apparatus 20a is in an inaccessible state, so the host 30 reads data from the LDEVb and LDEVe of the storage apparatus 20b. . However, since the latest data is not written in the LDEVe, if the host 30 performs data reading from the LDEVe, erroneous (not latest) data may be read out.
  • erroneous (not up-to-date) data is prevented from being read by performing the processing described below when reading a file.
  • the flow of read processing executed by the file system program 302 will be described with reference to FIG. Prior to the read process described below, the file system program 302 performs the file open process shown in FIG. 7 to acquire an Inode from the storage apparatus 20. As described above, Inode is read from LDEVa in the course of the file open process, but when storage device 20a (LDEVa) cannot be accessed (read), reading is performed from LDEVb. The description of the file open process is omitted below.
  • the file system program 302 receives a read request from the AP of the client 40 via the file service daemon 301 and also receives information (offset, size) of the file descriptor and read data storage position of the read target file (step 1401). ).
  • the file system program 302 uses the file descriptor to obtain the inode information of the access target file.
  • the file system program 302 calculates the storage location of the read data, and executes the read for the device file “sddlmb” (step 1402). Similar to step 1204, the storage address of the read data is obtained by adding the offset received in step 1401 to the offset (243-2) included in the Inode. The lead range is equal to the size received in step 1401. Further, when the read for the device file “sddlmb” is executed, the processing of FIG. 10 is performed.
  • step 1402 when the reading of the device file “sddlmb” is successful (step 1403: Yes), the processing from step 1404 is performed. On the other hand, when the reading of the device file “sddlmb” has failed (step 1403: No), the file system program 302 notifies the calling source program of an error (step 1410) and ends the processing.
  • the case where reading of the device file “sddlmb” has failed is a case where both of the LDEVc and LDEVe cannot be accessed, for example, when both the storage apparatuses 20a and 20b are stopped.
  • step 1404 the file system program 302 compares the contents of prechk 251 added to the actual data read in step 1402 and prechk (243-4) included in the Inode. If both are the same value (step 1404: Yes), the file system program 302 returns the actual data to the caller program, responds that the read process has been completed normally (step 1405), and ends the process. . If both are different values (step 1404: No), the file system program 302 returns an error to the calling program and ends the processing (step 1420).
  • the prechk (243-4) included in the Inode stored in the LDEVa (or LDEVb) and the prechk 251 included in the actual data stored in the LDEVe are file write processing performed before the read processing. Both have been updated. Therefore, in this case, the determination in step 1404 is Yes, and the file system program 302 returns actual data to the calling program.
  • the prechk 251 included in the actual data stored in the LDEVe is updated.
  • the value of prechk (243-4) included in Inode stored in LDEVb is different from the value of prechk 251 included in actual data stored in LDEVe.
  • the file system program 302 returns an error to the caller program (file service daemon 301).
  • the file system program 302 operates so as to return read data to the calling program only when the contents of prechk 251 and prechk (243-4) are the same, and therefore erroneous (not correctly updated) data. Can be prevented from being read out.
  • the above is the description of the first embodiment.
  • the computer system according to the first embodiment stores the actual data of a file in a volume pair where asynchronous remote copy is performed, and stores the inode (metadata) of the file in a volume pair where synchronous remote copy is performed.
  • inode metadata
  • the response time at the time of file write can be shortened.
  • the file system program assigns and stores the same check code to the actual data of the file and the Inode, and compares the two check codes when reading the file, thereby comparing the actual data and the meta data. It is determined whether or not the data is updated at the same time. If the actual data and metadata are not updated at the same time, it is determined that the latest actual data is not stored in the storage device, and an error occurs without returning the actual data to the file request source such as the client. To be notified. As a result, even when a failure occurs in the storage apparatus, it is possible to prevent erroneous (not correctly updated) data from being read.
  • Example 2 will be described.
  • the hardware configuration of the computer system according to the second embodiment is the same as that described in the first embodiment.
  • a part of the processing of the file system program 302 and a part of the processing of the storage apparatus 20 are different. Below, it demonstrates focusing on the point.
  • the flow of the write process executed by the computer system according to the second embodiment will be described with reference to FIG. Note that Op. 001 to Op. 010, Ret. 001 to Ret. 010 means the same processing (issue of request, return of response) as in FIG.
  • a file system program executed by the host 30 reserves a partial area in the memory 32 as a cache area in advance (when the system is started). .
  • file system program 302 ′ executes file writing (Op.003, Op.004), the actual data and additional information of the file are stored in the cache area (Op. 101).
  • cache information The additional information stored in the cache area together with the actual data is referred to as “cache information”.
  • the file system program 302 ′ is Op.
  • the contents of the cache information 400 stored in the cache area 101 will be described with reference to FIG.
  • the cache information 400 includes s_volume_name (401), d_offset (402), d_size (403), and actual data 404.
  • S_volume_name (401) is LDEV information (device file name) in which actual data is written, and stores the same information as s_volume_name (241-1) included in SB241.
  • d_offset (402) and d_size (403) are the start address of the actual data write destination and the size of the actual data, respectively.
  • the actual data 404 also includes prechk.
  • the storage apparatus 20a issues a request for copying the write data for LDEVc to the LDEVe to the storage apparatus 20b (Op. 010).
  • the storage apparatus 20b returns a response to the storage apparatus 20a (Ret. 010). This process is also the same as that described in the first embodiment.
  • the control program 201a of the storage apparatus 20a When the control program 201a of the storage apparatus 20a according to the second embodiment receives a write request for a volume pair for which remote copy is performed in the asynchronous copy mode, when the write data storage to the secondary volume is completed, the control program 201a It has a function of notifying the host 30. Specifically, when the storage apparatus 20a receives the response (Ret. 010) from the storage apparatus 20b, the storage apparatus 20a notifies the host 30 that the copying from the LDEVc to the LDEVe has been normally completed. Hereinafter, this notification is referred to as “remote copy completion notification”.
  • the remote copy completion notification includes information that can identify the LDEVc (LDEV identification number and the like) and a write data write position (LBA, size).
  • the remote copy completion notification is received by the file system program 302 ′ via the device driver 304 of the host 30 and the path replacement software 303.
  • the format of the notification content is changed in the process in which the remote copy completion notification passes through the device driver 304 and the path replacement software 303.
  • the device driver 304 changes the LDEV identification number included in the notification to the scsl device file name. This can be done by referring to the scsi block mapping table 340.
  • the path replacement software 303 receives a remote copy completion notification from the device driver 304, the scsl device file included in the notification is changed to a device file name. This can be done by referring to the alternate path management table 330.
  • the file system program 302 refers to the content of the received remote copy completion notification and the cache information 400 stored in the cache area, and deletes the data for which the remote copy has been completed from the cache area (Op.102).
  • s_volume_name (401), offset (402), and size (403) are information on the device file name and data write position (LBA, size) included in the remote copy notification.
  • LBA device file name and data write position
  • Steps 1401 to 1410 are the same as the read process (FIG. 12) described in the first embodiment.
  • step 1404 if the contents of prechk 251 added to the actual data read in step 1402 and prechk (243-4) included in the Inode are different (step 1404: No), the file system program 302 ′ searches the cache area and determines whether the read target data is cached (step 1412). This can be determined by comparing the offset (402) and size (403) of the cache information 400 with the storage location of the data to be read in the current read process.
  • the file system program 302 When the read target data is cached (step 1412: Yes), the file system program 302 'returns the actual data included in the cache information 400 to the caller program (step 1413). Thereafter, the file system program 302 'writes the actual data included in the cache information 400 (step 1414), and the process is terminated. As a result, the actual data is written to the storage device 20 (LDEVe). When the read process is performed thereafter, the data is normally read from the LDEVe. If the read target data has not been cached (step 1412: No), the file system program 302 ′ returns an error to the calling source program and ends the processing, as in the read process described in the first embodiment ( Step 1420).
  • the computer system according to the first embodiment is erroneous (not updated correctly).
  • data read fails.
  • the file system program 302 ′ caches data until it is confirmed that the data has been written to the two storage apparatuses 20, so that the latest data is stored in the client 40. Can be returned.
  • the value stored in prechk is not limited to this. Information other than this may be stored as long as it can be identified that the actual data and the inode are written at the same time.
  • an error detection code such as a CRC (Cyclic Redundancy Check) code calculated using the actual data or a checksum may be stored in the actual data and inode prechk.
  • CRC Cyclic Redundancy Check
  • the error detection code is stored in the inode, it is not necessary to add the error detection code to the actual data. This is because the file system program can generate an error detection code from the actual data read from the LDEV. Then, the file system program compares the error detection code added to the inode with the error detection code generated from the actual data, and returns an error to the caller if they do not match.

Landscapes

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

Abstract

A computer system according to one aspect of the present invention comprises a host computer, a first storage device further comprising a first and a second volume, and a second storage device further comprising a third and a fourth volume. When writing a file to storage, the host computer writes actual file data to the first volume, and writes to the second volume metadata which is management information, such as the location where the actual file data is stored. With the first storage device, the data which is written to the first volume is mirrored on the third volume in an asynchronous copy mode, and the data which is written to the second volume is mirrored on the fourth volume in a synchronous copy mode.

Description

計算機システムComputer system
 本発明は、ファイルサーバに関する。 The present invention relates to a file server.
 現在、多くのストレージ装置では、たとえばRAID(Redundant Arrays of Independent (or Inexpensive) Disks)技術等の高信頼化技術を採用することで、HDD単体の信頼性を超えた信頼性を提供している。しかし、近年の情報化社会の進化によって上記RAID技術による提供可能な信頼性では不足する場面も現れてきている。 Currently, many storage apparatuses provide reliability exceeding the reliability of a single HDD by adopting high reliability technology such as RAID (Redundant Array of Independent (or Inexpensive) Disks) technology. However, due to the recent evolution of the information society, there is a scene where the reliability that can be provided by the RAID technology is insufficient.
 このような状況に対応する高可用化技術として、たとえば特許文献1に開示されているように、複数(たとえば2台)のストレージ装置(以下、装置A、装置Bと呼ぶ)を用いた情報システムを構築し、装置Aと装置Bとの間でデータを複製(ミラーリング)する技術がある。特許文献1に開示の情報システムでは、ホストが装置Aのボリュームに対してデータを書き込むためのリクエスト(ライトコマンド)を発行すると、装置Aは装置Bのボリュームに、データの複製を格納する。装置Bのボリュームにデータの複製が格納された後、装置Aはホストにライトコマンドが完了した旨を返信する。これにより、装置Aのボリュームと装置Bのボリュームには常時同一データが格納された状態が維持される。 As a high availability technology corresponding to such a situation, as disclosed in Patent Document 1, for example, an information system using a plurality of (for example, two) storage apparatuses (hereinafter referred to as apparatus A and apparatus B). Is constructed, and data is replicated (mirrored) between the device A and the device B. In the information system disclosed in Patent Document 1, when the host issues a request (write command) for writing data to the volume of the device A, the device A stores a copy of the data in the volume of the device B. After the copy of the data is stored in the volume of the device B, the device A returns to the host that the write command is completed. As a result, the same data is always stored in the volume of the device A and the volume of the device B.
 ホストが装置Aのボリュームへのアクセス(I/O処理)に失敗した場合、装置Bのボリュームにアクセスするよう、アクセス先を切り替える。装置Bのボリュームには装置Aのボリュームと同一データが格納されているので、ホストは問題なく業務を継続することができる。 When the host fails to access the volume of device A (I / O processing), the access destination is switched to access the volume of device B. Since the same data as the volume of the device A is stored in the volume of the device B, the host can continue the business without any problem.
米国特許第8595549号 明細書US Pat. No. 8,595,549 Specification
 特許文献1に開示の技術では、装置Aは装置Bのボリュームにデータの複製が格納されたことが確認されるまでは、ホストにライトコマンドが完了した旨を返信しない、いわゆる同期リモートコピーによるボリュームのコピーを行う。そのため、ホストのライト応答時間が長くなることが問題である。特に装置Bが、装置Aから離れた遠隔地に設置されているシステムの場合、ライト応答時間がより大きくなり、計算機システムの性能に悪影響を与えることがある。 In the technique disclosed in Patent Document 1, the device A does not send a reply that the write command is completed to the host until it is confirmed that the data copy is stored in the volume of the device B. Make a copy of Therefore, the problem is that the host write response time becomes long. In particular, in the case of a system in which the device B is installed at a remote location away from the device A, the write response time becomes longer, which may adversely affect the performance of the computer system.
 本発明の一観点に係る計算機システムは、ホスト計算機と、第1、第2ボリュームを有する第1ストレージ装置と、第3、第4ボリュームを有する第2ストレージ装置を有する。ホスト計算機がファイルをストレージに書き込む際、ファイル実データを第1ボリュームに書き込み、ファイル実データの格納位置等の管理情報であるメタデータを第2ボリュームに書き込む。第1ストレージ装置では、第1ボリュームに書き込まれたデータを非同期コピーモードで第3ボリュームに複製し、第2ボリュームに書き込まれたデータを同期コピーモードで第4ボリュームに複製する。 A computer system according to an aspect of the present invention includes a host computer, a first storage device having first and second volumes, and a second storage device having third and fourth volumes. When the host computer writes a file to the storage, the file actual data is written to the first volume, and metadata that is management information such as the storage location of the file actual data is written to the second volume. In the first storage device, data written to the first volume is replicated to the third volume in the asynchronous copy mode, and data written to the second volume is replicated to the fourth volume in the synchronous copy mode.
 本発明によれば、通常運用時のI/O応答時間を短くすることができ、また障害発生時の業務継続が可能になる。 According to the present invention, the I / O response time during normal operation can be shortened, and the business can be continued when a failure occurs.
実施例に係る計算機システムのハードウェア構成図である。It is a hardware block diagram of the computer system which concerns on an Example. 実施例に係る計算機システムのソフトウェア構成図である。It is a software block diagram of the computer system which concerns on an Example. メタデータ領域の構造の説明図である。It is explanatory drawing of the structure of a metadata area | region. 実データの構造の説明図である。It is explanatory drawing of the structure of real data. 交替パス管理テーブルの内容を示した図である。It is the figure which showed the content of the alternative path management table. scsiブロックマッピングテーブルの内容を示した図である。It is the figure which showed the content of the scsi block mapping table. ファイルオープン処理の流れ図である。It is a flowchart of a file open process. アクセス対象ファイル検索処理の流れ図である。It is a flowchart of an access object file search process. ファイルライト処理の流れ図である。It is a flowchart of a file write process. パス交替ソフトにより実行される処理の流れ図である。It is a flowchart of the process performed by path replacement software. ライト処理の全体の流れを示す図である。It is a figure which shows the whole flow of a write process. ファイルリード処理の流れ図である。It is a flowchart of a file read process. 実施例2におけるライト処理の全体の流れを示す図である。FIG. 10 is a diagram illustrating an overall flow of a write process according to a second embodiment. キャッシュ情報の構造の説明図である。It is explanatory drawing of the structure of cache information. 実施例2におけるファイルリード処理の流れ図である。10 is a flowchart of file read processing according to the second embodiment.
 以下、本発明の実施例について、図面を用いて説明する。なお、以下に説明する実施例は特許請求の範囲に係る発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. The embodiments described below do not limit the invention according to the claims, and all the elements and combinations described in the embodiments are essential for the solution of the invention. Is not limited.
 また、以後の説明では「プログラム」を主語として説明を行う場合があるが、実際には、プログラムはプロセッサ(CPU(Central Processing Unit))によって実行されることで、定められた処理が行われる。ただし説明が冗長になることを防ぐため、プログラムを主語として説明することがある。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。また、各種プログラムはプログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各装置にインストールされてもよい。記憶メディアとしては、例えば、ICカード、SDカード、DVD等であってもよい。 In the following description, “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 installed in each apparatus by a program distribution server or a computer-readable storage medium. As the storage medium, for example, an IC card, an SD card, a DVD, or the like may be used.
 実施例の説明に入る前に、以下で説明する実施例で用いられる各種用語について説明する。 Before starting the description of the embodiments, various terms used in the embodiments described below will be described.
 「ボリューム」とは、ストレージ装置がホストに対して提供する記憶領域(記憶空間)のことを意味する。以下で説明する実施例に係るストレージ装置は、ホストに対して1以上のボリュームを提供することができる。本明細書では、「ボリューム」の語の代わりに、「論理デバイス」という語を用いることもある。 “Volume” means a storage area (storage space) provided by the storage device to the host. A storage apparatus according to an embodiment described below can provide one or more volumes to a host. In this specification, the term “logical device” may be used instead of the term “volume”.
 「リモートコピー」とは、ストレージ装置のボリュームの複製を、別のストレージ装置のボリュームに作成する処理を意味する。以下で説明する実施例では、ストレージ装置がリモートコピーを実施する機能を有する。ホストからボリュームに対するライトデータを受領すると、ストレージ装置は、2台のストレージ装置のボリュームにライトデータを書き込む。 “Remote copy” means a process of creating a copy of a storage device volume in a volume of another storage device. In the embodiment described below, the storage apparatus has a function of performing remote copy. Upon receiving write data for the volume from the host, the storage apparatus writes the write data to the volumes of the two storage apparatuses.
 また、リモートコピーにより、2つのボリュームにデータが格納される時、最初にデータが格納されるボリュームのことは「プライマリボリューム」と呼ばれる。そして2番目にデータが格納されるボリュームは「セカンダリボリューム」と呼ばれる。そしてプライマリボリュームとセカンダリボリュームのペアのことを「ボリュームペア」と呼ぶ。 Also, when data is stored in two volumes by remote copy, the volume in which data is stored first is called “primary volume”. The second volume in which data is stored is called a “secondary volume”. A pair of a primary volume and a secondary volume is called a “volume pair”.
 「ファイルシステム」とは一般に、ボリュームに格納されたデータの検索や操作を行うためのプログラムのことを意味することもあれば、あるいはデータの検索や操作を可能にするためにボリューム上に作成されたデータ構造を意味することもある。本明細書では混同を避けるため、ボリュームに格納されたデータの検索や操作を行うためのプログラムのことを「ファイルシステムプログラム」と呼び、ボリューム上に作成されたデータ構造のことを「ファイルシステム」と呼ぶ。またボリューム上に、ファイルを格納するためのデータ構造を作成する処理のことを、「ファイルシステムを作成する」と表現する。 A “file system” generally means a program that searches and manipulates data stored in a volume, or is created on a volume to enable data retrieval and manipulation. It may mean a data structure. In this specification, in order to avoid confusion, a program for searching and operating data stored in a volume is called a “file system program”, and a data structure created on the volume is called a “file system”. Call it. The process of creating a data structure for storing a file on a volume is expressed as “creating a file system”.
 「マウント」とは、アプリケーションプログラムやオペレーティングシステムが、ファイルシステムにアクセスできるようにするための手続き(処理)を意味する。あるボリュームに格納されているデータ構造(ファイルシステム)にアクセスできるようにする手続きのことを、「ファイルシステムをマウントする」という。 “Mount” means a procedure (process) for allowing an application program or operating system to access a file system. The procedure for enabling access to a data structure (file system) stored in a volume is called "mounting a file system".
 「デバイスファイル」とは、ホスト上で実行されるプログラムが、ディスクなどの入出力装置にアクセスするためのインタフェースのことを指す。以下で説明する実施例における、デバイスドライバなどのプログラムは、ストレージ装置が提供するボリュームごとに固有のデバイスファイル名を対応付けて管理している。ホスト30上で実行されるプログラムは、デバイスファイル名を指定してアクセス要求を発行することで、デバイスファイル名に対応付けられたボリュームにアクセスすることができる。 “Device file” refers to an interface for a program executed on the host to access an input / output device such as a disk. In the embodiment described below, a program such as a device driver manages a unique device file name in association with each volume provided by the storage apparatus. A program executed on the host 30 can access a volume associated with a device file name by specifying a device file name and issuing an access request.
 以下で、本発明の実施例に係る計算機システムの構成を説明していく。図1は、実施例1に係る計算機システムのハードウェア構成を示す図である。 Hereinafter, the configuration of the computer system according to the embodiment of the present invention will be described. FIG. 1 is a diagram illustrating a hardware configuration of the computer system according to the first embodiment.
 本発明の実施例に係る計算機システムは、ホスト30と、2台のストレージ装置(20a、20b)を有する。ホスト30は1以上のクライアント40とネットワーク50を介して接続される。 The computer system according to the embodiment of the present invention has a host 30 and two storage devices (20a, 20b). The host 30 is connected to one or more clients 40 via the network 50.
 ストレージ装置20aとストレージ装置20bは、ホスト30が作成するファイルを記憶する装置である。ストレージ装置20aとストレージ装置20bは、ネットワーク60を介してホスト30と接続される。ストレージ装置20bのハードウェア構成はストレージ装置20aのハードウェア構成と同一である必要はないが、本実施例では、両者のハードウェア構成は同一である例を説明する。本明細書では、ストレージ装置20aとストレージ装置20bに共通の構成物または機能について説明する場合、“a”や“b”などのsuffixの付されていない参照番号を用いる。 The storage device 20a and the storage device 20b are devices that store files created by the host 30. The storage device 20 a and the storage device 20 b are connected to the host 30 via the network 60. Although the hardware configuration of the storage device 20b is not necessarily the same as the hardware configuration of the storage device 20a, in this embodiment, an example in which both hardware configurations are the same will be described. In the present specification, when a component or function common to the storage apparatus 20a and the storage apparatus 20b is described, reference numbers without suffix such as “a” and “b” are used.
 ストレージ装置20aを例にとって、ストレージ装置20のハードウェア構成を説明する。ストレージ装置20aは、ストレージコントローラ(CTLと略記されることもある)21aと複数のDISK23aとを備える。ストレージコントローラ21aは、ホスト30やストレージ装置20bと通信を行うための通信インタフェースや、ホスト30からのI/O要求を処理するためのプロセッサ、キャッシュメモリなどを備えた装置である。DISK23aは、ホスト30からのライトデータを格納する記憶デバイスである。一例として、HDD(Hard Disk Drive)をDISK23aに用いることができる。ただしHDD以外に、SSD(Solid State Drive)などの記憶デバイスを、DISK23aに適用してもよい。 The hardware configuration of the storage apparatus 20 will be described by taking the storage apparatus 20a as an example. The storage device 20a includes a storage controller (sometimes abbreviated as CTL) 21a and a plurality of DISKs 23a. The storage controller 21a is a device that includes a communication interface for communicating with the host 30 and the storage device 20b, a processor for processing an I / O request from the host 30, a cache memory, and the like. The DISK 23 a is a storage device that stores write data from the host 30. As an example, an HDD (Hard Disk Drive) can be used for the DISK 23a. However, in addition to the HDD, a storage device such as an SSD (Solid State Drive) may be applied to the DISK 23a.
 ストレージ装置20aとストレージ装置20bは、通信路70を介して接続されている。ストレージ装置20aはこの通信路70を介して、ホスト30からストレージ装置20aに書き込まれたデータの複製を、ストレージ装置20bに送信することができる。 The storage device 20a and the storage device 20b are connected via a communication path 70. The storage apparatus 20a can transmit a copy of data written from the host 30 to the storage apparatus 20a via the communication path 70 to the storage apparatus 20b.
 図1では、各ストレージ装置20にCTL21が1つ、DISK23が2つ存在する構成が示されているが、この数に限定されるわけではない。ストレージ装置20内にCTL21が2つ以上存在してもよいし、またDISK23が3つ以上存在しても良い。 FIG. 1 shows a configuration in which each storage apparatus 20 has one CTL 21 and two DISKs 23, but the number is not limited to this. Two or more CTLs 21 may exist in the storage apparatus 20, or three or more DISKs 23 may exist.
 ホスト30は、クライアント40に対してファイルサーバとして動作する計算機で、CPU31と、メモリ32と、NIC(Network Interface Controller)33と、HBA(Host Bus Adaptor)34を備える。NIC33は、クライアント40と通信を行うための通信インタフェース装置である。HBA34は、ストレージ装置20と通信するための通信インタフェース装置である。 The host 30 is a computer that operates as a file server for the client 40, and includes a CPU 31, a memory 32, a NIC (Network Interface Controller) 33, and an HBA (Host Bus Adapter) 34. The NIC 33 is a communication interface device for communicating with the client 40. The HBA 34 is a communication interface device for communicating with the storage apparatus 20.
 メモリ32は、例えばRAM(Random Access Memory)やROM(Read Only Memory)等の、高速アクセス可能な記憶デバイスである。ホスト30では、メモリ32上にホスト30を制御するプログラムを読み込み、CPU31がそのプログラムを実行する。ホスト30は、メモリ32に加えて又は代えて、別種の記憶資源(HDDなど)を有してもよい。メモリ32は、記憶デバイスの一例である。 The memory 32 is a high-speed accessible storage device such as RAM (Random Access Memory) or ROM (Read Only Memory). In the host 30, a program for controlling the host 30 is read onto the memory 32, and the CPU 31 executes the program. The host 30 may have another type of storage resource (such as an HDD) in addition to or instead of the memory 32. The memory 32 is an example of a storage device.
 ホスト30は、NIC33経由で、クライアント40からファイルレベルのI/O要求を受信する。ホスト30は、ファイルレベルのI/O要求をブロックレベルI/O要求に変換してストレージ装置20に送信する。 The host 30 receives a file level I / O request from the client 40 via the NIC 33. The host 30 converts the file level I / O request into a block level I / O request and transmits it to the storage apparatus 20.
 クライアント40は、CPU41と、メモリ42と、NIC43を備える。クライアント40は、メモリ42に加えて又は代えて、別種の記憶資源を有してもよい。クライアント40は、NIC43経由で、ファイルレベルのI/O要求をホスト30に送信する。 The client 40 includes a CPU 41, a memory 42, and a NIC 43. The client 40 may have other types of storage resources in addition to or instead of the memory 42. The client 40 transmits a file level I / O request to the host 30 via the NIC 43.
 図2は、本実施例に係る計算機システムのソフトウェア構成図である。ストレージ装置20a(20b)のCTL21では、プロセッサが制御プログラム201を実行している。制御プログラムが実行されることで、CTL21は1以上のDISK23の記憶領域を用いて、RAIDグループを形成する。これにより1台のDISK23に障害が発生した場合にも、データを復旧することができ、データの消失を防ぐことができる。 FIG. 2 is a software configuration diagram of the computer system according to the present embodiment. In the CTL 21 of the storage device 20a (20b), the processor executes the control program 201. By executing the control program, the CTL 21 forms a RAID group using one or more storage areas of the DISK 23. As a result, even when a failure occurs in one DISK 23, data can be recovered and data loss can be prevented.
 またCTL21は、RAIDグループの一部または全部の記憶領域を用いて、論理的な記憶デバイス24を形成する。本実施例ではこの論理的な記憶デバイスのことを、論理デバイス(LDEV)と呼ぶ。CTL21は複数の論理デバイスを形成することができる。ストレージ装置20はホスト30に対してLDEV24を提供し、ホスト30はストレージ装置20から提供されるLDEV24に対して、I/O要求(リードコマンド、ライトコマンド等)を発行する。CTL21はホスト30から受信したI/O要求に応じて、LDEV24に対するデータアクセスを実行する。 Further, the CTL 21 forms a logical storage device 24 using a part or all of the storage area of the RAID group. In this embodiment, this logical storage device is called a logical device (LDEV). The CTL 21 can form a plurality of logical devices. The storage apparatus 20 provides the LDEV 24 to the host 30, and the host 30 issues an I / O request (read command, write command, etc.) to the LDEV 24 provided from the storage apparatus 20. The CTL 21 executes data access to the LDEV 24 in response to the I / O request received from the host 30.
 なお、本実施例に係るストレージ装置20は、ホスト30から受信したライトデータを、LDEV24を構成するDISK23に格納する前に、CTL21の有するキャッシュメモリに格納する。そしてCTL21はライトバック方式による書き込みを行う。つまりライトデータがキャッシュメモリに格納された時点で、CTL21はホスト30に対してライト処理が完了した旨を応答し、ライトデータのDISK23への書き込みは、ホスト30に対する応答とは非同期に実施する。そのため、本実施例においては、LDEVを構成するDISK23にライトデータが格納された場合だけでなく、LDEVに対するライトデータがCTL21のキャッシュメモリに書き込まれた時点の状態も、「LDEVにデータが格納された(書き込まれた)」と表現される。 Note that the storage apparatus 20 according to the present embodiment stores the write data received from the host 30 in the cache memory of the CTL 21 before storing it in the DISK 23 configuring the LDEV 24. The CTL 21 performs writing by the write back method. That is, when the write data is stored in the cache memory, the CTL 21 responds to the host 30 that the write processing is completed, and writing of the write data to the DISK 23 is performed asynchronously with the response to the host 30. Therefore, in this embodiment, not only when the write data is stored in the DISK 23 constituting the LDEV, but also when the write data for the LDEV is written into the cache memory of the CTL 21, the data is stored in the LDEV. (Written) ".
 図2では、ストレージ装置20aが2つのLDEV24(LDEV24a-1、LDEV24a-2)を有し、ストレージ装置20bが2つのLDEV24(LDEV24b-1、LDEV24b-2)を有する構成が記載されている。ただしストレージ装置20は2より多くのLDEVを有することができる。以下では、LDEV24a-1のことを「LDEVa」、LDEV24a-2のことを「LDEVc」、LDEV24b-1のことを「LDEVb」、LDEV24b-2のことを「LDEVe」と表記することもある。 FIG. 2 shows a configuration in which the storage apparatus 20a has two LDEVs 24 (LDEV 24a-1 and LDEV 24a-2) and the storage apparatus 20b has two LDEVs 24 (LDEV 24b-1 and LDEV 24b-2). However, the storage apparatus 20 can have more than two LDEVs. Hereinafter, the LDEV 24a-1 may be referred to as “LDEVa”, the LDEV 24a-2 as “LDEVc”, the LDEV 24b-1 as “LDEVb”, and the LDEV 24b-2 as “LDEVe”.
 ストレージ装置20はさらにリモートコピー処理を実施する機能を有する。本実施例に係るストレージ装置20は、LDEVaとLDEVbをボリュームペアとして管理し、またLDEVcとLDEVeを別のボリュームペアとして管理している。またLDEVaとLDEVcがプライマリボリュームに設定され、LDEVbとLDEVeがセカンダリボリュームに設定されている。 The storage device 20 further has a function of performing remote copy processing. The storage apparatus 20 according to this embodiment manages LDEVa and LDEVb as volume pairs, and manages LDEVc and LDEVe as separate volume pairs. LDEVa and LDEVc are set as primary volumes, and LDEVb and LDEVe are set as secondary volumes.
 リモートコピー機能により、ボリュームペアであるLDEVaとLDEVbは、同一データが格納された状態が維持される。また別のボリュームペアであるLDEVcとLDEVeも、同一データが格納された状態が維持される。そのため、ストレージ装置20aに障害が発生して、ホスト30からLDEVaやLDEVcへのアクセスが不可能になった場合でも、ホスト30はストレージ装置20bにアクセスすれば、ホスト30がLDEVaやLDEVcに格納したデータ(の複製)にアクセスできる。 By the remote copy function, LDEVa and LDEVb, which are volume pairs, maintain the same data stored state. Further, LDEVc and LDEVe, which are different volume pairs, also maintain the same data stored state. Therefore, even when a failure occurs in the storage device 20a and access from the host 30 to the LDEVa or LDEVc becomes impossible, if the host 30 accesses the storage device 20b, the host 30 stores it in the LDEVa or LDEVc. Can access (replicated) data.
 リモートコピーによる、ボリュームへのデータ書き込み処理の概要を説明する。ストレージ装置20aが、ホスト30からLDEVaの領域(仮にこの領域のアドレスをAとする)にデータの書き込みの要求を受け付けると、LDEVaのアドレスAにデータを書き込むとともに、通信路70を介してストレージ装置20bに対し、LDEVbのアドレスAにホスト30から渡されたデータを書き込むことを指示する。ストレージ装置20bはこの指示(及びデータ)を受信すると、LDEVbのアドレスAにデータを書き込む。このような処理が行われることにより、LDEVaとLDEVbには同じデータが格納されている状態が維持される。 Explains the outline of the data write process to the volume by remote copy. When the storage apparatus 20a accepts a data write request from the host 30 to the LDEVa area (assuming the address of this area is A), the storage apparatus 20a writes the data to the address A of the LDEVa and, via the communication path 70, the storage apparatus 20b is instructed to write the data passed from the host 30 to the address A of the LDEVb. When the storage device 20b receives this instruction (and data), it writes the data to the address A of the LDEVb. By performing such processing, the state in which the same data is stored in LDEVa and LDEVb is maintained.
 リモートコピーには、同期コピーモード、非同期コピーモードの、二種類のコピーモードがある。同期コピーモードによるリモートコピー(同期リモートコピーとも呼ばれる)では、ストレージ装置20はホスト30からLDEV24に対するライト要求を受信すると、プライマリボリュームとセカンダリボリュームの両方にデータが格納されるまで、ライト要求に係る処理が完了した旨をホストに応答しない。言い換えれば、ストレージ装置20からホスト30に、ライト要求に対する完了の応答が戻ってきた場合には、ボリュームペアを構成する2つのボリュームにデータが格納されたことが保証されている。 Remote copy has two types of copy modes: synchronous copy mode and asynchronous copy mode. In remote copy in synchronous copy mode (also called synchronous remote copy), when the storage apparatus 20 receives a write request for the LDEV 24 from the host 30, processing related to the write request is performed until data is stored in both the primary volume and the secondary volume. Does not respond to the host that In other words, when a completion response to the write request is returned from the storage apparatus 20 to the host 30, it is guaranteed that data has been stored in the two volumes constituting the volume pair.
 非同期コピーモードによるリモートコピー(非同期リモートコピーとも呼ばれる)では、ストレージ装置20はホスト30からLDEV24に対するライト要求を受信すると、プライマリボリュームにデータを格納した時点で、ライト要求に係る処理が完了した旨をホスト30に応答する。セカンダリボリュームへのデータの格納は、ライト要求に係る処理が完了した旨の通知がホストに返送された後に行われてもよい。 In remote copy in asynchronous copy mode (also called asynchronous remote copy), when the storage apparatus 20 receives a write request for the LDEV 24 from the host 30, it indicates that the processing related to the write request has been completed when data is stored in the primary volume. Responds to the host 30. The storage of data in the secondary volume may be performed after a notification that processing related to the write request is completed is returned to the host.
 そのため、非同期コピーモードによるリモートコピーでは、同期コピーモードによるリモートコピーに比べて、ホスト30のI/O応答時間が短くなる。ただし、ストレージ装置20aからホスト30に、ライト要求に対する応答が戻ってきた時点では、プライマリボリュームにはデータが格納されていることが保証されているが、セカンダリボリュームにデータが格納されていないこともある。そのため、この時点でプライマリボリュームに障害が発生してアクセス不可能になったとすると、ホスト30はセカンダリボリュームからデータリードを行っても、正しいデータ(ホスト30がプライマリボリュームに書き込んだ最新のデータと同じデータ)を読み出せないことがある。その結果、ホスト30はセカンダリボリュームを用いて業務を継続することができないことがある。 Therefore, in the remote copy in the asynchronous copy mode, the I / O response time of the host 30 is shorter than in the remote copy in the synchronous copy mode. However, when the response to the write request is returned from the storage apparatus 20a to the host 30, it is guaranteed that data is stored in the primary volume, but data may not be stored in the secondary volume. is there. Therefore, if a failure occurs in the primary volume at this time, and the host 30 becomes inaccessible, even if the host 30 reads data from the secondary volume, the correct data (the same as the latest data written by the host 30 to the primary volume) Data) may not be read. As a result, the host 30 may not be able to continue business using the secondary volume.
 一方同期コピーモードによるリモートコピーの場合、ホスト30からストレージ装置20への書き込みが完了した(完了応答がストレージ装置20から返送された)場合には、ボリュームペアを構成する2つのボリュームにデータが格納されたことが保証されている。そのためプライマリボリュームに障害が発生してアクセス不可能になった場合でも、ホスト30はセカンダリボリュームにアクセスすれば、最新のデータを読み出すことができ、AP等のプログラム・業務を継続実行することができる。ただし同期コピーモードが用いられる場合、非同期コピーモードが用いられる場合に比べて、ホスト30のI/O応答時間が長くなる。特に通信路70の距離が長い場合、I/O応答時間が長期化するため、計算機システム全体の性能にも悪影響を及ぼす虞がある。 On the other hand, in the case of remote copy in the synchronous copy mode, when writing from the host 30 to the storage apparatus 20 is completed (a completion response is returned from the storage apparatus 20), data is stored in the two volumes constituting the volume pair. It is guaranteed that For this reason, even if the primary volume fails and becomes inaccessible, the host 30 can read the latest data by accessing the secondary volume, and can continuously execute programs and operations such as AP. . However, when the synchronous copy mode is used, the I / O response time of the host 30 becomes longer than when the asynchronous copy mode is used. In particular, when the distance of the communication path 70 is long, the I / O response time is prolonged, which may adversely affect the performance of the entire computer system.
 本実施例に係るストレージ装置20a、20bは、LDEVaとLDEVbのボリュームペアに対しては同期コピーモードによるリモートコピーが行われるように設定されている。一方LDEVcとLDEVeのボリュームペアに対しては非同期コピーモードによるリモートコピーが行われるように設定されている。この設定は、計算機システムのユーザ(管理者)によってあらかじめ行われる。 The storage apparatuses 20a and 20b according to the present embodiment are set so that remote copy is performed in the synchronous copy mode for the volume pair of LDEVa and LDEVb. On the other hand, the LDEVc and LDEVe volume pair is set to perform remote copy in the asynchronous copy mode. This setting is performed in advance by a user (administrator) of the computer system.
 また本実施例に係るストレージ装置20a、20bは、同期コピーモードによるリモートコピーが行われるボリュームペアについては、ホスト30がボリュームペアを構成する任意のLDEV24にアクセスすることを許可している。そのため、LDEVaとLDEVbのボリュームペアに対して、ホスト30はLDEVaとLDEVbのいずれにアクセスしてもよい。ホスト30がストレージ装置20bのLDEVbに対してライト要求及びライトデータを送信すると、ストレージ装置20bはストレージ装置20aにライト要求及びライトデータを送信し、ストレージ装置20aはプライマリボリュームであるLDEVaにライトデータを書き込む。LDEVaへのライトデータの書き込みが完了した後、ストレージ装置20bはLDEVbにライトデータを格納し、その後ホスト30に完了の応答を返却する。 In addition, the storage apparatuses 20a and 20b according to the present embodiment allow the host 30 to access any LDEV 24 that constitutes the volume pair for the volume pair that is to be remotely copied in the synchronous copy mode. Therefore, the host 30 may access either the LDEVa or the LDEVb for the LDEVa and LDEVb volume pair. When the host 30 sends a write request and write data to the LDEVb of the storage device 20b, the storage device 20b sends the write request and write data to the storage device 20a, and the storage device 20a sends the write data to LDEVa that is the primary volume. Write. After the writing of the write data to the LDEVa is completed, the storage apparatus 20b stores the write data in the LDEVb, and then returns a completion response to the host 30.
 一方LDEVcとLDEVeのボリュームペアは非同期コピーモードでのリモートコピーが行われるので、LDEVeには必ずしもLDEVcと同じデータが格納されていないことがある。そのため、LDEVcにアクセスできない場合を除き、LDEVeにアクセスされるべきではない。 On the other hand, since the LDEVc and LDEVe volume pairs are remotely copied in the asynchronous copy mode, the same data as the LDEVc may not always be stored in the LDEVe. For this reason, LDEVe should not be accessed unless LDEVc is not accessible.
 続いてホスト30が実行する各種プログラムについて説明する。ホスト30のメモリ32には少なくとも、ファイルサービスデーモン301、ファイルシステムプログラム302、パス交替ソフト303、デバイスドライバ304が格納されている。 Next, various programs executed by the host 30 will be described. The memory 32 of the host 30 stores at least a file service daemon 301, a file system program 302, path replacement software 303, and a device driver 304.
 デバイスドライバ304は、上位のプログラム(ファイルシステムプログラム302、パス交替ソフト303)に対して、LDEV24へのアクセスインタフェースを提供するためのプログラムである。デバイスドライバ304は、LDEV24をデバイスファイルにマップする。上位のプログラムがデバイスファイルを指定してリードまたはライト要求を発行すると、デバイスドライバ304は指定されたデバイスファイルにマップされたLDEV24に対して、リードコマンドまたはライトコマンドを発行する。 The device driver 304 is a program for providing an access interface to the LDEV 24 for a higher-level program (file system program 302, path replacement software 303). The device driver 304 maps the LDEV 24 to the device file. When the host program designates a device file and issues a read or write request, the device driver 304 issues a read command or a write command to the LDEV 24 mapped to the designated device file.
 本実施例に係る計算機システムでは、デバイスドライバ304は、LDEVaをデバイスファイルsda(341)にマップし、LDEVbをデバイスファイルsdb(342)にマップし、LDEVcをデバイスファイルsdc(343)にマップし、LDEVeをデバイスファイルsde(344)にマップしている。なお、以下ではデバイスドライバ304がLDEV24をマップしているデバイスファイル(デバイスファイルsda(341)~sde(344))のことを、「scsiデバイスファイル」と呼ぶ。 In the computer system according to the present embodiment, the device driver 304 maps LDEVa to the device file sda (341), maps LDEVb to the device file sdb (342), maps LDEVc to the device file sdc (343), and LDEVe is mapped to the device file sde (344). Hereinafter, the device files (device files sda (341) to sde (344)) to which the device driver 304 maps the LDEV 24 are referred to as “scsi device files”.
 パス交替ソフト303は、デバイスファイルに対するアクセス経路を動的に切り替えるプログラムである。パス交替ソフト303は、ファイルシステムプログラム302等の上位のプログラムに対し、デバイスファイルsddlma(331)、sddlmb(332)を提供する。デバイスファイルsddlma(331)には、デバイスファイルsda(341)とsdb(342)がマップされている。デバイスファイルsddlmb(332)には、デバイスファイルsdc(343)とsde(344)がマップされている。 The path replacement software 303 is a program that dynamically switches the access path to the device file. The path alternation software 303 provides device files sddlma (331) and sddlmb (332) to a higher-level program such as the file system program 302. Device files sda (341) and sdb (342) are mapped to the device file sddlma (331). Device files sdcmb (332) and device files sdc (343) and sde (344) are mapped.
 たとえばファイルシステムプログラム302がsddlma(331)に対してアクセス(リードまたはライト)を行うと、パス交替ソフト303はsda(341)またはsdb(342)のいずれか一方に対してアクセスを行う。またLDEVa(sda(341))がアクセス不可能だった場合、パス交替ソフト303はLDEVb(sdb(342))にアクセス先を変更する。アクセス先の変更はファイルシステムプログラム302には透過的に行われ、ファイルシステムプログラム302での処理を停止する必要がない。 For example, when the file system program 302 accesses (reads or writes) sdlma (331), the path replacement software 303 accesses either sda (341) or sdb (342). When the LDEVa (sda (341)) is not accessible, the path replacement software 303 changes the access destination to LDEVb (sdb (342)). The access destination is changed transparently to the file system program 302, and it is not necessary to stop the processing in the file system program 302.
 同様に、ファイルシステムプログラム302がsddlmb(332)に対してアクセス(リードまたはライト)を行うと、パス交替ソフト303はsdc(343)またはsde(344)のいずれか一方に対してアクセスを行う。LDEVc(sdc(343))がアクセス不可能だった場合、パス交替ソフト303はファイルシステムプログラム302に透過的に、LDEVe(sde(344))にアクセス先を変更する。 Similarly, when the file system program 302 accesses (reads or writes) sddlmb (332), the path replacement software 303 accesses either sdc (343) or sde (344). If LDEVc (sdc (343)) is inaccessible, the path replacement software 303 changes the access destination to LDEVe (sde (344)) transparently to the file system program 302.
 ファイルシステムプログラム302は、LDEV24に格納されるファイルのアクセスを実行するプログラムである。ファイルシステムプログラム302は、LDEV24にファイルシステムと呼ばれるデータ構造を作成することで、LDEV24にファイルを格納する、またはLDEV24に格納されたファイルの読み出しを行う。ファイルシステムの詳細は後述する。 The file system program 302 is a program for executing access to a file stored in the LDEV 24. The file system program 302 creates a data structure called a file system in the LDEV 24, thereby storing the file in the LDEV 24 or reading the file stored in the LDEV 24. Details of the file system will be described later.
 ファイルサービスデーモン301は、CIFS(Common Internet File System)やNFS(Network File System)等の、ファイルアクセス用に規定された通信プロトコルを使用して、クライアント40にファイル共有サービスを提供するプログラムである。ファイルサービスデーモン301はクライアント40からファイルアクセス要求(たとえばリード要求)を受け付けると、ファイルシステムプログラム302を呼び出して、LDEV24からアクセス対象のファイルを読み出し、クライアント40に返送する。 The file service daemon 301 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) or NFS (Network File System). When the file service daemon 301 receives a file access request (for example, a read request) from the client 40, the file service daemon 301 calls the file system program 302, reads the file to be accessed from the LDEV 24, and returns it to the client 40.
 続いて、ファイルシステムプログラム302が作成するファイルシステムの構造を説明する。ファイルシステムには一般に、ホスト30から書き込まれたデータ(実データ)を格納するための領域と、実データの書き込まれた位置等の、ファイルアクセスの際に必要となるファイルの管理情報(メタデータ)を格納するための領域とが含まれる。本明細書では前者を「実データ領域」と呼び、後者を「メタデータ領域」と呼ぶこともある。 Subsequently, the structure of the file system created by the file system program 302 will be described. In general, file management information (metadata) required for file access, such as an area for storing data (actual data) written from the host 30 and a position where the actual data is written, is stored in the file system. ) Is stored. In the present specification, the former is sometimes referred to as “actual data area”, and the latter is sometimes referred to as “metadata area”.
 ファイルシステムプログラム302は、1つのファイルシステムを格納するために、2つのLDEV24を用いる。ファイルシステムプログラム302は一方のLDEV24にはメタデータ領域を設け、もう一方のLDEV24には実データ領域を設ける。以下では、メタデータ領域が設けられたLDEV24のことを、「メタデータVOL」と呼び、実データ領域が設けられたLDEV24のことを、「実VOL」と呼ぶ。 The file system program 302 uses two LDEVs 24 to store one file system. In the file system program 302, one LDEV 24 is provided with a metadata area, and the other LDEV 24 is provided with an actual data area. Hereinafter, the LDEV 24 provided with the metadata area is referred to as “metadata VOL”, and the LDEV 24 provided with the actual data area is referred to as “real VOL”.
 図2の例では、1つのファイルシステムを格納するために、LDEVaとLDEVcを用いる。なお、LDEVbとLDEVeにはそれぞれ、LDEVaとLDEVcの複製データが格納されているので、1つのファイルシステムを格納するために、LDEVbとLDEVeが用いられているともいえる。本実施例では、LDEVa(LDEVb)にメタデータ領域が設けられ、LDEVc(LDEVe)に実データ領域が設けられている例を説明する。 In the example of FIG. 2, LDEVa and LDEVc are used to store one file system. Since LDEVb and LDEVe store the replicated data of LDEVa and LDEVc, respectively, it can be said that LDEVb and LDEVe are used to store one file system. In this embodiment, an example will be described in which a metadata area is provided in LDEVa (LDEVb) and an actual data area is provided in LDEVc (LDEVe).
 メタデータ領域の構造について、図3を用いて説明する。メタデータ領域は、Superblock(SBと略記されることもある)241、InodeEntryブロック242、Inodeブロック243の領域を有する。SB241は常にLDEV上の固定位置(たとえばLDEVの先頭)に配置される。SB241には少なくとも、s_volume_name(241-1)、ie_offset(241-2)、i_offset(241-3)という領域が存在する。 The structure of the metadata area will be described with reference to FIG. The metadata area includes areas of Superblock (may be abbreviated as SB) 241, InodeEntry block 242, and Inode block 243. The SB 241 is always arranged at a fixed position on the LDEV (for example, the head of the LDEV). The SB 241 has at least areas s_volume_name (241-1), ie_offset (241-2), and i_offset (241-3).
 s_volume_name(241-1)は、実データ領域が設けられているLDEV24の名称(識別子)が格納される領域である。s_volume_name(241-1)に格納されるLDEV24の名称として、パス交替ソフト303が提供するデバイスファイル名(図2の例ではsddlmb(332)など)が用いられる。 S_volume_name (241-1) is an area for storing the name (identifier) of the LDEV 24 in which the actual data area is provided. As the name of the LDEV 24 stored in the s_volume_name (241-1), the device file name provided by the path replacement software 303 (sddlmb (332) in the example of FIG. 2) is used.
 ie_offset(241-2)は、InodeEntryブロック242の先頭アドレスが格納される領域である。またi_offset(241-3)は、Inodeブロック243の先頭アドレスが格納される領域である。ファイルシステムプログラム302がファイルシステムを作成する時に、これらの領域に値を格納する。 Ie_offset (241-2) is an area in which the head address of the InodeEntry block 242 is stored. Further, i_offset (241-3) is an area in which the head address of the Inode block 243 is stored. When the file system program 302 creates a file system, values are stored in these areas.
 SB241の情報は、ファイルシステムプログラム302がファイルシステムをマウントする時に用いられる。計算機システムのユーザ(管理者)がファイルシステムをマウントしたい時、ユーザはファイルシステムプログラム302に対して、メタデータ領域を有するLDEV(本実施例ではLDEVaまたはLDEVcである)に対応するデバイスファイル(sddlma)を指定して、マウント指示を発行する。マウント処理の過程でファイルシステムプログラム302は、デバイスファイル“sddlma”をリードすることで、SB241を取得する。ファイルシステムプログラム302は、SB241に格納されているs_volume_name(241-1)を参照することで、実データ領域の格納されているLDEVを特定する。またファイルシステムプログラム302は、メモリ32にSB241を常駐させる。 The information of the SB 241 is used when the file system program 302 mounts the file system. When a user (administrator) of the computer system wants to mount a file system, the user makes a device file (sddlma) corresponding to an LDEV (in this embodiment, LDEVa or LDEVc) having a metadata area to the file system program 302. ) Is specified and a mount instruction is issued. The file system program 302 acquires the SB 241 by reading the device file “sddlma” during the mount process. The file system program 302 identifies the LDEV in which the actual data area is stored by referring to s_volume_name (241-1) stored in the SB 241. The file system program 302 makes the SB 241 resident in the memory 32.
 続いてInodeEntryブロック242、Inodeブロック243に格納される情報について説明する。InodeEntryブロック242には、複数のInodeEntryが格納される。Inodeブロック243には、複数のInodeが格納される。 Subsequently, information stored in the InodeEntry block 242 and the Inode block 243 will be described. The InodeEntry block 242 stores a plurality of InodeEntry. A plurality of inodes are stored in the inode block 243.
 InodeとInodeEntryは、ファイルの管理情報である。1つのファイルにつき、InodeとInodeEntryがそれぞれ1つ存在する。本明細書では、InodeとInodeEntryのセットのことを、ファイルのメタデータと呼ぶ。図3に示されているように、Inodeには、i_no(243-1)、offset(243-2)、size(243-3)、prechk(243-4)の情報が含まれる。 Inode and InodeEntry are file management information. There is one Inode and one InodeEntry for each file. In this specification, a set of Inode and InodeEntry is called file metadata. As shown in FIG. 3, the Inode includes information of i_no (243-1), offset (243-2), size (243-3), and prechk (243-4).
 ファイルシステム内の各Inodeには、ファイルシステム内で一意な識別番号が付される。この番号をInode番号と呼ぶ。i_no(243-1)には、Inode番号が格納される。本実施例に係るファイルシステムプログラム302は、0以上の整数値をInode番号に用いる。 ・ Each Inode in the file system is given a unique identification number in the file system. This number is called the Inode number. Inode number is stored in i_no (243-1). The file system program 302 according to the present embodiment uses an integer value of 0 or more for the Inode number.
 offset(243-2)、size(243-3)は、ファイルの実データの格納されている領域を特定するための情報を格納するための領域である。offset(243-2)には、ファイルの実データの格納されている領域の先頭アドレスが格納される。実データ領域がLDEVcに設けられている場合(つまりs_volume_name241-1が、“sddlmb”であった場合)、offset(243-2)には、LDEVc上のアドレス(たとえばLBA)が格納される。size(243-3)には、ファイルのサイズが格納される。ファイルのサイズの定義については後述する。 Offset (243-2) and size (243-3) are areas for storing information for specifying the area where the actual data of the file is stored. In the offset (243-2), the head address of the area where the actual data of the file is stored is stored. When the actual data area is provided in the LDEVc (that is, when s_volume_name 241-1 is “sddlmb”), an address (for example, LBA) on the LDEVc is stored in offset (243-2). The size of the file is stored in size (243-3). The definition of the file size will be described later.
 prechk(243-4)は、固定サイズ(たとえば16バイト)の領域で、ここにはファイルの実データが正しく書き込まれたことを後から確認できるようにするためのチェックコードが格納される。詳細は後述する。 Prechk (243-4) is an area of a fixed size (for example, 16 bytes), and stores a check code for enabling later confirmation that the actual data of the file has been correctly written. Details will be described later.
 なお、Inodeには、上で説明した情報以外の物も含まれていてよい。たとえばファイルのアクセス権、アクセス日時の情報等も含まれ得る。 Note that the Inode may include things other than the information described above. For example, file access rights, access date information, and the like may be included.
 InodeEntryに含まれる情報について説明する。図3に示されている通り、InodeEntryにはi_no(242-1)とfileName(242-2)が含まれている。i_no(242-1)は、i_no(243-1)と同じく、Inode番号である。fileName(242-2)には、ファイルのファイル名が格納される。 Information included in InodeEntry will be described. As shown in FIG. 3, InodeEntry includes i_no (242-1) and fileName (242-2). i_no (242-1) is an Inode number, similarly to i_no (243-1). The file name of the file is stored in fileName (242-2).
 InodeEntryとInodeはいずれも、固定サイズの情報である。InodeEntryブロック242には複数のInodeEntryが、i_no(242-1)の最も小さいもの(0番)から順に連続的に格納されている。Inodeブロック243には複数のInodeが、i_no(243-1)の最も小さいものから順に連続的に格納されている。 Both InodeEntry and Inode are fixed size information. In the InodeEntry block 242, a plurality of InodeEntry is successively stored in order from the smallest i_no (242-1) (number 0). In the Inode block 243, a plurality of Inodes are continuously stored in order from the smallest i_no (243-1).
 InodeEntryはファイル検索用の情報である。ファイルシステムプログラム302が、たとえばクライアント40上で実行されるアプリケーションプログラム(以下、「AP」と略す)からファイルサービスデーモン301を介して、ファイル名が“A”のファイルのリード要求(正確には、ファイルオープン要求とリード要求)を受け付けた時、ファイルシステムプログラム302はInodeEntryブロック242内に、fileName(242-2)が“A”のInodeEntryがあるか検索する。そして検索されたInodeEntryのi_no(242-1)を特定する。 InodeEntry is information for file search. The file system program 302 receives, for example, a read request for a file whose file name is “A” from the application program (hereinafter abbreviated as “AP”) executed on the client 40 via the file service daemon 301 (more precisely, When a file open request and a read request are received, the file system program 302 searches the InodeEntry block 242 for an InodeEntry whose fileName (242-2) is “A”. Then, i_no (242-1) of the searched InodeEntry is specified.
 仮に検索されたInodeEntryのi_no(242-1)がN(Nは0以上の整数値)であった場合、ファイルシステムプログラム302は続いてInodeブロック243内を検索することで、i_no(243-1)がNのInodeを特定する。そしてファイルシステムプログラム302は、特定されたInodeに含まれるoffset(243-2)、size(243-3)を用いて、実データにアクセスする。 If i_no (242-1) of the retrieved InodeEntry is N (N is an integer value equal to or greater than 0), the file system program 302 subsequently searches in the Inode block 243 to obtain i_no (243-1). ) Identifies N inodes. Then, the file system program 302 accesses the actual data using the offset (243-2) and size (243-3) included in the specified Inode.
 実データの構造について、図4を用いて説明する。実データは、実VOL(本実施例ではLDEVc)に格納される。実データには、prechk(251)とfiledata(252)が含まれる。filedata(252)が、ファイルの実データ(クライアント40から書き込みを要求されたデータ)である。prechk(251)は、ファイルのInodeに含まれるprechk(243-4)と同じ情報である。ファイルシステムプログラム302がファイルの書き込みを行う時、prechk(251)と、ファイルのInodeに含まれるprechk(243-4)に同じ情報を書き込む。本実施例に係るファイルシステムプログラム302は、prechk(251)及びprechk(243-4)に、1を初期値とする整数値を格納する。最初にファイル書き込みが行われる際、prechk(251)及びprechk(243-4)には1が書き込まれ、n回目の書き込み(nは整数値で、n>1)の際には、prechk(251)及びprechk(243-4)にはnが書き込まれる。つまりprechk(243-4)とprechk(251)には、ファイルの書き込み回数に相当する値が格納される。なお、実データにはprechk(251)が含まれるため、ファイルサイズ(Inodeのsize(243-3)に格納される値)は、filedata(252)の長さにprechk(251)の長さを加算した値である。 The structure of actual data will be described with reference to FIG. The actual data is stored in the actual VOL (LDEVc in this embodiment). The actual data includes prechk (251) and filedata (252). filedata (252) is the actual data of the file (data requested to be written by the client 40). prechk (251) is the same information as prechk (243-4) included in the inode of the file. When the file system program 302 writes a file, the same information is written to prechk (251) and prechk (243-4) included in the inode of the file. The file system program 302 according to the present embodiment stores an integer value with 1 as an initial value in prechk (251) and prechk (243-4). When writing a file for the first time, 1 is written to prechk (251) and prechk (243-4), and prechk (251) is used for the nth write (n is an integer value, n> 1). ) And prechk (243-4) are written n. That is, prechk (243-4) and prechk (251) store values corresponding to the number of file writes. Since the actual data includes prechk (251), the file size (value stored in the size of Inode (243-3)) is set to the length of filedata (252) by the length of prechk (251). It is the added value.
 続いて、各プログラム(303、304)が使用する管理情報の内容について説明する。図5には、交替パス管理テーブル330の内容の一例が示されている。交替パス管理テーブル330は、パス交替ソフト303が用いる管理情報を格納するためのテーブルで、scsiデバイスファイル501、DMデバイスファイル502、属性503、コピー方式504、アクセス状態505のカラムを有する。 Next, the contents of management information used by each program (303, 304) will be described. FIG. 5 shows an example of the contents of the alternate path management table 330. The alternate path management table 330 is a table for storing management information used by the path alternate software 303, and includes columns of an scsi device file 501, a DM device file 502, an attribute 503, a copy method 504, and an access state 505.
 DMデバイスファイル502は、パス交替ソフト303が上位のプログラムに提供するデバイスファイルのデバイスファイル名が格納される。一方scsiデバイスファイル501には、DMデバイスファイル502にマッピングされているscsiデバイスファイル名が格納される。属性503には、DMデバイスファイル502で特定されるデバイスファイルにマッピングされているLDEVの属性が格納される。0が格納されている場合、そのLDEVがプライマリボリュームであることを表す。それ以外の値(たとえば1)が格納される場合、そのLDEVがセカンダリボリュームであることを表す。 The DM device file 502 stores the device file name of the device file provided to the upper program by the path replacement software 303. On the other hand, the scsi device file 501 stores the scsi device file name mapped to the DM device file 502. The attribute 503 stores the LDEV attribute mapped to the device file specified by the DM device file 502. When 0 is stored, this indicates that the LDEV is a primary volume. When other values (for example, 1) are stored, this indicates that the LDEV is a secondary volume.
 コピー方式504には、DMデバイスファイル502にマッピングされているLDEVのペアに対して実行されるリモートコピー方式の情報が格納される。0が格納されている場合、同期コピーモードによるコピーが行われ、1が格納されている場合、非同期コピーモードによるコピーが行われることを表す。 The copy method 504 stores information on the remote copy method executed for the LDEV pair mapped to the DM device file 502. When 0 is stored, copying in the synchronous copy mode is performed, and when 1 is stored, copying in the asynchronous copy mode is performed.
 アクセス状態505には、scsiデバイスファイル501にマッピングされているLDEV24の状態を表す情報が格納される。0が格納されている場合LDEV24の状態は正常で、ホスト30はLDEV24にアクセス可能である。1が格納されている場合LDEV24の状態は正常でなく、ホスト30はLDEV24にアクセスできない状態であることを表す。交替パス管理テーブル330への情報登録は、アクセス状態505に登録される情報を除き、計算機システムのユーザによって行われる。 In the access state 505, information indicating the state of the LDEV 24 mapped to the scsi device file 501 is stored. When 0 is stored, the state of the LDEV 24 is normal and the host 30 can access the LDEV 24. When 1 is stored, the status of the LDEV 24 is not normal and the host 30 cannot access the LDEV 24. Information registration in the alternate path management table 330 is performed by a user of the computer system except for information registered in the access state 505.
 図6は、scsiブロックマッピングテーブル340の内容の一例を示す図である。scsiブロックマッピングテーブル340は、ストレージ521、LDEV522,scsiデバイスファイル523のカラムを有する。scsiブロックマッピングテーブル340は、デバイスドライバ304が使用する情報が格納されたテーブルで、scsiデバイスファイル523に格納されているデバイスファイル名で特定されるデバイスファイルが、LDEV522で特定されるLDEVにマッピングされていることを表す。またストレージ521には、LDEV522で特定されるLDEVが属しているストレージ装置の識別情報(シリアル番号等)が格納される。デバイスドライバ304はscsiブロックマッピングテーブル340を参照することにより、上位のプログラム(パス交替ソフト303等)がたとえばデバイスファイル“sdb”に対するアクセス要求を発行した場合、LDEVbにアクセスすればよいということを認識できる。scsiブロックマッピングテーブル340への情報登録は、計算機システムのユーザによって行われる。ただし別の実施形態として、デバイスドライバ304がストレージ装置20から情報取得をすることにより、scsiブロックマッピングテーブル340に自動的に情報登録をするようにしてもよい。 FIG. 6 is a diagram showing an example of the contents of the scsi block mapping table 340. The scsi block mapping table 340 includes columns of a storage 521, an LDEV 522, and an scsi device file 523. The scsi block mapping table 340 stores information used by the device driver 304. The device file specified by the device file name stored in the scsi device file 523 is mapped to the LDEV specified by the LDEV 522. Represents that Further, the storage 521 stores identification information (such as a serial number) of the storage apparatus to which the LDEV specified by the LDEV 522 belongs. By referring to the scsi block mapping table 340, the device driver 304 recognizes that when a higher-level program (such as the path replacement software 303) issues an access request for the device file “sdb”, for example, the LDEVb may be accessed. it can. Information registration in the scsi block mapping table 340 is performed by a user of the computer system. However, as another embodiment, information may be automatically registered in the scsi block mapping table 340 by the device driver 304 acquiring information from the storage apparatus 20.
 続いて、ホスト30がクライアント40からファイルアクセス要求を受け付けた時に、ホスト30で行われる処理の流れを、図7以降を用いて説明する。クライアント40はファイルアクセスを行う前に、ファイルオープンの要求を行う。図7はファイルシステムプログラム302がファイルオープン要求を受け付けた時に実行される処理の流れを示す。 Subsequently, the flow of processing performed by the host 30 when the host 30 receives a file access request from the client 40 will be described with reference to FIG. The client 40 makes a file open request before performing file access. FIG. 7 shows the flow of processing executed when the file system program 302 receives a file open request.
 ステップ1001でファイルシステムプログラム302はファイルオープン要求を受領する。ファイルオープン要求には、アクセス対象ファイルのファイル名が含まれるので、ファイルシステムプログラム302はそれを取得する。 In step 1001, the file system program 302 receives a file open request. Since the file open request includes the file name of the access target file, the file system program 302 acquires it.
 ステップ1002でファイルシステムプログラム302は、アクセス対象ファイルのInodeの読み出しを行う。この処理の詳細は後述する。ステップ1003でファイルシステムプログラム302は、アクセス対象ファイルに対応するファイルディスクリプタを生成し、生成したファイルディスクリプタを、アクセス対象ファイルのInodeとともにメモリ32上に格納する。この、Inode及びInodeとともに格納されるファイルディスクリプタのセットのことを、ファイル構造体と呼ぶ。ファイルディスクリプタは、ファイルにアクセスするために用いられるキーの一種で、ファイルのオープン処理が実行された後、ファイルのリードやライトを行う際、ファイルアクセスを要求するプログラムは、ファイルディスクリプタをファイルシステムプログラム302に渡すことで、ファイルシステムプログラム302にアクセス対象ファイルを教えることができる。ファイルディスクリプタ及びファイル構造体は、クライアント40がファイルアクセスを終了する時に発行するファイルクローズ要求を受領するまで、メモリ32上に保持される。なお、本実施例ではファイルクローズ要求受領時の処理の説明は省略する。 In step 1002, the file system program 302 reads the inode of the access target file. Details of this processing will be described later. In step 1003, the file system program 302 generates a file descriptor corresponding to the access target file, and stores the generated file descriptor on the memory 32 together with the inode of the access target file. This set of file descriptors stored together with Inode and Inode is called a file structure. A file descriptor is a type of key used to access a file. When a file is read or written after file open processing is executed, a file request program is called a file system program. By passing to 302, the file to be accessed can be taught to the file system program 302. The file descriptor and the file structure are held on the memory 32 until receiving a file close request issued when the client 40 ends the file access. In the present embodiment, the description of the processing when the file close request is received is omitted.
 最後にファイルシステムプログラム302は、ファイルディスクリプタを呼び出し元のプログラム(ファイルサービスデーモン301、クライアント40のAP)に返却し(ステップ1004)、処理を終了する。 Finally, the file system program 302 returns the file descriptor to the calling program (file service daemon 301, AP of the client 40) (step 1004), and ends the process.
 続いてステップ1002で行われる、アクセス対象ファイルのInodeの読み出し処理を、図8を用いて説明する。まずステップ1041でファイルシステムプログラム302は、メタデータ領域のSB241内の、ie_offset(241-2)とi_offset(241-3)を読み出し、ie_offset(241-2)の値を変数offset1に格納する。 Subsequently, the process of reading the inode of the access target file performed in step 1002 will be described with reference to FIG. First, in step 1041, the file system program 302 reads ie_offset (241-2) and i_offset (241-3) in the SB 241 in the metadata area, and stores the value of ie_offset (241-2) in the variable offset1.
 本実施例に係る計算機システムでは、メタデータ領域はLDEVa(LDEVb)に設けられており、LDEVa(LDEVb)にアクセスする際のデバイスファイルは“sddlma”である。そのためステップ1041では、ファイルシステムプログラム302は“sddlma”に対する読み出し要求を発行する。この読み出し要求は、パス交替ソフト303によって受領され、パス交替ソフト303がLDEVa(LDEVc)への読み出しを実行する。この後で説明するステップ1042、1046においてもメタデータ領域内のデータ読み出しが行われるが、やはりステップ1041と同様に、ファイルシステムプログラム302は“sddlma”に対する読み出し要求を発行する。この処理の詳細は後述する。 In the computer system according to the present embodiment, the metadata area is provided in LDEVa (LDEVb), and the device file for accessing LDEVa (LDEVb) is “sddlma”. Therefore, in step 1041, the file system program 302 issues a read request for “sddlma”. This read request is received by the path replacement software 303, and the path replacement software 303 executes reading to LDEVa (LDEVc). In steps 1042 and 1046, which will be described later, data in the metadata area is also read. Similarly to step 1041, the file system program 302 issues a read request for “sdddlma”. Details of this processing will be described later.
 続いてファイルシステムプログラム302は、InodeEntryブロック242のInodeEntryを読み出す(ステップ1042)。この時の読み出し先アドレスは、LDEVa(LDEVb)のアドレスoffset1である。読み出したInodeEntryのfileName(242-2)が、アクセス対象のファイル名と一致していれば(ステップ1043:Yes)、ステップ1045以降の処理が行われる。ただしfileName(242-2)がアクセス対象のファイル名と異なる場合(ステップ1043:No)、ファイルシステムプログラム302は変数offset1に、InodeEntryのサイズを加算し(ステップ1044)、再びステップ1042の処理を実行する。fileName(242-2)がアクセス対象のファイル名と一致するInodeEntryが見つかるまで、ステップ1042~ステップ1044の処理が繰り返される。全InodeEntryを探索したが、fileName(242-2)がアクセス対象のファイル名と一致するInodeEntryが見つからなかった場合、ファイルシステムプログラム302は呼び出し元のプログラムにエラーを返却する。 Subsequently, the file system program 302 reads InodeEntry of the InodeEntry block 242 (Step 1042). The read destination address at this time is the address offset1 of LDEVa (LDEVb). If the read FileName (242-2) of InodeEntry matches the file name to be accessed (step 1043: Yes), the processing after step 1045 is performed. However, if fileName (242-2) is different from the file name to be accessed (step 1043: No), the file system program 302 adds the size of InodeEntry to the variable offset1 (step 1044), and executes the processing of step 1042 again. To do. Steps 1042 to 1044 are repeated until an InodeEntry whose fileName (242-2) matches the file name to be accessed is found. When all the InodeEntry are searched, but the InodeEntry whose fileName (242-2) matches the name of the file to be accessed is not found, the file system program 302 returns an error to the calling program.
 ステップ1045では、ファイルシステムプログラム302は、見つかったInodeEntryに含まれるi_no(242-1)に基づいて、読み出すべきInodeの格納されているアドレスを特定する。i_no(242-1)がNのInodeの格納アドレスは、
「i_offset(241-3)+Inodeのサイズ×N」
で特定できる。ファイルシステムプログラム302は、ここで特定されたアドレスを変数offset2に格納する。
In step 1045, the file system program 302 specifies the address at which the Inode to be read is stored based on i_no (242-1) included in the found InodeEntry. The storage address of the inode where i_no (242-1) is N is
“I_offset (241-3) + Inode size × N”
Can be specified. The file system program 302 stores the address specified here in the variable offset2.
 ステップ1046では、ファイルシステムプログラム302は、デバイスファイルsddlmaのアドレスoffset2からデータを読み出すことで、アクセス対象ファイルのInodeを取得し、処理を終了する。 In step 1046, the file system program 302 reads the data from the address offset2 of the device file sddlma to acquire the Inode of the access target file, and ends the process.
 次に、ファイルシステムプログラム302が実行するファイルライト処理の流れを、図9を用いて説明する。なお、ここでは、すでにファイルシステムに書き込みが行われたファイル(以下ではこのファイルのことを「更新前ファイル」と呼ぶ)に対して、データを上書き(更新)する場合の処理の流れを説明する。また説明が冗長になることを防ぐために、ライトデータのサイズが、更新前ファイルの格納されている領域の範囲内に収まるサイズ(ファイルサイズの拡張が発生しない)場合の例を説明する。 Next, the flow of file write processing executed by the file system program 302 will be described with reference to FIG. Here, the flow of processing when data is overwritten (updated) on a file that has already been written to the file system (hereinafter referred to as “file before update”) will be described. . In order to prevent the description from becoming redundant, an example will be described in which the size of the write data is within the range of the area where the pre-update file is stored (file size expansion does not occur).
 最初にファイルシステムプログラム302は、呼び出し元のプログラムからファイルディスクリプタ及びライトデータの書き込み位置の情報(オフセット、サイズ)を受領する(ステップ1201)。ステップ1201ではさらに、ファイルシステムプログラム302はメモリ32内を検索することで、受領したファイルディスクリプタと同じ値のファイルディスクリプタを含んだファイル構造体を特定する。これによりアクセス対象ファイルのInodeの情報を得ることができる。 First, the file system program 302 receives information (offset, size) of the write position of the file descriptor and write data from the calling program (step 1201). In step 1201, the file system program 302 further searches the memory 32 to identify a file structure including a file descriptor having the same value as the received file descriptor. Thereby, the inode information of the access target file can be obtained.
 次にファイルシステムプログラム302は、呼び出し元のプログラムからライトデータを受領するとともに、ライトデータの書き込み位置を算出する(ステップ1202)。ライトデータの書き込み開始アドレスは、Inodeに含まれているoffset(243-2)に、ステップ1201で受領したオフセットを加算することで求められる。またライトデータの書き込み範囲は、ステップ1201で受領したサイズに等しい。 Next, the file system program 302 receives write data from the calling program and calculates the write data write position (step 1202). The write data write start address is obtained by adding the offset received in step 1201 to the offset (243-2) included in the Inode. The write data write range is equal to the size received in step 1201.
 続いてファイルシステムプログラム302は、メモリ32に格納しているInodeの中の情報を更新する(ステップ1203)。具体的には、prechk(243-4)の値に1を加算する。またoffset(243-2)、size(243-3)については、変更の必要がある場合(ファイルサイズが拡大、または縮小される場合、或いはファイル格納位置が変更される場合)に更新する。 Subsequently, the file system program 302 updates information in the Inode stored in the memory 32 (step 1203). Specifically, 1 is added to the value of prechk (243-4). Further, offset (243-2) and size (243-3) are updated when it is necessary to change (when the file size is enlarged or reduced, or when the file storage position is changed).
 ステップ1204でファイルシステムプログラム302は、ステップ1203で更新されたInodeの情報をメタデータ領域に書き込む。Inodeの書き込みが成功した場合(ステップ1205:Yes)には、ステップ1206以降の処理が行われる。Inodeの書き込みが失敗した場合(ステップ1205:Noの場合。これはパス交替ソフト303からエラーが返却された場合である)、ファイルシステムプログラム302は呼び出し元のプログラムにエラーを通知し(ステップ1209)、処理を終了する。 In step 1204, the file system program 302 writes the inode information updated in step 1203 in the metadata area. If the inode has been successfully written (step 1205: Yes), the processing from step 1206 is performed. If the inode writing has failed (step 1205: No, this is a case where an error is returned from the path replacement software 303), the file system program 302 notifies the calling program of the error (step 1209). The process is terminated.
 続いてステップ1206でファイルシステムプログラム302はライトデータを実データ領域に書き込む。ライトデータの書き込みが成功した場合(ステップ1207:Yes)、ファイルシステムプログラム302は呼び出し元のプログラムに、処理が正常に完了した旨を通知し(ステップ1208)、処理を終了する。失敗した場合には、ファイルシステムプログラム302は呼び出し元のプログラムにエラーを通知し(ステップ1209)、処理を終了する。 Subsequently, in step 1206, the file system program 302 writes the write data in the actual data area. If the write data has been successfully written (step 1207: Yes), the file system program 302 notifies the calling program that the process has been completed normally (step 1208), and the process is terminated. If it fails, the file system program 302 notifies the calling program of an error (step 1209) and ends the process.
 先にも述べたが、実データはprechk251が付加された状態で格納される。そのためファイルシステムプログラム302はステップ1206にて、ステップ1203で更新したprechk(243-4)の情報をライトデータの先頭に付加してから、実データ領域に書き込みを行う。ステップ1204、1206の処理が正常に実施された場合、Inodeブロック243に格納されたInodeに含まれるprechk(243-4)と実データ領域に格納されたファイル実データに付加されたprechk(251)の値は同じになる。 As described above, the actual data is stored with prechk 251 added. Therefore, in step 1206, the file system program 302 adds the information of prechk (243-4) updated in step 1203 to the head of the write data, and then writes it in the actual data area. If the processes of steps 1204 and 1206 are normally performed, prechk (243-4) included in the Inode stored in the Inode block 243 and prechk (251) added to the file actual data stored in the actual data area. Will have the same value.
 なお、ここでは、メタデータ領域にInodeを書き込んだ(ステップ1204)後、実データ領域への書き込みを行う(ステップ1206)と説明したが、この順序は逆でも良い。 Note that, here, it has been described that the inode is written in the metadata area (step 1204) and then the actual data area is written (step 1206), but this order may be reversed.
 また本実施例に係る計算機システムでは、実データ領域はLDEVc(LDEVe)に設けられており、LDEVc(LDEVe)にアクセスする際のデバイスファイルは“sddlmb”である。そのためステップ1204、1206では、ファイルシステムプログラム302は“sddlmb”に対する書き込み要求を発行する。この書き込み要求は、パス交替ソフト303によって受領され、パス交替ソフト303がLDEVc(またはLDEVe)への読み出しを実行する。 In the computer system according to the present embodiment, the actual data area is provided in LDEVc (LDEVe), and the device file for accessing LDEVc (LDEVe) is “sddlmb”. Therefore, in steps 1204 and 1206, the file system program 302 issues a write request for “sddlmb”. This write request is received by the path replacement software 303, and the path replacement software 303 executes reading to LDEVc (or LDEVe).
 続いて、上に述べた処理のステップ1041、1042、1046、1204、1206で行われる処理、つまりファイルシステムプログラム302がデバイスファイル(sddlmaまたはsddlmb)に対して、アクセス要求(リード要求またはライト要求)を発行した場合に、パス交替ソフト303、デバイスドライバ304が行う処理の流れを、図10を用いて説明する。 Subsequently, the processing performed in steps 1041, 1042, 1046, 1204, and 1206 of the processing described above, that is, the file system program 302 makes an access request (read request or write request) to the device file (sddlmma or sddlmb). The flow of processing performed by the path replacement software 303 and the device driver 304 when issuing the command will be described with reference to FIG.
 以下、アクセス対象のデバイスファイルが“sddlma”であった場合、そして交替パス管理テーブル330の状態が、図5に記載の状態であった場合を例にとり、説明する。ステップ2001では、パス交替ソフト303が交替パス管理テーブル330のDMデバイスファイル502が“sddlma”の行を参照する。この行を参照することで、デバイスファイル “sddlma”には、scsiデバイスファイル“sda”と“sdb”がマッピングされていることが分かる。パス交替ソフト303は、この2つのscsiデバイスファイルの中から、使用すべきものを1つ選択する。本実施例に係るパス交替ソフト303は、以下の方法で選択を行う。 Hereinafter, the case where the device file to be accessed is “sddlma” and the state of the alternate path management table 330 is the state shown in FIG. 5 will be described as an example. In step 2001, the path replacement software 303 refers to the line “sddlma” in the DM device file 502 of the replacement path management table 330. Referring to this line, it can be seen that scsi device files “sda” and “sdb” are mapped to the device file “sddlma”. The path replacement software 303 selects one to be used from the two scsi device files. The path replacement software 303 according to the present embodiment performs selection by the following method.
 パス交替ソフト303は各scsiデバイスファイル(“sda”と“sdb”)の属性503、コピー方式504、アクセス状態505を確認し、アクセス状態505が0(正常)のscsiデバイスファイルを選択する。ただしアクセス状態505が0のscsiデバイスファイルが複数存在する場合には、コピー方式504を確認する。コピー方式504が“1”の場合、属性503が0のscsiデバイスファイルを選択する。一方コピー方式504が“0”の場合、いずれのscsiデバイスファイルを選択してもよい。 The path replacement software 303 confirms the attributes 503, the copy method 504, and the access status 505 of each scsi device file (“sda” and “sdb”), and selects an scsi device file whose access status 505 is 0 (normal). However, when there are a plurality of scsi device files whose access status 505 is 0, the copy method 504 is confirmed. When the copy method 504 is “1”, an scsi device file having an attribute 503 of 0 is selected. On the other hand, when the copy method 504 is “0”, any scsi device file may be selected.
 図5の交替パス管理テーブル330を参照すると、scsiデバイスファイル“sda”の属性503、コピー方式504、アクセス状態505はそれぞれ、“0”、“同期”、“0”である。一方scsiデバイスファイル“sdb”の属性503、コピー方式504、アクセス状態505はそれぞれ、“1”、“0”、“0”である。この場合、いずれのscsiデバイスファイルを選択してもよい。以下では、デバイスファイル“sda”が選択された場合を例にとって説明する。 Referring to the alternate path management table 330 in FIG. 5, the attribute 503, the copy method 504, and the access status 505 of the scsi device file “sda” are “0”, “synchronization”, and “0”, respectively. On the other hand, the attribute 503, copy method 504, and access state 505 of the scsi device file “sdb” are “1”, “0”, and “0”, respectively. In this case, any scsi device file may be selected. Hereinafter, a case where the device file “sda” is selected will be described as an example.
 ステップ2002でパス交替ソフト303は、ステップ2001で選択されたscsiデバイスファイル(上の例では“sda”)に対し、リードまたはライトを行う。scsiデバイスファイル“sda”に対し、リードまたはライトを行うと、デバイスドライバ304が呼び出される。デバイスドライバ304はscsiブロックマッピングテーブル340を参照することで、scsiデバイスファイル“sda”に、ストレージ装置20a内のLDEVaがマッピングされていることを認識するので、LDEVaに対し、アクセスコマンド(リードコマンドまたはライトコマンド)を発行する(ステップ2003)。 In step 2002, the path replacement software 303 reads or writes the scsi device file (“sda” in the above example) selected in step 2001. When reading or writing is performed on the scsi device file “sda”, the device driver 304 is called. The device driver 304 recognizes that the LDEVa in the storage apparatus 20a is mapped to the scsi device file “sda” by referring to the scsi block mapping table 340. Therefore, an access command (read command or read command) is sent to the LDEVa. Write command) is issued (step 2003).
 ステップ2004で、デバイスドライバ304はストレージ装置20から、ステップ2003で発行されたアクセスコマンドに対する応答を受領する。アクセスコマンド処理が成功した旨の応答を受領した場合(ステップ2004:Yes)、デバイスドライバ304は呼び出し元のプログラム(つまりパス交替ソフト303)に処理が成功した旨の応答を返却する。さらにパス交替ソフト303は、ファイルシステムプログラム302に、処理が成功した旨の応答を返却し(ステップ2005)、処理を終了する。なお、ファイルシステムプログラム302から受け付けたアクセス要求がリード要求であった場合、処理が成功した旨の応答とともにリードデータをファイルシステムプログラム302に返送する。 In step 2004, the device driver 304 receives a response to the access command issued in step 2003 from the storage apparatus 20. When the response indicating that the access command processing is successful is received (step 2004: Yes), the device driver 304 returns a response indicating that the processing is successful to the calling program (that is, the path replacement software 303). Further, the path replacement software 303 returns a response indicating that the process is successful to the file system program 302 (step 2005), and ends the process. If the access request received from the file system program 302 is a read request, the read data is returned to the file system program 302 together with a response indicating that the processing has been successful.
 デバイスドライバ304が、アクセスコマンド処理が失敗した旨の応答を受領した場合(ステップ2004:No)、デバイスドライバ304はパス交替ソフト303にエラーが発生した旨の応答を返却する。この応答を受領したパス交替ソフト303は、scsiデバイスファイル“sda”のアクセス状態505を“1”に変更する(ステップ2006)。 When the device driver 304 receives a response indicating that the access command processing has failed (step 2004: No), the device driver 304 returns a response indicating that an error has occurred to the path replacement software 303. Upon receiving this response, the path replacement software 303 changes the access state 505 of the scsi device file “sda” to “1” (step 2006).
 ステップ2007では、パス交替ソフト303は交替パス管理テーブル330を参照し、scsiデバイスファイル(“sda”と“sdb”)のアクセス状態505がいずれも“1”であるか確認する。scsiデバイスファイル(“sda”と“sdb”)のアクセス状態505がいずれも“1”の場合、パス交替ソフト303はファイルシステムプログラム302に、エラーが発生した旨の応答を返却し(ステップ2008)、処理を終了する。 In step 2007, the path replacement software 303 refers to the alternate path management table 330 and confirms whether the access states 505 of the scsi device files (“sda” and “sdb”) are both “1”. If both the access states 505 of the scsi device files (“sda” and “sdb”) are “1”, the path replacement software 303 returns a response indicating that an error has occurred to the file system program 302 (step 2008). The process is terminated.
 ステップ2007で、scsiデバイスファイル(“sda”と“sdb”)のアクセス状態505を参照した結果、いずれか一方は“0”の場合、パス交替ソフト303は再びステップ2001を実行する。そのため、例えば最初のアクセスでscsiデバイスファイル“sda”へのアクセスが失敗したが、“sdb”のアクセス状態505が“0”だった場合には、パス交替ソフト303はファイルシステムプログラム302にエラーを返却することなく再びステップ2001~2003を実行する。そのため、scsiデバイスファイル“sda”へのアクセス(つまりLDEVaへのアクセス)が失敗した場合でも、ファイルシステムプログラム302は無停止で、アクセス先LDEVをLDEVbに変更することができる。 In step 2007, as a result of referring to the access state 505 of the scsi device file (“sda” and “sdb”), if either one is “0”, the path replacement software 303 executes step 2001 again. Therefore, for example, when the access to the scsi device file “sda” fails in the first access, but the access state 505 of “sdb” is “0”, the path replacement software 303 gives an error to the file system program 302. Steps 2001 to 2003 are executed again without returning. Therefore, even when access to the scsi device file “sda” (that is, access to LDEVa) fails, the file system program 302 can be changed to the LDEVb as the access destination LDEV without stopping.
 図11に、ストレージ装置20で行われる処理も含めた、ライト処理の流れを示す。図11に記載の流れは、LDEVa、LDEVcが正常で、処理途中でエラーが発生しない場合の処理の流れである。また、図11では、図9のステップ1204以降の処理の流れが記載されている。 FIG. 11 shows a flow of write processing including processing performed in the storage apparatus 20. The flow shown in FIG. 11 is a flow of processing when LDEVa and LDEVc are normal and no error occurs during processing. In FIG. 11, the flow of processing after step 1204 in FIG. 9 is described.
 ファイルシステムプログラム302がクライアント40で実行されるAPからライト要求を受領すると(Op.001)、ファイルシステムプログラム302は、デバイスファイル“sddlma”への書き込み(Op.003)、デバイスファイル“sddlmb”への書き込み(Op.004)を実施する。Op.003は図9のステップ1204に相当し、Op.004はステップ1206に相当する処理である。 When the file system program 302 receives a write request from the AP executed by the client 40 (Op. 001), the file system program 302 writes to the device file “sddlm” (Op. 003) and moves to the device file “sddlmb”. Is written (Op.004). Op. 003 corresponds to step 1204 in FIG. 004 is a process corresponding to step 1206.
 パス交替ソフト303は、デバイスファイル“sddlma”への書き込みを受領すると、“sda”にライト要求を発行する(Op.005)。またパス交替ソフト303は、デバイスファイル“sddlmb”への書き込みを受領すると、“sdc”にライト要求を発行する(Op.006)。Op.005、Op.006の処理は、図10のステップ2001、2002に相当する処理である。 When the path replacement software 303 receives writing to the device file “sddlma”, it issues a write request to “sda” (Op. 005). When the path replacement software 303 receives writing to the device file “sddlmb”, it issues a write request to “sdc” (Op.006). Op. 005, Op. The process of 006 is a process corresponding to steps 2001 and 2002 in FIG.
 デバイスドライバ304は、デバイスファイル“sda”への書き込みを受領すると、LDEVaにライトコマンドを発行し(Op.007)、デバイスファイル“sdc”への書き込みを受領すると、LDEVcにライトコマンドを発行する(Op.008)。この処理は図10のステップ2003に相当する処理である。 When the device driver 304 receives a write to the device file “sda”, the device driver 304 issues a write command to the LDEVa (Op.007). When the device driver 304 receives a write to the device file “sdc”, the device driver 304 issues a write command to the LDEVc ( Op.008). This process corresponds to step 2003 in FIG.
 ストレージ装置20aは、LDEVaに対するライトコマンドを受領すると、LDEVaにライトデータを格納するとともに、ストレージ装置20bに対し、LDEVbへのライトデータの書き込みを指示する(Op.009)。LDEVaとLDEVbは同期コピーモードでのリモートコピーが行われるよう設定されているためである。ストレージ装置20aは、ストレージ装置20bから、LDEVbへの書き込みが完了した旨の応答を受領すると(Ret.009)、ホスト30(デバイスドライバ304)にライト完了の応答を返却する(Ret.007)。この応答は、パス交替ソフト303を経由して(Ret.005)、ファイルシステムプログラム302に返送される(Ret.003)。 When the storage device 20a receives a write command for the LDEVa, the storage device 20a stores the write data in the LDEVa and instructs the storage device 20b to write the write data to the LDEVb (Op.009). This is because LDEVa and LDEVb are set to perform remote copy in the synchronous copy mode. When the storage device 20a receives a response from the storage device 20b indicating that the writing to the LDEVb has been completed (Ret.009), the storage device 20a returns a write completion response to the host 30 (device driver 304) (Ret.007). This response is sent back to the file system program 302 via the path replacement software 303 (Ret.005) (Ret.003).
 またストレージ装置20aは、LDEVcに対するライトコマンドを受領すると、LDEVcにライトデータを格納する(Op.008)。LDEVcへのライトデータ格納が完了すると、ストレージ装置20aは、ホスト30(デバイスドライバ304)にライト完了の応答を返却する(Ret.008)。この応答は、パス交替ソフト303を経由して(Ret.006)、ファイルシステムプログラム302に返送される(Ret.004)。LDEVcとLDEVeは非同期コピーモードでのリモートコピーが行われるよう設定されているので、ストレージ装置20aはLDEVeへのデータコピーも行うが、それはホスト30への応答(Ret.008)とは独立したタイミングで実施される(Op.010)。 When the storage device 20a receives a write command for the LDEVc, the storage device 20a stores the write data in the LDEVc (Op.008). When the storage of the write data to the LDEVc is completed, the storage apparatus 20a returns a write completion response to the host 30 (device driver 304) (Ret.008). This response is returned to the file system program 302 via the path replacement software 303 (Ret.006) (Ret.004). Since LDEVc and LDEVe are set to perform remote copy in the asynchronous copy mode, the storage apparatus 20a also performs data copy to LDEVe, which is independent of the response to the host 30 (Ret.008). (Op. 010).
 図11の例では、デバイスファイル“sddlmb”への書き込みに対する応答(Ret.004)は、デバイスファイル“sddlma”への書き込みに対する応答(Ret.003)よりも早く、ファイルシステムプログラム302に到着している。これは一例であり、応答Ret.003が、応答Ret.004より早くファイルシステムプログラム302に到着する場合もあり得る。ただしデバイスファイル“sddlmb”への書き込みが行われる場合、書き込みデータがストレージ装置20bのLDEVeに書き込まれるのを待たずにホスト30に応答が返却される(Ret.008)。そのため、応答Ret.004が、応答Ret.003より早くファイルシステムプログラム302に到着することが起こり得る。また、ストレージ装置20で、LDEVeへのコピーが非同期コピーモードで行われるため、ホスト30の応答時間が短くできる。 In the example of FIG. 11, the response (Ret.004) for writing to the device file “sddlmb” arrives at the file system program 302 earlier than the response (Ret.003) for writing to the device file “sddlmma”. Yes. This is an example, and the response Ret. 003 is a response Ret. It may happen that the file system program 302 arrives earlier than 004. However, when writing to the device file “sddlmb” is performed, a response is returned to the host 30 without waiting for the write data to be written to the LDEV of the storage apparatus 20b (Ret. 008). Therefore, the response Ret. 004 is a response Ret. It may happen that the file system program 302 arrives earlier than 003. Further, since the storage device 20 performs copying to the LDEVe in the asynchronous copy mode, the response time of the host 30 can be shortened.
 もし、ストレージ装置20aが、ストレージ装置20bのLDEVeに書き込まれたことを確認した後にホスト30に応答を返却する場合、ファイルシステムプログラム302に応答(Ret.004)が返却されるのは、少なくともRet.010よりも後になる。その場合、クライアントの応答時間が悪化する(長くなる)。特にストレージ装置20aとストレージ装置20bが地理的に遠く離れた場所に設置されており、通信路70の距離が長い場合、応答時間の劣化は無視できないほど大きくなる。一般にファイルの実データは、メタデータ(Inode)よりもサイズが大きいため、通信路70の距離が長くなることによる応答時間への影響が大きい。そのため、本実施例に係る計算機システムのように、ファイルの実データを格納するLDEVのデータコピーに非同期コピーモードを用いると、アクセス応答時間の短縮に効果がある。 If the storage device 20a returns a response to the host 30 after confirming that it has been written to the LDEV of the storage device 20b, the response (Ret. 004) is returned to the file system program 302 at least Ret. . After 010. In that case, the response time of the client deteriorates (becomes longer). In particular, when the storage device 20a and the storage device 20b are installed in geographically distant places and the communication path 70 is long, the deterioration of the response time becomes so large that it cannot be ignored. In general, the actual data of a file is larger in size than metadata (Inode), and therefore the influence on the response time due to the increase in the distance of the communication path 70 is great. Therefore, if the asynchronous copy mode is used for data copy of the LDEV that stores the actual data of the file as in the computer system according to the present embodiment, the access response time can be shortened.
 続いて、ストレージ装置20aに障害が発生した時の、計算機システムの処理の流れを説明する。たとえばLDEVa、LDEVcへの書き込みは成功したが、その後にストレージ装置20aに障害が発生し、LDEVeへの書き込みは成功しなかったケースを想定する。これは図11に記載の、Ret.007の後、かつOp.010の前(または途中)に、障害が発生したケースである。 Next, the processing flow of the computer system when a failure occurs in the storage device 20a will be described. For example, it is assumed that writing to LDEVa and LDEVc succeeds, but a failure occurs in the storage apparatus 20a after that, and writing to LDEVe does not succeed. This is described in Ret. 007, and Op. This is a case where a failure has occurred before (or during) 010.
 図11を用いて、このケースについて説明する。このケースでは、ストレージ装置20aはホスト30に、LDEVa及びLDEVcへの書き込みが完了した旨を応答している(Ret.007、Ret.008)。そのためファイルシステムプログラム302はクライアント40から要求されたライト処理は正常に完了したと認識し、そしてクライアント40に対して、ライト処理は正常に完了した旨を応答する(Ret.001)。ただしこの後にストレージ装置20aに障害が発生すると、LDEVeへの書き込み(Op.010)が実行されない。そのため、LDEVeには最新のデータ(LDEVcへ書き込まれたデータと同じデータ)が書き込まれていない状態になっている。 This case will be described with reference to FIG. In this case, the storage apparatus 20a responds to the host 30 that writing to the LDEVa and LDEVc has been completed (Ret.007, Ret.008). Therefore, the file system program 302 recognizes that the write process requested by the client 40 has been completed normally, and responds to the client 40 that the write process has been completed normally (Ret. 001). However, if a failure occurs in the storage apparatus 20a thereafter, writing to the LDEVe (Op. 010) is not executed. Therefore, the latest data (the same data as the data written to LDEVc) is not written in LDEVe.
 その後クライアント40が、ファイルにアクセスするために、リード要求をホスト30に発行すると、ストレージ装置20aはアクセスできない状態になっているため、ホスト30は、ストレージ装置20bのLDEVb、LDEVeからデータリードを行う。ただしLDEVeには最新のデータが書き込まれていないため、ホスト30がLDEVeからデータリードを行うと、誤った(最新でない)データが読み出されてしまう可能性がある。 After that, when the client 40 issues a read request to the host 30 in order to access the file, the storage apparatus 20a is in an inaccessible state, so the host 30 reads data from the LDEVb and LDEVe of the storage apparatus 20b. . However, since the latest data is not written in the LDEVe, if the host 30 performs data reading from the LDEVe, erroneous (not latest) data may be read out.
 本実施例に係る計算機システムでは、ファイルリード時に以下で説明する処理を行うことで、誤った(最新でない)データが読み出されることを防いでいる。図12を用いて、ファイルシステムプログラム302が実行するリード処理の流れを説明する。なお、以下で説明するリード処理の前に、ファイルシステムプログラム302は図7のファイルオープン処理を行って、ストレージ装置20からInodeの取得等を行う。上で説明したとおり、ファイルオープン処理の過程でLDEVaからInodeを読み出すが、ストレージ装置20a(LDEVa)がアクセス(リード)できない場合にはLDEVbから読み出しが行われる。以下ではファイルオープン処理の説明は省略している。 In the computer system according to the present embodiment, erroneous (not up-to-date) data is prevented from being read by performing the processing described below when reading a file. The flow of read processing executed by the file system program 302 will be described with reference to FIG. Prior to the read process described below, the file system program 302 performs the file open process shown in FIG. 7 to acquire an Inode from the storage apparatus 20. As described above, Inode is read from LDEVa in the course of the file open process, but when storage device 20a (LDEVa) cannot be accessed (read), reading is performed from LDEVb. The description of the file open process is omitted below.
 ファイルシステムプログラム302は、クライアント40のAPからファイルサービスデーモン301を介してリード要求を受領するとともに、リード対象ファイルのファイルディスクリプタ及びリードデータの格納位置の情報(オフセット、サイズ)を受領する(ステップ1401)。ここではステップ1201の処理と同様、ファイルシステムプログラム302はファイルディスクリプタを用いて、アクセス対象ファイルのInodeの情報を得る。 The file system program 302 receives a read request from the AP of the client 40 via the file service daemon 301 and also receives information (offset, size) of the file descriptor and read data storage position of the read target file (step 1401). ). Here, similar to the processing in step 1201, the file system program 302 uses the file descriptor to obtain the inode information of the access target file.
 続いてファイルシステムプログラム302は、リードデータの格納位置を算出し、デバイスファイル“sddlmb”に対するリードを実行する(ステップ1402)。ステップ1204と同様、リードデータの格納アドレスは、Inodeに含まれているoffset(243-2)に、ステップ1401で受領したオフセットを加算することで求められる。またリード範囲は、ステップ1401で受領したサイズに等しい。またデバイスファイル“sddlmb”に対するリードを実行すると、図10の処理が行われる。 Subsequently, the file system program 302 calculates the storage location of the read data, and executes the read for the device file “sddlmb” (step 1402). Similar to step 1204, the storage address of the read data is obtained by adding the offset received in step 1401 to the offset (243-2) included in the Inode. The lead range is equal to the size received in step 1401. Further, when the read for the device file “sddlmb” is executed, the processing of FIG. 10 is performed.
 ステップ1402において、デバイスファイル“sddlmb”に対するリードが成功した場合(ステップ1403:Yes)、ステップ1404以降の処理が行われる。一方デバイスファイル“sddlmb”に対するリードが失敗した場合(ステップ1403:No)、ファイルシステムプログラム302は呼び出し元のプログラムにエラーを通知し(ステップ1410)、処理を終了する。デバイスファイル“sddlmb”に対するリードが失敗した場合とは、LDEVcとLDEVeの両方にアクセスできない場合、たとえばストレージ装置20a、20bの両方が停止している場合である。 In step 1402, when the reading of the device file “sddlmb” is successful (step 1403: Yes), the processing from step 1404 is performed. On the other hand, when the reading of the device file “sddlmb” has failed (step 1403: No), the file system program 302 notifies the calling source program of an error (step 1410) and ends the processing. The case where reading of the device file “sddlmb” has failed is a case where both of the LDEVc and LDEVe cannot be accessed, for example, when both the storage apparatuses 20a and 20b are stopped.
 ステップ1404でファイルシステムプログラム302は、ステップ1402で読み出された実データに付加されているprechk251と、Inodeに含まれているprechk(243-4)の内容を比較する。両者が同じ値である場合(ステップ1404:Yes)、ファイルシステムプログラム302は呼び出し元プログラムに実データを返送するとともに、リード処理が正常に終了した旨を応答し(ステップ1405)、処理を終了する。両者が異なる値である場合(ステップ1404:No)、ファイルシステムプログラム302は呼び出し元プログラムにエラーを返却し、処理を終了する(ステップ1420)。 In step 1404, the file system program 302 compares the contents of prechk 251 added to the actual data read in step 1402 and prechk (243-4) included in the Inode. If both are the same value (step 1404: Yes), the file system program 302 returns the actual data to the caller program, responds that the read process has been completed normally (step 1405), and ends the process. . If both are different values (step 1404: No), the file system program 302 returns an error to the calling program and ends the processing (step 1420).
 図12の処理において、LDEVcへのアクセスは失敗したが(ストレージ装置20aに障害が発生しているため)、LDEVeはアクセス可能な状態にある場合の例について説明する。この場合ステップ1403の判定はYesとなり、ファイルシステムプログラム302はステップ1404以降の処理を行う。 In the processing of FIG. 12, an example in which access to the LDEVc has failed (because a failure has occurred in the storage device 20a), but the LDEVe is in an accessible state will be described. In this case, the determination at step 1403 is Yes, and the file system program 302 performs the processing after step 1404.
 リード処理の前に行われたファイルライト処理において、LDEVcとLDEVeへの書き込みは成功しており、その後にストレージ装置20aに障害が発生して、LDEVcのリードができなくなった場合を想定する。この場合、LDEVa(またはLDEVb)に格納されたInodeに含まれているprechk(243-4)と、LDEVeに格納された実データに含まれるprechk251は、リード処理の前に行われたファイルライト処理において両方とも更新されている。そのため、この場合にはステップ1404の判定はYesになり、ファイルシステムプログラム302は呼び出し元プログラムに実データを返送する。 In the file write process performed before the read process, it is assumed that writing to the LDEVc and LDEVe has succeeded, and then the storage device 20a has failed and the LDEVc cannot be read. In this case, the prechk (243-4) included in the Inode stored in the LDEVa (or LDEVb) and the prechk 251 included in the actual data stored in the LDEVe are file write processing performed before the read processing. Both have been updated. Therefore, in this case, the determination in step 1404 is Yes, and the file system program 302 returns actual data to the calling program.
 一方、リード処理の前に行われたファイルライト処理の過程でストレージ装置20aに障害が発生し、LDEVeへの書き込みは成功しなかった場合、LDEVeに格納された実データに含まれるprechk251は更新されていない。そのため、LDEVbに格納されているInodeに含まれているprechk(243-4)の値と、LDEVeに格納された実データに含まれるprechk251の値は異なった状態になっている。ファイルシステムプログラム302はこのような場合には呼び出し元プログラム(ファイルサービスデーモン301)にエラーを返却する。そしてファイルシステムプログラム302は、prechk251とprechk(243-4)の内容が同一の場合に限って、呼び出し元プログラムにリードデータを返却するように動作するので、誤った(正しく更新されていない)データが読み出されることを防ぐことができる。 On the other hand, if a failure occurs in the storage apparatus 20a during the file write process performed before the read process and writing to the LDEVe is not successful, the prechk 251 included in the actual data stored in the LDEVe is updated. Not. Therefore, the value of prechk (243-4) included in Inode stored in LDEVb is different from the value of prechk 251 included in actual data stored in LDEVe. In such a case, the file system program 302 returns an error to the caller program (file service daemon 301). The file system program 302 operates so as to return read data to the calling program only when the contents of prechk 251 and prechk (243-4) are the same, and therefore erroneous (not correctly updated) data. Can be prevented from being read out.
 以上が実施例1の説明である。実施例1に係る計算機システムは、ファイルの実データを非同期リモートコピーが行われるボリュームペアに格納し、ファイルのInode(メタデータ)を同期リモートコピーが行われるボリュームペアに格納する。これによりストレージ装置の障害時に、コピーの格納されているストレージ装置を用いた業務継続を可能にしている。また(メタデータよりも)サイズの大きな実データが非同期リモートコピーにより、2つのストレージ装置に複製されるようにしているため、ファイルライト時の応答時間を短くすることができる。 The above is the description of the first embodiment. The computer system according to the first embodiment stores the actual data of a file in a volume pair where asynchronous remote copy is performed, and stores the inode (metadata) of the file in a volume pair where synchronous remote copy is performed. As a result, in the event of a failure in the storage apparatus, it is possible to continue business using the storage apparatus in which the copy is stored. In addition, since real data (larger than metadata) is replicated to two storage apparatuses by asynchronous remote copy, the response time at the time of file write can be shortened.
 実施例1に係る計算機システムでは非同期リモートコピーが用いられるため、ファイルの実データがプライマリボリュームに書き込まれた直後にストレージ装置(プライマリボリューム)に障害が発生した場合、セカンダリボリュームには最新のデータ(プライマリボリュームに書き込まれたデータと同一のデータ)が格納されていない虞がある。実施例1に係る計算機システムでは、ファイルシステムプログラムが、ファイルの実データとInodeに同一のチェックコードを付与して格納し、ファイルリード時には、2つのチェックコードを比較することで、実データとメタデータが同時期に更新されたものか否かを判定する。そして実データとメタデータが同時期に更新されたものでない場合には、ストレージ装置に最新の実データが格納されていないと判断し、クライアント等のファイル要求元に実データを返却せずにエラーを通知する。これによりストレージ装置に障害が発生した場合でも、誤った(正しく更新されていない)データが読み出されることを防ぐことができる。 Since the asynchronous remote copy is used in the computer system according to the first embodiment, when a failure occurs in the storage device (primary volume) immediately after the actual file data is written to the primary volume, the latest data ( The same data as the data written to the primary volume may not be stored. In the computer system according to the first embodiment, the file system program assigns and stores the same check code to the actual data of the file and the Inode, and compares the two check codes when reading the file, thereby comparing the actual data and the meta data. It is determined whether or not the data is updated at the same time. If the actual data and metadata are not updated at the same time, it is determined that the latest actual data is not stored in the storage device, and an error occurs without returning the actual data to the file request source such as the client. To be notified. As a result, even when a failure occurs in the storage apparatus, it is possible to prevent erroneous (not correctly updated) data from being read.
 続いて、実施例2の説明を行う。実施例2に係る計算機システムのハードウェア構成は、実施例1で説明したものと同じである。実施例1と実施例2とでは、ファイルシステムプログラム302の処理の一部、及びストレージ装置20の処理の一部が異なっている。以下ではその点を中心に説明する。図13を用いて、実施例2に係る計算機システムで実行されるライト処理の流れを説明する。なお、図13のOp.001~Op.010、Ret.001~Ret.010は、図11と同じ処理(要求の発行、応答の返却)を意味する。 Subsequently, Example 2 will be described. The hardware configuration of the computer system according to the second embodiment is the same as that described in the first embodiment. In the first embodiment and the second embodiment, a part of the processing of the file system program 302 and a part of the processing of the storage apparatus 20 are different. Below, it demonstrates focusing on the point. The flow of the write process executed by the computer system according to the second embodiment will be described with reference to FIG. Note that Op. 001 to Op. 010, Ret. 001 to Ret. 010 means the same processing (issue of request, return of response) as in FIG.
 ホスト30で実行されるファイルシステムプログラム(以下、これを「ファイルシステムプログラム302’」と呼ぶ)は、あらかじめ(システム起動時等に)メモリ32内の一部の領域をキャッシュ領域として確保している。ファイルシステムプログラム302’がファイル書き込みを実行すると(Op.003、Op.004)、ファイルの実データ及び付加情報を、キャッシュ領域に格納する(Op.101)。なお、実データとともにキャッシュ領域に格納される付加情報のことを、「キャッシュ情報」と呼ぶ。ストレージ装置20aから、LDEVa、LDEVcへの書き込みが完了した旨の応答を受領すると(Ret.007→Ret.005→Ret.003、そしてRet.008→Ret.006→Ret.004)、ファイルシステムプログラム302’はクライアント40にライト処理が完了した旨を応答する(Ret.001)。ここまでの処理は、Op.101を除いては実施例1(図11)で説明したものと同じである。 A file system program executed by the host 30 (hereinafter referred to as “file system program 302 ′”) reserves a partial area in the memory 32 as a cache area in advance (when the system is started). . When the file system program 302 'executes file writing (Op.003, Op.004), the actual data and additional information of the file are stored in the cache area (Op. 101). The additional information stored in the cache area together with the actual data is referred to as “cache information”. When a response to the effect that writing to LDEVa and LDEVc is completed is received from the storage device 20a (Ret.007 → Ret.005 → Ret.003, and Ret.008 → Ret.006 → Ret.004), the file system program 302 'responds to the client 40 that the write processing is completed (Ret. 001). The processing up to this point is Op. Except for 101, it is the same as that described in the first embodiment (FIG. 11).
 ここで、ファイルシステムプログラム302’がOp.101でキャッシュ領域に格納するキャッシュ情報400の内容を、図14を用いて説明する。キャッシュ情報400には、s_volume_name(401)、d_offset(402)、d_size(403)、実データ404が含まれる。 Here, the file system program 302 ′ is Op. The contents of the cache information 400 stored in the cache area 101 will be described with reference to FIG. The cache information 400 includes s_volume_name (401), d_offset (402), d_size (403), and actual data 404.
 s_volume_name(401)は、実データの書き込まれるLDEVの情報(デバイスファイル名)であり、SB241に含まれているs_volume_name(241-1)と同一の情報が格納される。d_offset(402)とd_size(403)はそれぞれ、実データの書き込み先の先頭アドレス、実データのサイズである。また実データ404には、prechkも含まれている。 S_volume_name (401) is LDEV information (device file name) in which actual data is written, and stores the same information as s_volume_name (241-1) included in SB241. d_offset (402) and d_size (403) are the start address of the actual data write destination and the size of the actual data, respectively. The actual data 404 also includes prechk.
 図13の説明に戻る。ストレージ装置20aは、LDEVcに対するライトデータを、LDEVeにコピーする要求を、ストレージ装置20bに発行する(Op.010)。ストレージ装置20bは、LDEVeへのライトデータ格納が正常に終了すると、応答をストレージ装置20aに返送する(Ret.010)。この処理も実施例1で説明したものと同じである。 Returning to the explanation of FIG. The storage apparatus 20a issues a request for copying the write data for LDEVc to the LDEVe to the storage apparatus 20b (Op. 010). When the storage of the write data in LDEVe is normally completed, the storage apparatus 20b returns a response to the storage apparatus 20a (Ret. 010). This process is also the same as that described in the first embodiment.
 実施例2に係るストレージ装置20aの制御プログラム201aは、非同期コピーモードによるリモートコピーが行われるボリュームペアに対してライト要求を受け付けた時、セカンダリボリュームへのライトデータの格納が完了すると、その旨をホスト30に通知する機能を有する。具体的には、ストレージ装置20aは応答(Ret.010)をストレージ装置20bから受領すると、LDEVcからLDEVeへのコピーが正常に終了した旨を、ホスト30に対して通知する。以下ではこの通知のことを、「リモートコピー完了通知」と呼ぶ。リモートコピー完了通知には、LDEVcを特定可能な情報(LDEVの識別番号等)及びライトデータの書き込み位置(LBA、サイズ)が含まれる。 When the control program 201a of the storage apparatus 20a according to the second embodiment receives a write request for a volume pair for which remote copy is performed in the asynchronous copy mode, when the write data storage to the secondary volume is completed, the control program 201a It has a function of notifying the host 30. Specifically, when the storage apparatus 20a receives the response (Ret. 010) from the storage apparatus 20b, the storage apparatus 20a notifies the host 30 that the copying from the LDEVc to the LDEVe has been normally completed. Hereinafter, this notification is referred to as “remote copy completion notification”. The remote copy completion notification includes information that can identify the LDEVc (LDEV identification number and the like) and a write data write position (LBA, size).
 リモートコピー完了通知は、ホスト30のデバイスドライバ304、パス交替ソフト303を経由して、ファイルシステムプログラム302’によって受領される。また、リモートコピー完了通知がデバイスドライバ304やパス交替ソフト303を経由する過程で、通知内容のフォーマットが変更される。デバイスドライバ304はリモートコピー完了通知を受領すると、通知に含まれているLDEVの識別番号を、scslデバイスファイル名に変更する。これはscsiブロックマッピングテーブル340を参照することで可能である。同様にして、パス交替ソフト303がデバイスドライバ304からリモートコピー完了通知を受領すると、通知に含まれているscslデバイスファイルを、デバイスファイル名に変更する。これは交替パス管理テーブル330を参照することで可能である。 The remote copy completion notification is received by the file system program 302 ′ via the device driver 304 of the host 30 and the path replacement software 303. In addition, the format of the notification content is changed in the process in which the remote copy completion notification passes through the device driver 304 and the path replacement software 303. Upon receiving the remote copy completion notification, the device driver 304 changes the LDEV identification number included in the notification to the scsl device file name. This can be done by referring to the scsi block mapping table 340. Similarly, when the path replacement software 303 receives a remote copy completion notification from the device driver 304, the scsl device file included in the notification is changed to a device file name. This can be done by referring to the alternate path management table 330.
 ファイルシステムプログラム302’は、受領したリモートコピー完了通知の内容とキャッシュ領域に格納されているキャッシュ情報400を参照し、リモートコピーが完了したデータをキャッシュ領域から削除する(Op.102)。具体的には、複数あるキャッシュ情報400のうち、s_volume_name(401)、offset(402)、size(403)が、リモートコピー通知に含まれるデバイスファイル名、データ書き込み位置の情報(LBA、サイズ)と一致しているキャッシュ情報400を特定し、特定されたキャッシュ情報400をキャッシュ領域から削除する。 The file system program 302 'refers to the content of the received remote copy completion notification and the cache information 400 stored in the cache area, and deletes the data for which the remote copy has been completed from the cache area (Op.102). Specifically, among the plurality of cache information 400, s_volume_name (401), offset (402), and size (403) are information on the device file name and data write position (LBA, size) included in the remote copy notification. The matching cache information 400 is specified, and the specified cache information 400 is deleted from the cache area.
 また、別の実施形態として、ストレージ装置20aからホスト30にリモートコピー完了通知を送信する代わりに、ホスト30が定期的にストレージ装置20aに対して、LDEVcからLDEVeへのリモートコピーが完了したか否かを問い合わせてもよい。 As another embodiment, instead of sending a remote copy completion notification from the storage apparatus 20a to the host 30, whether or not the host 30 has periodically completed remote copy from the LDEVc to the LDEV to the storage apparatus 20a. You may inquire.
 図15を用いて、実施例2に係るファイルシステムプログラム302’が実行するリード処理の流れを説明する。ステップ1401~1410は、実施例1で説明したリード処理(図12)と同じである。 The flow of read processing executed by the file system program 302 'according to the second embodiment will be described with reference to FIG. Steps 1401 to 1410 are the same as the read process (FIG. 12) described in the first embodiment.
 ステップ1404で、ステップ1402で読み出された実データに付加されているprechk251と、Inodeに含まれているprechk(243-4)の内容が異なっていた場合(ステップ1404:No)、ファイルシステムプログラム302’はキャッシュ領域を検索し、リード対象データがキャッシュされているか判定する(ステップ1412)。これはキャッシュ情報400のoffset(402)、size(403)を、今回のリード処理でリード対象となっているデータの格納位置を比較することで判定可能である。 In step 1404, if the contents of prechk 251 added to the actual data read in step 1402 and prechk (243-4) included in the Inode are different (step 1404: No), the file system program 302 ′ searches the cache area and determines whether the read target data is cached (step 1412). This can be determined by comparing the offset (402) and size (403) of the cache information 400 with the storage location of the data to be read in the current read process.
 リード対象データがキャッシュされている場合(ステップ1412:Yes)、ファイルシステムプログラム302’は呼び出し元プログラムにキャッシュ情報400に含まれている実データを返却する(ステップ1413)。その後ファイルシステムプログラム302’はキャッシュ情報400に含まれている実データの書き込みを行い(ステップ1414)、処理を終了する。これにより実データがストレージ装置20(LDEVe)に書き込まれる、これ以降リード処理が行われる場合には、正常にLDEVeからデータが読み出される。リード対象データがキャッシュされていなかった場合(ステップ1412:No)には、実施例1で説明したリード処理と同じく、ファイルシステムプログラム302’は呼び出し元プログラムにエラーを返却し、処理を終了する(ステップ1420)。 When the read target data is cached (step 1412: Yes), the file system program 302 'returns the actual data included in the cache information 400 to the caller program (step 1413). Thereafter, the file system program 302 'writes the actual data included in the cache information 400 (step 1414), and the process is terminated. As a result, the actual data is written to the storage device 20 (LDEVe). When the read process is performed thereafter, the data is normally read from the LDEVe. If the read target data has not been cached (step 1412: No), the file system program 302 ′ returns an error to the calling source program and ends the processing, as in the read process described in the first embodiment ( Step 1420).
 リード処理の前に行われたファイルライト処理の過程でストレージ装置20aに障害が発生し、LDEVeへの書き込みは成功しなかった場合、実施例1に係る計算機システムでは誤った(正しく更新されていない)データが読み出されることを防ぐことができるが、データのリードが失敗する。実施例2に係る計算機システムの場合、データが2台のストレージ装置20に書き込まれたことが確認されるまでは、ファイルシステムプログラム302’はデータをキャッシュしているため、クライアント40に最新のデータを返却することができる。 If a failure occurs in the storage apparatus 20a in the course of the file write process performed before the read process and writing to the LDEVe is not successful, the computer system according to the first embodiment is erroneous (not updated correctly). ) Although data can be prevented from being read, data read fails. In the case of the computer system according to the second embodiment, the file system program 302 ′ caches data until it is confirmed that the data has been written to the two storage apparatuses 20, so that the latest data is stored in the client 40. Can be returned.
 以上、本発明の実施例を説明したが、これは、本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。すなわち、本発明は、他の種々の形態でも実施する事が可能である。 As mentioned above, although the Example of this invention was described, this is an illustration for description of this invention, Comprising: It is not the meaning which limits the scope of the present invention only to these Examples. That is, the present invention can be implemented in various other forms.
 たとえば上で説明した実施例では、実データとinodeのprechkに、ファイルの書き込み回数に相当する情報を記録する例が説明された。しかしprechkに格納される値はこれに限定されない。実データとinodeが同時期に書き込まれたことが識別できる情報であれば、これ以外の情報が格納されてもよい。たとえば実データとinodeのprechkに、実データを用いて算出されたCRC(Cyclic Redundancy Check)コードやチェックサム等の誤り検出符号を格納するようにしてもよい。また誤り検出符号をinodeに格納する場合、実データには誤り検出符号を付加しなくてもよい。この場合ファイルシステムプログラムは、LDEVから読み出された実データから誤り検出符号を生成できるからである。そしてファイルシステムプログラムは、inodeに付加されている誤り検出符号と実データから生成した誤り検出符号の比較を行い、両者が一致しない場合、呼び出し元にエラーを返すようにすればよい。 For example, in the embodiment described above, an example in which information corresponding to the number of times of writing a file is recorded in actual data and inode prechk is described. However, the value stored in prechk is not limited to this. Information other than this may be stored as long as it can be identified that the actual data and the inode are written at the same time. For example, an error detection code such as a CRC (Cyclic Redundancy Check) code calculated using the actual data or a checksum may be stored in the actual data and inode prechk. When the error detection code is stored in the inode, it is not necessary to add the error detection code to the actual data. This is because the file system program can generate an error detection code from the actual data read from the LDEV. Then, the file system program compares the error detection code added to the inode with the error detection code generated from the actual data, and returns an error to the caller if they do not match.
20:ストレージ装置、30:ホスト、40:クライアント 20: Storage device, 30: Host, 40: Client

Claims (15)

  1.  ホスト計算機と、
     前記ホスト計算機に接続され、第1ボリュームと第2ボリュームを有する第1ストレージ装置と、
     前記ホスト計算機と前記第1ストレージ装置に接続され、第3ボリュームと第4ボリュームを有する第2ストレージ装置と、
    を有する計算機システムにおいて、
     前記ホスト計算機は、前記第1ストレージ装置にファイルを格納する時、前記ファイルの実データを前記第1ボリュームに書き込み、前記実データの格納位置に関する情報を含むメタデータを前記第2ボリュームに書き込み、
     前記第1ストレージ装置は、前記第1ボリュームに書き込まれたデータを非同期コピーモードで前記第3ボリュームに複製し、前記第2ボリュームに書き込まれたデータを同期コピーモードで前記第4ボリュームに複製する、
    ことを特徴とする、計算機システム。
    A host computer,
    A first storage device connected to the host computer and having a first volume and a second volume;
    A second storage device connected to the host computer and the first storage device and having a third volume and a fourth volume;
    In a computer system having
    The host computer, when storing a file in the first storage device, writes the actual data of the file to the first volume, and writes metadata including information regarding the storage location of the actual data to the second volume,
    The first storage device replicates data written to the first volume to the third volume in an asynchronous copy mode, and replicates data written to the second volume to the fourth volume in a synchronous copy mode. ,
    A computer system characterized by that.
  2.  前記ホスト計算機は、クライアントからファイル書き込み要求を受領したことに応じて、前記第1ストレージへのファイル格納を実行し、
     前記ホスト計算機は前記第1ストレージ装置から、前記第1ボリュームへの書き込み完了の応答と、前記第2ボリュームへの書き込み完了の応答を受領すると、前記クライアントに前記ファイル書き込みが完了した旨を応答する、
    ことを特徴とする、請求項1に記載の計算機システム。
    The host computer executes file storage in the first storage in response to receiving a file write request from a client,
    When the host computer receives a write completion response to the first volume and a write completion response to the second volume from the first storage device, it responds to the client that the file writing has been completed. ,
    The computer system according to claim 1, wherein:
  3.  前記ホスト計算機が前記第1ストレージ装置からデータを読み出せない場合、
     前記ホスト計算機は前記第4ボリュームから前記ファイルのメタデータを読み出し、
     前記第3ボリュームから前記ファイルの実データを読み出す、
    ことを特徴とする、請求項2に記載の計算機システム。
    When the host computer cannot read data from the first storage device,
    The host computer reads the metadata of the file from the fourth volume,
    Read the actual data of the file from the third volume,
    The computer system according to claim 2, wherein:
  4.  前記ホスト計算機は、読み出された前記ファイルのメタデータと実データを用いて、最新の実データを読み出すことができたか判定し、
     最新の実データを読み出せなかった場合には、前記クライアントにエラーを返却する、
    ことを特徴とする、請求項3に記載の計算機システム。
    The host computer determines whether the latest actual data can be read using the read metadata and actual data of the file,
    If the latest actual data could not be read, an error is returned to the client.
    The computer system according to claim 3, wherein:
  5.  前記ホスト計算機は、前記ファイルのメタデータと実データに同一のチェックコードを付与して、前記第1ストレージ装置に格納し、
     前記ホスト計算機は、読み出された前記メタデータと前記実データに同一のチェックコードが付与されていない場合は、最新の実データを読み出せなかったと判定する、
    ことを特徴とする、請求項4に記載の計算機システム。
    The host computer assigns the same check code to the metadata and actual data of the file, and stores it in the first storage device,
    The host computer determines that the latest actual data could not be read if the same check code is not assigned to the read metadata and the actual data.
    The computer system according to claim 4, wherein:
  6.  前記ホスト計算機は、前記メタデータに前記実データから生成された誤り検出符号を付与して、前記第1ストレージ装置に格納し、
     前記ホスト計算機は、読み出された前記実データから生成された誤り検出符号と、読み出された前記メタデータに付加された誤り検出符号が一致しない場合は、最新の実データを読み出せなかったと判定する、
    ことを特徴とする、請求項4に記載の計算機システム。
    The host computer attaches an error detection code generated from the actual data to the metadata and stores it in the first storage device,
    If the error detection code generated from the read actual data and the error detection code added to the read metadata do not match, the host computer has not been able to read the latest actual data. judge,
    The computer system according to claim 4, wherein:
  7.  前記ホスト計算機は、前記第1ストレージ装置にファイルを格納した後、前記ホスト計算機の有するメモリに前記ファイルを保持する、
    ことを特徴とする、請求項1に記載の計算機システム。
    The host computer stores the file in the memory of the host computer after storing the file in the first storage device.
    The computer system according to claim 1, wherein:
  8.  前記第1ストレージ装置は、前記ホスト計算機から前記第1ボリュームへのライト要求及びライトデータを受領すると、前記第1ボリュームへの前記ライトデータを格納した時点で前記ホスト計算機にライト完了の応答を返却し、
     前記第3ボリュームへの前記ライトデータの格納が完了した時点で、前記ホスト計算機にリモートコピー完了通知を返却する、
    ことを特徴とする、請求項7に記載の計算機システム。
    When the first storage device receives a write request and write data to the first volume from the host computer, it returns a write completion response to the host computer when the write data is stored in the first volume. And
    When the storage of the write data in the third volume is completed, a remote copy completion notification is returned to the host computer.
    The computer system according to claim 7, wherein:
  9.  前記ホスト計算機は、前記リモートコピー完了通知を受領すると、前記メモリから、前記保持されたファイルを削除する、
    ことを特徴とする、請求項8に記載の計算機システム。
    When the host computer receives the remote copy completion notification, the host computer deletes the held file from the memory.
    The computer system according to claim 8, wherein:
  10.  前記ホスト計算機は、前記第1ストレージ装置または前記第2ストレージ装置から前記ファイルの実データ及びメタデータを読み出し、
     読み出された前記実データ及びメタデータを用いて、最新の実データを読み出すことができたか判定し、
     最新の実データを読み出せなかった場合には、前記ファイルの要求元に前記メモリに保持されているファイルを返却する、
    ことを特徴とする、請求項7に記載の計算機システム。
    The host computer reads the actual data and metadata of the file from the first storage device or the second storage device,
    Using the read actual data and metadata, determine whether the latest actual data could be read,
    When the latest actual data could not be read, the file stored in the memory is returned to the request source of the file.
    The computer system according to claim 7, wherein:
  11.  ホスト計算機と、
     前記ホスト計算機に接続され、第1ボリュームと第2ボリュームを有する第1ストレージ装置と、
     前記ホスト計算機と前記第1ストレージ装置に接続され、第3ボリュームと第4ボリュームを有する第2ストレージ装置と、
    を有する計算機システムの制御方法であって、
     前記ホスト計算機はファイル書き込み要求を受け付けると、前記ファイルの実データを前記第1ボリュームに書き込み、前記実データの格納位置に関する情報を含むメタデータを前記第2ボリュームに書き込み、
     前記第1ストレージ装置は、前記第1ボリュームに書き込まれたデータを非同期コピーモードで前記第3ボリュームに複製し、前記第2ボリュームに書き込まれたデータを同期コピーモードで前記第4ボリュームに複製し、
     前記ホスト計算機は前記第1ストレージ装置から、前記第1ボリュームへの書き込み完了の応答と、前記第2ボリュームへの書き込み完了の応答を受領すると、前記ファイル書き込み要求の要求元に前記ファイル書き込みが完了した旨を応答する、
    ことを特徴とする、計算機システムの制御方法。
    A host computer,
    A first storage device connected to the host computer and having a first volume and a second volume;
    A second storage device connected to the host computer and the first storage device and having a third volume and a fourth volume;
    A computer system control method comprising:
    Upon receiving a file write request, the host computer writes the actual data of the file to the first volume, and writes metadata including information regarding the storage location of the actual data to the second volume,
    The first storage device replicates data written to the first volume to the third volume in an asynchronous copy mode, and replicates data written to the second volume to the fourth volume in a synchronous copy mode. ,
    When the host computer receives a write completion response to the first volume and a write completion response to the second volume from the first storage device, the file writing is completed at the request source of the file write request. Reply that
    A computer system control method characterized by the above.
  12.  前記ホスト計算機が前記第1ストレージ装置からデータを読み出せない場合、
     前記ホスト計算機は前記第4ボリュームから前記ファイルのメタデータを読み出し、
     前記第3ボリュームから前記ファイルの実データを読み出す、
    ことを特徴とする、請求項11に記載の計算機システムの制御方法。
    When the host computer cannot read data from the first storage device,
    The host computer reads the metadata of the file from the fourth volume,
    Read the actual data of the file from the third volume,
    The computer system control method according to claim 11, wherein:
  13.  前記ホスト計算機は、読み出された前記ファイルのメタデータと実データを用いて、最新の実データを読み出すことができたか判定し、
     最新の実データを読み出せなかった場合には、前記ファイルの要求元にエラーを返却する、
    ことを特徴とする、請求項12に記載の計算機システムの制御方法。
    The host computer determines whether the latest actual data can be read using the read metadata and actual data of the file,
    If the latest actual data could not be read, an error is returned to the requester of the file.
    The computer system control method according to claim 12, wherein:
  14.  前記ホスト計算機は、前記ファイルの書き込み時に、前記メタデータと前記実データに同一のチェックコードを付与して、前記第1ストレージ装置に格納し、
     前記ホスト計算機は、前記ファイルの読み出し時に、読み出された前記メタデータと前記実データに同一のチェックコードが付与されていない場合は、最新の実データを読み出せなかったと判定する、
    ことを特徴とする、請求項13に記載の計算機システムの制御方法。
    The host computer assigns the same check code to the metadata and the actual data when the file is written, and stores the same check code in the first storage device,
    The host computer determines that the latest actual data could not be read if the same check code is not given to the read metadata and the actual data when the file is read.
    The computer system control method according to claim 13, wherein:
  15.  前記ホスト計算機は、前記第1ストレージ装置にファイルを格納した後、前記第1ストレージ装置から前記第3ボリュームへのデータ格納が完了した旨の通知を受領するまで、前記ホスト計算機の有するメモリに前記ファイルを保持する、
    ことを特徴とする、請求項11に記載の計算機システムの制御方法。
    The host computer stores the file in the first storage device and then stores the file in the memory of the host computer until receiving a notification from the first storage device that data storage to the third volume is completed. Keep files,
    The computer system control method according to claim 11, wherein:
PCT/JP2015/062259 2015-04-22 2015-04-22 Computer system WO2016170619A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/062259 WO2016170619A1 (en) 2015-04-22 2015-04-22 Computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/062259 WO2016170619A1 (en) 2015-04-22 2015-04-22 Computer system

Publications (1)

Publication Number Publication Date
WO2016170619A1 true WO2016170619A1 (en) 2016-10-27

Family

ID=57142972

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/062259 WO2016170619A1 (en) 2015-04-22 2015-04-22 Computer system

Country Status (1)

Country Link
WO (1) WO2016170619A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111867006A (en) * 2020-06-29 2020-10-30 新华三技术有限公司 Configuration file recovery method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008052512A (en) * 2006-08-24 2008-03-06 Hitachi Ltd Storage controller and storage control method
JP2008165431A (en) * 2006-12-27 2008-07-17 Fujitsu Ltd Mirroring program, mirroring method and information storage device
JP2014085883A (en) * 2012-10-24 2014-05-12 Nippon Telegr & Teleph Corp <Ntt> Device, method, and program for data matching

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008052512A (en) * 2006-08-24 2008-03-06 Hitachi Ltd Storage controller and storage control method
JP2008165431A (en) * 2006-12-27 2008-07-17 Fujitsu Ltd Mirroring program, mirroring method and information storage device
JP2014085883A (en) * 2012-10-24 2014-05-12 Nippon Telegr & Teleph Corp <Ntt> Device, method, and program for data matching

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111867006A (en) * 2020-06-29 2020-10-30 新华三技术有限公司 Configuration file recovery method and device
CN111867006B (en) * 2020-06-29 2023-10-24 新华三技术有限公司 Configuration file recovery method and device

Similar Documents

Publication Publication Date Title
US20240137329A1 (en) Shared storage model for high availability within cloud environments
US6883073B2 (en) Virtualized volume snapshot formation method
US9734225B2 (en) User initiated replication in a synchronized object replication system
US20200019516A1 (en) Primary Data Storage System with Staged Deduplication
WO2018040591A1 (en) Remote data replication method and system
US7730071B2 (en) Data management system and data management method
JP4354233B2 (en) Backup system and method
JP4776342B2 (en) Systems and methods for generating object level snapshots in storage systems
US8301791B2 (en) System and method for non-disruptive check of a mirror
US8538924B2 (en) Computer system and data access control method for recalling the stubbed file on snapshot
US20130290248A1 (en) File storage system and file cloning method
EP4139781B1 (en) Persistent memory architecture
US6912632B2 (en) Storage system, storage system control method, and storage medium having program recorded thereon
JP2008033829A (en) Backup system and backup method
US11301450B2 (en) Maintaining timestamp parity of objects with alternate data streams during transition phase to synchronous state
JP2007086843A (en) System which controls rotation of disk
WO2016121093A1 (en) File server device
JP2003015933A (en) File level remote copy method for storage device
US10324652B2 (en) Methods for copy-free data migration across filesystems and devices thereof
US20240061603A1 (en) Co-located Journaling and Data Storage for Write Requests
WO2016170619A1 (en) Computer system
JP6291977B2 (en) Distributed file system, backup file acquisition method, control device, and management device

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: 15889858

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: 15889858

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP