WO2018156503A1 - Methods for performing data deduplication on data blocks at granularity level and devices thereof - Google Patents
Methods for performing data deduplication on data blocks at granularity level and devices thereof Download PDFInfo
- Publication number
- WO2018156503A1 WO2018156503A1 PCT/US2018/018783 US2018018783W WO2018156503A1 WO 2018156503 A1 WO2018156503 A1 WO 2018156503A1 US 2018018783 W US2018018783 W US 2018018783W WO 2018156503 A1 WO2018156503 A1 WO 2018156503A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- segments
- data blocks
- computing device
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Definitions
- This technology generally relates to data storage management and, more particularly, methods for performing data deduplication on data blocks and devices thereof.
- Storage drives or disks provide an easy, fast, and convenient way for backing up or storing data. As additional backups are made, additional disks and disk space are required. However, disks or storage drives add costs to any backup solution including the costs of the disks themselves, costs associated with powering and cooling the disks, and costs associated with physically storing the disks in the datacenter. Thus, it becomes desirable to maximize the usage of disk storage available on each disk.
- Data deduplication is a data compression technique for eliminating redundant data.
- first data is compared to stored data to detect duplicates, that is, to identify or determine whether the first data is unique or not.
- the redundant first data is eliminated and replaced with a small reference that points to the stored data.
- prior existing technologies only perform data deduplication by comparing the data present in one data block with the data present in another data block.
- prior existing technologies fail to perform data deduplication in a single data block.
- FIG. 1 is a block diagram of an environment with a storage management computing device that performs data deduplication on data blocks;
- FIG. 2 is a block diagram of the exemplary storage management computing device shown in FIG. 1;
- FIG. 3 is an exemplary flow chart of an example of a method for performing data deduplication on data blocks; and [0008] FIGS. 4-7 are exemplary illustrations of performing data deduplication on data blocks.
- FIG. 1 An environment 10 with a plurality of client computing devices 12(l)-12(n), an exemplary storage management computing device 14, a plurality of storage drives 16(l)-16(n) is illustrated in FIG. 1.
- the environment 10 in FIG. 1 includes the plurality of client computing devices 12(l)-12(n), the storage management computing device 14 and a plurality of storage drives 16(l)-16(n) coupled via one or more communication networks 30, although the environment could include other types and numbers of systems, devices, components, and/or other elements.
- the example of a method for performs data deduplication on data blocks is executed by the storage management computing device 14, although the approaches illustrated and described herein could be executed by other types and/or numbers of other computing systems and devices.
- the environment 10 may include other types and numbers of other network elements and devices, as is generally known in the art and will not be illustrated or described herein.
- This technology provides a number of advantages including providing methods, non-transitory computer readable media and devices for performing data deduplication on data blocks.
- the storage management computing device 14 includes a processor 18, a memory 20, and a communication interface 24 which are coupled together by a bus 26, although the storage management computing device 14 may include other types and numbers of elements in other configurations.
- the processor 18 of the storage management computing device 14 may execute one or more programmed instructions stored in the memory 20 for dynamic resource reservation based on classified input/output requests as illustrated and described in the examples herein, although other types and numbers of functions and/or other operation can be performed.
- the processor 18 of the storage management computing device 14 may include one or more central processing units (“CPUs") or general purpose processors with one or more processing cores, such as AMD® processor(s), although other types of processor(s) could be used (e.g., Intel®).
- the memory 20 of the storage management computing device 14 stores the programmed instructions and other data for one or more aspects of the present technology as described and illustrated herein, although some or all of the programmed instructions could be stored and executed elsewhere.
- a variety of different types of memory storage devices such as a non-volatile memory, random access memory (RAM) or a read only memory (ROM) in the system or a floppy disk, hard disk, CD ROM, DVD ROM, or other computer readable medium which is read from and written to by a magnetic, optical, or other reading and writing system that is coupled to the processor 18, can be used for the memory 20.
- the communication interface 24 of the storage management computing device 14 operatively couples and communicates with the plurality of client computing devices 12(l)-12(n) and the plurality of storage drives 16(l)-16(n), which are all coupled together by the
- the communication network 30 can use TCP/IP over Ethernet and industry-standard protocols, including NFS, CIFS, SOAP, XML, LDAP, and SNMP, although other types and numbers of communication networks, can be used.
- the communication networks 30 in this example may employ any suitable interface mechanisms and network communication technologies, including, for example, any local area network, any wide area network (e.g., Internet), teletraffic in any suitable form (e.g., voice, modem, and the like), Public Switched Telephone Network (PSTNs), Ethernet-based Packet Data Networks (PDNs), and any combinations thereof and the like.
- the bus 26 is a universal serial bus, although other bus types and links may be used, such as PCI-Express or hyper-transport bus.
- Each of the plurality of client computing devices 12(l)-12(n) includes a central processing unit (CPU) or processor, a memory, and an I/O system, which are coupled together by a bus or other link, although other numbers and types of network devices could be used.
- the plurality of client computing devices 12(l)-12(n) communicates with the storage management computing device 14 for storage management, although the client computing devices 12(l)-12(n) can interact with the storage management computing device 14 for other purposes.
- the plurality of client computing devices 12(l)-12(n) may run application(s) that may provide an interface to make requests to access, modify, delete, edit, read or write data within storage management computing device 14 or the plurality of storage drives 16(l)-16(n) via the communication network 30.
- Each of the plurality of storage drives 16(l)-16(n) includes a central processing unit (CPU) or processor, and an I/O system, which are coupled together by a bus or other link, although other numbers and types of network devices could be used.
- Each plurality of storage drives 16(l)-16(n) assists with storing data, although the plurality of storage drives 16(l)-16(n) can assist with other types of operations such as storing of files or data.
- Various network processing applications such as CIFS applications, NFS applications, HTTP Web Data storage device applications, and/or FTP applications, may be operating on the plurality of storage drives 16(l)-16(n) and transmitting data (e.g., files or web pages) in response to requests from the storage management computing device 14 and the plurality of client computing devices 12(1)- 12(n).
- data e.g., files or web pages
- the plurality of storage drives 16(l)-16(n) may be hardware or software or may represent a system with multiple external resource servers, which may include internal or external networks.
- the exemplary network environment 10 includes the plurality of client computing devices 12(l)-12(n), the storage management computing device 14, and the plurality of storage drives 16(l)-16(n) described and illustrated herein, other types and numbers of systems, devices, components, and/or other elements in other topologies can be used. It is to be understood that the systems of the examples described herein are for exemplary purposes, as many variations of the specific hardware and software used to implement the examples are possible, as will be appreciated by those of ordinary skill in the art.
- two or more computing systems or devices can be substituted for any one of the systems or devices in any example. Accordingly, principles and advantages of distributed processing, such as redundancy and replication also can be implemented, as desired, to increase the robustness and performance of the devices and systems of the examples.
- the examples may also be implemented on computer system(s) that extend across any suitable network using any suitable interface mechanisms and traffic technologies, including by way of example only teletraffic in any suitable form (e.g., voice and modem), wireless traffic media, wireless traffic networks, cellular traffic networks, G3 traffic networks, Public Switched Telephone Network (PSTNs), Packet Data Networks (PDNs), the Internet, intranets, and combinations thereof.
- PSTNs Public Switched Telephone Network
- PDNs Packet Data Networks
- the Internet intranets, and combinations thereof.
- the examples also may be embodied as a non-transitory computer readable medium having instructions stored thereon for one or more aspects of the present technology as described and illustrated by way of the examples herein, as described herein, which when executed by the processor, cause the processor to carry out the steps necessary to implement the methods of this technology as described and illustrated with the examples herein.
- the exemplary method begins at step 305 where the storage management computing device 14 receives multiple blocks of data from one of the plurality of client computing devices 12(l)-12(n), although the storage management computing device 14 can receive other types and/or amounts of information.
- the multiple data blocks A, B, and C each of size four kilo bytes received by the storage management computing device 14 is illustrated in FIG. 4.
- step 310 the storage management computing device 14 splits each data block to a granular size (segment size).
- the granular size can be 512 bytes, 256 bytes, or 128 bytes, although the data block can be split into other different sizes.
- FIG. 5 illustrates each of the data block being split into 4 segments each of size one kilo byte (IK). The storage management computing device 14 performs this step of splitting the data block into granular size to identify the duplicate or repetitive data within each of the data block.
- step 315 the storage management computing device 14 determines a checksum for data in each segment within each of the data block.
- the storage management computing device 14 determines the checksum for each of the four segments of data block A, data block B, and data block C. Additionally in this example, the storage management computing device 14 can use a commonly available algorithm to calculate the checksum, which can be easily recognized by a person having ordinary skill in the art and therefore will not be illustrated in greater detail.
- step 320 the storage management computing device 14 compares the determined checksum of data in each segment of the data block to identify duplicate blocks of data within each of the data block.
- two segments having the same checksum value is determined to be duplicate blocks of data within the same data block.
- the storage management computing device 14 compares the checksum value of the first segment Al against the second segment Al, third segment Al and the fourth segment Al .
- the storage management computing device 14 compares the checksum for the segments in data block B, and data block C illustrated in FIG. 5. If during the comparison, when the storage management computing device 14 determines that the checksum value is equal, then the Yes branch is taken to step 325.
- the checksum of the first segment, second segment, third segment and fourth segment of data block A would be the same because it includes the same data Al . Similar, the checksum of the first segment, second segment, third segment and fourth segment of data block B, and C would be the same because it includes the same content Bl, and CI respectively. Additionally in this example, the storage management computing device 14 can also perform a bit by bit comparison when the checksum of two segments is determined to be equal to confirm the duplicate or repetitive data within the data block.
- the storage management computing device 14 creates a unique signature for each of the segment that is determined to have equal checksum for each of the data block that was received.
- the storage management computing device 14 creates a unique signature for the segments of data block A as IK (A,4) indicating that there is IK of data in block A duplicated four times (or the same block of data is repeating four times within the data block), although the storage management computing device 14 can creates other types or amounts of signatures.
- the storage management computing device 14 creates the unique signature for data block B as IK (B,4), and for data block C as 1K(C,4).
- the uniquely created signature can also include the offset of the data that was originally stored in the received data block.
- the technology can reconstruct the data block with duplicate or repetitive data to the full block (similar to the data that was received and as illustrated in FIGS. 4 and 5).
- the storage management computing device 14 stores the created signature in the header field of the data, although the storage management computing device 14 can store the created signature at other locations.
- the storage management computing device 14 can extract the signature that is stored in the header to reconstruct the full data block.
- step 335 the storage management computing device 14 performs data compaction on all four data blocks for which the signature was created.
- the technique of data compaction has been illustrated in the U.S. Publication No. 2017/0031614A1, which is hereby incorporated by reference in its entirety.
- the result of data compaction of the four data blocks with signature is illustrated in FIG. 7.
- the duplicate data of each of the data block is consolidated to one instance of the duplicate data and each the instance of duplicate data of different data blocks are written to one single data block of size 4k wherein the data block includes four segments.
- the data Al is the duplicate data repeating four times in the data block A and similarly, data Bl is duplicate data repeating four times in data block B, and data CI repeating in data block C.
- the previous step 330 creates a signature of the duplicate data and reduces the data repeating four times to a single instance of data along with the signature.
- data block A includes one instance of size IK of data Al and similarly, one instance of size IK of data Bl, and one instance of size.
- the IK size of data in each of the data block is written to a new data block of size 4K with four IK segments.
- the storage management computing device 14 stores the data blocks in the data compacted form in the plurality of storage drives 16(l)-16(n) as illustrated in FIG. 7, although the storage management computing device 14 can store the data blocks at other memory locations.
- the technology is able to significantly reduce the amount of storage space required to store the received data blocks.
- the storage management computing device 14 had stored the data blocks that was originally received in step 305 and as represented in FIGS. 4 and 5, three blocks of data would be required in the plurality of storage drives 16(l)-16(n) to store the data block.
- the technology is able to store in received three blocks of data as just one block of data in the plurality of storage drives 16(1)- 16(n).
- the exemplary flow proceeds back to step 305 where the storage management computing device 14 receives the next set of data blocks from the plurality of client computing devices 12(l)-12(n).
- the storage management computing device 14 can create a bitmap of the location at which the data block was stored in the storage drives 16(1)- 16(n) and the corresponding created signature of the data blocks. This data in the bitmap can be used to reconstruct the data block when there is a request for reading or writing the data from the plurality of client computing devices 12(l)-12(n).
- step 320 when the storage management computing device 14 determines that segments of the data blocks does not have the same checksum, then the No branch is taken to step 345.
- the checksum of the two segments within the same data block does not match, it indicates that the data in the segments of the same block are not duplicate or repetitive data.
- step 345 the storage management computing device 14 stores data blocks in the format that was received in the plurality of storage drives 16(l)-16(n), although the storage management computing device 14 can store the received blocks of data in other formats and other memory locations.
- the exemplary flow of the method then proceeds back to step 305 where the storage management computing device 14 receives the next data blocks from the plurality of client computing devices 12(l)-12(n).
- this technology provides a number of advantages including providing methods, non-transitory computer readable media and devices for performing deduplication on data blocks. Using the above illustrated examples, the disclosed technology is able to significantly reduce the storage space of the data blocks in the storage drives thereby managing the memory space in a more efficient manner. Alternatively, the disclosed technology can also be used to perform
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
A method, non-transitory computer readable medium, and device that assists with performing data deduplication on data blocks includes receiving a plurality of data blocks, wherein each of the received plurality of data blocks are of an equal memory size. Each of the received plurality of data blocks are split into a plurality of segments with a segment size less than the equal memory size. Duplicate data is identified within each of the plurality of segments for each of the received plurality of data blocks. One occurrence of the identified duplicate data is stored from each of the received plurality of data blocks into a new data block.
Description
METHODS FOR PERFORMING DATA DEDUPLICATION ON DATA BLOCKS GRANULARITY LEVEL AND DEVICES THEREOF
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority benefit of U.S. Utility Patent Application Serial No. 15/442,323, filed February 24, 2017, and is hereby incorporated by reference in its entirety.
FIELD
[0002] This technology generally relates to data storage management and, more particularly, methods for performing data deduplication on data blocks and devices thereof.
BACKGROUND [0003] Storage drives or disks provide an easy, fast, and convenient way for backing up or storing data. As additional backups are made, additional disks and disk space are required. However, disks or storage drives add costs to any backup solution including the costs of the disks themselves, costs associated with powering and cooling the disks, and costs associated with physically storing the disks in the datacenter. Thus, it becomes desirable to maximize the usage of disk storage available on each disk.
[0004] One method of maximizing storage on a disk is to use some form of data deduplication techniques. Data deduplication is a data compression technique for eliminating redundant data. In an existing deduplication process, first data is compared to stored data to detect duplicates, that is, to identify or determine whether the first data is unique or not. Next, when the first data is identified as not being unique, the redundant first data is eliminated and replaced with a small reference that points to the stored data. However, prior existing technologies only perform data deduplication by comparing the data present in one data block with the data present in another data block. Unfortunately, prior existing technologies fail to perform data deduplication in a single data block. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] FIG. 1 is a block diagram of an environment with a storage management computing device that performs data deduplication on data blocks;
[0006] FIG. 2 is a block diagram of the exemplary storage management computing device shown in FIG. 1;
[0007] FIG. 3 is an exemplary flow chart of an example of a method for performing data deduplication on data blocks; and [0008] FIGS. 4-7 are exemplary illustrations of performing data deduplication on data blocks.
DETAILED DESCRIPTION
[0009] An environment 10 with a plurality of client computing devices 12(l)-12(n), an exemplary storage management computing device 14, a plurality of storage drives 16(l)-16(n) is illustrated in FIG. 1. In this particular example, the environment 10 in FIG. 1 includes the plurality of client computing devices 12(l)-12(n), the storage management computing device 14 and a plurality of storage drives 16(l)-16(n) coupled via one or more communication networks 30, although the environment could include other types and numbers of systems, devices, components, and/or other elements. The example of a method for performs data deduplication on data blocks is executed by the storage management computing device 14, although the approaches illustrated and described herein could be executed by other types and/or numbers of other computing systems and devices. The environment 10 may include other types and numbers of other network elements and devices, as is generally known in the art and will not be illustrated or described herein. This technology provides a number of advantages including providing methods, non-transitory computer readable media and devices for performing data deduplication on data blocks.
[0010] Referring to FIG. 2, in this example the storage management computing device 14 includes a processor 18, a memory 20, and a communication interface 24 which are coupled together by a bus 26, although the storage management computing device 14 may include other types and numbers of elements in other configurations.
[0011] The processor 18 of the storage management computing device 14 may execute one or more programmed instructions stored in the memory 20 for dynamic resource reservation based on classified input/output requests as illustrated and described in the examples herein, although other types and numbers of functions and/or other operation can be performed. The
processor 18 of the storage management computing device 14 may include one or more central processing units ("CPUs") or general purpose processors with one or more processing cores, such as AMD® processor(s), although other types of processor(s) could be used (e.g., Intel®).
[0012] The memory 20 of the storage management computing device 14 stores the programmed instructions and other data for one or more aspects of the present technology as described and illustrated herein, although some or all of the programmed instructions could be stored and executed elsewhere. A variety of different types of memory storage devices, such as a non-volatile memory, random access memory (RAM) or a read only memory (ROM) in the system or a floppy disk, hard disk, CD ROM, DVD ROM, or other computer readable medium which is read from and written to by a magnetic, optical, or other reading and writing system that is coupled to the processor 18, can be used for the memory 20.
[0013] The communication interface 24 of the storage management computing device 14 operatively couples and communicates with the plurality of client computing devices 12(l)-12(n) and the plurality of storage drives 16(l)-16(n), which are all coupled together by the
communication network 30, although other types and numbers of communication networks or systems with other types and numbers of connections and configurations to other devices and elements. By way of example only, the communication network 30 can use TCP/IP over Ethernet and industry-standard protocols, including NFS, CIFS, SOAP, XML, LDAP, and SNMP, although other types and numbers of communication networks, can be used. The communication networks 30 in this example may employ any suitable interface mechanisms and network communication technologies, including, for example, any local area network, any wide area network (e.g., Internet), teletraffic in any suitable form (e.g., voice, modem, and the like), Public Switched Telephone Network (PSTNs), Ethernet-based Packet Data Networks (PDNs), and any combinations thereof and the like. In this example, the bus 26 is a universal serial bus, although other bus types and links may be used, such as PCI-Express or hyper-transport bus.
[0014] Each of the plurality of client computing devices 12(l)-12(n) includes a central processing unit (CPU) or processor, a memory, and an I/O system, which are coupled together by a bus or other link, although other numbers and types of network devices could be used. The plurality of client computing devices 12(l)-12(n) communicates with the storage management computing device 14 for storage management, although the client computing devices 12(l)-12(n) can interact with the storage management computing device 14 for other purposes. By way of
example, the plurality of client computing devices 12(l)-12(n) may run application(s) that may provide an interface to make requests to access, modify, delete, edit, read or write data within storage management computing device 14 or the plurality of storage drives 16(l)-16(n) via the communication network 30. [0015] Each of the plurality of storage drives 16(l)-16(n) includes a central processing unit (CPU) or processor, and an I/O system, which are coupled together by a bus or other link, although other numbers and types of network devices could be used. Each plurality of storage drives 16(l)-16(n) assists with storing data, although the plurality of storage drives 16(l)-16(n) can assist with other types of operations such as storing of files or data. Various network processing applications, such as CIFS applications, NFS applications, HTTP Web Data storage device applications, and/or FTP applications, may be operating on the plurality of storage drives 16(l)-16(n) and transmitting data (e.g., files or web pages) in response to requests from the storage management computing device 14 and the plurality of client computing devices 12(1)- 12(n). It is to be understood that the plurality of storage drives 16(l)-16(n) may be hardware or software or may represent a system with multiple external resource servers, which may include internal or external networks.
[0016] Although the exemplary network environment 10 includes the plurality of client computing devices 12(l)-12(n), the storage management computing device 14, and the plurality of storage drives 16(l)-16(n) described and illustrated herein, other types and numbers of systems, devices, components, and/or other elements in other topologies can be used. It is to be understood that the systems of the examples described herein are for exemplary purposes, as many variations of the specific hardware and software used to implement the examples are possible, as will be appreciated by those of ordinary skill in the art.
[0017] In addition, two or more computing systems or devices can be substituted for any one of the systems or devices in any example. Accordingly, principles and advantages of distributed processing, such as redundancy and replication also can be implemented, as desired, to increase the robustness and performance of the devices and systems of the examples. The examples may also be implemented on computer system(s) that extend across any suitable network using any suitable interface mechanisms and traffic technologies, including by way of example only teletraffic in any suitable form (e.g., voice and modem), wireless traffic media, wireless traffic networks, cellular traffic networks, G3 traffic networks, Public Switched
Telephone Network (PSTNs), Packet Data Networks (PDNs), the Internet, intranets, and combinations thereof.
[0018] The examples also may be embodied as a non-transitory computer readable medium having instructions stored thereon for one or more aspects of the present technology as described and illustrated by way of the examples herein, as described herein, which when executed by the processor, cause the processor to carry out the steps necessary to implement the methods of this technology as described and illustrated with the examples herein.
[0019] An example of a method for performing data deduplication on data blocks will now be described herein with reference to FIGS.1-7. The exemplary method begins at step 305 where the storage management computing device 14 receives multiple blocks of data from one of the plurality of client computing devices 12(l)-12(n), although the storage management computing device 14 can receive other types and/or amounts of information. By way of example, the multiple data blocks A, B, and C each of size four kilo bytes received by the storage management computing device 14 is illustrated in FIG. 4.
[0020] Next in step 310, the storage management computing device 14 splits each data block to a granular size (segment size). By way of example, the granular size can be 512 bytes, 256 bytes, or 128 bytes, although the data block can be split into other different sizes. In this example, FIG. 5 illustrates each of the data block being split into 4 segments each of size one kilo byte (IK). The storage management computing device 14 performs this step of splitting the data block into granular size to identify the duplicate or repetitive data within each of the data block.
[0021] Next in step 315, the storage management computing device 14 determines a checksum for data in each segment within each of the data block. In this example with reference to FIG. 5, the storage management computing device 14 determines the checksum for each of the four segments of data block A, data block B, and data block C. Additionally in this example, the storage management computing device 14 can use a commonly available algorithm to calculate the checksum, which can be easily recognized by a person having ordinary skill in the art and therefore will not be illustrated in greater detail.
[0022] In step 320, the storage management computing device 14 compares the determined checksum of data in each segment of the data block to identify duplicate blocks of
data within each of the data block. In this example, two segments having the same checksum value is determined to be duplicate blocks of data within the same data block. By way of example with reference to FIG. 5, the storage management computing device 14 compares the checksum value of the first segment Al against the second segment Al, third segment Al and the fourth segment Al . Similarly, the storage management computing device 14 compares the checksum for the segments in data block B, and data block C illustrated in FIG. 5. If during the comparison, when the storage management computing device 14 determines that the checksum value is equal, then the Yes branch is taken to step 325. By way of example, the checksum of the first segment, second segment, third segment and fourth segment of data block A would be the same because it includes the same data Al . Similar, the checksum of the first segment, second segment, third segment and fourth segment of data block B, and C would be the same because it includes the same content Bl, and CI respectively. Additionally in this example, the storage management computing device 14 can also perform a bit by bit comparison when the checksum of two segments is determined to be equal to confirm the duplicate or repetitive data within the data block.
[0023] Next in step 325, the storage management computing device 14 creates a unique signature for each of the segment that is determined to have equal checksum for each of the data block that was received. By way of example with reference to FIG. 6, the storage management computing device 14 creates a unique signature for the segments of data block A as IK (A,4) indicating that there is IK of data in block A duplicated four times (or the same block of data is repeating four times within the data block), although the storage management computing device 14 can creates other types or amounts of signatures. Similarly, the storage management computing device 14 creates the unique signature for data block B as IK (B,4), and for data block C as 1K(C,4). Additionally in this example, the uniquely created signature can also include the offset of the data that was originally stored in the received data block. Using this uniquely created signature, the technology can reconstruct the data block with duplicate or repetitive data to the full block (similar to the data that was received and as illustrated in FIGS. 4 and 5).
[0024] Next in step 330, the storage management computing device 14 stores the created signature in the header field of the data, although the storage management computing device 14 can store the created signature at other locations. When there is a request to either read or write the data block that was sent from one of the plurality of client computing devices 12(l)-12(n),
the storage management computing device 14 can extract the signature that is stored in the header to reconstruct the full data block.
[0025] In step 335, the storage management computing device 14 performs data compaction on all four data blocks for which the signature was created. The technique of data compaction has been illustrated in the U.S. Publication No. 2017/0031614A1, which is hereby incorporated by reference in its entirety. By way of example, the result of data compaction of the four data blocks with signature is illustrated in FIG. 7. In this example, the duplicate data of each of the data block is consolidated to one instance of the duplicate data and each the instance of duplicate data of different data blocks are written to one single data block of size 4k wherein the data block includes four segments. By way of example with reference to FIG. 5, the data Al is the duplicate data repeating four times in the data block A and similarly, data Bl is duplicate data repeating four times in data block B, and data CI repeating in data block C. The previous step 330 creates a signature of the duplicate data and reduces the data repeating four times to a single instance of data along with the signature. As illustrated in FIG. 6, data block A includes one instance of size IK of data Al and similarly, one instance of size IK of data Bl, and one instance of size. By performing data compaction, the IK size of data in each of the data block is written to a new data block of size 4K with four IK segments.
[0026] Next in step 340, the storage management computing device 14 stores the data blocks in the data compacted form in the plurality of storage drives 16(l)-16(n) as illustrated in FIG. 7, although the storage management computing device 14 can store the data blocks at other memory locations. By storing the data blocks in the data compacted format, the technology is able to significantly reduce the amount of storage space required to store the received data blocks. By way of example, if the storage management computing device 14 had stored the data blocks that was originally received in step 305 and as represented in FIGS. 4 and 5, three blocks of data would be required in the plurality of storage drives 16(l)-16(n) to store the data block. However, by splitting the received data block to granular size, determining the checksum, creating the signature and performing data compaction, the technology is able to store in received three blocks of data as just one block of data in the plurality of storage drives 16(1)- 16(n). The exemplary flow proceeds back to step 305 where the storage management computing device 14 receives the next set of data blocks from the plurality of client computing devices 12(l)-12(n). Additionally in this example, the storage management computing device 14 can create a bitmap of the location at which the data block was stored in the storage drives 16(1)-
16(n) and the corresponding created signature of the data blocks. This data in the bitmap can be used to reconstruct the data block when there is a request for reading or writing the data from the plurality of client computing devices 12(l)-12(n).
[0027] However, if back in step 320, when the storage management computing device 14 determines that segments of the data blocks does not have the same checksum, then the No branch is taken to step 345. In this example, when the checksum of the two segments within the same data block does not match, it indicates that the data in the segments of the same block are not duplicate or repetitive data.
[0028] In step 345, the storage management computing device 14 stores data blocks in the format that was received in the plurality of storage drives 16(l)-16(n), although the storage management computing device 14 can store the received blocks of data in other formats and other memory locations. The exemplary flow of the method then proceeds back to step 305 where the storage management computing device 14 receives the next data blocks from the plurality of client computing devices 12(l)-12(n). [0029] Accordingly, as illustrated and described by way of the examples herein, this technology provides a number of advantages including providing methods, non-transitory computer readable media and devices for performing deduplication on data blocks. Using the above illustrated examples, the disclosed technology is able to significantly reduce the storage space of the data blocks in the storage drives thereby managing the memory space in a more efficient manner. Alternatively, the disclosed technology can also be used to perform
deduplication at granularity level even in cases where the full filesystem block is not full of same pattern.
[0030] Having thus described the basic concept of the technology, it will be rather apparent to those skilled in the art that the foregoing detailed disclosure is intended to be presented by way of example only, and is not limiting. Various alterations, improvements, and modifications will occur and are intended to those skilled in the art, though not expressly stated herein. These alterations, improvements, and modifications are intended to be suggested hereby, and are within the spirit and scope of the technology. Additionally, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations therefore, is not intended to limit the claimed processes to any order except as may be specified in the
claims. Accordingly, the invention is limited only by the following claims and equivalents thereto.
Claims
1. A method comprising:
receiving, by a computing device, a plurality of data blocks, wherein all of the received plurality of data blocks are of an equal memory size;
splitting, by the computing device, each of the received plurality of data blocks into a plurality of segments with a segment size less than the equal memory size;
identifying, by the computing device, duplicate data within each of the plurality of segments for each of the received plurality of data blocks; and
storing, by the computing device, one occurrence of the identified duplicate data from each of the received plurality of data blocks into a new data block.
2. The method as set forth in claim 1 further comprising, creating, by the computing device, a unique signature for the identified duplicate data in the plurality of segments for each of the plurality of data blocks.
3. The method as set forth in claim 2 further comprising, storing, by the computing device, the created unique signature in a header field of the one occurrence of duplicate data stored in the new data block.
4. The method as set forth in any preceding claim wherein identifying further comprises: determining, by the computing device, a checksum value for data in each of the plurality of segments; and
identifying, by the computing device, data in the plurality of segments as the duplicate data when the checksum value of one of the plurality of segments is equal to the checksum value of another one of the plurality of segments.
5. A non-transitory computer readable medium having stored thereon instructions for performing data deduplication on data blocks, the instructions comprising executable code which when executed by a processor causes the processor to perform steps comprising:
receiving a plurality of data blocks, wherein all of the received plurality of data blocks are of an equal memory size;
splitting each of the received plurality of data blocks into a plurality of segments with a segment size less than the equal memory size;
identifying duplicate data within each of the plurality of segments for each of the received plurality of data blocks; and
storing one occurrence of the identified duplicate data from each of the received plurality of data blocks into a new data block.
6. The medium as set forth in claim 5 further comprising, creating a unique signature for the identified duplicate data in the plurality of segments for each of the plurality of data blocks.
7. The medium as set forth in claim 6 further comprising, storing the created unique signature in a header field of the one occurrence of duplicate data stored in the new data block.
8. The medium as set forth in any of claims 5 to 7 wherein identifying further comprises: determining a checksum value for data in each of the plurality of segments; and identifying data in the plurality of segments as the duplicate data when the checksum value of one of the plurality of segments is equal to the checksum value of another one of the plurality of segments.
9. A storage management computing device comprising:
a processor;
a memory coupled to the processor, wherein the processor is configured to be capable of executing programmed instructions stored in the memory to:
receive a plurality of data blocks, wherein all of the received plurality of data blocks are of an equal memory size;
split each of the received plurality of data blocks into a plurality of segments with a segment size less than the equal memory size;
identify duplicate data within each of the plurality of segments for each of the received plurality of data blocks; and
store one occurrence of the identified duplicate data from each of the received plurality of data blocks into a new data block.
10. The device as set forth in claim 9 wherein the processor coupled to the memory is further configured to be capable of executing at least one additional programmed instruction stored in the memory to create a unique signature for the identified duplicate data in the plurality of segments for each of the plurality of data blocks.
11. The device as set forth in claim 10 wherein the processor coupled to the memory is further configured to be capable of executing at least one additional programmed instruction stored in the memory to store the created unique signature in a header field of the one occurrence of duplicate data stored in the new data block.
12. The device as set forth in any of claims 9 to 11 wherein the processor coupled to the memory is further configured to be capable of executing at least one additional programmed instruction stored in the memory wherein identifying further comprises:
determine a checksum value for data in each of the plurality of segments; and
identify data in the plurality of segments as the duplicate data when the checksum value of one of the plurality of segments is equal to the checksum value of another one of the plurality of segments.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/442,323 | 2017-02-24 | ||
| US15/442,323 US20180246666A1 (en) | 2017-02-24 | 2017-02-24 | Methods for performing data deduplication on data blocks at granularity level and devices thereof |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2018156503A1 true WO2018156503A1 (en) | 2018-08-30 |
Family
ID=61569437
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2018/018783 Ceased WO2018156503A1 (en) | 2017-02-24 | 2018-02-20 | Methods for performing data deduplication on data blocks at granularity level and devices thereof |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20180246666A1 (en) |
| WO (1) | WO2018156503A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111399768A (en) * | 2020-02-21 | 2020-07-10 | 苏州浪潮智能科技有限公司 | Data storage method, system, equipment and computer readable storage medium |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11392327B2 (en) * | 2020-09-09 | 2022-07-19 | Western Digital Technologies, Inc. | Local data compaction for integrated memory assembly |
| WO2022089755A1 (en) * | 2020-10-30 | 2022-05-05 | Huawei Technologies Co., Ltd. | Method and system for differential deduplication in untrusted storage |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110099351A1 (en) * | 2009-10-26 | 2011-04-28 | Netapp, Inc. | Use of Similarity Hash to Route Data for Improved Deduplication in a Storage Server Cluster |
| US9442806B1 (en) * | 2010-11-30 | 2016-09-13 | Veritas Technologies Llc | Block-level deduplication |
| US20170031614A1 (en) | 2015-07-31 | 2017-02-02 | Netapp, Inc. | Systems, methods and devices for addressing data blocks in mass storage filing systems |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5990810A (en) * | 1995-02-17 | 1999-11-23 | Williams; Ross Neil | Method for partitioning a block of data into subblocks and for storing and communcating such subblocks |
| WO2008070688A1 (en) * | 2006-12-04 | 2008-06-12 | Commvault Systems, Inc. | Systems and methods for creating copies of data, such as archive copies |
| US8315984B2 (en) * | 2007-05-22 | 2012-11-20 | Netapp, Inc. | System and method for on-the-fly elimination of redundant data |
| US8028106B2 (en) * | 2007-07-06 | 2011-09-27 | Proster Systems, Inc. | Hardware acceleration of commonality factoring with removable media |
| US8407193B2 (en) * | 2010-01-27 | 2013-03-26 | International Business Machines Corporation | Data deduplication for streaming sequential data storage applications |
| US9110936B2 (en) * | 2010-12-28 | 2015-08-18 | Microsoft Technology Licensing, Llc | Using index partitioning and reconciliation for data deduplication |
| US10031691B2 (en) * | 2014-09-25 | 2018-07-24 | International Business Machines Corporation | Data integrity in deduplicated block storage environments |
-
2017
- 2017-02-24 US US15/442,323 patent/US20180246666A1/en not_active Abandoned
-
2018
- 2018-02-20 WO PCT/US2018/018783 patent/WO2018156503A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110099351A1 (en) * | 2009-10-26 | 2011-04-28 | Netapp, Inc. | Use of Similarity Hash to Route Data for Improved Deduplication in a Storage Server Cluster |
| US9442806B1 (en) * | 2010-11-30 | 2016-09-13 | Veritas Technologies Llc | Block-level deduplication |
| US20170031614A1 (en) | 2015-07-31 | 2017-02-02 | Netapp, Inc. | Systems, methods and devices for addressing data blocks in mass storage filing systems |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111399768A (en) * | 2020-02-21 | 2020-07-10 | 苏州浪潮智能科技有限公司 | Data storage method, system, equipment and computer readable storage medium |
Also Published As
| Publication number | Publication date |
|---|---|
| US20180246666A1 (en) | 2018-08-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8165221B2 (en) | System and method for sampling based elimination of duplicate data | |
| EP2147437B1 (en) | Seeding replication | |
| US10467246B2 (en) | Content-based replication of data in scale out system | |
| KR101694984B1 (en) | Method of parity updates in asymmetric clustering filesystem | |
| US6810398B2 (en) | System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences | |
| US8402250B1 (en) | Distributed file system with client-side deduplication capacity | |
| US7925856B1 (en) | Method and apparatus for maintaining an amount of reserve space using virtual placeholders | |
| US20180357271A1 (en) | Object loss reporting in a data storage system | |
| JP6264666B2 (en) | Data storage method, data storage device, and storage device | |
| EP2416236B1 (en) | Data restore system and method | |
| US20160139996A1 (en) | Methods for providing unified storage for backup and disaster recovery and devices thereof | |
| WO2010064328A1 (en) | Information processing system and method of acquiring backup in an information processing system | |
| WO2008127545A1 (en) | Subsegmenting for efficient storage, resemblance determination, and transmission | |
| EP3229138B1 (en) | Method and device for data backup in a storage system | |
| US10628298B1 (en) | Resumable garbage collection | |
| US20170344431A1 (en) | Methods for proactive prediction of disk failure in a raid group and devices thereof | |
| WO2013136339A1 (en) | Regulating replication operation | |
| WO2018156503A1 (en) | Methods for performing data deduplication on data blocks at granularity level and devices thereof | |
| US8914324B1 (en) | De-duplication storage system with improved reference update efficiency | |
| JP6376626B2 (en) | Data storage method, data storage device, and storage device | |
| CN112650447A (en) | Backup method, system and device for ceph distributed block storage | |
| US11334456B1 (en) | Space efficient data protection | |
| EP3616044B1 (en) | Methods for performing global deduplication on data blocks and devices thereof | |
| JP2017142605A (en) | Backup restoration system and restoration method | |
| US10057350B2 (en) | Methods for transferring data based on actual size of a data operation and devices thereof |
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: 18709215 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: 18709215 Country of ref document: EP Kind code of ref document: A1 |