JP2004118413A - Storage system, storage device, host computer, and snapshot creation method - Google Patents

Storage system, storage device, host computer, and snapshot creation method Download PDF

Info

Publication number
JP2004118413A
JP2004118413A JP2002279035A JP2002279035A JP2004118413A JP 2004118413 A JP2004118413 A JP 2004118413A JP 2002279035 A JP2002279035 A JP 2002279035A JP 2002279035 A JP2002279035 A JP 2002279035A JP 2004118413 A JP2004118413 A JP 2004118413A
Authority
JP
Japan
Prior art keywords
snapshot
command
user data
area
storage device
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2002279035A
Other languages
Japanese (ja)
Inventor
Seiichi Domyo
Masatoshi Ichikawa
Masatoshi Nishina
Takashi Oeda
仁科 昌俊
大枝 高
市川 正敏
道明 誠一
Original Assignee
Hitachi Ltd
株式会社日立製作所
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 Hitachi Ltd, 株式会社日立製作所 filed Critical Hitachi Ltd
Priority to JP2002279035A priority Critical patent/JP2004118413A/en
Publication of JP2004118413A publication Critical patent/JP2004118413A/en
Pending legal-status Critical Current

Links

Images

Abstract

An object of the present invention is to reduce the load on a host relating to snapshot management and increase the speed of a storage system.
When a host computer 101 desires to create a snapshot, the host computer 101 sends an instruction indicating a snapshot creation request to a storage device, and a control unit 104 of the storage device 103 sends a user request from a user data area 107 to the storage device. The snapshot is created by reading the data and storing the read user data in the snapshot area 108. As a result, the load of creating a snapshot is distributed between the host 101 and the storage device 103. Further, the amount of data exchanged between the host 101 and the storage device 103 for creating a snapshot can be reduced.
[Selection diagram] Fig. 1

Description

[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a snapshot creation and management function in a storage system having a host computer and a storage device.
[0002]
[Prior art]
Storage devices externally connected to the computer are regularly backed up so that even if the stored data is lost due to storage device failure, software defect, malfunction, etc., it can be restored regularly Is known. If the data is updated during the backup creation operation, the data will be inconsistent and will not be meaningful as a backup. Therefore, it is necessary to guarantee data consistency during the backup operation.
[0003]
In order to guarantee the integrity of the data to be backed up, it is conceivable to stop programs other than the backup program during the backup creation work so as not to access the data, but in a system requiring high availability, The program cannot be stopped for a long time. Therefore, it is necessary to provide a mechanism that does not prevent another program from updating the data during the backup operation and that can obtain a copy of the data at the time of starting the backup. Such a copy of data at a certain point in time is conventionally called a snapshot.
[0004]
As a method of creating a snapshot, for example, the following method is known. In this method, original data before updating is copied and stored in another buffer (snapshot buffer) only for blocks that have been updated by writing or the like from the start of backup. In response to a snapshot read request, the data at the backup start point is created and transferred by combining the contents of the snapshot buffer and the original data of the unupdated block. This method has an advantage that the capacity of the snapshot buffer can be small because only the updated block is stored in the snapshot buffer. Such a mechanism that provides a state in which data can be updated while creating a snapshot at a designated point in time is called a snapshot management method.
[0005]
Conventionally, in the case of a computer system using a storage device or storage system such as a hard disk, JBOD (Just Bunch Of Disks), and NAS (Network Attached Storage), software having a function of creating and managing snapshots is provided by a host computer system. Alternatively, snapshots are created and read out by being mounted on a secondary host such as a backup server. The above-described JBOD is a technology that enables a plurality of hard disks to be used as one large-capacity disk.
[0006]
As software for creating and managing snapshots in NAS, there is, for example, PSM (Present Storage Manager) from CDP, and the document FOR IMMEDIATE RELEASE Colombia Data Products Licenses NAS Data Protection Corporation Membership Protection Corporation. I have. The PSM operates on a host computer whose operation system (Operating System) is Windows (registered trademark) 2000 (Windows (registered trademark) 2000), and stores data stored in a NAS connected to the host computer via a network. This software creates and manages snapshots. In addition, as software for creating and managing snapshots on the secondary host, there is SnapView Software of EMC Corporation and the like, which is introduced in the document SnapshotView.
[0007]
[Problems to be solved by the invention]
In the case of a configuration in which snapshot creation management software is installed in a host computer as in the past, when creating and managing a snapshot of data stored in an external storage device, the software is executed by the CPU of the host computer system. Therefore, the load on the host computer increases. Further, in this configuration, when creating a snapshot, it is necessary to transfer snapshot data using an interface connecting the host computer and the external storage device, and the interface load between the host computer and the external storage device also increases. . On the other hand, in a configuration in which software for snapshot creation management is mounted on a secondary host, a secondary host must be added separately from the host computer system for snapshot creation management.
[0008]
An object of the present invention is to reduce the load on a host relating to snapshot management and speed up a storage system.
[0009]
[Means for Solving the Problems]
In order to solve the above problem, according to the present invention, when a snapshot is to be created, the host computer sends an instruction indicating a snapshot creation request to the storage device, and the control unit of the storage device The user data is read from the area, and the read user data is stored in the snapshot area to create a snapshot. As a result, the load of creating a snapshot is distributed between the host and the storage device. In addition, the amount of data exchanged between the host and the storage device for creating a snapshot can be reduced.
[0010]
Note that, as an instruction indicating a snapshot creation request, one predetermined command according to a protocol of an interface connecting the host computer and the storage device can be used. This command includes, for example, a command for instructing data update, which is defined by an interface protocol, and a portion indicating an instruction for requesting creation of a snapshot and a portion indicating generation information of the snapshot. Can be used.
[0011]
BEST MODE FOR CARRYING OUT THE INVENTION
An embodiment of the present invention will be described.
[0012]
First, a storage system according to the first embodiment will be described. As shown in FIG. 1, the storage system according to the first embodiment includes a host computer (hereinafter, referred to as a host) 101 and a hard disk device 103 as an external storage device. The host 101 is connected to a hard disk device 103 via a SCSI bus 102. The hard disk device 103 includes a disk control unit 104 and a disk drive 105, and both are connected by a drive interface 106 called ESDI.
[0013]
The disk drive 105 has a user data area 107 and a snapshot area 108 on a built-in hard disk. The user data area 107 is an area for storing user data (source data) transferred from the host 101. The snapshot area 108 is an area for storing a snapshot for the source data. In this embodiment, a snapshot refers to an image (copy) of source data at a certain point in time. In the present embodiment, the hard disk device 103 creates a snapshot of the source data of the user data area 107 in the snapshot area 108 by the disk control unit 104 in response to a SCSI command from the host 101 requesting creation of a snapshot. And manage. Details of the SCSI command used by the host 101 to request the creation of a snapshot will be described later. Although not shown, the host 101 has a built-in CPU and SCSI driver. When a request to create a snapshot is made, the SCSI driver creates a SCSI command described below in accordance with the instruction of the CPU, and transmits the SCSI command to the hard disk device 103 via the SCSI bus 102.
[0014]
The configuration of the disk control unit 104 of the hard disk device 103 will be described with reference to FIG. The disk control unit 104 includes a SCSI controller 302, a drive cache 306, a disk formatter 307, a RAM 305, a ROM 304, a CPU 303, a drive control circuit 308, a control bus 310, and a data bus 309.
[0015]
The SCSI controller 302 is connected to the SCSI bus 102. The SCSI controller 302 incorporates a transceiver and a receiver, a SCSI protocol control circuit, and a DMA circuit, and controls SCSI data transmission / reception, SCSI command reception, SCSI MESSAGE transmission / reception, and SCSI Status transmission between the host 101 and the hard disk device 103. The SCSI controller 302 temporarily stores the SCSI data received from the host 101 via the SCSI bus 102 in the drive cache 306. Further, the SCSI controller 302 generates a SCSI interrupt signal 314 to notify the CPU 303 of an event that has occurred on the SCSI bus 102 and a change in the state of the SCSI controller 302.
[0016]
The RAM 305 includes a SCSI command queue storage area 316 for storing SCSI commands received from the host 101, and a snapshot management table storage area 315 for storing a snapshot management table.
[0017]
The CPU 303 reads a program stored in the ROM 304 in advance by using the control bus 310, and executes the program to control interpretation and execution of SCSI commands and SCSI messages, and to create and manage snapshots. The CPU 303 controls each component of the disk control unit 104 to control the disk control unit 104 overall. The CPU 303 stores temporary control information associated with the execution of the program in the RAM 305 and refers to the information. When the SCSI controller 302 notifies the CPU 303 of the reception of the SCSI command from the host 101 by generating the above-described SCSI interrupt signal 314, the CPU 303 queues the SCSI command in the SCSI command queue storage area 316 of the RAM 305. I do. The CPU 303 interprets and processes the SCSI command until the SCSI command no longer exists in the SCSI command queue storage area 316, and dequeues the processed SCSI command from the SCSI command queue storage area 316.
[0018]
The drive cache 306 is a temporary buffer for absorbing a difference in data transfer speed between the SCSI controller 302 and the disk drive 105.
[0019]
The disk formatter 307 manages a physical format when data is stored in a disk built in the disk drive 105. Further, the disk formatter 307 controls a data read operation and a data write operation from the disk drive 105. In addition, it receives the read data 312 read from the disk drive 105 and also transfers the write data to be written to the disk drive 105. Further, the disk formatter 307 controls data transfer between the drive cache 306 and the disk drive 105. The disk formatter 307 has a table for converting a logical address and a physical address.
[0020]
The data bus 309 is a 32-bit internal bus for performing data transfer between the SCSI controller 302 and the drive cache 306 and between the disk formatter 307 and the drive cache 306.
[0021]
The drive control circuit 308 is hardware including a motor driver that performs head positioning control of the disk drive 105 and constant rotation control of the medium disk, and controls a head positioning control signal and a spindle motor that rotates the medium disk. A drive control signal 313 such as a signal is input / output.
[0022]
Next, the configuration of the snapshot management table 315a stored in the snapshot management table storage area 315 will be described with reference to FIG. In the present embodiment, the snapshot management table 315a has four areas 911 to 914 for registering four entries (snapshots), and each entry area 911 to 914 is 16 bytes. Each of the entry areas 911 to 914 includes an AGE storage area 901, a source data address storage area 902, a snapshot data address storage area 903, and a recording length storage area 904. The AGE storage area 901 is a 2-byte area that stores the generation number of the corresponding snapshot. The source data address storage area 902 is a 4-byte area for storing the first SCSI logical address of the user data corresponding to the snapshot data. The snapshot data address storage area 903 is a 4-byte area that stores the start address of the snapshot data in the snapshot area 108 of the disk drive 105. The recording length storage area 904 is a 2-byte area that stores the data length of the snapshot data.
[0023]
In the present embodiment, when the host 101 requests the creation of a snapshot, a SCSI command is used. Here, the configuration of a SCSI command used when the host 101 requests the creation of a snapshot will be described. FIG. 2 shows a CDB (Command Descriptor Block) format of a SCSI command requesting creation of a snapshot. As shown in FIG. 2, in the present embodiment, BIT1 and BIT2 of BYTE1, which have not been used in the past, are used as SNP 201 and BYTE 6 is used as AGE 202 in the SCSI EXTENDED WRITE command. The command for requesting the creation of the snapshot is the same as the normal SCSI EXTENDED WRITE command except for the SNP 201 and the AGE 202, and 2Ah indicating that the command is the EXTENDED WRITE command (where h is a hexadecimal number). OPERATION CODE 203 in which is set, LOGICAL BLOCK ADDRESS 204 to 207 indicating the logical address of the user data area 107 in which the write data to be transferred from the host 101 is written, and the length of the data to be written. TRANSFER LENGTH 208-209 as shown.
[0024]
The SNP 201 is 2 bits instructing creation of a snapshot, and has a default value of 00h (where h indicates that a number is represented by a hexadecimal number). When the SNP 201 is set to 03h, after creating a snapshot of the data in the user data area 107 specified by the LOGICAL BLOCK ADDRESS 204 to 207 of this command, the host 101 is stored in the user data area 107 specified by the LOGICAL BLOCK ADDRESS 204 to 207. This indicates that the write data transferred from is stored. On the other hand, when the SNP 201 is set to 01h, it indicates that only the creation of a snapshot of the user data area 107 specified by the LOGICAL BLOCK ADDRESS 204 to 207 of this command is requested, and the write data from the host 101 is Indicates that it will not be forwarded.
[0025]
The AGE 202 is an 8-bit area that specifies a number indicating the generation of the snapshot to be created. The number indicating this generation is stored in the AGE storage area 901 in FIG.
[0026]
Therefore, when requesting the creation of a snapshot, the host 101 sets the SNP 201 to 01h or 03h, and sets the logical address of the user data area 107 in which the data for which the creation of the snapshot is to be requested is stored in the Logical Block Addresses 204 to 207. The CDB format as shown in FIG. 2 is created by setting, setting the data length to Transfer Length 208 to 209, and further setting the generation number to the AGE 202, and transmitting it to the hard disk device 103. When the SNP 201 is set to 03h, the host 101 transfers write data. When the host 101 sets the SNP 201 to 01h, the transfer of the write data is not performed.
[0027]
The hard disk drive 103 that has received the command specified by 01h or 03h by the SNP 201 of the EXTENDED WRITE command stores the generation number specified by the AGE 202 in the AGE storage area 901 of the snapshot management table 315a, and specifies the generation number by the Logical Block Addresses 204 to 207. The stored logical address is stored in the source data address storage area 902. In addition, the data length specified in Transfer Length 208 to 209 is stored in the recording length storage area 904. Further, the hard disk device 103 allocates an area for storing a snapshot to the snapshot area 108 and stores the leading logical address of the area in the snapshot data address storage area 903. Also, for the data of the area of the length specified by Transfer Length 208 to 209 from the logical address of the user data area 107 specified by the Logical Block Address 204 to 207 of the command, the copy (snapshot) is copied to the snapshot area 108. In the allocated area. If 03h is set in the SNP 201, the write data transferred from the host 101 is further stored in an area having the length specified by the Logical Block Addresses 204 to 207 and the Transfer Lengths 208 to 209. The detailed operation of the hard disk device 103 will be specifically described later.
[0028]
Next, a CDB format of a SCSI command used when the host 101 requests a snapshot read will be described with reference to FIG. This CDB format uses BIT1 of BYTE1, which has not been used in the past, of EXTENDED READ command of SCSI as SNP401, and BYTE6 as AGE402. The portions other than the SNP 401 and the AGE 402 are the same as the normal SCSI EXTENDED READ command. The OPERATION CODE 403 indicates that the command is the EXTENDED READ. To 407, and TRANSFER LENGTH 408 to 409 indicating the length of data to be read.
[0029]
The SNP 401 is a bit for instructing a snapshot read, and the default value is 00h. When the SNP 401 is set to 01h, it indicates that the reading of the snapshot in the area specified by the command has been requested. The AGE 402 is an 8-bit area that specifies the generation number of the snapshot to be read, and corresponds to the number stored in the AGE storage area 901 in FIG.
[0030]
When requesting the snapshot read, the host 101 sets the SNP 401 to 01h, sets the logical address of the data to be read to Logical Block Address 404 to 407, sets the data length to be read to Transfer Length 408 to 409, and further sets the AGE 402 Then, a CDB is created by setting a generation number to the HDD and transmitted to the hard disk device 103. Note that when the host 101 sets the transfer length to 00h, the transfer of the read data is not performed.
[0031]
The hard disk device 103 that has received the EXTENDED READ command in which 01h is set in the SNP 401 and other than 00h is set in the transfer lengths 408 to 409 refers to the AGE storage area 901 of the snapshot management table 315a, and A snapshot corresponding to the address of the entry's snapshot data address storage area 903 is read from the snapshot area 108. By combining this snapshot with the data of the unmodified area of the source data, that is, the data of the user data area 107, in which the snapshot is not registered, the entire snapshot data is restored. Then, the data is transferred to the host 101. On the other hand, the hard disk drive 103 that has received the EXTENDED READ command in which 01h is set in the SNP 401 and 00h is set in the transfer lengths 408 to 409 refers to the snapshot management table 315a and reads the corresponding generation from the snapshot area 108. A snapshot is read, and using this snapshot, the user data corresponding to the data length of Transfer Length 408 to 409 from the address specified by Logical Block Address 404 to 407 of the EXTENDED READ command is restored and stored in the corresponding user data area. . The detailed operation of the hard disk device 103 will be specifically described later.
[0032]
Next, the CDB format of the SCSI command used by the host 101 to change the snapshot creation function of the hard disk device 103 will be described with reference to FIG. This CDB format uses the page 0Ah (control mode parameter) of the SCSI Mode Select command. Bits 5 and 4 of Byte 4 of page 0Ah are set as bits (SNPSTEN 601) for setting the snapshot management function. Used. Of these, bit 4 is used as a snapshot creation ENABLE bit (SNPSTWE 601a), and bit 5 is used as a snapshot read ENABLE (SNPSTRE 601b) bit.
[0033]
The hard disk device 103 that has received the SCSI command of FIG. 6 in which SNPSTWE 601a is set to 1 stores this by storing 1 in a predetermined area of the RAM 305, etc. After the subsequent hardware reset, the hard disk device 103 In response to a command requesting the creation of a snapshot from the host 101, a snapshot is created and managed. On the other hand, the hard disk device 103 that has received the SCSI command of FIG. 6 in which the SNPTWE 601a is set to 0 stores this by storing 0 in the predetermined area of the RAM 305, and creates a snapshot after the subsequent hardware reset. Do not do. Therefore, even if a command to request creation of a snapshot is received from the host 101, the command is terminated without creating a snapshot, and a CHECK CONDITION is reported to the host 101.
[0034]
Also, when SNPSTRE 601b is set to 1, this is stored by storing 1 in another predetermined area of the RAM 305, and the hard disk device 103 requests the host 101 to read a snapshot after a subsequent hardware reset. Read the snapshot triggered by the command. On the other hand, when the value of the SNPTRE 601b is set to 0, the value is stored in another predetermined area of the RAM 305, for example, by storing 0, and the hard disk device 103 does not create a snapshot after the subsequent hardware reset. Therefore, even if a command requesting to read a snapshot is received from the host 101, the command is terminated without reading the snapshot, and a CHECK CONDITION is reported to the host 101.
[0035]
Next, the operation when the host 101 accesses the user data and the snapshot of the hard disk device 103 will be described with reference to FIG. As shown in FIG. 5, the host 101 uses the volume of the user data area 107 of the hard disk device 103 by logically allocating it to the local disk D. Further, the local disk E is logically allocated to the snapshot area 108 for storing the snapshot and used. When writing data in the user data area 107, the host 101 creates and sends an EXTENDED WRITE, which is a normal SCSI command. Similarly, when reading, a normal EXTENDED READ is created and transmitted. On the other hand, when requesting the creation of a snapshot, the host 101 creates and transmits a SCSI command of the CDB format shown in FIG. 2 using the EXTENDED WRITE. Similarly, at the time of reading, a SCSI command of the CDB format shown in FIG. 4 utilizing the EXTENDED READ is created and transmitted. The difference between the normal EXTENDED WRITE command and the CDB format command of FIG. 2 and the difference between the normal EXTENDED READ command and the CDB format command of FIG. 4 are as shown in FIG. 2 and FIG. And the bits of AGE 202 and AGE 402 only. Therefore, when the host 101 accesses user data in the local disk D (user data area 107), the built-in CPU issues an instruction to the built-in SCSI driver, and the SCSI driver executes a program stored in advance. As a result, as usual, Logical Address and Transfer Length of an EXTENDED READ command or an EXTENDED WRITE command are set and transmitted to the hard disk device 103 via the SCSI bus 102. On the other hand, when accessing the snapshot in the local disk E (snapshot area 108), the built-in CPU issues an instruction to the built-in SCSI driver, and the SCSI driver executes a pre-stored program. The logical address 204 to 207 or 404 to 407 and the Transfer Length 208 to 209 or 408 to 408 of the EXTENDED READ command or the EXTENDED WRITE command of the format of FIG. Transmit to the device 103.
[0036]
Next, an operation in which the hard disk device 103 processes a snapshot creation request from the host 101 will be described with reference to the flowchart in FIG.
[0037]
As described above, when the SCSI controller 302 receives the SCSI command from the host 101, it notifies the CPU 303 of the SCSI command by the SCSI interrupt signal 314. Upon receiving the signal 314, the CPU 303 reads a program from the ROM 304 and executes the program to interpret a command. Thus, when the SCSI command is EXTENDED WRITE, the operation is performed as shown in the flowchart of FIG.
[0038]
First, the CPU 303 determines whether or not the SCSI command received from the host 101 is EXTENDED WRITE (step 701 in FIG. 7). Specifically, since the CDB BYTE0 of the EXTENDED WRITE command is 2Ah as shown in FIG. 2, the CPU 303 determines whether or not the CDB BYTE0 of the SCSI command received from the host 101 is 2Ah. Determine if there is. If the SCSI command to be processed is an EXTENDED WRITE command, the process proceeds to the next step 702 to determine whether creation of a snapshot is permitted. On the other hand, if it is determined in step 701 that the SCSI command to be processed is not the EXTENDED WRITE command, the processing in FIG. 7 is terminated, the SCSI command other than the EXTENDED WRITE is interpreted, and the processing is executed.
[0039]
In step 702, it is determined whether or not snapshot creation is permitted in the most recently received Mode Select command in FIG. That is, it is determined whether creation of a snapshot is permitted by detecting whether 1 is stored in the predetermined area of the RAM 305 described above. If the creation of a snapshot is permitted in step 702, the process proceeds to step 703, and it is determined whether or not there is a snapshot creation request. On the other hand, if the creation of a snapshot is not permitted, the flow advances to step 706 to execute a normal EXTENDED WRITE command process.
[0040]
In step 703, it is determined whether or not the EXTENDED WRITE command determined in step 701 is a snapshot creation request command. Specifically, when the value of the SNP 201 of the EXTENDED WRITE command is 01h or 03h, it is determined that there is a snapshot creation request, and the process proceeds to step 704. On the other hand, if there is no snapshot creation request in step 703, the flow advances to step 706 to execute an EXTENDED WRITE command process.
[0041]
In step 704, the management information is stored in the snapshot management table 315a by reading and executing the subroutine program from the ROM 304. Specifically, the value (generation number) of the EXTEND WRITE command AGE 202 is stored in the lower byte of the AGE storage area 901 of the snapshot management table 315 a, and the Logical Block Address 204 to EXTEND WRITE command of the EXTEND WRITE command is stored in the source data address storage area 902. 207 is stored, and further, the values of Transfer Length 208 to 209 are stored in the recording length storage area 904. Further, an area for storing a snapshot is allocated to the snapshot area 108, and the start address of the storage area is stored in the snapshot address storage area 903.
[0042]
Next, the process proceeds to step 705, in which the subroutine program is read from the ROM 304 and executed, so that the logical addresses specified by the Logical Block Addresses 204 to 207 of the command in the user data area 107 are designated by Transfer Lengths 208 to 209 from the logical addresses. A copy (snapshot) of the data of the length area is created in the allocated area in the snapshot area 108.
[0043]
Next, the process proceeds to step 706, in which the subroutine program is read from the ROM 304 and executed, thereby executing the EXTENDED WRITE command. That is, write data having a length designated by the EXTENDED WRITE command is received from the host 101 via the SCSI bus 102, and this data is written to an area corresponding to the Logical Block Addresses 204 to 207 designated by the command. Thus, the snapshot creation processing ends.
[0044]
Thus, before writing the data received from the host 101 by the EXTENDED WRITE command to the designated area in the user data area 107, the data in the area to be written can be copied to the snapshot area 108. Accordingly, when the user desires to restore the data before writing, the restoration can be performed by combining the snapshot in the snapshot area 108 and the unmodified data in the user data area 107.
[0045]
If it is determined in step 702 that the creation of a snapshot is not permitted, the process proceeds to step 706 to execute a normal EXTENDED WRITE command. At this time, the SNP 201 of the EXTENDED WRITE command to be executed is 1 and the If the creation is requested, it cannot be handled by a program for processing a normal EXTENDED WRITE command. In this case, the CPU 303 reports to the host 101 that the creation of the snapshot is not permitted, but has received an EXTENDED WRITE command requesting the creation of the snapshot.
[0046]
Next, an operation in which the hard disk device 103 processes a snapshot read request from the host 101 will be described with reference to the flowchart in FIG.
[0047]
When the SCSI command is “EXTENDED READ”, the CPU 303 performs the following processing by calling and executing a subroutine for interpreting and executing the command.
[0048]
First, the CPU 303 determines whether or not the EXTENDED READ command received from the host 101 is a snapshot read request (step 801 in FIG. 8). Specifically, the CPU 303 determines whether the request is a snapshot read request by determining whether or not the SNP 401 of the EXTENDED READ command of FIG. If the command is a snapshot read request command in which 1 is set in the SNP 401, the process proceeds to step 802. On the other hand, if the command is not a snapshot read request command, the process proceeds to step 806, in which a subroutine for executing a normal SCSI READ command is read, and after executing the process, the snapshot read process subroutine is terminated. Return to the calling program.
[0049]
In step 802, the snapshot management table 315a is searched to determine whether a snapshot requested by the EXTENDED READ command exists. In this embodiment, when both of the following conditions (1) and (2) are satisfied, it is determined that the snapshot requested by the corresponding command exists.
(1) Among the entries in the snapshot management table 315a, there is an entry whose lower one byte of the AGE storage area 901 matches the AGE 402 of the applicable EXTENDED READ command.
(2) The address stored in the source data address storage unit 902 of the entry of the snapshot management table 315a that satisfies (1) is in the range of Logical Block Addresses 404 to 407 specified by the applicable EXTENDED READ command to Transfer Length 408 to 409. Is within.
[0050]
As a result, when it is determined that the requested snapshot exists, the process proceeds to step 803, and it is determined whether or not the corresponding EXTENDED READ command has issued a data restoration request. Specifically, when the value of Transfer Length 408 to 409 of the applicable EXTENDED READ command is 00h, it is determined that the request is a data restoration request, and the process proceeds to step 804. In step 804, the address stored in the snapshot data address storage area 903 of the corresponding entry in the snapshot management table 315 a is set as the start address, and the data of the recording length stored in the recording length storage area 904 is replaced with the snapshot. The source data is restored by reading from the area 108 and copying the address stored in the corresponding source data address storage area 902 of the user data area 107 as the start address. After the restoration, the snapshot read processing subroutine ends, and the program returns to the calling program.
[0051]
On the other hand, if it is determined in step 803 that the request is not a snap data restoration request, that is, if the values of Transfer Length 408 to 409 of the applicable EXTENDED READ command are not 00h, the process proceeds to step 805. In step 805, the transferred data amount is set to 0h, and the values of Logical Block Addresses 404 to 407 of the applicable EXTENDED READ command are substituted for the transferred Logical Block Address pointer. Thereafter, the amount of transferred data is compared with the requested transfer length (the value of Transfer Length 408 to 409) in the corresponding EXTENDED READ command, and if they do not match, it is determined whether to read and transfer the snapshot (step 807). The snapshot (808 in FIG. 8) or the corresponding user data is read and transferred (809 in FIG. 8). After the transfer, the transfer Logical Block Address pointer and the transferred data amount are updated (step 810), and the process returns to step 805 to compare the transferred data amount with the requested transfer length. Steps 805 to 810 are repeated until the transferred data amount matches the requested transfer length. When all the requested data has been transmitted, this subroutine ends and the program returns to the calling program.
[0052]
As described above, according to the present embodiment, the hard disk device 103 itself, which is instructed by one SCSI command, creates a snapshot, which is compared with the case where the conventional host 101 executes the snapshot creation. To create snapshots quickly.
[0053]
As a comparison, a brief description will be given of the operation of the host when the snapshot is created and the data of the hard disk device is updated after the snapshot is created by the host controlling the operation of the hard disk device as in the related art. In this case, it is necessary to send the following three instructions to the host.
(1) The host gives the hard disk device an instruction to read the data from the hard disk device.
(2) The host gives the hard disk device an instruction to write the read data to an area of the hard disk device where the snapshot is stored.
(3) The host transfers the data to be updated from the host to the hard disk device, and the host gives the hard disk device an instruction to write the data to the corresponding area of the hard disk device.
[0054]
Also, each time the above three instructions are received, the hard disk device needs to process the SCSI command.
[0055]
On the other hand, in the present embodiment, by using the CDB format of FIG. 2 using the EXTENDED WRITE command, the creation of the snapshot and the update of the data can be processed by one SCSI command. For this reason, the number of SCSI commands to be transmitted to the hard disk device can be reduced by two compared with the conventional case, the overhead of processing SCSI commands in the hard disk device 103 such as SCSI command interpretation is reduced, and a snapshot can be created at high speed. .
[0056]
Also, an EXTENDED WRITE command is used as a command for requesting snapshot creation, and an EXTENDED READ command is used as a command for requesting restoration or transfer of a snapshot, and no special new command is used. As a result, a program necessary for the host 101 to create a command for requesting snapshot creation and reading according to the present embodiment can be relatively controlled by using a conventional program for creating an EXTENDED WRITE command and an EXTENDED READ command. Can be easily created. Similarly, a program for the hard disk drive 103 to interpret and execute a command for requesting creation and reading of a snapshot is compared using a program for interpreting and executing a conventional EXTENDED WRITE command and an EXTENDED READ command. Can be easily created.
[0057]
In the above-described embodiment, the SCSI is used as an interface between the host 101 and the hard disk device 103. However, the interface may be any ULP (Upper Layer Protocol) that is SCSI, and may be FC-AL or iSCSI (SCSI over IP) can be used.
[0058]
Next, a second embodiment of the present invention will be described with reference to FIGS.
[0059]
In the first embodiment, the SCSI command in the CDB format shown in FIG. 6 is used as a means for changing the snapshot management function. In the second embodiment, the jumper 1001 arranged on the hard disk device 103 uses the SCSI command. , Change the snapshot management function. Other configurations are the same as those of the first embodiment.
[0060]
Specifically, as shown in FIG. 10, a jumper 1001 is added to the disk control unit 104 of the hard disk device 103. The jumper 1001 is an 8-bit hardware jumper for initially setting the function and initial state of the hard disk device 103. The jumper 1001 is provided on the housing 1100 of the hard disk device 103 as shown in FIG. ing. The jumper 1001 is directly connected to a port of the CPU 303. The CPU 303 refers to the value of the jumper 1001 and controls the hard disk device 103 according to the setting of the jumper 1001 in an initialization routine at the time of power activation and at the time of hardware reset of the hard disk device 103.
[0061]
The jumper 1001 has a configuration in which eight sets of pins corresponding to bit 0 (b0) to bit 7 (b7) are arranged as shown in FIG. Each set of pins is configured by arranging two terminals vertically, and a set 1 of pins where two terminals are short-circuited and a set 0 of open pins that are not short-circuited. The example of FIG. 11 shows a state in which the pin of bit 0 (b0) and the pin of bit 1 (b1) of the jumper 1001 are short-circuited by the operation of the user. Is set, and 0 is set in the other bits. In the second embodiment, bit 0 (b0) of jumper 1001 is used as a snapshot creation ENABLE bit (SNPSTWE1101), and bit 1 (b1) is used as a snapshot read ENABLE (SNPSTRE1102) bit.
[0062]
When the SNPSTWE 1101 of the jumper 1100 is short-circuited and set to 1, the CPU 303 creates and manages a snapshot triggered by a command from the host 101 requesting creation of a snapshot after a subsequent hardware reset. When the SNPTWE 1101 is released and set to 0, the CPU 303 does not create a snapshot after the subsequent hardware reset. Therefore, even if a command to request creation of a snapshot is received from the host 101, the command is terminated without creating a snapshot, and a CHECK CONDITION is reported to the host 101.
[0063]
On the other hand, when the SNPSTRE 1102 of the jumper 1001 is short-circuited and set to 1, the CPU 303 reads a snapshot triggered by a command requesting the host 101 to read a snapshot after a subsequent hardware reset. Further, when the SNP TRE 1102 is released and set to 0, the CPU 303 does not read the snapshot after the subsequent hardware reset. Therefore, even if a command requesting to read a snapshot is received from the host 101, the command is terminated without reading the snapshot, and a CHECK CONDITION is reported to the host 101.
[0064]
The operations of snapshot creation and reading, and the configuration of other parts in the hard disk device 103 are the same as those in the first embodiment, and thus description thereof is omitted. When the setting of the jumper 1001 and the instruction of the SCSI command of FIG. 6 for changing and setting the snapshot creation management function of the first embodiment conflict with each other, one of the predetermined instructions is prioritized. Can be configured. For example, the CPU 303 can be configured to give a higher priority to an instruction of the command in FIG.
Next, a third embodiment of the present invention will be described with reference to FIG. The third embodiment is a storage system to which the present invention is applied, as shown in FIG. In the storage system of FIG. 12, a host 101A, a host 101B, a host 101C, a virtualization server 1201, a storage device 1203a, a storage device 1203b, and a JBOD 1202 are connected to a SAN (Storage Area Network) 1204, and the storage devices 1203a, 1203b, and JBOD 1202 are connected. Constitute the Storage Pool 1205. The virtualization server 1201 provides each host with the volume in the storage pool 11205 as a virtual storage.
[0065]
The JBOD 1203 has a configuration in which a plurality of hard disk devices 103 according to the first embodiment are built, and each hard disk device 103 has a snapshot management function. The virtualization server 1201 manages virtual storage and also manages snapshots of virtual storage. The JBOD 1202 does not need to manage the snapshot of the virtual volume composed of the JBOD 1203 because the plurality of built-in hard disk devices 103 each have a snapshot management function, and the Virtualization Server 1201 does not need to perform the snapshot management function. Thus, it is only necessary to issue an instruction to create or read a snapshot by using a SCSI command. As a result, in the storage system using the SAN 1204 as shown in FIG. 12, the effect of reducing the load on the virtualization server 1201 can be obtained.
[0066]
As described above, according to the present invention, the storage system including the host 101 and the hard disk 103 as in the first and second embodiments, and the external storage including the JBOD 1202 as in the third embodiment In the storage system to which the device is connected, a hard disk or a JBOD 1202 having a snapshot management function can be provided. Therefore, since the hard disk device 103 or the JBOD 1202 performs the snapshot management conventionally performed by the host 101 and the virtualization server 1201, the load related to the snapshot management can be distributed. As a result, the CPU load of the host 101 can be reduced, the interface load between the host 101 and an external storage device such as the hard disk device 103 can be reduced, and the inability of the network such as the SAN 1204 can be reduced. Thus, the speed of the storage system can be increased.
[0067]
【The invention's effect】
As described above, according to the present invention, the load relating to snapshot management can be distributed, and the speed of the storage system can be increased.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of a storage system including a host computer 101 and a hard disk device 103 according to a first embodiment of this invention.
FIG. 2 is an explanatory diagram illustrating a CDB format of a SCSI command used by the host 101 to request the hard disk 103 to create a snapshot in the storage system according to the first embodiment.
FIG. 3 is an explanatory diagram illustrating a configuration of a disk control unit 104 of the hard disk device 103 in the storage system according to the first embodiment.
FIG. 4 is an explanatory diagram illustrating a CDB format of a SCSI command used by the host 101 to request the hard disk 103 to read a snapshot in the storage system according to the first embodiment;
FIG. 5 is a diagram illustrating an example of a configuration of a storage system according to a first embodiment; It is explanatory drawing which shows that it is logically allocated.
FIG. 6 is an explanatory diagram illustrating a CDB format of a SCSI command used by the host 101 to change the setting of the snapshot creation function of the hard disk device 103 in the storage system according to the first embodiment.
FIG. 7 is a flowchart illustrating an operation in which the hard disk device 103 executes a snapshot creation request from the host 101 in the storage system according to the first embodiment.
FIG. 8 is a flowchart illustrating an operation in which the hard disk device 103 executes a snapshot read request from the host 101 in the storage system according to the first embodiment.
FIG. 9 is an explanatory diagram showing a table format of a snapshot management table 315a stored in the RAM 305 of the hard disk device 103 in the storage system according to the first embodiment.
FIG. 10 is an explanatory diagram illustrating a configuration of a disk control unit 104 of a hard disk device 103 in a storage system according to a second embodiment.
FIG. 11 is an explanatory diagram illustrating a configuration of a jumper 1001 provided in a hard disk device 103 in the storage system according to the second embodiment. FIG. 11 is a diagram showing the configuration of the jumper according to the second embodiment.
FIG. 12 is an explanatory diagram illustrating a configuration of a storage system according to a third embodiment;
[Explanation of symbols]
101: host, 102: SCSI bus,
103: Hard disk drive, 104: Disk control unit,
105: disk drive 106: drive interface
107: User data area, 108: Snapshot area,
201 ... SNP, 202 ... AGE,
302: SCSI controller, 303: CPU,
304 ... ROM, 305 ... RAM,
306: drive cache, 307: disk formatter,
308: drive control circuit, 309: data bus,
310: control bus 312: drive read / write data
313: drive control signal, 314: SCSI interrupt,
315: snapshot management table
316: SCSI command queue, 401: SNP,
402 ... AGE, 901 ... AGE storage area,
902: source data address storage area,
903: snapshot address storage area,
904: recording length storage area, 1001: jumper.

Claims (11)

  1. A storage system having a host computer and a storage device,
    The storage device includes a user data area for storing user data received from the host computer, a snapshot area for storing a snapshot for the user data, and a control unit,
    When the host computer desires to create the snapshot, the host computer transmits an instruction indicating the snapshot creation request to the storage device,
    The control unit, when receiving the instruction indicating the snapshot creation request, reads the user data from the user data area, and stores the read user data in the snapshot area. Storage system.
  2. 2. The storage system according to claim 1, wherein the host computer and the storage device are connected by a predetermined interface,
    The storage system according to claim 1, wherein the host computer creates and transmits one predetermined command according to the protocol of the interface as an instruction indicating the snapshot creation request.
  3. A user data area for storing user data received from a connected host computer, a snapshot area for storing a snapshot for the user data, and a control unit,
    The control unit, when receiving an instruction indicating the snapshot creation request from the host computer, reads the user data from the user data area, and stores the read user data in the snapshot area. Characteristic storage device.
  4. 4. The storage device according to claim 3, wherein the control unit is configured to use the predetermined one as the instruction indicating the snapshot creation request according to a protocol of an interface used for connection with the host computer. 5. A storage device for receiving a command.
  5. 5. The storage device according to claim 4, wherein the command is a command used to instruct updating of the user data, a portion indicating a request to create the snapshot, and a portion indicating generation information of the snapshot. 6. A storage device characterized by adding.
  6. 6. The storage device according to claim 5, wherein, when receiving the command, the control unit reads the user data instructed to be updated by the command from the user data area and stores the user data in the snapshot area. Storing the new user data received from the host computer in the user data area after creating the snapshot according to (1).
  7. 4. The storage device according to claim 3, further comprising a management information storage area for storing information about the snapshot stored in the snapshot area,
    A plurality of the snapshots can be stored in the snapshot area, and the management information storage area stores, for each of the plurality of snapshots, a portion for storing generation information of the snapshot, and a storage area for storing the snapshot. A storage device, comprising: a portion for storing address information of the user data area that has been stored; and a portion for storing address information of the snapshot area in which the snapshot is stored.
  8. 4. The storage system according to claim 3, wherein the control unit reads the snapshot from the snapshot storage area when receiving an instruction to restore the user data using the snapshot from the host computer. And restoring the user data by storing the user data in an area of the user data area corresponding to the snapshot.
  9. An operation unit, and a command creation unit that creates a command and transmits the command to the connected storage device;
    The arithmetic unit, when it is desired to create a snapshot of the user data stored in the storage device, instructs the command creation unit to that effect,
    The host computer, when receiving the instruction from the arithmetic unit, creates one predetermined command indicating the snapshot creation request and transmits the command to the storage device. .
  10. 10. The host computer according to claim 9, wherein the command creation unit issues a command to request creation of the snapshot to a predetermined command used to instruct the storage device to update data as the command. A host computer, which creates and transmits an addition of a part indicating the generation information of the snapshot and a part indicating the generation information of the snapshot.
  11. A method for creating a snapshot of a storage system having a host computer and a storage device,
    The host computer sends one command indicating the snapshot creation request to the storage device,
    The storage device receives the one command, reads the user data from a user data area according to the command, and stores the user data in a snapshot area to create the snapshot. Method.
JP2002279035A 2002-09-25 2002-09-25 Storage system, storage device, host computer, and snapshot creation method Pending JP2004118413A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002279035A JP2004118413A (en) 2002-09-25 2002-09-25 Storage system, storage device, host computer, and snapshot creation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002279035A JP2004118413A (en) 2002-09-25 2002-09-25 Storage system, storage device, host computer, and snapshot creation method

Publications (1)

Publication Number Publication Date
JP2004118413A true JP2004118413A (en) 2004-04-15

Family

ID=32274155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002279035A Pending JP2004118413A (en) 2002-09-25 2002-09-25 Storage system, storage device, host computer, and snapshot creation method

Country Status (1)

Country Link
JP (1) JP2004118413A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346610A (en) * 2004-06-07 2005-12-15 Hitachi Ltd Storage system and method for acquisition and use of snapshot
JP2006163729A (en) * 2004-12-06 2006-06-22 Hitachi Ltd Storage system and snapshot data generation method in storage system
JP2007317181A (en) * 2006-05-16 2007-12-06 Thomson Licensing Network storage device
JP2007323657A (en) * 2006-06-05 2007-12-13 Internatl Business Mach Corp <Ibm> Method and system for storing transient state information, and computer program
US7398420B2 (en) 2004-10-18 2008-07-08 Hitachi, Ltd. Method for keeping snapshot image in a storage system
JP2009116773A (en) * 2007-11-09 2009-05-28 Hitachi Ltd Backup executability judging system
JP5342055B1 (en) * 2012-10-30 2013-11-13 株式会社東芝 Storage device and data backup method
EP2784685A1 (en) 2013-03-29 2014-10-01 Fujitsu Limited Storage control device, control program, and control method

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346610A (en) * 2004-06-07 2005-12-15 Hitachi Ltd Storage system and method for acquisition and use of snapshot
US7398420B2 (en) 2004-10-18 2008-07-08 Hitachi, Ltd. Method for keeping snapshot image in a storage system
JP2006163729A (en) * 2004-12-06 2006-06-22 Hitachi Ltd Storage system and snapshot data generation method in storage system
US7536592B2 (en) 2004-12-06 2009-05-19 Hitachi, Ltd. Storage system and snapshot data preparation method in storage system
US8095822B2 (en) 2004-12-06 2012-01-10 Hitachi, Ltd. Storage system and snapshot data preparation method in storage system
JP4583150B2 (en) * 2004-12-06 2010-11-17 株式会社日立製作所 Storage system and snapshot data creation method in storage system
JP2007317181A (en) * 2006-05-16 2007-12-06 Thomson Licensing Network storage device
JP2007323657A (en) * 2006-06-05 2007-12-13 Internatl Business Mach Corp <Ibm> Method and system for storing transient state information, and computer program
JP2009116773A (en) * 2007-11-09 2009-05-28 Hitachi Ltd Backup executability judging system
JP5342055B1 (en) * 2012-10-30 2013-11-13 株式会社東芝 Storage device and data backup method
WO2014069007A1 (en) * 2012-10-30 2014-05-08 株式会社 東芝 Storage device and data backup method
EP2784685A1 (en) 2013-03-29 2014-10-01 Fujitsu Limited Storage control device, control program, and control method
US9430161B2 (en) 2013-03-29 2016-08-30 Fujitsu Limited Storage control device and control method

Similar Documents

Publication Publication Date Title
US9612966B2 (en) Systems, methods and apparatus for a virtual machine cache
US8996807B2 (en) Systems and methods for a multi-level cache
US10339056B2 (en) Systems, methods and apparatus for cache transfers
US9824018B2 (en) Systems and methods for a de-duplication cache
JP5932973B2 (en) Virtual storage disk technology
US8392685B2 (en) Arrangements for managing metadata of an integrated logical unit including differing types of storage media
US9058123B2 (en) Systems, methods, and interfaces for adaptive persistence
US8805951B1 (en) Virtual machines and cloud storage caching for cloud computing applications
US8281076B2 (en) Storage system for controlling disk cache
US8135908B2 (en) Storage system, data transfer method, and program
KR101903817B1 (en) Virtual disk storage techniques
US6081875A (en) Apparatus and method for backup of a disk storage system
EP1734450B1 (en) Storage system and replication creation method thereof
US7308528B2 (en) Virtual tape library device
JP3868708B2 (en) Snapshot management method and computer system
US6996586B2 (en) Method, system, and article for incremental virtual copy of a data block
US7124152B2 (en) Data storage device with deterministic caching and retention capabilities to effect file level data transfers over a network
US7475282B2 (en) System and method for rapid restoration of server from back up
US5680640A (en) System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state
US8170990B2 (en) Integrated remote replication in hierarchical storage systems
KR101465928B1 (en) Converting machines to virtual machines
US7743206B2 (en) Dynamic loading of virtual volume data in a virtual tape server
EP1313016B1 (en) Dynamic interconnection of storage devices
US8266375B2 (en) Automated on-line capacity expansion method for storage device
JP5208368B2 (en) System and method for automatically backing up a file as a generation file using the file system