WO2016079809A1 - Storage unit, file server, and data storage method - Google Patents

Storage unit, file server, and data storage method Download PDF

Info

Publication number
WO2016079809A1
WO2016079809A1 PCT/JP2014/080513 JP2014080513W WO2016079809A1 WO 2016079809 A1 WO2016079809 A1 WO 2016079809A1 JP 2014080513 W JP2014080513 W JP 2014080513W WO 2016079809 A1 WO2016079809 A1 WO 2016079809A1
Authority
WO
WIPO (PCT)
Prior art keywords
chunk
container
work
processor
storage device
Prior art date
Application number
PCT/JP2014/080513
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/JP2014/080513 priority Critical patent/WO2016079809A1/en
Publication of WO2016079809A1 publication Critical patent/WO2016079809A1/en

Links

Images

Classifications

    • 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 storage apparatus.
  • a deduplication technique is known in which a plurality of data overlapping each other is determined in a storage device, and only one of the plurality of data is stored.
  • the storage device receives the write data, it reads the data related to the partial data of the write data out of the data stored in the storage device into the memory, and determines whether or not the partial data is duplicated with the read data.
  • the partial data determined to be not duplicated is written to the storage device.
  • the storage apparatus reads another data from the storage device and replaces the data in the memory with another data.
  • the backup device uses the first duplication determination information to determine that the content is not stored in the storage device, and the storage device uses the second duplication determination information to store the content in the storage device.
  • the storage device transmits the second duplication judgment information to the backup device, and the backup device incorporates the received second duplication judgment information into the first duplication judgment information. Has been.
  • a storage apparatus includes a storage device, a memory, and a processor connected to the storage device, the memory, and a host computer.
  • the processor receives write data from the host computer, the processor creates a work container that is a container for including data in the memory, and the processor divides the write data into a plurality of chunks.
  • the processor selects one of the plurality of chunks as a work chunk in order of a chunk position indicating a position of each of the plurality of chunks in the write data, and the processor selects each chunk in the storage device.
  • the processor determines whether or not a matching chunk that may overlap with the work chunk is stored in the storage device, and the matching chunk is stored in the storage device. If it is determined that the processor contains the matching chunk, A conforming container is read into the memory, and the processor determines, based on the conforming container, whether the work chunk overlaps with the conforming chunk, and if the work chunk does not overlap with the conforming chunk. If determined, the processor includes the work chunk in the work container, the processor determines whether the work container satisfies a predetermined close condition, and the work container satisfies the close condition.
  • the processor determines whether or not the work container satisfies a predetermined registration condition, and if determined that the work container satisfies the registration condition, the processor Chunk information based on each chunk in the work container is included in the index information, and the work container If it is determined that the closed condition is satisfied, the processor writes the working container into the storage device.
  • Processing to replace data in memory with data in storage device can be reduced, and the performance of the storage device can be improved.
  • the duplication exclusion process of the comparative example in a 1st state is shown.
  • the deduplication process of the comparative example in a 2nd state is shown.
  • Stage processing is shown.
  • Destage processing is shown.
  • the duplication exclusion process of the comparative example in a 3rd state is shown.
  • the deduplication process of the comparative example in a 4th state is shown.
  • the deduplication process of the comparative example in a 5th state is shown.
  • the deduplication process of the comparative example in a 6th state is shown.
  • the deduplication process of embodiment in a 1st state is shown.
  • the deduplication process of embodiment in a 2nd state is shown.
  • the deduplication process of embodiment in a 3rd state is shown.
  • the deduplication process of embodiment in a 7th state is shown.
  • the deduplication process of embodiment in an 8th state is shown.
  • the structure of a file server is shown. 2 shows a functional configuration of the storage apparatus 10.
  • the structure of the process data 420 is shown. Indicates backup processing. Indicates chunk write processing.
  • the conforming container stage process is shown. Indicates new chunk storage processing.
  • the container close determination process is shown. The container close process is shown. Read processing is shown.
  • the information of the present embodiment will be described using the expressions “file” and “index”, but these information may not necessarily be expressed by these data structures.
  • it may be expressed by a data structure such as “table”, “list”, “DB (database)”, “queue”, or the like. Therefore, “file”, “index”, “table”, “list”, “DB”, “queue”, and the like can be simply referred to as “information” in order to show that they do not depend on the data structure.
  • the expressions “identification information”, “identifier”, “name”, “name”, “ID”, and “number” can be used. Can be replaced.
  • program will be the subject of the description, but since the program uses a memory and a communication port (communication control device) to perform processing defined by being executed by a CPU (Central Processing Unit), The description may be based on the CPU.
  • the processing disclosed with the program as the subject may be processing performed by a computer such as a server computer, a storage controller, a management computer, or an information processing apparatus. Part or all of the program may be realized by dedicated hardware, or may be modularized.
  • Various programs may be installed in each computer by a program distribution server or a storage medium.
  • the management computer has input / output devices.
  • input / output devices include a display, a keyboard, and a pointer device, but other devices may be used.
  • a serial interface or an Ethernet interface is used as the input / output device, and a display computer having a display or keyboard or pointer device is connected to the interface, and the display information is transmitted to the display computer.
  • the display computer may perform the display, or the input may be replaced by the input / output device by receiving the input.
  • a set of one or more computers that manage the computer system and display the display information of the present invention may be referred to as a management system.
  • the management computer displays display information
  • the management computer is a management system
  • a combination of the management computer and the display computer is also a management system.
  • a plurality of computers may realize processing equivalent to that of the management computer.
  • the plurality of computers if the display computer performs the display, display (Including computers) is the management system.
  • FIG. 1 shows the deduplication processing of the comparative example in the first state.
  • This figure shows a first state in which the storage device 90b of the comparative example receives new backup data BD1 from the host computer 80.
  • the storage apparatus 90b divides the backup data BD1 into chunks a, b,... Z as deduplication processing (S11). Each chunk has a preset chunk length.
  • the storage apparatus 90b sequentially determines whether or not the chunks a, b,... Z overlap with existing chunks stored in the storage apparatus 90b, and the chunks a, b,. It is determined that all do not overlap with existing chunks (new chunks).
  • the storage apparatus 90b creates a new container CN1 for storing a new chunk on the memory as a work container, and sequentially stores the new chunks in the work container (S12).
  • the number of chunks stored in the work container is referred to as the number of stored chunks.
  • the storage apparatus 90b creates a new container CN2 as a work container and stores subsequent new chunks in the work container.
  • FIG. 2 shows the deduplication processing of the comparative example in the second state.
  • This figure shows a second state in which the storage apparatus 90b receives the next backup data BD2 from the host computer 80 after the first state.
  • the storage apparatus 90b divides the backup data BD2 into a plurality of chunks as deduplication processing (S21), and determines that the chunks f1, o1, and p1 are new chunks.
  • the storage apparatus 90b creates a new container CN3 as a work container and stores the new chunk in the work container (S22).
  • FIG. 3 shows stage processing
  • the storage device 90b includes a memory 91b and a disk 92b.
  • the disk 92b stores a container.
  • the memory 91b stores backup data received from the host computer 80 and a container read from the disk 92b for duplication determination.
  • the storage device 90b selects chunks in the backup data in order from the top of the backup data, and determines whether the selected chunk is duplicated with the data stored in the storage device 90 Make a decision.
  • the storage apparatus 90b reads (stages) the container related to the chunk i in the backup data from the disk 92b to the memory 91b (S31), and compares the chunk i with the chunk on the memory 91b.
  • FIG. 4 shows the destage processing
  • a stage container number upper limit value which is an upper limit value of the number of stage containers, is set in advance.
  • the storage apparatus 90b invalidates (destages) the container with the oldest staged time (S41). Thereafter, the storage apparatus 90b stages the container including the next chunk for duplication determination (S42).
  • FIG. 5 shows the deduplication processing of the comparative example in the third state.
  • This figure shows a third state in which the storage apparatus 90b receives the next backup data BD5 from the host computer 80 after receiving the backup data from the host computer 80.
  • the storage apparatus 90b divides the backup data BD5 into a plurality of chunks, and determines that chunks a1, k1, and o1 are new chunks (S51).
  • the storage apparatus 90b creates a new container CN5, stores the new chunks a1, k1, and o1 in the container (S52), and destages the container (S53).
  • FIG. 6 shows the deduplication process of the comparative example in the fourth state.
  • This figure shows a fourth state in which the storage apparatus 90b receives the next backup data BD6 from the host computer 80 after the third state.
  • the storage apparatus 90b divides the backup data BD6 into a plurality of chunks, and selects the container CN5 including the chunks a1, k1, and o1 from the disk 92b in order to determine the received chunk a1 as a duplicate (S61). Then, the selected container CN5 is staged (S62), and the received chunk a1 is compared with the staged chunk a1.
  • FIG. 7 shows the deduplication processing of the comparative example in the fifth state.
  • This figure shows a fifth state after the fourth state, in which the storage apparatus 90b performs duplication determination from chunk b to chunk i in the backup data BD6, and determines chunk j as duplication.
  • the storage device 90b determines that the containers CN5, CN6, and CN7 are staged by the duplication determination until immediately before (S71), and the number of stage containers has reached the upper limit of the number of stage containers.
  • FIG. 8 shows the deduplication processing of the comparative example in the sixth state.
  • This figure shows the sixth state after the fifth state in which the storage apparatus 90b determines that the chunk k1 after the chunk j is duplicated in the backup data BD6.
  • the storage device 90b destages the oldest staged container CN6 (S82) because the number of stage containers has reached the upper limit of the number of stage containers due to the duplication determination up to the chunk j (S81), and within the disk 92b.
  • the container CN5 including the chunk a1 is staged again (S83). That is, the storage apparatus 90b stages immediately after destaging the container CN5. As the number of destages and stages increases, the performance of the storage device 90b decreases.
  • FIG. 9 shows the deduplication processing of the embodiment in the first state.
  • the storage apparatus 90 of the present embodiment divides the backup data BD1 into chunks a, b,... Z, and assigns chunk numbers to each chunk in order from the top of the backup data BD1 (S1111). Instead of the chunk number, a chunk position indicating the position of the chunk in the backup data BD1, such as an offset from the head of the backup data BD1, may be used. Thereafter, the storage apparatus 90 performs duplication determination of each chunk in order of the chunk number, opens the new container CN1 as a work container on the memory, and stores the new chunks in the work container in order (S1112). To open a work container is to create a work container on the memory and make it possible to add a new chunk to the work container.
  • the storage device 90 When the new chunk is stored in the work container, the storage device 90 records the first chunk number of the work container as head (starting chunk number) and the last chunk number of the working container as tail (endpoint chunk number). When the number of stored chunks reaches the upper limit value of the number of stored chunks, the storage device 90 closes the work container and creates a new container CN2 as a work container. Closing the work container means that a new chunk cannot be added to the work container, the work container is written to the disk, and the work container in the memory is invalidated (destaged).
  • FIG. 10 shows the deduplication processing of the embodiment in the second state.
  • the storage device 90 divides the backup data BD2 into a plurality of chunks (S1121), opens the new container CN3 as a work container, detects new chunks f1, o1, and p1 from the backup data BD2, and creates a new one.
  • the chunks f1, o1, and p1 are stored in the work container (S1122), and the work container is closed.
  • FIG. 11 shows the deduplication processing of the embodiment in the seventh state.
  • This figure shows a seventh state in which the storage apparatus 90 receives the next backup data BD5 from the host computer 80 after receiving the backup data.
  • the storage device 90 includes a memory 91 and a disk 92.
  • the storage apparatus 90 creates a work container on the memory 91 by opening the new container CN5 as a work container, detects the new chunks a1, k1, and o1 in the backup data BD5, and creates the new chunks a1, k1.
  • O1 is stored in the work container (S1131). Furthermore, the storage apparatus 90 determines whether or not the work container satisfies a predetermined registration condition.
  • the registration condition is that the interval evaluation value indicating the spread of chunk numbers in the work container is smaller than a predetermined interval evaluation threshold, and the number of stored chunks is larger than a predetermined lower limit value of the number of stored chunks.
  • the interval evaluation value is represented by, for example, “(tail-head) / number of stored chunks”.
  • the interval evaluation value increases as the interval between chunk numbers of a plurality of chunks in the work container increases.
  • the storage apparatus 90 when it is determined that the work container does not satisfy the registration condition, the storage apparatus 90 writes the work container to the disk 92 as a non-registered container (S1132).
  • the storage apparatus 90 can prevent reference to the chunk in this container in subsequent duplication determination by not including the chunk information indicating the chunk in the unregistered container in the index information. Further, the storage apparatus 90 closes the work container (S1133).
  • FIG. 12 shows the deduplication processing of the embodiment in the eighth state.
  • This figure shows an eighth state in which the storage apparatus 90 receives the next backup data BD6 from the host computer 80 after the seventh state.
  • the storage device 90 determines that the chunk a1 in the backup data BD6 is duplicated (S1141), the container CN5 including the chunks a1, k1, and o1 in the disk 92 is an unregistered container.
  • the duplication determination to be used is not performed (S1142), the chunk a1 is determined as a new chunk (S1143), the new container CN12 is opened as a work container, the chunk a1 is stored in the work container, and the work container is closed. Therefore, the storage apparatus 90 does not stage the unregistered container CN5. Thereby, the storage apparatus 90 can reduce the number of stages and destages compared to the storage apparatus 90b.
  • This deduplication process stores the first new chunk in the work container, stores the second new chunk having a chunk number close to the chunk number of the first new chunk, and starts from the chunk number of the second new chunk.
  • a third new chunk having a far chunk number may be stored in the work container.
  • the deduplication processing determines that the work container is a non-registered container, and duplication determination is not performed for all chunks in the non-registered container, so that the deduplication rate decreases. Therefore, the deduplication processing of this embodiment performs the following processing.
  • FIG. 13 shows the deduplication processing of the embodiment in the ninth state.
  • This figure shows a ninth state in which the storage apparatus 90 receives the next backup data BD7 from the host computer 80 after the eighth state.
  • the storage apparatus 90 divides the backup data BD7 into a plurality of chunks as deduplication processing, and determines that chunks a1, b1, c1, and o1 are new chunks.
  • the storage apparatus 90 creates the new container CN13 as a work container, and sequentially selects new chunks as work chunks.
  • the storage apparatus 90 determines whether or not the work container satisfies a predetermined separation condition.
  • the separation condition is a distance evaluation threshold in which a distance evaluation value indicating a distance from the chunk number of the immediately previous work chunk to the chunk number of the current work chunk is predetermined. And the number of stored chunks is larger than the separation chunk number threshold.
  • the distance evaluation value is represented by “work chunk number ⁇ tail”, for example.
  • the storage apparatus 90 can store the chunks whose positions are close to each other in the backup data in one container, and can store the chunks whose positions are separated from each other in the backup data in different containers. Thereby, the storage apparatus 90 can use a container including a plurality of chunks close to each other, such as a plurality of consecutive chunks, as a registered container, and can suppress a decrease in the deduplication rate.
  • FIG. 14 shows the configuration of the file server of this embodiment.
  • the file server of this embodiment includes the storage device 10 and the host computer 30.
  • the storage device 10 corresponds to the storage device 90 described above.
  • the storage apparatus 10 includes a plurality of nodes 40 (N0, N1,... Nn) and a disk array 60.
  • Each of the plurality of nodes 40 is connected to the host computer 30 via a communication network such as a LAN (Local Area Network).
  • the disk array 60 corresponds to the disk 92 described above.
  • the disk array 60 is connected to a plurality of nodes 40 via a communication network such as an FC (Fibre Channel) cable.
  • the number of nodes 40 may be one.
  • other storage devices including storage devices such as HDD (Hard Disk Drive) and SSD (Solid State Drive) may be used.
  • the node 40 includes a CPU (Central Processing Unit) 110, a memory 120, an FC port 130, an HDD 140, and a network interface (NW I / F) 150.
  • the HDD 140 stores programs and data for the node 40.
  • the CPU 110 executes processing according to a program in the HDD 140.
  • the memory 120 corresponds to the memory 91 described above.
  • the memory 120 stores programs read from the HDD 140, data used for processing, data transmitted to and received from the host computer 30, data communicated to the disk array 60, and the like.
  • the FC port 130 is connected to the disk array 60 and communicates with the disk array 60 in accordance with an instruction from the CPU 110.
  • the NW I / F 150 is connected to the host computer 30 and communicates with the host computer 30 in accordance with an instruction from the CPU 110.
  • the disk array 60 includes two duplicated controllers 210 (CTL0, CTL1) and a plurality of HDDs 230.
  • the controller 210 is connected to the node 40 and performs I / O processing for a plurality of HDDs 230 in accordance with instructions from the node 40.
  • the plurality of HDDs 230 store data from the node 40.
  • the number of controllers 210 may be one.
  • the controller 210 creates an LU using a plurality of HDDs 230 and provides it to the node 40.
  • the controller 210 includes a CPU 211, a memory 212, an FC port 213, and a disk interface (I / F) 214.
  • the memory 212 stores programs and data.
  • the CPU 211 executes processing such as RAID (Redundant Arrays of Inexpensive Disks) according to a program in the memory 212.
  • the FC port 213 is connected to the node 40 via the FC, and communicates with the node 40 in accordance with an instruction from the CPU 211.
  • the disk I / F 214 is connected to a plurality of HDDs 230 and accesses the HDDs 230 according to instructions from the CPU 211.
  • Other SAN Storage Area Network
  • the host computer 30 is connected to a terminal device via a communication network.
  • the host computer 30 stores data accessed from the terminal device.
  • the host computer 30 creates backup data based on the stored data, and transmits a request to write the backup data to the storage apparatus 10.
  • the host computer 30 transmits a request for reading backup data to the storage apparatus 10 in order to restore the data.
  • the file server may include a backup server connected to the host computer 30 and the storage apparatus 10 via a communication network.
  • the host computer 30 stores the file, and transmits a write request for the file to be backed up from the stored file to the backup server.
  • the backup server receives a file from the host computer 30, creates backup data based on the received file, and transmits it to the storage device 10. Further, the host computer 30 transmits a file read request to the backup server.
  • the backup server reads backup data including the specified file from the storage apparatus 10 and transmits the specified file to the host computer 30.
  • FIG. 15 shows a functional configuration of the storage apparatus 10.
  • the node 40 includes a deduplication processing unit 310 and a file system management unit 320 as functions by programs in the memory 120.
  • the deduplication processing unit 310 receives the backup data 410 from the host computer 30 and performs deduplication processing on the backup data 410.
  • the file system management unit 320 creates a file system (FS) 330 using the LU provided from the disk array 60.
  • the file system management unit 320 writes processing data 420 that is backup data after deduplication processing to the file system 330 based on an instruction from the deduplication processing unit 310.
  • the file system management unit 320 reads the processing data 420 from the file system 330 based on an instruction from the deduplication processing unit 310.
  • the deduplication processing unit 310 reconstructs the backup data 410 from the processing data 420 and transmits it to the host computer 30.
  • the memory 120 further stores work data 440 for the deduplication processing unit 310.
  • the deduplication processing unit 310 uses the file system management unit 320 to acquire a setting value from the setting data 460 in the file system 330.
  • the setting data 460 may include any one of a storage chunk number upper limit value, a storage chunk number lower limit value, an interval evaluation threshold value, a distance evaluation threshold value, a separation chunk number threshold value, and a stage container number upper limit value.
  • the management computer connected to the node 40, the node 40, the host computer 30, etc. may write the setting data 460.
  • the setting data 460 may be written in the memory 120, the HDD 14, or the like.
  • the disk array 60 is file-accessed from the node 40, but may be block-accessed from the node 40.
  • the chunk may be a block.
  • the controller 210 may have the function of the node 40.
  • FIG. 16 shows the configuration of the processing data 420.
  • the processing data 420 includes a plurality of contents 510, a plurality of container indexes 520, a plurality of containers 530, and a plurality of chunk indexes 540.
  • the content 510 for reconstructing one backup data includes a content ID 610 indicating the content, and a plurality of chunk information 620 indicating a plurality of chunks included in the content.
  • Chunk information 620 indicating one chunk includes an offset 621 from the beginning of the backup data to the chunk, a length 622 of the chunk, a container ID 623 of the container 530 including the chunk, and a fingerprint 624 of the chunk.
  • the fingerprint 624 is a hash value obtained from the chunk.
  • the deduplication processing unit 310 can identify a chunk included in the backup data and a container including the chunk based on the content 510.
  • the fingerprint 624 is a value obtained by shortening the chunk data. As a result, it is possible to search for a chunk at a higher speed than searching for chunk data.
  • the container index 520 indicating one container includes a container ID 630 indicating the container and at least one chunk information 640 indicating the chunk included in the container.
  • the chunk information 640 indicating one chunk includes a fingerprint 641 of the chunk, an offset 642 from the top of the container to the chunk, and a length 643 of the chunk.
  • the deduplication processing unit 310 can identify the chunk included in the container based on the container index 520.
  • the container 530 includes a container ID 650 indicating the container and at least one chunk information 660 indicating the chunk included in the container.
  • the chunk information 660 indicating one chunk includes a length 661 of the chunk and chunk data 662 that is data of the chunk.
  • the beginning of the chunk data 662 in the container 530 is indicated by an offset 642 in the container index 520.
  • the length of the chunk data 662 in the container 530 is indicated by a length 643 in the container index 520 and a length 661 in the container 530.
  • the deduplication processing unit 310 can acquire the chunk data 662 from the container 530.
  • the chunk index 540 indicating a group of chunks that share a part of the fingerprint includes a group ID 670 indicating a part of the fingerprint and at least one chunk information 680 indicating a chunk belonging to the group.
  • the chunk information 680 indicating one chunk includes a fingerprint 681 of the chunk and a container ID 682 indicating a container to which the chunk belongs.
  • the chunk index 540 of the present embodiment includes the chunk information 680 of the chunk in the registered container, and does not include the chunk information 680 of the chunk in the unregistered container. As a result, the unregistered container is not staged because it is not searched for by subsequent duplicate determination.
  • the deduplication processing unit 310 instructs the file system management unit 320 to write out the processing data 420.
  • the file system management unit 320 writes each of the plurality of contents 510, the plurality of container indexes 520, the plurality of containers 530, and the plurality of chunk indexes 540 to the disk array 60 as files.
  • FIG. 17 shows the backup process
  • the backup data may be a file or may include a plurality of files.
  • the deduplication processing unit 310 performs backup initial processing for backup initialization (S110).
  • the deduplication processing unit 310 opens a work container that is a new container (S120).
  • the deduplication processing unit 310 creates an updatable work container in the work data 440.
  • the deduplication processing unit 310 opens a work container index which is a new container index corresponding to the work container (S130).
  • the deduplication processing unit 310 creates an updatable work container index in the work data 440.
  • the deduplication processing unit 310 opens work content that is content corresponding to the backup data from the processing data 420 (S140).
  • the deduplication processing unit 310 copies the work content from the processing data 420 on the disk array 60 to the work data 440 on the memory 120 so that the work content can be updated.
  • the above is the backup initial processing.
  • the deduplication processing unit 310 divides the backup data into a plurality of chunks and gives chunk numbers to the plurality of divided chunks (S150).
  • the deduplication processing unit 310 selects a work chunk number in order from a plurality of chunk numbers, performs a chunk writing process (described later) on a work chunk that is a chunk having the work chunk number (S160), and performs a plurality of divided pieces. It is determined whether chunk write processing has been performed on all chunks (S170). When it is determined that the chunk writing process has not been performed for all the chunks (S170: no), the deduplication processing unit 310 shifts the process to S160 and selects the next work chunk number.
  • the deduplication processing unit 310 performs a backup end process for ending the backup (S180), and ends this flow. .
  • the deduplication processing unit 310 closes the work content (S210).
  • the deduplication processing unit 310 replaces the work content in the processing data 420 with the work content in the work data 440.
  • the deduplication processing unit 310 closes the work container index (S220).
  • the deduplication processing unit 310 adds the work container index in the work data 440 to the process data 420.
  • the deduplication processing unit 310 validates the close flag (S230).
  • the deduplication processing unit 310 stores a close flag on the memory 120. The close flag indicates whether to close the work container.
  • the deduplication processing unit 310 performs container close processing (described later) (S240).
  • the deduplication processing unit 310 adds the work container in the work data 440 to the process data 420.
  • the above is the backup end process.
  • the file system management unit 320 reads a file from the disk array 60 to the memory 120 in accordance with an instruction to open the file in the processing data 420 by the deduplication processing unit 310. Further, the file system management unit 320 writes the file from the memory 120 to the disk array 60 in accordance with the instruction to close the file in the processing data 420 by the deduplication processing unit 310.
  • FIG. 18 shows chunk write processing
  • the deduplication processing unit 310 acquires the designated work chunk (S310). Thereafter, the deduplication processing unit 310 determines whether or not the work chunk overlaps with the staged chunk (S320). Here, when the chunk data of the work chunk is the same as any one of the chunk data in the container staged in the work data 440, the deduplication processing unit 310 determines that the chunk in which the work chunk is staged. It is determined that there are duplicates. Thereby, the deduplication processing unit 310 can determine at high speed that the work chunk overlaps with the chunk staged in the memory 120.
  • the deduplication processing unit 310 shifts the process to S410.
  • the deduplication processing unit 310 determines whether the work chunk is registered in the chunk index 540 (S330). .
  • the deduplication processing unit 310 calculates the fingerprint of the work chunk and, when detecting the fingerprint of the work chunk from the chunk index 540, determines that the work chunk is registered in the chunk index 540.
  • the deduplication processing unit 310 identifies the chunk indicated in the detected fingerprint 681 as a conforming chunk, and identifies the container indicated by the container ID 682 including the conforming chunk as a conforming container. As a result, the deduplication processing unit 310 can determine whether or not the matching chunk that may overlap with the work chunk is stored in the disk array 60. Note that the de-duplication processing unit 310 may speed up the determination in S330 using a Bloom filter.
  • the deduplication processing unit 310 shifts the process to S360.
  • the deduplication processing unit 310 When it is determined that the work chunk is registered in the chunk index 540 (S330: yes), the deduplication processing unit 310 performs a conforming container stage process (described later) for the conforming container (S340).
  • the deduplication processing unit 310 determines whether or not the work chunk is included in the conforming container (S350).
  • the deduplication processing unit 310 determines that the work chunk is included in the conforming container when the chunk data of the work chunk is the same as the chunk data of the conforming chunk in the conforming container staged by the stage processing. .
  • the deduplication processing unit 310 can determine that the work chunk overlaps with the chunk stored in the processing data 420 in the disk array 60.
  • the deduplication processing unit 310 When it is determined that the work chunk is not included in the conforming container (the work chunk is a new chunk) (S350: no), the deduplication processing unit 310 performs a new chunk storage process (described later) (S360), The process proceeds to S410.
  • the deduplication processing unit 310 performs the container close determination process (described later) (S410), and performs the container close process (described later). Perform (S420).
  • the deduplication processing unit 310 determines whether or not the work container is closed (S430). When it is determined that the work container is not closed (S430: no), the deduplication processing unit 310 shifts the process to S450. When it is determined that the work container is closed (S430: yes), the deduplication processing unit 310 opens a work container that is a new container (S440).
  • the deduplication processing unit 310 registers the work chunk information in the work content in the work data 440 (S450), and ends this flow.
  • FIG. 19 shows the conforming container stage process.
  • the deduplication processing unit 310 determines whether or not the conforming container is staged (S510). Thereby, even if there exists a period when the work data 440 is not locked between S320 and S340, the deduplication processing part 310 can confirm that the compatible container is not staged.
  • the deduplication processing unit 310 ends this flow.
  • the deduplication processing unit 310 determines whether or not the number of stage containers has reached the upper limit value of the number of stage containers (S520).
  • the deduplication processing unit 310 shifts the process to S540.
  • the deduplication processing unit 310 selects the oldest staged container among the staged containers. Destage the selected container (invalidate the container on the memory) (S530). Thereafter, the deduplication processing unit 310 stages the compatible container (S540), and ends this flow. At this time, the deduplication processing unit 310 instructs the file system management unit 320 on the stage of the compatible container.
  • the file system management unit 320 reads a container from the disk array 60 to the work data 440 in the memory 120 in accordance with the instruction.
  • the storage apparatus 10 replaces the oldest staged container in the memory 120 with a compatible container read from the disk array 60 when the number of stage containers reaches the upper limit number of stage containers. Can do.
  • the deduplication processing unit 310 measures the amount of containers staged in the memory 120, and determines whether or not the measured amount is equal to or greater than a predetermined stage amount upper limit value. Also good.
  • the amount of containers staged in the memory 120 may be the number of containers staged in the memory 120, may be the total size of the containers staged in the memory 120, or may be staged in the memory 120. It may be the total number of chunks in a given container.
  • FIG. 20 shows a new chunk storage process
  • the de-duplication processing unit 310 determines whether or not the number of stored chunks has reached the upper limit value of the number of stored chunks (S610). The fact that the number of stored chunks has reached the upper limit value of the number of stored chunks is sometimes called a stored chunk number condition.
  • the deduplication processing unit 310 shifts the process to S710.
  • the deduplication processing unit 310 enables the close flag (S620). As a result, the deduplication processing unit 310 can limit the number of stored chunks. Thereafter, the deduplication processing unit 310 performs container close processing (described later) (S630). Thereby, the work container is closed. Thereafter, the deduplication processing unit 310 opens the new container as a work container (S640).
  • the deduplication processing unit 310 stores the work chunk in the work container (S710). Thereafter, the deduplication processing unit 310 performs section setting processing (S720).
  • the deduplication processing unit 310 records the work chunk number in the tail (S730). Thereafter, the deduplication processing unit 310 determines whether a chunk number is recorded in the head (S740). When it is determined that the head stores the chunk number (S740: yes), the deduplication processing unit 310 ends the section setting process. On the other hand, when it is determined that the head does not store the chunk number (S740: no), the deduplication processing unit 310 records the work chunk number in the head (S750), and ends the section setting process. The above is the section setting process.
  • the deduplication processing unit 310 registers the chunk information 640 of the work chunk in the work container index (S760), and ends this flow.
  • the storage apparatus 10 can store the work chunk in the work container and record the head and tail.
  • FIG. 21 shows container close determination processing.
  • the de-duplication processing unit 310 determines whether or not the distance evaluation value is larger than the distance evaluation threshold (S810). When it is determined that the distance evaluation value is equal to or less than the distance evaluation threshold (S810: no), the deduplication processing unit 310 ends this flow. On the other hand, when it is determined that the distance evaluation value is greater than the distance evaluation threshold (S810: yes), the de-duplication processing unit 310 determines whether the number of stored chunks is equal to or greater than the separation chunk number threshold (S820). When it is determined that the number of stored chunks is smaller than the separation chunk number threshold value (S820: no), the deduplication processing unit 310 ends this flow. On the other hand, when it is determined that the number of stored chunks is equal to or greater than the separation chunk number threshold value (S820: yes), the deduplication processing unit 310 enables the close flag (S830) and ends this flow.
  • the storage apparatus 10 can suppress a decrease in the deduplication rate due to the container close process described later by setting a container including a plurality of chunks whose positions in the backup data are close to each other as a registered container. . Further, the storage apparatus 10 can keep the number of stored chunks of each container at or above the separation chunk number threshold by using the separation chunk number threshold.
  • FIG. 22 shows the container close process
  • the deduplication processing unit 310 determines whether or not the close flag is valid (S910). When it is determined that the close flag is invalid (S910: no), the deduplication processing unit 310 ends this flow. On the other hand, when it is determined that the close flag is valid (S910: yes), the deduplication processing unit 310 performs a registered container determination process (S920).
  • the de-duplication processing unit 310 determines whether or not the interval evaluation value is smaller than the interval evaluation threshold (S930). When it is determined that the interval evaluation value is greater than or equal to the interval evaluation threshold (S930: no), the deduplication processing unit 310 ends the registered container determination process. On the other hand, when it is determined that the interval evaluation value is smaller than the interval evaluation threshold (S930: yes), the deduplication processing unit 310 determines whether or not the number of stored chunks is equal to or greater than the storage chunk number lower limit (S940). .
  • the deduplication processing unit 310 ends the registered container determination process.
  • the deduplication processing unit 310 registers the chunk information 680 of all the chunks in the work container in the chunk index 540 ( S950), the registered container determination process is terminated.
  • the deduplication processing unit 310 closes the work container (S960), and ends this flow. At this time, the deduplication processing unit 310 instructs the file system management unit 320 to destage the work container. In response to the instruction, the file system management unit 320 writes the work container from the memory 120 to the disk array 60 and invalidates the work container on the memory 120.
  • the storage apparatus 10 can close the work container when the work container satisfies either the separation condition or the storage chunk number condition. Further, the storage apparatus 10 can reduce the number of stages and destages by making a container including new chunks whose positions in the backup data are separated from each other and a container having a small number of stored chunks as non-registered containers. A decrease in performance of the storage apparatus 10 can be suppressed. Further, the storage apparatus 10 can keep the number of stored chunks of each registered container equal to or greater than the lower limit value of the stored chunk number by using the lower limit value of the stored chunk number.
  • FIG. 23 shows the Read process.
  • the deduplication processing unit 310 When the deduplication processing unit 310 receives a backup data read request from the host computer 30, the deduplication processing unit 310 starts read processing.
  • the deduplication processing unit 310 opens the work content that is the content corresponding to the backup data in the processing data 420 (S2110). Thereafter, the deduplication processing unit 310 selects chunks as selected chunks in the order of offset 621 from the work content, and acquires chunk information 620 of the selected chunks (S2120). Thereafter, the deduplication processing unit 310 identifies the container ID 623 of the container including the selected chunk and the fingerprint 624 of the selected chunk, and identifies the offset 642 and length 643 in the container index 520 corresponding to the identified container ID. The specified offset and length chunk data 662 is read from the container 530 corresponding to the specified container ID (S2130). Thereafter, the deduplication processing unit 310 determines whether all chunks in the work content have been read (S2140).
  • the deduplication processing unit 310 shifts the processing to S2120 and selects the next selected chunk. If it is determined that all chunks in the work content have been read (S2140: yes), the deduplication processing unit 310 closes the work content (S2150), and ends this flow.
  • the backup data designated by the host computer 30 can be reconstructed from the processing data 420, and the reconstructed backup data can be transmitted to the host computer 30.
  • the storage device 90, the storage device 10, or the like may be used.
  • the host computer the host computer 80, the host computer 30, or the like may be used.
  • a memory 91, a memory 120, or the like may be used as the memory.
  • the processor the CPU 110 or the like may be used.
  • a disk 92, a disk array 60, or the like may be used.
  • a fingerprint or the like may be used as the chunk information.
  • a chunk index 540 or the like may be used.
  • As the closing condition, a separation condition, a storage chunk number condition, or the like may be used.

Abstract

The present invention reduces processing for replacing data in a memory with data in a storage device and thereby improves the performance of the storage unit. When it is determined that a working chunk is not identical to a matching chunk, a processor according to the present invention puts the working chunk in a working container. The processor determines whether the working container satisfies a predetermined closing condition, and, if it is determined that the working container satisfies the closing condition, determines whether the working container satisfies a predetermined registration condition. If it is determined that the working container satisfies the registration condition, the processor causes chunk information based on each chunk in the working container to be included in index information. If it is determined that the working container satisfies the closing condition, the processor destages the working container to the storage device.

Description

ストレージ装置、ファイルサーバ、およびデータ記憶方法Storage device, file server, and data storage method
 本発明は、ストレージ装置に関する。 The present invention relates to a storage apparatus.
 ストレージ装置において互いに重複する複数のデータを判定し、複数のデータの一つだけを記憶する重複排除の技術が知られている。ストレージ装置は、ライトデータを受信すると、記憶デバイス内に格納されたデータのうち、ライトデータの部分データに関連するデータをメモリへ読み込み、部分データが読み込まれたデータと重複しているか否かを判定し、重複していないと判定された部分データを記憶デバイスへ書き出す。メモリに読み込まれたデータ量が予め定められた上限に達すると、ストレージ装置は、記憶デバイスから別データを読み込み、メモリ内のデータを別データに置き換える。 A deduplication technique is known in which a plurality of data overlapping each other is determined in a storage device, and only one of the plurality of data is stored. When the storage device receives the write data, it reads the data related to the partial data of the write data out of the data stored in the storage device into the memory, and determines whether or not the partial data is duplicated with the read data. The partial data determined to be not duplicated is written to the storage device. When the amount of data read into the memory reaches a predetermined upper limit, the storage apparatus reads another data from the storage device and replaces the data in the memory with another data.
 特許文献1には、バックアップ装置が第1の重複判定情報を用いて、コンテンツがストレージ装置に格納されていないと判定し、且つストレージ装置が第2の重複判定情報を用いて、コンテンツがストレージ装置に格納されていると判定した場合、ストレージ装置は第2の重複判定情報をバックアップ装置に送信し、バックアップ装置は、受信した第2の重複判定情報を第1の重複判定情報に組み入れることが記載されている。 In Patent Document 1, the backup device uses the first duplication determination information to determine that the content is not stored in the storage device, and the storage device uses the second duplication determination information to store the content in the storage device. The storage device transmits the second duplication judgment information to the backup device, and the backup device incorporates the received second duplication judgment information into the first duplication judgment information. Has been.
国際公開第2014/087508号International Publication No. 2014/085508
 重複を判定するために、メモリ内のデータを記憶デバイス内のデータに置き換える処理が頻発すると、ストレージ装置の性能が低下する。 If the process of replacing the data in the memory with the data in the storage device occurs frequently in order to determine duplication, the performance of the storage device will deteriorate.
 上記課題を解決するために、本発明の一態様であるストレージ装置は、記憶デバイスと、メモリと、前記記憶デバイス、前記メモリ、及びホスト計算機に接続されるプロセッサと、を備える。前記プロセッサは、前記ホスト計算機からライトデータを受信し、前記プロセッサは、データを含めるためのコンテナである作業コンテナを前記メモリ内に作成し、前記プロセッサは、前記ライトデータを複数のチャンクに分割し、前記プロセッサは、前記ライトデータ内での前記複数のチャンクの夫々の位置を示すチャンク位置の順に、前記複数のチャンクの一つを作業チャンクとして選択し、前記プロセッサは、前記記憶デバイス内の各チャンクに基づくチャンク情報を含む索引情報に基づいて、前記作業チャンクと重複する可能性がある適合チャンクが前記記憶デバイスに格納されているか否かを判定し、前記適合チャンクが前記記憶デバイスに格納されていると判定された場合、前記プロセッサは、前記適合チャンクを含むコンテナである適合コンテナを前記メモリへ読み込み、前記プロセッサは、前記適合コンテナに基づいて、前記作業チャンクが前記適合チャンクと重複するか否かを判定し、前記作業チャンクが前記適合チャンクと重複していないと判定された場合、前記プロセッサは、前記作業チャンクを前記作業コンテナに含め、前記プロセッサは、前記作業コンテナが予め定められたクローズ条件を満たすか否かを判定し、前記作業コンテナが前記クローズ条件を満たすと判定された場合、前記プロセッサは、前記作業コンテナが予め定められた登録条件を満たすか否かを判定し、前記作業コンテナが前記登録条件を満たすと判定された場合、前記プロセッサは、前記作業コンテナ内の各チャンクに基づくチャンク情報を前記索引情報に含め、前記作業コンテナが前記クローズ条件を満たすと判定された場合、前記プロセッサは、前記作業コンテナを前記記憶デバイスへ書き出す。 In order to solve the above problems, a storage apparatus according to an aspect of the present invention includes a storage device, a memory, and a processor connected to the storage device, the memory, and a host computer. The processor receives write data from the host computer, the processor creates a work container that is a container for including data in the memory, and the processor divides the write data into a plurality of chunks. The processor selects one of the plurality of chunks as a work chunk in order of a chunk position indicating a position of each of the plurality of chunks in the write data, and the processor selects each chunk in the storage device. Based on the index information including chunk information based on the chunk, it is determined whether or not a matching chunk that may overlap with the work chunk is stored in the storage device, and the matching chunk is stored in the storage device. If it is determined that the processor contains the matching chunk, A conforming container is read into the memory, and the processor determines, based on the conforming container, whether the work chunk overlaps with the conforming chunk, and if the work chunk does not overlap with the conforming chunk. If determined, the processor includes the work chunk in the work container, the processor determines whether the work container satisfies a predetermined close condition, and the work container satisfies the close condition. If determined to satisfy, the processor determines whether or not the work container satisfies a predetermined registration condition, and if determined that the work container satisfies the registration condition, the processor Chunk information based on each chunk in the work container is included in the index information, and the work container If it is determined that the closed condition is satisfied, the processor writes the working container into the storage device.
 メモリ内のデータを記憶デバイス内のデータに置き換える処理を削減し、ストレージ装置の性能を向上させることができる。 ・ Processing to replace data in memory with data in storage device can be reduced, and the performance of the storage device can be improved.
第一状態における比較例の重複排除処理を示す。The duplication exclusion process of the comparative example in a 1st state is shown. 第二状態における比較例の重複排除処理を示す。The deduplication process of the comparative example in a 2nd state is shown. ステージ処理を示す。Stage processing is shown. デステージ処理を示す。Destage processing is shown. 第三状態における比較例の重複排除処理を示す。The duplication exclusion process of the comparative example in a 3rd state is shown. 第四状態における比較例の重複排除処理を示す。The deduplication process of the comparative example in a 4th state is shown. 第五状態における比較例の重複排除処理を示す。The deduplication process of the comparative example in a 5th state is shown. 第六状態における比較例の重複排除処理を示す。The deduplication process of the comparative example in a 6th state is shown. 第一状態における実施形態の重複排除処理を示す。The deduplication process of embodiment in a 1st state is shown. 第二状態における実施形態の重複排除処理を示す。The deduplication process of embodiment in a 2nd state is shown. 第三状態における実施形態の重複排除処理を示す。The deduplication process of embodiment in a 3rd state is shown. 第七状態における実施形態の重複排除処理を示す。The deduplication process of embodiment in a 7th state is shown. 第八状態における実施形態の重複排除処理を示す。The deduplication process of embodiment in an 8th state is shown. ファイルサーバの構成を示す。The structure of a file server is shown. ストレージ装置10の機能構成を示す。2 shows a functional configuration of the storage apparatus 10. 処理データ420の構成を示す。The structure of the process data 420 is shown. バックアップ処理を示す。Indicates backup processing. チャンク書き込み処理を示す。Indicates chunk write processing. 適合コンテナステージ処理を示す。The conforming container stage process is shown. 新規チャンク格納処理を示す。Indicates new chunk storage processing. コンテナクローズ判定処理を示す。The container close determination process is shown. コンテナクローズ処理を示す。The container close process is shown. Read処理を示す。Read processing is shown.
 なお、以後の説明では「ファイル」や「インデックス」という表現にて本実施例の情報を説明するが、これら情報は必ずしもこれらのデータ構造で表現されていなくてもよい。例えば、「テーブル」、「リスト」、「DB(データベース)」、「キュー」等のデータ構造やそれ以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために、「ファイル」、「インデックス」、「テーブル」、「リスト」、「DB」、「キュー」等については、単に「情報」と呼ぶこともできる。また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」、「番号」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。 In the following description, the information of the present embodiment will be described using the expressions “file” and “index”, but these information may not necessarily be expressed by these data structures. For example, it may be expressed by a data structure such as “table”, “list”, “DB (database)”, “queue”, or the like. Therefore, “file”, “index”, “table”, “list”, “DB”, “queue”, and the like can be simply referred to as “information” in order to show that they do not depend on the data structure. Further, in describing the contents of each information, the expressions “identification information”, “identifier”, “name”, “name”, “ID”, and “number” can be used. Can be replaced.
 以後の説明では、「プログラム」を主語として説明を行うが、プログラムはCPU(Central Processing Unit)によって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、CPUを主語とした説明としてもよい。また、プログラムを主語として開示された処理は、サーバ計算機やストレージコントローラや管理計算機等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部又は全ては、専用ハードウェアで実現してもよく、また、モジュール化されていてもよい。各種プログラムは、プログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。 In the following description, “program” will be the subject of the description, but since the program uses a memory and a communication port (communication control device) to perform processing defined by being executed by a CPU (Central Processing Unit), The description may be based on the CPU. The processing disclosed with the program as the subject may be processing performed by a computer such as a server computer, a storage controller, a management computer, or an information processing apparatus. Part or all of the program may be realized by dedicated hardware, or may be modularized. Various programs may be installed in each computer by a program distribution server or a storage medium.
 なお、管理計算機は入出力デバイスを有する。入出力デバイスの例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外のデバイスであってもよい。また、入出力デバイスの代替としてシリアルインターフェースやイーサーネットインターフェースを入出力デバイスとし、当該インターフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信することで、表示用計算機で表示を行ったり、入力を受け付けることで入出力デバイスでの入力及び表示を代替してもよい。 The management computer has input / output devices. Examples of input / output devices include a display, a keyboard, and a pointer device, but other devices may be used. As an alternative to the input / output device, a serial interface or an Ethernet interface is used as the input / output device, and a display computer having a display or keyboard or pointer device is connected to the interface, and the display information is transmitted to the display computer. By receiving the input information from the display computer, the display computer may perform the display, or the input may be replaced by the input / output device by receiving the input.
 以後、計算機システムを管理し、本発明の表示用情報を表示する一つ以上の計算機の集合を管理システムと呼ぶことがある。管理計算機が表示用情報を表示する場合は管理計算機が管理システムである、また、管理計算機と表示用計算機の組み合わせも管理システムである。また、管理処理の高速化や高信頼化のために複数の計算機で管理計算機と同等の処理を実現してもよく、この場合は当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機も含め)が管理システムである。 Hereinafter, a set of one or more computers that manage the computer system and display the display information of the present invention may be referred to as a management system. When the management computer displays display information, the management computer is a management system, and a combination of the management computer and the display computer is also a management system. In addition, in order to increase the speed and reliability of the management process, a plurality of computers may realize processing equivalent to that of the management computer. In this case, the plurality of computers (if the display computer performs the display, display (Including computers) is the management system.
 以下、比較例のストレージ装置による重複排除処理について説明する。 Hereinafter, deduplication processing by the storage device of the comparative example will be described.
 図1は、第一状態における比較例の重複排除処理を示す。 FIG. 1 shows the deduplication processing of the comparative example in the first state.
 この図は、比較例のストレージ装置90bが、新規のバックアップデータBD1をホスト計算機80から受信した第一状態を示す。この場合、ストレージ装置90bは、重複排除処理として、バックアップデータBD1をチャンクa、b、…zに分割する(S11)。各チャンクは、予め設定されたチャンク長を有する。その後、ストレージ装置90bは、順次、チャンクa、b、…zが、ストレージ装置90b内に格納された既存チャンクと重複するか否かを判定する重複判定を行い、チャンクa、b、…zのすべてが既存チャンクと重複しない(新規チャンクである)と判定する。この場合、ストレージ装置90bは、メモリ上に新規チャンクを格納するための新規コンテナCN1を作業コンテナとして作成し、作業コンテナへ新規チャンクを順に格納する(S12)。以後、作業コンテナに格納されたチャンク数を格納チャンク数と呼ぶ。このとき、ストレージ装置90bは、格納チャンク数が予め設定された格納チャンク数上限値に達すると、新規コンテナCN2を作業コンテナとして作成し、以後の新規チャンクを作業コンテナへ格納する。 This figure shows a first state in which the storage device 90b of the comparative example receives new backup data BD1 from the host computer 80. In this case, the storage apparatus 90b divides the backup data BD1 into chunks a, b,... Z as deduplication processing (S11). Each chunk has a preset chunk length. After that, the storage apparatus 90b sequentially determines whether or not the chunks a, b,... Z overlap with existing chunks stored in the storage apparatus 90b, and the chunks a, b,. It is determined that all do not overlap with existing chunks (new chunks). In this case, the storage apparatus 90b creates a new container CN1 for storing a new chunk on the memory as a work container, and sequentially stores the new chunks in the work container (S12). Hereinafter, the number of chunks stored in the work container is referred to as the number of stored chunks. At this time, when the number of storage chunks reaches a preset storage chunk number upper limit value, the storage apparatus 90b creates a new container CN2 as a work container and stores subsequent new chunks in the work container.
 図2は、第二状態における比較例の重複排除処理を示す。 FIG. 2 shows the deduplication processing of the comparative example in the second state.
 この図は、第一状態の後、ストレージ装置90bが、ホスト計算機80から次のバックアップデータBD2を受信した第二状態を示す。この場合、ストレージ装置90bは、重複排除処理として、バックアップデータBD2を複数のチャンクに分割し(S21)、そのうちチャンクf1、o1、p1が新規チャンクであると判定する。この場合、ストレージ装置90bは、新規コンテナCN3を作業コンテナとして作成し、新規チャンクを作業コンテナへ格納する(S22)。 This figure shows a second state in which the storage apparatus 90b receives the next backup data BD2 from the host computer 80 after the first state. In this case, the storage apparatus 90b divides the backup data BD2 into a plurality of chunks as deduplication processing (S21), and determines that the chunks f1, o1, and p1 are new chunks. In this case, the storage apparatus 90b creates a new container CN3 as a work container and stores the new chunk in the work container (S22).
 図3は、ステージ処理を示す。 FIG. 3 shows stage processing.
 ストレージ装置90bは、メモリ91bとディスク92bとを含む。ディスク92bは、コンテナを格納する。メモリ91bは、ホスト計算機80から受信されたバックアップデータと、重複判定のためにディスク92bから読み込まれたコンテナとを格納する。 The storage device 90b includes a memory 91b and a disk 92b. The disk 92b stores a container. The memory 91b stores backup data received from the host computer 80 and a container read from the disk 92b for duplication determination.
 ストレージ装置90bは、重複排除処理において、バックアップデータの先頭から順にバックアップデータ内のチャンクを選択し、選択されたチャンクがストレージ装置90に格納されているデータと重複しているか否かを判定する重複判定を行う。ここで、ストレージ装置90bは、バックアップデータ内のチャンクiに関連するコンテナをディスク92bからメモリ91bへ読み込み(ステージし)(S31)、チャンクiをメモリ91b上のチャンクを比較する。 In the deduplication processing, the storage device 90b selects chunks in the backup data in order from the top of the backup data, and determines whether the selected chunk is duplicated with the data stored in the storage device 90 Make a decision. Here, the storage apparatus 90b reads (stages) the container related to the chunk i in the backup data from the disk 92b to the memory 91b (S31), and compares the chunk i with the chunk on the memory 91b.
 図4は、デステージ処理を示す。 FIG. 4 shows the destage processing.
 以後、ディスク92bからメモリ91bへステージされているコンテナ数をステージコンテナ数と呼ぶ。ストレージ装置90bには、ステージコンテナ数の上限値であるステージコンテナ数上限値が予め設定されている。ストレージ装置90bは、重複排除処理において、ステージコンテナ数がステージコンテナ数上限値に達した場合、ステージされた時刻が一番古いコンテナを無効化する(デステージする)(S41)。その後、ストレージ装置90bは、次の重複判定のチャンクを含むコンテナをステージする(S42)。 Hereinafter, the number of containers staged from the disk 92b to the memory 91b is referred to as the number of stage containers. In the storage apparatus 90b, a stage container number upper limit value, which is an upper limit value of the number of stage containers, is set in advance. When the number of stage containers reaches the upper limit value of the number of stage containers in the deduplication processing, the storage apparatus 90b invalidates (destages) the container with the oldest staged time (S41). Thereafter, the storage apparatus 90b stages the container including the next chunk for duplication determination (S42).
 以下、比較例のストレージ装置による重複排除処理の問題点について説明する。 Hereinafter, problems of deduplication processing by the storage device of the comparative example will be described.
 図5は、第三状態における比較例の重複排除処理を示す。 FIG. 5 shows the deduplication processing of the comparative example in the third state.
 この図は、ストレージ装置90bが、ホスト計算機80からバックアップデータを受信した後、ホスト計算機80から次のバックアップデータBD5を受信した第三状態を示す。この場合、ストレージ装置90bは、重複排除処理として、バックアップデータBD5を複数のチャンクに分割し、そのうちチャンクa1、k1、o1が新規チャンクであると判定する(S51)。この場合、ストレージ装置90bは、新規コンテナCN5を作成し、新規チャンクa1、k1、o1をそのコンテナへ格納し(S52)、そのコンテナをデステージする(S53)。 This figure shows a third state in which the storage apparatus 90b receives the next backup data BD5 from the host computer 80 after receiving the backup data from the host computer 80. In this case, as a deduplication process, the storage apparatus 90b divides the backup data BD5 into a plurality of chunks, and determines that chunks a1, k1, and o1 are new chunks (S51). In this case, the storage apparatus 90b creates a new container CN5, stores the new chunks a1, k1, and o1 in the container (S52), and destages the container (S53).
 図6は、第四状態における比較例の重複排除処理を示す。 FIG. 6 shows the deduplication process of the comparative example in the fourth state.
 この図は、第三状態の後、ストレージ装置90bが、ホスト計算機80から次のバックアップデータBD6を受信した第四状態を示す。この場合、ストレージ装置90bは、バックアップデータBD6を複数のチャンクに分割し、受信されたチャンクa1を重複判定するために(S61)、ディスク92bからチャンクa1、k1、o1を含むコンテナCN5を選択し、選択されたコンテナCN5をステージし(S62)、受信されたチャンクa1とステージされたチャンクa1とを比較する。 This figure shows a fourth state in which the storage apparatus 90b receives the next backup data BD6 from the host computer 80 after the third state. In this case, the storage apparatus 90b divides the backup data BD6 into a plurality of chunks, and selects the container CN5 including the chunks a1, k1, and o1 from the disk 92b in order to determine the received chunk a1 as a duplicate (S61). Then, the selected container CN5 is staged (S62), and the received chunk a1 is compared with the staged chunk a1.
 図7は、第五状態における比較例の重複排除処理を示す。 FIG. 7 shows the deduplication processing of the comparative example in the fifth state.
 この図は、第四状態の後、ストレージ装置90bが、バックアップデータBD6内のチャンクbからチャンクiまでの重複判定を行い、チャンクjを重複判定する第五状態を示す。この場合、ストレージ装置90bは、直前までの重複判定により、コンテナCN5、CN6、CN7がステージされ(S71)、ステージコンテナ数がステージコンテナ数上限値に達したため、最も古くステージされたコンテナCN5をデステージし(S72)、ディスク92b内のチャンクjを含むコンテナCN8をステージする(S73)。 This figure shows a fifth state after the fourth state, in which the storage apparatus 90b performs duplication determination from chunk b to chunk i in the backup data BD6, and determines chunk j as duplication. In this case, the storage device 90b determines that the containers CN5, CN6, and CN7 are staged by the duplication determination until immediately before (S71), and the number of stage containers has reached the upper limit of the number of stage containers. Stage (S72), and stage container CN8 including chunk j in disk 92b (S73).
 図8は、第六状態における比較例の重複排除処理を示す。 FIG. 8 shows the deduplication processing of the comparative example in the sixth state.
 この図は、第五状態の後、ストレージ装置90bが、バックアップデータBD6内でチャンクjの後のチャンクk1を重複判定する第六状態を示す。この場合、ストレージ装置90bは、チャンクjまでの重複判定により(S81)、ステージコンテナ数がステージコンテナ数上限値に達したため、最も古くステージされたコンテナCN6をデステージし(S82)、ディスク92b内のチャンクa1を含むコンテナCN5を再びステージする(S83)。即ち、ストレージ装置90bは、コンテナCN5をデステージした直後にステージする。デステージ及びステージの回数が増加すると、ストレージ装置90bの性能が低下する。 This figure shows the sixth state after the fifth state in which the storage apparatus 90b determines that the chunk k1 after the chunk j is duplicated in the backup data BD6. In this case, the storage device 90b destages the oldest staged container CN6 (S82) because the number of stage containers has reached the upper limit of the number of stage containers due to the duplication determination up to the chunk j (S81), and within the disk 92b. The container CN5 including the chunk a1 is staged again (S83). That is, the storage apparatus 90b stages immediately after destaging the container CN5. As the number of destages and stages increases, the performance of the storage device 90b decreases.
 以下、本発明の実施形態の概要について説明する。 Hereinafter, an outline of an embodiment of the present invention will be described.
 図9は、第一状態における実施形態の重複排除処理を示す。 FIG. 9 shows the deduplication processing of the embodiment in the first state.
 第一状態において、本実施形態のストレージ装置90は、バックアップデータBD1をチャンクa、b、…zに分割し、バックアップデータBD1の先頭から順に、各チャンクにチャンク番号を与える(S1111)。チャンク番号の代わりに、バックアップデータBD1の先頭からのオフセット等、バックアップデータBD1内のチャンクの位置を示すチャンク位置が用いられてもよい。その後、ストレージ装置90は、チャンク番号順に各チャンクの重複判定を行い、メモリ上に新規コンテナCN1を作業コンテナとしてオープンし、新規チャンクを順に作業コンテナへ格納する(S1112)。作業コンテナのオープンは、メモリ上に作業コンテナを作成し、作業コンテナに新たなチャンクを追加できる状態にすることである。ストレージ装置90は、新規チャンクを作業コンテナへ格納すると、作業コンテナの最初のチャンク番号をhead(起点チャンク番号)として記録し、作業コンテナの最後のチャンク番号をtail(終点チャンク番号)として記録する。ストレージ装置90は、格納チャンク数が格納チャンク数上限値に達すると、作業コンテナをクローズし、新規コンテナCN2を作業コンテナとして作成する。作業コンテナのクローズは、作業コンテナに新たなチャンクを追加できない状態にして、作業コンテナをディスクへ書き出し、メモリ上の作業コンテナを無効化する(デステージする)ことである。 In the first state, the storage apparatus 90 of the present embodiment divides the backup data BD1 into chunks a, b,... Z, and assigns chunk numbers to each chunk in order from the top of the backup data BD1 (S1111). Instead of the chunk number, a chunk position indicating the position of the chunk in the backup data BD1, such as an offset from the head of the backup data BD1, may be used. Thereafter, the storage apparatus 90 performs duplication determination of each chunk in order of the chunk number, opens the new container CN1 as a work container on the memory, and stores the new chunks in the work container in order (S1112). To open a work container is to create a work container on the memory and make it possible to add a new chunk to the work container. When the new chunk is stored in the work container, the storage device 90 records the first chunk number of the work container as head (starting chunk number) and the last chunk number of the working container as tail (endpoint chunk number). When the number of stored chunks reaches the upper limit value of the number of stored chunks, the storage device 90 closes the work container and creates a new container CN2 as a work container. Closing the work container means that a new chunk cannot be added to the work container, the work container is written to the disk, and the work container in the memory is invalidated (destaged).
 図10は、第二状態における実施形態の重複排除処理を示す。 FIG. 10 shows the deduplication processing of the embodiment in the second state.
 第二状態において、ストレージ装置90は、バックアップデータBD2を複数のチャンクに分割し(S1121)、新規コンテナCN3を作業コンテナとしてオープンし、バックアップデータBD2から新規チャンクf1、o1、p1を検出し、新規チャンクf1、o1、p1を作業コンテナへ格納し(S1122)、作業コンテナをクローズする。 In the second state, the storage device 90 divides the backup data BD2 into a plurality of chunks (S1121), opens the new container CN3 as a work container, detects new chunks f1, o1, and p1 from the backup data BD2, and creates a new one. The chunks f1, o1, and p1 are stored in the work container (S1122), and the work container is closed.
 図11は、第七状態における実施形態の重複排除処理を示す。 FIG. 11 shows the deduplication processing of the embodiment in the seventh state.
 この図は、ストレージ装置90がバックアップデータを受信した後、ホスト計算機80から次のバックアップデータBD5を受信した第七状態を示す。ストレージ装置90は、メモリ91とディスク92を含む。この場合、ストレージ装置90は、新規コンテナCN5を作業コンテナとしてオープンすることによりメモリ91上に作業コンテナを作成し、バックアップデータBD5内の新規チャンクa1、k1、o1を検出し、新規チャンクa1、k1、o1を作業コンテナへ格納する(S1131)。更にストレージ装置90は、作業コンテナが予め定められた登録条件を満たすか否かを判定する。例えば、登録条件は、作業コンテナ内のチャンク番号の広がりを示す間隔評価値が予め定められた間隔評価閾値より小さく、且つ格納チャンク数が予め定められた格納チャンク数下限値より大きいことである。間隔評価値は例えば、「(tail-head)/格納チャンク数」で表される。作業コンテナ内の複数のチャンクのチャンク番号の間隔が広くなるほど、間隔評価値は大きくなる。作業コンテナが登録条件を満たすと判定された場合、ストレージ装置90は、作業コンテナを登録コンテナとしてディスク92へ書き出す。ここでストレージ装置90は、登録コンテナ内のチャンクを示すチャンク情報を索引情報に含めることにより、以後の重複判定で索引情報に基づいてこのコンテナ内のチャンクを参照することができる。一方、作業コンテナが登録条件を満たさないと判定された場合、ストレージ装置90は、作業コンテナを非登録コンテナとしてディスク92へ書き出す(S1132)。ここでストレージ装置90は、非登録コンテナ内のチャンクを示すチャンク情報を索引情報に含めないことにより、以後の重複判定でこのコンテナ内のチャンクを参照しないようにすることができる。更にストレージ装置90は、作業コンテナをクローズする(S1133)。 This figure shows a seventh state in which the storage apparatus 90 receives the next backup data BD5 from the host computer 80 after receiving the backup data. The storage device 90 includes a memory 91 and a disk 92. In this case, the storage apparatus 90 creates a work container on the memory 91 by opening the new container CN5 as a work container, detects the new chunks a1, k1, and o1 in the backup data BD5, and creates the new chunks a1, k1. , O1 is stored in the work container (S1131). Furthermore, the storage apparatus 90 determines whether or not the work container satisfies a predetermined registration condition. For example, the registration condition is that the interval evaluation value indicating the spread of chunk numbers in the work container is smaller than a predetermined interval evaluation threshold, and the number of stored chunks is larger than a predetermined lower limit value of the number of stored chunks. The interval evaluation value is represented by, for example, “(tail-head) / number of stored chunks”. The interval evaluation value increases as the interval between chunk numbers of a plurality of chunks in the work container increases. When it is determined that the work container satisfies the registration condition, the storage apparatus 90 writes the work container to the disk 92 as the registration container. Here, the storage apparatus 90 includes the chunk information indicating the chunk in the registered container in the index information, and can refer to the chunk in the container based on the index information in subsequent duplication determination. On the other hand, when it is determined that the work container does not satisfy the registration condition, the storage apparatus 90 writes the work container to the disk 92 as a non-registered container (S1132). Here, the storage apparatus 90 can prevent reference to the chunk in this container in subsequent duplication determination by not including the chunk information indicating the chunk in the unregistered container in the index information. Further, the storage apparatus 90 closes the work container (S1133).
 図12は、第八状態における実施形態の重複排除処理を示す。 FIG. 12 shows the deduplication processing of the embodiment in the eighth state.
 この図は、第七状態の後、ストレージ装置90がホスト計算機80から次のバックアップデータBD6を受信した第八状態を示す。この場合、ストレージ装置90は、バックアップデータBD6内のチャンクa1を重複判定するために(S1141)、ディスク92内のチャンクa1、k1、o1を含むコンテナCN5が非登録コンテナであるため、コンテナCN5を用いる重複判定を行わず(S1142)、チャンクa1を新規チャンクと判定し(S1143)、新規コンテナCN12を作業コンテナとしてオープンし、チャンクa1を作業コンテナに格納し、作業コンテナをクローズする。従って、ストレージ装置90は、非登録コンテナCN5をステージしない。これにより、ストレージ装置90は、ストレージ装置90bと比較して、ステージ及びデステージの回数を削減できる。 This figure shows an eighth state in which the storage apparatus 90 receives the next backup data BD6 from the host computer 80 after the seventh state. In this case, since the storage device 90 determines that the chunk a1 in the backup data BD6 is duplicated (S1141), the container CN5 including the chunks a1, k1, and o1 in the disk 92 is an unregistered container. The duplication determination to be used is not performed (S1142), the chunk a1 is determined as a new chunk (S1143), the new container CN12 is opened as a work container, the chunk a1 is stored in the work container, and the work container is closed. Therefore, the storage apparatus 90 does not stage the unregistered container CN5. Thereby, the storage apparatus 90 can reduce the number of stages and destages compared to the storage apparatus 90b.
 この重複排除処理は、第一の新規チャンクを作業コンテナに格納し、第一の新規チャンクのチャンク番号に近いチャンク番号を有する第二の新規チャンクを格納し、第二の新規チャンクのチャンク番号から遠いチャンク番号を有する第三の新規チャンクを作業コンテナに格納する場合がある。この場合、重複排除処理は、作業コンテナを非登録コンテナと判定し、非登録コンテナ内の全てのチャンクについて重複判定が行われないため、重複排除率が低下する。そこで、本実施形態の重複排除処理は、次の処理を行う。 This deduplication process stores the first new chunk in the work container, stores the second new chunk having a chunk number close to the chunk number of the first new chunk, and starts from the chunk number of the second new chunk. A third new chunk having a far chunk number may be stored in the work container. In this case, the deduplication processing determines that the work container is a non-registered container, and duplication determination is not performed for all chunks in the non-registered container, so that the deduplication rate decreases. Therefore, the deduplication processing of this embodiment performs the following processing.
 図13は、第九状態における実施形態の重複排除処理を示す。 FIG. 13 shows the deduplication processing of the embodiment in the ninth state.
 この図は、第八状態の後、ストレージ装置90がホスト計算機80から次のバックアップデータBD7を受信した第九状態を示す。この場合、ストレージ装置90は、重複排除処理として、バックアップデータBD7を複数のチャンクに分割し、そのうちチャンクa1、b1、c1、o1が新規チャンクであると判定する。ストレージ装置90は、この場合、ストレージ装置90は、新規コンテナCN13を作業コンテナとして作成し、新規チャンクを順次、作業チャンクとして選択する。ここでストレージ装置90は、作業コンテナが予め定められた分離条件を満たすか否かを判定する。例えば、作業チャンクのチャンク番号を作業チャンク番号とするとき、分離条件は、直前の作業チャンクのチャンク番号から現在の作業チャンクのチャンク番号までの距離を示す距離評価値が予め定められた距離評価閾値より大きく、且つ格納チャンク数が分離チャンク数閾値より大きいことである。距離評価値は例えば、「作業チャンク番号-tail」で表される。作業コンテナが分離条件を満たさないと判定された場合、ストレージ装置90は、作業チャンクを作業コンテナに格納する(S1151)。作業コンテナが分離条件を満たすと判定された場合、ストレージ装置90は、作業コンテナをクローズし、新規コンテナCN14を作業コンテナとして作成し、作業チャンクを作業コンテナに格納する(S1152)。これにより、ストレージ装置90は、バックアップデータ内で互いに位置が近いチャンクを一つのコンテナに格納することができると共に、バックアップデータ内で互いに位置が離れたチャンクを異なるコンテナに格納することができる。これにより、ストレージ装置90は、連続する複数のチャンク等、互いに位置が近い複数のチャンクを含むコンテナを登録コンテナとすることができ、重複排除率の低下を抑えることができる。 This figure shows a ninth state in which the storage apparatus 90 receives the next backup data BD7 from the host computer 80 after the eighth state. In this case, the storage apparatus 90 divides the backup data BD7 into a plurality of chunks as deduplication processing, and determines that chunks a1, b1, c1, and o1 are new chunks. In this case, the storage apparatus 90 creates the new container CN13 as a work container, and sequentially selects new chunks as work chunks. Here, the storage apparatus 90 determines whether or not the work container satisfies a predetermined separation condition. For example, when the chunk number of a work chunk is used as a work chunk number, the separation condition is a distance evaluation threshold in which a distance evaluation value indicating a distance from the chunk number of the immediately previous work chunk to the chunk number of the current work chunk is predetermined. And the number of stored chunks is larger than the separation chunk number threshold. The distance evaluation value is represented by “work chunk number−tail”, for example. When it is determined that the work container does not satisfy the separation condition, the storage apparatus 90 stores the work chunk in the work container (S1151). When it is determined that the work container satisfies the separation condition, the storage apparatus 90 closes the work container, creates a new container CN14 as a work container, and stores the work chunk in the work container (S1152). As a result, the storage apparatus 90 can store the chunks whose positions are close to each other in the backup data in one container, and can store the chunks whose positions are separated from each other in the backup data in different containers. Thereby, the storage apparatus 90 can use a container including a plurality of chunks close to each other, such as a plurality of consecutive chunks, as a registered container, and can suppress a decrease in the deduplication rate.
 以下、本発明の実施例のファイルサーバについて説明する。 Hereinafter, a file server according to an embodiment of the present invention will be described.
 ここでは、本実施例のファイルサーバの構成について説明する。 Here, the configuration of the file server of this embodiment will be described.
 図14は、本実施例のファイルサーバの構成を示す。 FIG. 14 shows the configuration of the file server of this embodiment.
 本実施例のファイルサーバは、ストレージ装置10と、ホスト計算機30とを含む。 The file server of this embodiment includes the storage device 10 and the host computer 30.
 ストレージ装置10は、前述のストレージ装置90に相当する。ストレージ装置10は、複数のノード40(N0、N1、…Nn)と、ディスクアレイ60とを含む。複数のノード40の夫々は、LAN(Local Area Network)等の通信ネットワークを介してホスト計算機30に接続されている。ディスクアレイ60は、前述のディスク92に相当する。ディスクアレイ60は、FC(Fibre Channel)ケーブル等の通信ネットワークを介して複数のノード40に接続されている。ノード40の数は、一つであってもよい。ディスクアレイ60の代わりに、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の記憶デバイスを含む他のストレージ装置が用いられてもよい。 The storage device 10 corresponds to the storage device 90 described above. The storage apparatus 10 includes a plurality of nodes 40 (N0, N1,... Nn) and a disk array 60. Each of the plurality of nodes 40 is connected to the host computer 30 via a communication network such as a LAN (Local Area Network). The disk array 60 corresponds to the disk 92 described above. The disk array 60 is connected to a plurality of nodes 40 via a communication network such as an FC (Fibre Channel) cable. The number of nodes 40 may be one. Instead of the disk array 60, other storage devices including storage devices such as HDD (Hard Disk Drive) and SSD (Solid State Drive) may be used.
 ノード40は、CPU(Central Processing Unit)110と、メモリ120と、FCポート130と、HDD140と、ネットワークインターフェース(NW I/F)150を含む。HDD140は、ノード40のためのプログラム及びデータを格納する。CPU110は、HDD140内のプログラムに従って処理を実行する。メモリ120は、前述のメモリ91に相当する。メモリ120は、HDD140から読み込まれるプログラム、処理に用いられるデータ、ホスト計算機30に対して送受信されるデータ、ディスクアレイ60に対して通信されるデータ等を格納する。FCポート130は、ディスクアレイ60に接続され、CPU110からの指示に従ってディスクアレイ60と通信する。NW I/F150は、ホスト計算機30に接続され、CPU110からの指示に従ってホスト計算機30と通信する。 The node 40 includes a CPU (Central Processing Unit) 110, a memory 120, an FC port 130, an HDD 140, and a network interface (NW I / F) 150. The HDD 140 stores programs and data for the node 40. The CPU 110 executes processing according to a program in the HDD 140. The memory 120 corresponds to the memory 91 described above. The memory 120 stores programs read from the HDD 140, data used for processing, data transmitted to and received from the host computer 30, data communicated to the disk array 60, and the like. The FC port 130 is connected to the disk array 60 and communicates with the disk array 60 in accordance with an instruction from the CPU 110. The NW I / F 150 is connected to the host computer 30 and communicates with the host computer 30 in accordance with an instruction from the CPU 110.
 ディスクアレイ60は、二重化された二つのコントローラ210(CTL0、CTL1)と、複数のHDD230とを含む。コントローラ210は、ノード40に接続され、ノード40からの指示に応じて、複数のHDD230に対するI/O処理を行う。複数のHDD230は、ノード40からのデータを格納する。コントローラ210の数は、一つであってもよい。コントローラ210は、複数のHDD230を用いてLUを作成し、ノード40に提供する。 The disk array 60 includes two duplicated controllers 210 (CTL0, CTL1) and a plurality of HDDs 230. The controller 210 is connected to the node 40 and performs I / O processing for a plurality of HDDs 230 in accordance with instructions from the node 40. The plurality of HDDs 230 store data from the node 40. The number of controllers 210 may be one. The controller 210 creates an LU using a plurality of HDDs 230 and provides it to the node 40.
 コントローラ210は、CPU211と、メモリ212と、FCポート213と、ディスクインターフェース(I/F)214とを含む。メモリ212は、プログラム及びデータを格納する。CPU211は、メモリ212内のプログラムに従ってRAID(Redundant Arrays of Inexpensive Disks)等の処理を実行する。FCポート213は、FCを介してノード40に接続され、CPU211からの指示に従ってノード40と通信する。ディスクI/F214は、複数のHDD230に接続され、CPU211からの指示に従ってHDD230にアクセスする。FCの代わりに他のSAN(Storage Area Network)が用いられてもよい。 The controller 210 includes a CPU 211, a memory 212, an FC port 213, and a disk interface (I / F) 214. The memory 212 stores programs and data. The CPU 211 executes processing such as RAID (Redundant Arrays of Inexpensive Disks) according to a program in the memory 212. The FC port 213 is connected to the node 40 via the FC, and communicates with the node 40 in accordance with an instruction from the CPU 211. The disk I / F 214 is connected to a plurality of HDDs 230 and accesses the HDDs 230 according to instructions from the CPU 211. Other SAN (Storage Area Network) may be used instead of FC.
 ホスト計算機30は、通信ネットワークを介して端末装置に接続される。ホスト計算機30は、端末装置からアクセスされるデータを格納する。ホスト計算機30は、格納されたデータに基づくバックアップデータを作成し、バックアップデータを書き込む要求をストレージ装置10へ送信する。また、ホスト計算機30は、データをリストアするために、バックアップデータを読み出す要求を、ストレージ装置10へ送信する。 The host computer 30 is connected to a terminal device via a communication network. The host computer 30 stores data accessed from the terminal device. The host computer 30 creates backup data based on the stored data, and transmits a request to write the backup data to the storage apparatus 10. In addition, the host computer 30 transmits a request for reading backup data to the storage apparatus 10 in order to restore the data.
 なお、ファイルサーバは、ホスト計算機30及びストレージ装置10に通信ネットワークを介して接続されたバックアップサーバを含んでもよい。この場合、ホスト計算機30は、ファイルを格納し、格納されたファイルの中からバックアップすべきファイルの書き込み要求をバックアップサーバへ送信する。バックアップサーバは、ホスト計算機30からファイルを受信し、受信されたファイルに基づいてバックアップデータを作成し、ストレージ装置10へ送信する。また、ホスト計算機30は、ファイルの読み出し要求をバックアップサーバへ送信する。バックアップサーバは、指定されたファイルを含むバックアップデータをストレージ装置10から読み出し、指定されたファイルをホスト計算機30へ送信する。 Note that the file server may include a backup server connected to the host computer 30 and the storage apparatus 10 via a communication network. In this case, the host computer 30 stores the file, and transmits a write request for the file to be backed up from the stored file to the backup server. The backup server receives a file from the host computer 30, creates backup data based on the received file, and transmits it to the storage device 10. Further, the host computer 30 transmits a file read request to the backup server. The backup server reads backup data including the specified file from the storage apparatus 10 and transmits the specified file to the host computer 30.
 図15は、ストレージ装置10の機能構成を示す。 FIG. 15 shows a functional configuration of the storage apparatus 10.
 ノード40は、メモリ120内のプログラムによる機能として、重複排除処理部310とファイルシステム管理部320とを含む。重複排除処理部310は、ホスト計算機30からバックアップデータ410を受信し、バックアップデータ410に対して重複排除処理を行う。ファイルシステム管理部320は、ディスクアレイ60から提供されるLUを用いてファイルシステム(FS)330を作成する。また、ファイルシステム管理部320は、重複排除処理部310からの指示に基づいて、重複排除処理後のバックアップデータである処理データ420をファイルシステム330へ書き出す。また、ファイルシステム管理部320は、重複排除処理部310からの指示に基づいて、処理データ420をファイルシステム330から読み込む。重複排除処理部310は、処理データ420からバックアップデータ410を再構築し、ホスト計算機30へ送信する。メモリ120は更に、重複排除処理部310のための作業データ440を格納する。 The node 40 includes a deduplication processing unit 310 and a file system management unit 320 as functions by programs in the memory 120. The deduplication processing unit 310 receives the backup data 410 from the host computer 30 and performs deduplication processing on the backup data 410. The file system management unit 320 creates a file system (FS) 330 using the LU provided from the disk array 60. In addition, the file system management unit 320 writes processing data 420 that is backup data after deduplication processing to the file system 330 based on an instruction from the deduplication processing unit 310. Further, the file system management unit 320 reads the processing data 420 from the file system 330 based on an instruction from the deduplication processing unit 310. The deduplication processing unit 310 reconstructs the backup data 410 from the processing data 420 and transmits it to the host computer 30. The memory 120 further stores work data 440 for the deduplication processing unit 310.
 更に重複排除処理部310は、ファイルシステム管理部320を用いて、ファイルシステム330内の設定データ460から設定値を取得する。設定データ460は、格納チャンク数上限値、格納チャンク数下限値、間隔評価閾値、距離評価閾値、分離チャンク数閾値、及びステージコンテナ数上限値の何れかを含んでもよい。これにより、ストレージ装置10の管理者は、ストレージ装置10の性能と重複排除率とのバランスを調整することができる。なお、ノード40に接続される管理計算機、ノード40、ホスト計算機30等が、設定データ460を書き込んでもよい。また、設定データ460は、メモリ120やHDD14等に書き込まれてもよい。 Further, the deduplication processing unit 310 uses the file system management unit 320 to acquire a setting value from the setting data 460 in the file system 330. The setting data 460 may include any one of a storage chunk number upper limit value, a storage chunk number lower limit value, an interval evaluation threshold value, a distance evaluation threshold value, a separation chunk number threshold value, and a stage container number upper limit value. As a result, the administrator of the storage apparatus 10 can adjust the balance between the performance of the storage apparatus 10 and the deduplication rate. The management computer connected to the node 40, the node 40, the host computer 30, etc. may write the setting data 460. The setting data 460 may be written in the memory 120, the HDD 14, or the like.
 なお、ディスクアレイ60は、ノード40からファイルアクセスされるが、ノード40からブロックアクセスされてもよい。この場合、チャンクがブロックであってもよい。また、コントローラ210がノード40の機能を有していてもよい。 The disk array 60 is file-accessed from the node 40, but may be block-accessed from the node 40. In this case, the chunk may be a block. Further, the controller 210 may have the function of the node 40.
 以下、ディスクアレイ60に格納される処理データ420の構成について説明する。 Hereinafter, the configuration of the processing data 420 stored in the disk array 60 will be described.
 図16は、処理データ420の構成を示す。 FIG. 16 shows the configuration of the processing data 420.
 処理データ420は、複数のコンテント510と、複数のコンテナインデックス520と、複数のコンテナ530と、複数のチャンクインデックス540とを含む。 The processing data 420 includes a plurality of contents 510, a plurality of container indexes 520, a plurality of containers 530, and a plurality of chunk indexes 540.
 一つのバックアップデータを再構築するためのコンテント510は、当該コンテントを示すコンテントID610と、当該コンテントに含まれる複数のチャンクを夫々示す複数のチャンク情報620とを含む。一つのチャンクを示すチャンク情報620は、バックアップデータの先頭から当該チャンクまでのオフセット621と、当該チャンクのレングス622と、当該チャンクを含むコンテナ530のコンテナID623と、当該チャンクのフィンガプリント624とを含む。フィンガプリント624は、当該チャンクから得られるハッシュ値である。重複排除処理部310は、コンテント510に基づいて、バックアップデータに含まれるチャンクと、そのチャンクを含むコンテナとを特定することができる。フィンガプリント624は、チャンクデータを短縮して得られる値である。これにより、チャンクデータを検索することに比べて、高速にチャンクを検索することができる。 The content 510 for reconstructing one backup data includes a content ID 610 indicating the content, and a plurality of chunk information 620 indicating a plurality of chunks included in the content. Chunk information 620 indicating one chunk includes an offset 621 from the beginning of the backup data to the chunk, a length 622 of the chunk, a container ID 623 of the container 530 including the chunk, and a fingerprint 624 of the chunk. . The fingerprint 624 is a hash value obtained from the chunk. The deduplication processing unit 310 can identify a chunk included in the backup data and a container including the chunk based on the content 510. The fingerprint 624 is a value obtained by shortening the chunk data. As a result, it is possible to search for a chunk at a higher speed than searching for chunk data.
 一つのコンテナを示すコンテナインデックス520は、当該コンテナを示すコンテナID630と、当該コンテナに含まれるチャンクを示す少なくとも一つのチャンク情報640とを含む。一つのチャンクを示すチャンク情報640は、当該チャンクのフィンガプリント641と、当該コンテナの先頭から当該チャンクまでのオフセット642と、当該チャンクのレングス643とを含む。重複排除処理部310は、コンテナインデックス520に基づいて、コンテナに含まれるチャンクを特定することができる。 The container index 520 indicating one container includes a container ID 630 indicating the container and at least one chunk information 640 indicating the chunk included in the container. The chunk information 640 indicating one chunk includes a fingerprint 641 of the chunk, an offset 642 from the top of the container to the chunk, and a length 643 of the chunk. The deduplication processing unit 310 can identify the chunk included in the container based on the container index 520.
 コンテナ530は、当該コンテナを示すコンテナID650と、当該コンテナに含まれるチャンクを示す少なくとも一つのチャンク情報660とを含む。一つのチャンクを示すチャンク情報660は、当該チャンクのレングス661と、当該チャンクのデータであるチャンクデータ662とを含む。コンテナ530におけるチャンクデータ662の先頭は、コンテナインデックス520内のオフセット642により示されている。コンテナ530におけるチャンクデータ662の長さは、コンテナインデックス520内のレングス643とコンテナ530内のレングス661により示されている。重複排除処理部310は、コンテナ530からチャンクデータ662を取得することができる。 The container 530 includes a container ID 650 indicating the container and at least one chunk information 660 indicating the chunk included in the container. The chunk information 660 indicating one chunk includes a length 661 of the chunk and chunk data 662 that is data of the chunk. The beginning of the chunk data 662 in the container 530 is indicated by an offset 642 in the container index 520. The length of the chunk data 662 in the container 530 is indicated by a length 643 in the container index 520 and a length 661 in the container 530. The deduplication processing unit 310 can acquire the chunk data 662 from the container 530.
 フィンガプリントの一部が共通するチャンクのグループを示すチャンクインデックス540は、当該フィンガプリントの一部を示すグループID670と、当該グループに属するチャンクを示す少なくとも一つのチャンク情報680とを含む。一つのチャンクを示すチャンク情報680は、当該チャンクのフィンガプリント681と、当該チャンクが属するコンテナを示すコンテナID682とを含む。重複排除処理部310は、チャンクインデックス540を検索することにより、処理データ420から、作業チャンクと重複する可能性があるチャンクを特定し、そのチャンクを含むコンテナを特定することができる。 The chunk index 540 indicating a group of chunks that share a part of the fingerprint includes a group ID 670 indicating a part of the fingerprint and at least one chunk information 680 indicating a chunk belonging to the group. The chunk information 680 indicating one chunk includes a fingerprint 681 of the chunk and a container ID 682 indicating a container to which the chunk belongs. By searching the chunk index 540, the deduplication processing unit 310 can identify a chunk that may overlap with a work chunk from the processing data 420, and can identify a container that includes the chunk.
 本実施例のチャンクインデックス540は、登録コンテナ内のチャンクのチャンク情報680を含み、非登録コンテナ内のチャンクのチャンク情報680を含まない。これにより、非登録コンテナは、その後の重複判定により検索されないため、ステージされない。 The chunk index 540 of the present embodiment includes the chunk information 680 of the chunk in the registered container, and does not include the chunk information 680 of the chunk in the unregistered container. As a result, the unregistered container is not staged because it is not searched for by subsequent duplicate determination.
 重複排除処理部310は、処理データ420を書き出すことをファイルシステム管理部320に指示する。ファイルシステム管理部320は、その指示に応じて、複数のコンテント510と、複数のコンテナインデックス520と、複数のコンテナ530と、複数のチャンクインデックス540との夫々を、ファイルとしてディスクアレイ60へ書き出す。 The deduplication processing unit 310 instructs the file system management unit 320 to write out the processing data 420. In response to the instruction, the file system management unit 320 writes each of the plurality of contents 510, the plurality of container indexes 520, the plurality of containers 530, and the plurality of chunk indexes 540 to the disk array 60 as files.
 以下、重複排除処理部310の動作について説明する。 Hereinafter, the operation of the deduplication processing unit 310 will be described.
 図17は、バックアップ処理を示す。 FIG. 17 shows the backup process.
 重複排除処理部310は、ホスト計算機30からバックアップデータのWrite要求を受信すると、バックアップ処理を開始する。バックアップデータは、ファイルであってもよいし、複数のファイルを含んでいてもよい。 When the deduplication processing unit 310 receives a backup data write request from the host computer 30, the deduplication processing unit 310 starts backup processing. The backup data may be a file or may include a plurality of files.
 重複排除処理部310は、バックアップの初期化のためのバックアップ初期処理を行う(S110)。 The deduplication processing unit 310 performs backup initial processing for backup initialization (S110).
 ここでバックアップ初期処理について説明する。重複排除処理部310は、新規コンテナである作業コンテナをオープンする(S120)。ここで重複排除処理部310は、作業データ440内に、更新可能な作業コンテナを作成する。その後、重複排除処理部310は、作業コンテナに対応する新規コンテナインデックスである作業コンテナインデックスをオープンする(S130)。ここで重複排除処理部310は、作業データ440内に、更新可能な作業コンテナインデックスを作成する。その後、重複排除処理部310は、処理データ420の中から、バックアップデータに対応するコンテントである作業コンテントをオープンする(S140)。ここで重複排除処理部310は、作業コンテントをディスクアレイ60上の処理データ420からメモリ120上の作業データ440へコピーし、作業コンテントを更新可能な状態にする。以上がバックアップ初期処理である。 Here, the backup initial processing will be explained. The deduplication processing unit 310 opens a work container that is a new container (S120). Here, the deduplication processing unit 310 creates an updatable work container in the work data 440. Thereafter, the deduplication processing unit 310 opens a work container index which is a new container index corresponding to the work container (S130). Here, the deduplication processing unit 310 creates an updatable work container index in the work data 440. Thereafter, the deduplication processing unit 310 opens work content that is content corresponding to the backup data from the processing data 420 (S140). Here, the deduplication processing unit 310 copies the work content from the processing data 420 on the disk array 60 to the work data 440 on the memory 120 so that the work content can be updated. The above is the backup initial processing.
 その後のバックアップ初期処理において、重複排除処理部310は、バックアップデータを複数のチャンクに分割し、分割された複数のチャンクにチャンク番号を与える(S150)。 In the subsequent backup initial processing, the deduplication processing unit 310 divides the backup data into a plurality of chunks and gives chunk numbers to the plurality of divided chunks (S150).
 その後、重複排除処理部310は、複数のチャンク番号から順に作業チャンク番号を選択し、作業チャンク番号を有するチャンクである作業チャンクに対するチャンク書き込み処理(後述)を行い(S160)、分割された複数のチャンクの全チャンクに対してチャンク書き込み処理を行ったか否かを判定する(S170)。未だ全チャンクに対してチャンク書き込み処理を行っていないと判定された場合(S170:no)、重複排除処理部310は、処理をS160に移行させ、次の作業チャンク番号を選択する。 Thereafter, the deduplication processing unit 310 selects a work chunk number in order from a plurality of chunk numbers, performs a chunk writing process (described later) on a work chunk that is a chunk having the work chunk number (S160), and performs a plurality of divided pieces. It is determined whether chunk write processing has been performed on all chunks (S170). When it is determined that the chunk writing process has not been performed for all the chunks (S170: no), the deduplication processing unit 310 shifts the process to S160 and selects the next work chunk number.
 一方、全チャンクに対してチャンク書き込み処理を行ったと判定された場合(S170:yes)、重複排除処理部310は、バックアップの終了のためのバックアップ終了処理を行い(S180)、このフローを終了する。 On the other hand, when it is determined that the chunk writing process has been performed on all the chunks (S170: yes), the deduplication processing unit 310 performs a backup end process for ending the backup (S180), and ends this flow. .
 ここでバックアップ終了処理について説明する。重複排除処理部310は、作業コンテントをクローズする(S210)。ここで重複排除処理部310は、処理データ420内の作業コンテントを作業データ440内の作業コンテントに置き換える。その後、重複排除処理部310は、作業コンテナインデックスをクローズする(S220)。ここで重複排除処理部310は、作業データ440内の作業コンテナインデックスを処理データ420に追加する。その後、重複排除処理部310は、クローズフラグを有効化する(S230)。重複排除処理部310は、メモリ120上にクローズフラグを格納する。クローズフラグは、作業コンテナをクローズするか否かを示す。その後、重複排除処理部310は、コンテナクローズ処理(後述)を行う(S240)。ここで重複排除処理部310は、作業データ440内の作業コンテナを処理データ420に追加する。以上がバックアップ終了処理である。 Here, the backup end process will be described. The deduplication processing unit 310 closes the work content (S210). Here, the deduplication processing unit 310 replaces the work content in the processing data 420 with the work content in the work data 440. Thereafter, the deduplication processing unit 310 closes the work container index (S220). Here, the deduplication processing unit 310 adds the work container index in the work data 440 to the process data 420. Thereafter, the deduplication processing unit 310 validates the close flag (S230). The deduplication processing unit 310 stores a close flag on the memory 120. The close flag indicates whether to close the work container. Thereafter, the deduplication processing unit 310 performs container close processing (described later) (S240). Here, the deduplication processing unit 310 adds the work container in the work data 440 to the process data 420. The above is the backup end process.
 以上がバックアップ処理である。 The above is the backup process.
 ファイルシステム管理部320は、重複排除処理部310による処理データ420内のファイルのオープンの指示に従って、ディスクアレイ60からメモリ120へファイルを読み込む。また、ファイルシステム管理部320は、重複排除処理部310による処理データ420内のファイルのクローズの指示に従って、メモリ120からディスクアレイ60へファイルを書き出す。 The file system management unit 320 reads a file from the disk array 60 to the memory 120 in accordance with an instruction to open the file in the processing data 420 by the deduplication processing unit 310. Further, the file system management unit 320 writes the file from the memory 120 to the disk array 60 in accordance with the instruction to close the file in the processing data 420 by the deduplication processing unit 310.
 ここでは、前述のバックアップ処理のS160におけるチャンク書き込み処理について説明する。 Here, the chunk writing process in S160 of the above-described backup process will be described.
 図18は、チャンク書き込み処理を示す。 FIG. 18 shows chunk write processing.
 重複排除処理部310は、指定された作業チャンクを取得する(S310)。その後、重複排除処理部310は、作業チャンクがステージされているチャンクと重複しているか否かを判定する(S320)。ここで重複排除処理部310は、作業チャンクのチャンクデータが、作業データ440内にステージされているコンテナ内のチャンクの何れかのチャンクデータと同一である場合、作業チャンクがステージされているチャンクと重複していると判定する。これにより、重複排除処理部310は、作業チャンクがメモリ120にステージされているチャンクと重複することを、高速に判定することができる。 The deduplication processing unit 310 acquires the designated work chunk (S310). Thereafter, the deduplication processing unit 310 determines whether or not the work chunk overlaps with the staged chunk (S320). Here, when the chunk data of the work chunk is the same as any one of the chunk data in the container staged in the work data 440, the deduplication processing unit 310 determines that the chunk in which the work chunk is staged. It is determined that there are duplicates. Thereby, the deduplication processing unit 310 can determine at high speed that the work chunk overlaps with the chunk staged in the memory 120.
 作業チャンクがステージされているチャンクと重複していると判定された場合(S320:yes)、重複排除処理部310は、処理をS410へ移行させる。 If it is determined that the work chunk overlaps with the staged chunk (S320: yes), the deduplication processing unit 310 shifts the process to S410.
 作業チャンクがステージされているチャンクと重複していないと判定された場合(S320:no)、重複排除処理部310は、作業チャンクがチャンクインデックス540に登録されているか否かを判定する(S330)。ここで重複排除処理部310は、作業チャンクのフィンガプリントを算出し、チャンクインデックス540から作業チャンクのフィンガプリントを検出した場合、作業チャンクがチャンクインデックス540に登録されていると判定する。更に重複排除処理部310は、検出されたフィンガプリント681に示されるチャンクを適合チャンクとして特定し、適合チャンクを含むコンテナID682に示されるコンテナを適合コンテナとして特定する。これにより、重複排除処理部310は、作業チャンクと重複する可能性がある適合チャンクがディスクアレイ60に格納されているか否かを判定することができる。なお、重複排除処理部310は、ブルームフィルタを用いて、S330の判定を高速化してもよい。 When it is determined that the work chunk does not overlap with the staged chunk (S320: no), the deduplication processing unit 310 determines whether the work chunk is registered in the chunk index 540 (S330). . Here, the deduplication processing unit 310 calculates the fingerprint of the work chunk and, when detecting the fingerprint of the work chunk from the chunk index 540, determines that the work chunk is registered in the chunk index 540. Furthermore, the deduplication processing unit 310 identifies the chunk indicated in the detected fingerprint 681 as a conforming chunk, and identifies the container indicated by the container ID 682 including the conforming chunk as a conforming container. As a result, the deduplication processing unit 310 can determine whether or not the matching chunk that may overlap with the work chunk is stored in the disk array 60. Note that the de-duplication processing unit 310 may speed up the determination in S330 using a Bloom filter.
 作業チャンクがチャンクインデックス540に登録されていない(作業チャンクが新規チャンクである)と判定された場合(S330:no)、重複排除処理部310は、処理をS360へ移行させる。 If it is determined that the work chunk is not registered in the chunk index 540 (the work chunk is a new chunk) (S330: no), the deduplication processing unit 310 shifts the process to S360.
 作業チャンクがチャンクインデックス540に登録されていると判定された場合(S330:yes)、重複排除処理部310は、適合コンテナに対する適合コンテナステージ処理(後述)を行う(S340)。 When it is determined that the work chunk is registered in the chunk index 540 (S330: yes), the deduplication processing unit 310 performs a conforming container stage process (described later) for the conforming container (S340).
 その後、重複排除処理部310は、作業チャンクが適合コンテナに含まれているか否かを判定する(S350)。ここで重複排除処理部310は、作業チャンクのチャンクデータが、ステージ処理によりステージされた適合コンテナ内の適合チャンクのチャンクデータと同一である場合、作業チャンクが適合コンテナに含まれていると判定する。これにより、重複排除処理部310は、作業チャンクが、ディスクアレイ60内の処理データ420に格納されたチャンクと重複することを判定することができる。 Thereafter, the deduplication processing unit 310 determines whether or not the work chunk is included in the conforming container (S350). Here, the deduplication processing unit 310 determines that the work chunk is included in the conforming container when the chunk data of the work chunk is the same as the chunk data of the conforming chunk in the conforming container staged by the stage processing. . Thereby, the deduplication processing unit 310 can determine that the work chunk overlaps with the chunk stored in the processing data 420 in the disk array 60.
 作業チャンクが適合コンテナに含まれていない(作業チャンクが新規チャンクである)と判定された場合(S350:no)、重複排除処理部310は、新規チャンク格納処理(後述)を行い(S360)、処理をS410へ移行させる。 When it is determined that the work chunk is not included in the conforming container (the work chunk is a new chunk) (S350: no), the deduplication processing unit 310 performs a new chunk storage process (described later) (S360), The process proceeds to S410.
 一方、作業チャンクが適合コンテナに含まれていると判定された場合(S350:yes)、重複排除処理部310は、コンテナクローズ判定処理(後述)を行い(S410)、コンテナクローズ処理(後述)を行う(S420)。 On the other hand, when it is determined that the work chunk is included in the conforming container (S350: yes), the deduplication processing unit 310 performs the container close determination process (described later) (S410), and performs the container close process (described later). Perform (S420).
 その後、重複排除処理部310は、作業コンテナがクローズされたか否かを判定する(S430)。作業コンテナがクローズされていないと判定された場合(S430:no)、重複排除処理部310は、処理をS450へ移行させる。作業コンテナがクローズされたと判定された場合(S430:yes)、重複排除処理部310は、新規コンテナである作業コンテナをオープンする(S440)。 Thereafter, the deduplication processing unit 310 determines whether or not the work container is closed (S430). When it is determined that the work container is not closed (S430: no), the deduplication processing unit 310 shifts the process to S450. When it is determined that the work container is closed (S430: yes), the deduplication processing unit 310 opens a work container that is a new container (S440).
 その後、重複排除処理部310は、作業チャンクの情報を、作業データ440内の作業コンテントへ登録し(S450)、このフローを終了する。 Thereafter, the deduplication processing unit 310 registers the work chunk information in the work content in the work data 440 (S450), and ends this flow.
 以上がチャンク書き込み処理である。 The above is the chunk writing process.
 ここでは、前述のチャンク書き込み処理のS340におけるステージ処理について説明する。 Here, the stage process in S340 of the above-described chunk write process will be described.
 図19は、適合コンテナステージ処理を示す。 FIG. 19 shows the conforming container stage process.
 重複排除処理部310は、適合コンテナがステージされているか否かを判定する(S510)。これにより、重複排除処理部310は、S320からS340の間に作業データ440をロックしていない期間があっても、適合コンテナがステージされていないことを確認できる。 The deduplication processing unit 310 determines whether or not the conforming container is staged (S510). Thereby, even if there exists a period when the work data 440 is not locked between S320 and S340, the deduplication processing part 310 can confirm that the compatible container is not staged.
 適合コンテナがステージされていると判定された場合(S510:yes)、重複排除処理部310は、このフローを終了する。 When it is determined that the conforming container is staged (S510: yes), the deduplication processing unit 310 ends this flow.
 適合コンテナがステージされていないと判定された場合(S510:no)、重複排除処理部310は、ステージコンテナ数がステージコンテナ数上限値に達しているか否かを判定する(S520)。 When it is determined that the compatible container is not staged (S510: no), the deduplication processing unit 310 determines whether or not the number of stage containers has reached the upper limit value of the number of stage containers (S520).
 ステージコンテナ数がステージコンテナ数上限値に達していないと判定された場合(S520:no)、重複排除処理部310は、処理をS540へ移行させる。 When it is determined that the number of stage containers has not reached the upper limit value of the number of stage containers (S520: no), the deduplication processing unit 310 shifts the process to S540.
 一方、ステージコンテナ数がステージコンテナ数上限値に達していると判定された場合(S520:yes)、重複排除処理部310は、ステージされているコンテナの中で最も古くステージされたコンテナを選択し、選択されたコンテナをデステージする(メモリ上のコンテナを無効化する)(S530)。その後、重複排除処理部310は、適合コンテナをステージし(S540)、このフローを終了する。このとき、重複排除処理部310は、適合コンテナのステージをファイルシステム管理部320に指示する。ファイルシステム管理部320は、その指示に応じて、ディスクアレイ60からメモリ120内の作業データ440へコンテナを読み込む。 On the other hand, when it is determined that the number of stage containers has reached the upper limit value of the number of stage containers (S520: yes), the deduplication processing unit 310 selects the oldest staged container among the staged containers. Destage the selected container (invalidate the container on the memory) (S530). Thereafter, the deduplication processing unit 310 stages the compatible container (S540), and ends this flow. At this time, the deduplication processing unit 310 instructs the file system management unit 320 on the stage of the compatible container. The file system management unit 320 reads a container from the disk array 60 to the work data 440 in the memory 120 in accordance with the instruction.
 以上が適合コンテナステージ処理である。この処理によれば、ストレージ装置10は、ステージコンテナ数がステージコンテナ数上限値に達した場合に、メモリ120内で最も古くステージされたコンテナを、ディスクアレイ60から読み込まれた適合コンテナに置き換えることができる。 The above is the conforming container stage process. According to this process, the storage apparatus 10 replaces the oldest staged container in the memory 120 with a compatible container read from the disk array 60 when the number of stage containers reaches the upper limit number of stage containers. Can do.
 なお、前述のS520において、重複排除処理部310は、メモリ120にステージされたコンテナの量を測定し、測定された量が予め定められたステージ量上限値以上であるか否かを判定してもよい。ここでメモリ120にステージされたコンテナの量は、メモリ120にステージされたコンテナの数であってもよいし、メモリ120にステージされたコンテナの合計サイズであってもよいし、メモリ120にステージされたコンテナ内の合計チャンク数であってもよい。 In S520 described above, the deduplication processing unit 310 measures the amount of containers staged in the memory 120, and determines whether or not the measured amount is equal to or greater than a predetermined stage amount upper limit value. Also good. Here, the amount of containers staged in the memory 120 may be the number of containers staged in the memory 120, may be the total size of the containers staged in the memory 120, or may be staged in the memory 120. It may be the total number of chunks in a given container.
 ここでは、前述のチャンク書き込み処理のS360における新規チャンク格納処理について説明する。 Here, the new chunk storage process in S360 of the above-described chunk write process will be described.
 図20は、新規チャンク格納処理を示す。 FIG. 20 shows a new chunk storage process.
 重複排除処理部310は、格納チャンク数が格納チャンク数上限値に達したか否かを判定する(S610)。格納チャンク数が格納チャンク数上限値に達したことを、格納チャンク数条件と呼ぶことがある。 The de-duplication processing unit 310 determines whether or not the number of stored chunks has reached the upper limit value of the number of stored chunks (S610). The fact that the number of stored chunks has reached the upper limit value of the number of stored chunks is sometimes called a stored chunk number condition.
 格納チャンク数が格納チャンク数上限値に達していないと判定された場合(S610:no)、重複排除処理部310は、処理をS710へ移行させる。 When it is determined that the number of stored chunks has not reached the upper limit value of the number of stored chunks (S610: no), the deduplication processing unit 310 shifts the process to S710.
 一方、格納チャンク数が格納チャンク数上限値に達したと判定された場合(S610:yes)、重複排除処理部310は、クローズフラグを有効化する(S620)。これにより、重複排除処理部310は、格納チャンク数を制限することができる。その後、重複排除処理部310は、コンテナクローズ処理(後述)を行う(S630)。これにより、作業コンテナはクローズされる。その後、重複排除処理部310は、新規コンテナを作業コンテナとしてオープンする(S640)。 On the other hand, when it is determined that the number of stored chunks has reached the upper limit value of the number of stored chunks (S610: yes), the deduplication processing unit 310 enables the close flag (S620). As a result, the deduplication processing unit 310 can limit the number of stored chunks. Thereafter, the deduplication processing unit 310 performs container close processing (described later) (S630). Thereby, the work container is closed. Thereafter, the deduplication processing unit 310 opens the new container as a work container (S640).
 その後、重複排除処理部310は、作業チャンクを作業コンテナに格納する(S710)。その後、重複排除処理部310は、区間設定処理を行う(S720)。 Thereafter, the deduplication processing unit 310 stores the work chunk in the work container (S710). Thereafter, the deduplication processing unit 310 performs section setting processing (S720).
 ここで区間設定処理について説明する。重複排除処理部310は、作業チャンク番号をtailに記録する(S730)。その後、重複排除処理部310は、headにチャンク番号が記録されているか否かを判定する(S740)。headがチャンク番号を格納していると判定された場合(S740:yes)、重複排除処理部310は、区間設定処理を終了する。一方、headがチャンク番号を格納していないと判定された場合(S740:no)、重複排除処理部310は、作業チャンク番号をheadに記録し(S750)、区間設定処理を終了する。以上が区間設定処理である。 Here, the section setting process will be described. The deduplication processing unit 310 records the work chunk number in the tail (S730). Thereafter, the deduplication processing unit 310 determines whether a chunk number is recorded in the head (S740). When it is determined that the head stores the chunk number (S740: yes), the deduplication processing unit 310 ends the section setting process. On the other hand, when it is determined that the head does not store the chunk number (S740: no), the deduplication processing unit 310 records the work chunk number in the head (S750), and ends the section setting process. The above is the section setting process.
 その後の新規チャンク格納処理において、重複排除処理部310は、作業チャンクのチャンク情報640を、作業コンテナインデックスへ登録し(S760)、このフローを終了する。 In the subsequent new chunk storage process, the deduplication processing unit 310 registers the chunk information 640 of the work chunk in the work container index (S760), and ends this flow.
 以上が新規チャンク格納処理である。この処理によれば、ストレージ装置10は、作業チャンクを作業コンテナに格納し、head及びtailを記録することができる。 The above is the new chunk storage process. According to this processing, the storage apparatus 10 can store the work chunk in the work container and record the head and tail.
 ここでは、前述のチャンク書き込み処理のS410におけるコンテナクローズ判定処理について説明する。 Here, the container close determination process in S410 of the above-described chunk write process will be described.
 図21は、コンテナクローズ判定処理を示す。 FIG. 21 shows container close determination processing.
 重複排除処理部310は、距離評価値が距離評価閾値より大きいか否かを判定する(S810)。距離評価値が距離評価閾値以下であると判定された場合(S810:no)、重複排除処理部310は、このフローを終了する。一方、距離評価値が距離評価閾値より大きいと判定された場合(S810:yes)、重複排除処理部310は、格納チャンク数が分離チャンク数閾値以上であるか否かを判定する(S820)。格納チャンク数が分離チャンク数閾値より小さいと判定された場合(S820:no)、重複排除処理部310は、このフローを終了する。一方、格納チャンク数が分離チャンク数閾値以上であると判定された場合(S820:yes)、重複排除処理部310は、クローズフラグを有効化し(S830)、このフローを終了する。 The de-duplication processing unit 310 determines whether or not the distance evaluation value is larger than the distance evaluation threshold (S810). When it is determined that the distance evaluation value is equal to or less than the distance evaluation threshold (S810: no), the deduplication processing unit 310 ends this flow. On the other hand, when it is determined that the distance evaluation value is greater than the distance evaluation threshold (S810: yes), the de-duplication processing unit 310 determines whether the number of stored chunks is equal to or greater than the separation chunk number threshold (S820). When it is determined that the number of stored chunks is smaller than the separation chunk number threshold value (S820: no), the deduplication processing unit 310 ends this flow. On the other hand, when it is determined that the number of stored chunks is equal to or greater than the separation chunk number threshold value (S820: yes), the deduplication processing unit 310 enables the close flag (S830) and ends this flow.
 以上がコンテナクローズ判定処理である。この処理によれば、ストレージ装置10は、バックアップデータ内の位置が互いに近い複数のチャンクを含むコンテナを、登録コンテナとすることにより、後述のコンテナクローズ処理による重複排除率の低下を抑えることができる。また、ストレージ装置10は、分離チャンク数閾値を用いることにより、各コンテナの格納チャンク数を分離チャンク数閾値以上に保つことができる。 The above is the container close determination process. According to this process, the storage apparatus 10 can suppress a decrease in the deduplication rate due to the container close process described later by setting a container including a plurality of chunks whose positions in the backup data are close to each other as a registered container. . Further, the storage apparatus 10 can keep the number of stored chunks of each container at or above the separation chunk number threshold by using the separation chunk number threshold.
 ここでは、前述のバックアップ処理のS240とチャンク書き込み処理のS420とにおけるコンテナクローズ処理について説明する。 Here, the container close process in S240 of the backup process and S420 of the chunk write process will be described.
 図22は、コンテナクローズ処理を示す。 FIG. 22 shows the container close process.
 重複排除処理部310は、クローズフラグが有効であるか否かを判定する(S910)。クローズフラグが無効であると判定された場合(S910:no)、重複排除処理部310は、このフローを終了する。一方、クローズフラグが有効であると判定された場合(S910:yes)、重複排除処理部310は、登録コンテナ判定処理を行う(S920)。 The deduplication processing unit 310 determines whether or not the close flag is valid (S910). When it is determined that the close flag is invalid (S910: no), the deduplication processing unit 310 ends this flow. On the other hand, when it is determined that the close flag is valid (S910: yes), the deduplication processing unit 310 performs a registered container determination process (S920).
 ここで登録コンテナ判定処理について説明する。重複排除処理部310は、間隔評価値が間隔評価閾値より小さいか否かを判定する(S930)。間隔評価値が間隔評価閾値以上であると判定された場合(S930:no)、重複排除処理部310は、登録コンテナ判定処理を終了する。一方、間隔評価値が間隔評価閾値より小さいと判定された場合(S930:yes)、重複排除処理部310は、格納チャンク数が格納チャンク数下限値以上であるか否かを判定する(S940)。格納チャンク数が格納チャンク数下限値より小さいと判定された場合(S940:no)、重複排除処理部310は、登録コンテナ判定処理を終了する。格納チャンク数が格納チャンク数下限値以上であると判定された場合(S940:yes)、重複排除処理部310は、作業コンテナ内の全てのチャンクのチャンク情報680を、チャンクインデックス540へ登録し(S950)、登録コンテナ判定処理を終了する。 Here, the registered container determination process will be described. The de-duplication processing unit 310 determines whether or not the interval evaluation value is smaller than the interval evaluation threshold (S930). When it is determined that the interval evaluation value is greater than or equal to the interval evaluation threshold (S930: no), the deduplication processing unit 310 ends the registered container determination process. On the other hand, when it is determined that the interval evaluation value is smaller than the interval evaluation threshold (S930: yes), the deduplication processing unit 310 determines whether or not the number of stored chunks is equal to or greater than the storage chunk number lower limit (S940). . When it is determined that the number of stored chunks is smaller than the lower limit value of the number of stored chunks (S940: no), the deduplication processing unit 310 ends the registered container determination process. When it is determined that the number of stored chunks is equal to or greater than the lower limit value of the number of stored chunks (S940: yes), the deduplication processing unit 310 registers the chunk information 680 of all the chunks in the work container in the chunk index 540 ( S950), the registered container determination process is terminated.
 その後のコンテナクローズ処理において、重複排除処理部310は、作業コンテナをクローズし(S960)、このフローを終了する。このとき、重複排除処理部310は、作業コンテナのデステージをファイルシステム管理部320に指示する。ファイルシステム管理部320は、その指示に応じて、メモリ120からディスクアレイ60へ作業コンテナを書き出し、メモリ120上の作業コンテナを無効化する。 In the subsequent container close process, the deduplication processing unit 310 closes the work container (S960), and ends this flow. At this time, the deduplication processing unit 310 instructs the file system management unit 320 to destage the work container. In response to the instruction, the file system management unit 320 writes the work container from the memory 120 to the disk array 60 and invalidates the work container on the memory 120.
 以上がコンテナクローズ処理である。この処理によれば、ストレージ装置10は、作業コンテナが分離条件及び格納チャンク数条件の何れかを満たす場合に、作業コンテナをクローズすることができる。また、ストレージ装置10は、バックアップデータ内の位置が互いに離れた新規チャンクを含むコンテナと、格納チャンク数が少ないコンテナとを、非登録コンテナとすることにより、ステージ及びデステージの回数を削減でき、ストレージ装置10の性能の低下を抑えることができる。また、ストレージ装置10は、格納チャンク数下限値を用いることにより、各登録コンテナの格納チャンク数を格納チャンク数下限値以上に保つことができる。 The above is the container closing process. According to this process, the storage apparatus 10 can close the work container when the work container satisfies either the separation condition or the storage chunk number condition. Further, the storage apparatus 10 can reduce the number of stages and destages by making a container including new chunks whose positions in the backup data are separated from each other and a container having a small number of stored chunks as non-registered containers. A decrease in performance of the storage apparatus 10 can be suppressed. Further, the storage apparatus 10 can keep the number of stored chunks of each registered container equal to or greater than the lower limit value of the stored chunk number by using the lower limit value of the stored chunk number.
 ここでは、Read処理について説明する。 Here, the read process will be described.
 図23は、Read処理を示す。 FIG. 23 shows the Read process.
 重複排除処理部310は、ホスト計算機30からバックアップデータのRead要求を受信すると、Read処理を開始する。 When the deduplication processing unit 310 receives a backup data read request from the host computer 30, the deduplication processing unit 310 starts read processing.
 重複排除処理部310は、処理データ420のうち、バックアップデータに対応するコンテントである作業コンテントをオープンする(S2110)。その後、重複排除処理部310は、作業コンテントから、オフセット621の順にチャンクを選択チャンクとして選択し、選択チャンクのチャンク情報620を取得する(S2120)。その後、重複排除処理部310は、選択チャンクを含むコンテナのコンテナID623と、選択チャンクのフィンガプリント624とを特定し、特定されたコンテナIDに対応するコンテナインデックス520内のオフセット642及びレングス643を特定し、特定されたコンテナIDに対応するコンテナ530から、特定されたオフセット及びレングスのチャンクデータ662を読み込む(S2130)。その後、重複排除処理部310は、作業コンテント内の全てのチャンクを読み込んだか否かを判定する(S2140)。 The deduplication processing unit 310 opens the work content that is the content corresponding to the backup data in the processing data 420 (S2110). Thereafter, the deduplication processing unit 310 selects chunks as selected chunks in the order of offset 621 from the work content, and acquires chunk information 620 of the selected chunks (S2120). Thereafter, the deduplication processing unit 310 identifies the container ID 623 of the container including the selected chunk and the fingerprint 624 of the selected chunk, and identifies the offset 642 and length 643 in the container index 520 corresponding to the identified container ID. The specified offset and length chunk data 662 is read from the container 530 corresponding to the specified container ID (S2130). Thereafter, the deduplication processing unit 310 determines whether all chunks in the work content have been read (S2140).
 未だ作業コンテント内の全てのチャンクを読み込んでいないと判定された場合(S2140:no)、重複排除処理部310は、処理をS2120へ移行させ、次の選択チャンクを選択する。作業コンテント内の全てのチャンクを読み込んだと判定された場合(S2140:yes)、重複排除処理部310は、作業コンテントをクローズし(S2150)、このフローを終了する。 If it is determined that all the chunks in the work content have not yet been read (S2140: no), the deduplication processing unit 310 shifts the processing to S2120 and selects the next selected chunk. If it is determined that all chunks in the work content have been read (S2140: yes), the deduplication processing unit 310 closes the work content (S2150), and ends this flow.
 以上がRead処理である。この処理によれば、ホスト計算機30により指定されたバックアップデータを、処理データ420から再構築し、再構築されたバックアップデータを、ホスト計算機30へ送信することができる。 The above is the Read process. According to this processing, the backup data designated by the host computer 30 can be reconstructed from the processing data 420, and the reconstructed backup data can be transmitted to the host computer 30.
 本発明の表現のための用語について説明する。ストレージ装置として、ストレージ装置90、ストレージ装置10等が用いられてもよい。ホスト計算機として、ホスト計算機80、ホスト計算機30等が用いられてもよい。メモリとして、メモリ91、メモリ120等が用いられてもよい。プロセッサとして、CPU110等が用いられてもよい。記憶デバイスとして、ディスク92、ディスクアレイ60等が用いられてもよい。チャンク情報として、フィンガプリント等が用いられてもよい。索引情報として、チャンクインデックス540等が用いられてもよい。クローズ条件として、分離条件、格納チャンク数条件等が用いられてもよい。 The terms for expressing the present invention will be described. As the storage device, the storage device 90, the storage device 10, or the like may be used. As the host computer, the host computer 80, the host computer 30, or the like may be used. A memory 91, a memory 120, or the like may be used as the memory. As the processor, the CPU 110 or the like may be used. As the storage device, a disk 92, a disk array 60, or the like may be used. A fingerprint or the like may be used as the chunk information. As the index information, a chunk index 540 or the like may be used. As the closing condition, a separation condition, a storage chunk number condition, or the like may be used.
 10…ストレージ装置、 30…ホスト計算機、 40…ノード、 60…ディスクアレイ、 80…ホスト計算機、 90…ストレージ装置、 91…メモリ、 92…ディスク、 120…メモリ、 130…FCポート、 140…HDD、 210…コントローラ、 230…HDD
 
DESCRIPTION OF SYMBOLS 10 ... Storage device, 30 ... Host computer, 40 ... Node, 60 ... Disk array, 80 ... Host computer, 90 ... Storage device, 91 ... Memory, 92 ... Disk, 120 ... Memory, 130 ... FC port, 140 ... HDD, 210 ... Controller, 230 ... HDD

Claims (12)

  1.  記憶デバイスと、
     メモリと、
     前記記憶デバイス、前記メモリ、及びホスト計算機に接続されるプロセッサと、
    を備え、
     前記プロセッサは、前記ホスト計算機からライトデータを受信し、
     前記プロセッサは、データを含めるためのコンテナである作業コンテナを前記メモリ内に作成し、
     前記プロセッサは、前記ライトデータを複数のチャンクに分割し、
     前記プロセッサは、前記ライトデータ内での前記複数のチャンクの夫々の位置を示すチャンク位置の順に、前記複数のチャンクの一つを作業チャンクとして選択し、
     前記プロセッサは、前記記憶デバイス内の各チャンクに基づくチャンク情報を含む索引情報に基づいて、前記作業チャンクと重複する可能性がある適合チャンクが前記記憶デバイスに格納されているか否かを判定し、
     前記適合チャンクが前記記憶デバイスに格納されていると判定された場合、前記プロセッサは、前記適合チャンクを含むコンテナである適合コンテナを前記メモリへ読み込み、
     前記プロセッサは、前記適合コンテナに基づいて、前記作業チャンクが前記適合チャンクと重複するか否かを判定し、
     前記作業チャンクが前記適合チャンクと重複していないと判定された場合、前記プロセッサは、前記作業チャンクを前記作業コンテナに含め、
     前記プロセッサは、前記作業コンテナが予め定められたクローズ条件を満たすか否かを判定し、
     前記作業コンテナが前記クローズ条件を満たすと判定された場合、前記プロセッサは、前記作業コンテナが予め定められた登録条件を満たすか否かを判定し、
     前記作業コンテナが前記登録条件を満たすと判定された場合、前記プロセッサは、前記作業コンテナ内の各チャンクに基づくチャンク情報を前記索引情報に含め、
     前記作業コンテナが前記クローズ条件を満たすと判定された場合、前記プロセッサは、前記作業コンテナを前記記憶デバイスへ書き出す、
    ストレージ装置。
    A storage device;
    Memory,
    A processor connected to the storage device, the memory, and a host computer;
    With
    The processor receives write data from the host computer,
    The processor creates a working container in the memory that is a container for containing data;
    The processor divides the write data into a plurality of chunks,
    The processor selects one of the plurality of chunks as a work chunk in order of a chunk position indicating a position of each of the plurality of chunks in the write data,
    The processor determines, based on index information including chunk information based on each chunk in the storage device, whether a matching chunk that may overlap with the work chunk is stored in the storage device;
    If it is determined that the conforming chunk is stored in the storage device, the processor reads a conforming container, which is a container containing the conforming chunk, into the memory;
    The processor determines, based on the conforming container, whether the work chunk overlaps with the conforming chunk;
    If it is determined that the work chunk does not overlap with the conforming chunk, the processor includes the work chunk in the work container;
    The processor determines whether the work container satisfies a predetermined closing condition;
    If it is determined that the work container satisfies the closing condition, the processor determines whether the work container satisfies a predetermined registration condition;
    If it is determined that the work container satisfies the registration condition, the processor includes chunk information based on each chunk in the work container in the index information,
    If it is determined that the work container satisfies the closing condition, the processor writes the work container to the storage device;
    Storage device.
  2.  前記プロセッサは、前記作業コンテナ内のチャンク数である格納チャンク数を算出し、
     前記プロセッサは、前記作業コンテナ内のチャンク位置の広がりを示す間隔評価値を算出し、
     前記プロセッサは、前記間隔評価値が予め定められた間隔評価閾値より小さく、且つ前記格納チャンク数が予め定められた格納チャンク数下限値以上である場合、前記登録条件を満たすと判定する、
    請求項1に記載のストレージ装置。
    The processor calculates the number of stored chunks, which is the number of chunks in the work container;
    The processor calculates an interval evaluation value indicating a spread of a chunk position in the work container;
    The processor determines that the registration condition is satisfied when the interval evaluation value is smaller than a predetermined interval evaluation threshold value and the number of stored chunks is equal to or greater than a predetermined storage chunk number lower limit value.
    The storage apparatus according to claim 1.
  3.  前記プロセッサは、前記作業コンテナ内の最後のチャンクのチャンク位置から前記作業チャンクのチャンク位置までの距離を示す距離評価値を算出し、
     前記プロセッサは、前記距離評価値が予め定められた距離評価閾値より大きく、且つ前記格納チャンク数が予め定められた分離チャンク数閾値以上である場合、前記クローズ条件を満たすと判定する、
    請求項2に記載のストレージ装置。
    The processor calculates a distance evaluation value indicating a distance from a chunk position of the last chunk in the work container to a chunk position of the work chunk;
    The processor determines that the closing condition is satisfied when the distance evaluation value is greater than a predetermined distance evaluation threshold and the number of stored chunks is equal to or greater than a predetermined separation chunk number threshold.
    The storage apparatus according to claim 2.
  4.  前記プロセッサは、前記作業コンテナ内の最後のチャンクのチャンク位置から、前記作業コンテナ内の最初のチャンクのチャンク位置を減じて得られる値を、前記格納コンテナ数で除することにより、前記間隔評価値を算出する、
    請求項3に記載のストレージ装置。
    The processor obtains the interval evaluation value by dividing a value obtained by subtracting the chunk position of the first chunk in the work container from the chunk position of the last chunk in the work container by the number of storage containers. To calculate,
    The storage device according to claim 3.
  5.  前記プロセッサは、前記格納チャンク数が予め定められた格納チャンク数上限値に等しい場合、前記クローズ条件を満たすと判定する、
    請求項4に記載のストレージ装置。
    The processor determines that the closing condition is satisfied when the number of stored chunks is equal to a predetermined upper limit value of the number of stored chunks;
    The storage apparatus according to claim 4.
  6.  前記プロセッサは、前記作業チャンクのハッシュ値を、前記作業チャンクのチャンク情報として算出する、
    請求項1に記載のストレージ装置。
    The processor calculates a hash value of the work chunk as chunk information of the work chunk;
    The storage apparatus according to claim 1.
  7.  前記プロセッサは、前記作業チャンクが前記メモリ内のチャンクと重複するか否かを判定し、
     前記作業チャンクが前記メモリ内のチャンクと重複しないと判定された場合、前記プロセッサは、前記索引情報が前記適合チャンクのチャンク情報を含むか否かを判定し、
     前記索引情報が前記適合チャンクのチャンク情報を含むと判定された場合、前記プロセッサは、前記適合チャンクが前記記憶デバイスに格納されていると判定する、
    請求項1に記載のストレージ装置。
    The processor determines whether the work chunk overlaps with a chunk in the memory;
    If it is determined that the work chunk does not overlap with a chunk in the memory, the processor determines whether the index information includes chunk information of the conforming chunk;
    If it is determined that the index information includes chunk information of the matching chunk, the processor determines that the matching chunk is stored in the storage device;
    The storage apparatus according to claim 1.
  8.  前記適合チャンクが前記記憶デバイスに格納されていると判定された場合、前記プロセッサは、前記メモリ内のコンテナの量が予め定められたステージ量上限値以上であるか否かを判定し、前記メモリ内のコンテナの量が前記ステージ量上限値以上であると判定された場合、前記メモリ内のコンテナの中で最も古く読み込まれたコンテナを選択し、前記選択されたコンテナを前記適合コンテナに置き換える、
    請求項1に記載のストレージ装置。
    When it is determined that the matching chunk is stored in the storage device, the processor determines whether the amount of containers in the memory is equal to or greater than a predetermined stage amount upper limit value, and the memory If it is determined that the amount of the container is equal to or greater than the stage amount upper limit value, the oldest loaded container among the containers in the memory is selected, and the selected container is replaced with the conforming container.
    The storage apparatus according to claim 1.
  9.  前記記憶デバイスは、前記間隔評価閾値と、前記格納チャンク数下限値と、前記距離評価閾値と、前記分離チャンク数閾値との何れかを含む設定情報を格納する、
    請求項3に記載のストレージ装置。
    The storage device stores setting information including any of the interval evaluation threshold value, the storage chunk number lower limit value, the distance evaluation threshold value, and the separation chunk number threshold value.
    The storage device according to claim 3.
  10.  前記プロセッサは、前記複数のチャンクのチャンク情報を含むコンテント情報と、前記索引情報とを、前記記憶デバイスへ書き出す、
    請求項1に記載のストレージ装置。
    The processor writes content information including chunk information of the plurality of chunks and the index information to the storage device;
    The storage apparatus according to claim 1.
  11.  ストレージ装置と、
     前記ストレージ装置に接続されたホスト計算機と、
    を備え、
     前記ストレージ装置は、
      記憶デバイスと、
      メモリと、
      前記記憶デバイス、前記メモリ、及び前記ホスト計算機に接続されるプロセッサと、
    を備え、
     前記ホスト計算機は、データを格納し、前記データに基づいてライトデータを生成し、前記ライトデータを前記ストレージ装置へ送信し、
     前記プロセッサは、前記ホスト計算機からライトデータを受信し、
     前記プロセッサは、データを含めるためのコンテナである作業コンテナを前記メモリ内に作成し、
     前記プロセッサは、前記ライトデータを複数のチャンクに分割し、
     前記プロセッサは、前記ライトデータ内での前記複数のチャンクの夫々の位置を示すチャンク位置の順に、前記複数のチャンクの一つを作業チャンクとして選択し、
     前記プロセッサは、前記記憶デバイス内の各チャンクに基づくチャンク情報を含む索引情報に基づいて、前記作業チャンクと重複する可能性がある適合チャンクが前記記憶デバイスに格納されているか否かを判定し、
     前記適合チャンクが前記記憶デバイスに格納されていると判定された場合、前記プロセッサは、前記適合チャンクを含むコンテナである適合コンテナを前記メモリへ読み込み、
     前記プロセッサは、前記適合コンテナに基づいて、前記作業チャンクが前記適合チャンクと重複するか否かを判定し、
     前記作業チャンクが前記適合チャンクと重複していないと判定された場合、前記プロセッサは、前記作業チャンクを前記作業コンテナに含め、
     前記プロセッサは、前記作業コンテナが予め定められたクローズ条件を満たすか否かを判定し、
     前記作業コンテナが前記クローズ条件を満たすと判定された場合、前記プロセッサは、前記作業コンテナが予め定められた登録条件を満たすか否かを判定し、
     前記作業コンテナが前記登録条件を満たすと判定された場合、前記プロセッサは、前記作業コンテナ内の各チャンクに基づくチャンク情報を前記索引情報に含め、
     前記作業コンテナが前記クローズ条件を満たすと判定された場合、前記プロセッサは、前記作業コンテナを前記記憶デバイスへ書き出す、
    ファイルサーバ。
    A storage device;
    A host computer connected to the storage device;
    With
    The storage device
    A storage device;
    Memory,
    A processor connected to the storage device, the memory, and the host computer;
    With
    The host computer stores data, generates write data based on the data, sends the write data to the storage device,
    The processor receives write data from the host computer,
    The processor creates a working container in the memory that is a container for containing data;
    The processor divides the write data into a plurality of chunks,
    The processor selects one of the plurality of chunks as a work chunk in order of a chunk position indicating a position of each of the plurality of chunks in the write data,
    The processor determines, based on index information including chunk information based on each chunk in the storage device, whether a matching chunk that may overlap with the work chunk is stored in the storage device;
    If it is determined that the conforming chunk is stored in the storage device, the processor reads a conforming container, which is a container containing the conforming chunk, into the memory;
    The processor determines, based on the conforming container, whether the work chunk overlaps with the conforming chunk;
    If it is determined that the work chunk does not overlap with the conforming chunk, the processor includes the work chunk in the work container;
    The processor determines whether the work container satisfies a predetermined closing condition;
    If it is determined that the work container satisfies the closing condition, the processor determines whether the work container satisfies a predetermined registration condition;
    If it is determined that the work container satisfies the registration condition, the processor includes chunk information based on each chunk in the work container in the index information,
    If it is determined that the work container satisfies the closing condition, the processor writes the work container to the storage device;
    file server.
  12.  記憶デバイスとメモリとホスト計算機に接続されるプロセッサを用いて、前記ホスト計算機からライトデータを受信し、
     前記プロセッサを用いて、データを含めるためのコンテナである作業コンテナを前記メモリ内に作成し、
     前記プロセッサを用いて、前記ライトデータを複数のチャンクに分割し、
     前記プロセッサを用いて、前記ライトデータ内での前記複数のチャンクの夫々の位置を示すチャンク位置の順に、前記複数のチャンクの一つを作業チャンクとして選択し、
     前記プロセッサを用いて、前記記憶デバイス内の各チャンクに基づくチャンク情報を含む索引情報に基づいて、前記作業チャンクと重複する可能性がある適合チャンクが前記記憶デバイスに格納されているか否かを判定し、
     前記適合チャンクが前記記憶デバイスに格納されていると判定された場合、前記プロセッサを用いて、前記適合チャンクを含むコンテナである適合コンテナを前記メモリへ読み込み、
     前記プロセッサを用いて、前記適合コンテナに基づいて、前記作業チャンクが前記適合チャンクと重複するか否かを判定し、
     前記作業チャンクが前記適合チャンクと重複していないと判定された場合、前記プロセッサを用いて、前記作業チャンクを前記作業コンテナに含め、
     前記プロセッサを用いて、前記作業コンテナが予め定められたクローズ条件を満たすか否かを判定し、
     前記作業コンテナが前記クローズ条件を満たすと判定された場合、前記プロセッサを用いて、前記作業コンテナが予め定められた登録条件を満たすか否かを判定し、
     前記作業コンテナが前記登録条件を満たすと判定された場合、前記プロセッサを用いて、前記作業コンテナ内の各チャンクに基づくチャンク情報を前記索引情報に含め、
     前記作業コンテナが前記クローズ条件を満たすと判定された場合、前記プロセッサを用いて、前記作業コンテナを前記記憶デバイスへ書き出す、
    ことを備えるデータ記憶方法。
     
    Using a processor connected to the storage device, the memory and the host computer, the write data is received from the host computer,
    Using the processor, create a working container in the memory that is a container for including data,
    Using the processor, the write data is divided into a plurality of chunks,
    Using the processor, one of the plurality of chunks is selected as a work chunk in the order of chunk positions indicating the positions of the plurality of chunks in the write data,
    Using the processor, based on index information including chunk information based on each chunk in the storage device, determining whether a matching chunk that may overlap with the work chunk is stored in the storage device And
    If it is determined that the conforming chunk is stored in the storage device, the processor is used to read a conforming container that is a container containing the conforming chunk into the memory;
    Using the processor to determine whether the work chunk overlaps with the conforming chunk based on the conforming container;
    If it is determined that the work chunk does not overlap with the conforming chunk, the processor is used to include the work chunk in the work container;
    Using the processor to determine whether the work container satisfies a predetermined closing condition;
    If it is determined that the work container satisfies the closing condition, the processor is used to determine whether the work container satisfies a predetermined registration condition;
    When it is determined that the work container satisfies the registration condition, using the processor, the chunk information based on each chunk in the work container is included in the index information,
    If it is determined that the working container satisfies the closing condition, the processor is used to write the working container to the storage device;
    A data storage method comprising:
PCT/JP2014/080513 2014-11-18 2014-11-18 Storage unit, file server, and data storage method WO2016079809A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/080513 WO2016079809A1 (en) 2014-11-18 2014-11-18 Storage unit, file server, and data storage method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/080513 WO2016079809A1 (en) 2014-11-18 2014-11-18 Storage unit, file server, and data storage method

Publications (1)

Publication Number Publication Date
WO2016079809A1 true WO2016079809A1 (en) 2016-05-26

Family

ID=56013424

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/080513 WO2016079809A1 (en) 2014-11-18 2014-11-18 Storage unit, file server, and data storage method

Country Status (1)

Country Link
WO (1) WO2016079809A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100223441A1 (en) * 2007-10-25 2010-09-02 Mark David Lillibridge Storing chunks in containers
WO2014030252A1 (en) * 2012-08-24 2014-02-27 株式会社日立製作所 Storage device and data management method
WO2014155653A1 (en) * 2013-03-29 2014-10-02 株式会社日立製作所 Data duplication detection system and method for controlling data duplication detection system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100223441A1 (en) * 2007-10-25 2010-09-02 Mark David Lillibridge Storing chunks in containers
WO2014030252A1 (en) * 2012-08-24 2014-02-27 株式会社日立製作所 Storage device and data management method
WO2014155653A1 (en) * 2013-03-29 2014-10-02 株式会社日立製作所 Data duplication detection system and method for controlling data duplication detection system

Similar Documents

Publication Publication Date Title
US11068455B2 (en) Mapper tree with super leaf nodes
US11449239B2 (en) Write-ahead log maintenance and recovery
US10747440B2 (en) Storage system and storage system management method
JP6208156B2 (en) Replicating a hybrid storage aggregate
JP6227007B2 (en) Real-time classification of data into data compression areas
US11068405B2 (en) Compression of host I/O data in a storage processor of a data storage system with selection of data compression components based on a current fullness level of a persistent cache
US10108671B2 (en) Information processing device, computer-readable recording medium having stored therein information processing program, and information processing method
US8760956B1 (en) Data processing method and apparatus
US20190138517A1 (en) Hot-Spot Adaptive Garbage Collection
US20160041778A1 (en) Managing data within a storage device based on file system metadata
US20130174176A1 (en) Workload management in a data storage system
US11429431B2 (en) Information processing system and management device
US20190042134A1 (en) Storage control apparatus and deduplication method
US11609849B2 (en) Deduplication system threshold based on a type of storage device
US20210072899A1 (en) Information processing apparatus and computer-readable recording medium recording information processing program
US20140372672A1 (en) System and method for providing improved system performance by moving pinned data to open nand flash interface working group modules while the system is in a running state
US9740420B2 (en) Storage system and data management method
WO2016038714A1 (en) File system, data deduplication method, and program for file system
WO2016079809A1 (en) Storage unit, file server, and data storage method
US10614036B1 (en) Techniques for de-duplicating data storage systems using a segmented index
US10853257B1 (en) Zero detection within sub-track compression domains
JP6419662B2 (en) Storage system and data duplication detection method
US10845994B1 (en) Performing reconciliation on a segmented de-duplication index
US20230418798A1 (en) Information processing apparatus and information processing method
US20240111649A1 (en) Multi-tier heat maps

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

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP