WO2017105533A1 - Data backup - Google Patents
Data backup Download PDFInfo
- Publication number
- WO2017105533A1 WO2017105533A1 PCT/US2016/024277 US2016024277W WO2017105533A1 WO 2017105533 A1 WO2017105533 A1 WO 2017105533A1 US 2016024277 W US2016024277 W US 2016024277W WO 2017105533 A1 WO2017105533 A1 WO 2017105533A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- snapshot
- request
- module
- page
- storage
- 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
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
Definitions
- FIG. 1 is a diagram of an example system for data backup
- FIG. 2 is a block diagram of an example computing device for data backup
- FIG. 3 is a block diagram of an example method for data backup
- FIG. 4 is a block diagram of an example system for data backup.
- a backup storage system may include, for example, a secondary storage media such as external hard disk drives, solid-state drives (SSD), a storage array, USB flash drives, storage tapes, CDs, and DVDs.
- SSD solid-state drives
- a backup storage system may include, for example, a secondary storage media such as external hard disk drives, solid-state drives (SSD), a storage array, USB flash drives, storage tapes, CDs, and DVDs.
- an approach to data backup may include taking snapshots of volumes of a storage system, and then backing up the data of those snapshots to another storage system or device. Backup solutions using such approach do not consider whether the data being read from the snapshot is from a written page or from an unwritten page. While reading from a snapshot, there is no mechanism that verifies the validity of a page to which a read request is sent. Thus, taking back up of a snapshot without considering the validity of page have drawbacks. For instance, it may cause unnecessary utilization of storage system resources (for example, storage controller processing power, memory, and 10 bandwidth) if the I/O read requests are for unwritten pages. Further, additional I/O load from back up clients may affect the main I/O load from various hosts and other applications.
- storage system resources for example, storage controller processing power, memory, and 10 bandwidth
- SAN resources for example, Host Bus Adaptor (HBA), switches and network bandwidth.
- HBA Host Bus Adaptor
- I/O read requests to unwritten pages of snapshots may go all the way to a storage system for processing even though there may not be any returnable data. This may affect the performance of backup clients especially when there are a large number of unwritten pages.
- an I/O module on a computing system may receive an I/O request for a snapshot of a storage volume on a storage system.
- the I/O module may determine whether the snapshot is supported by the I/O module.
- the I/O module may determine whether the I/O request is for a written or an unwritten page of the snapshot. If the I/O request is for the unwritten page of the snapshot, the request may be completed by the I/O module, and the I/O request is not sent to the storage system.
- the I/O module may send the I/O request to the storage system, for processing.
- the proposed solution provides an efficient mechanism of handling I/O read requests that are targeted to unwritten pages of a snapshot.
- the proposed solution reduces I/O load and resource utilization on storage systems, and improves the performance of data backup solutions.
- a "written page” may be defined as a page of a storage volume that has been written to at least once, for example, by a computing device.
- An "unwritten page” may be defined as a page of a storage volume that has not been written to even once.
- An unwritten pages may contain "zeroes" only.
- FIG. 1 is a block diagram of an example computing environment 100 for data backup.
- Computing environment 100 may include a computer system 102, and a storage system 104. Although only one computer system, and one storage system is shown in FIG. 1, other examples of this disclosure may include more than one computer system, and more than one storage system.
- Computer system 102 be any type of computing device capable of executing machine-readable instructions. Examples of computer system 102 may include, without limitation, a server, a desktop computer, a notebook computer, a tablet computer, a thin client, a mobile device, a personal digital assistant (PDA), a phablet, and the like.
- computer system may include one or more applications, for example, an email application and a database.
- computer system may be referred as a host system.
- storage system 104 may be an internal storage device, an external storage device, or a network attached storage device.
- Some non-limiting examples of storage system may include a hard disk drive, a storage disc (for example, a CD-ROM, a DVD, etc.), a storage tape, a solid state drive, a USB drive, a Serial Advanced Technology Attachment (SATA) disk drive, a Fibre Channel (FC) disk drive, a Serial Attached SCSI (SAS) disk drive, a magnetic tape drive, an optical jukebox, and the like.
- SATA Serial Advanced Technology Attachment
- FC Fibre Channel
- SAS Serial Attached SCSI
- storage system 104 may be a Direct Attached Storage (DAS) device, a Network Attached Storage (NAS) device, a Redundant Array of Inexpensive Disks (RAID), a data archival storage system, or a block-based device over a storage area network (SAN).
- DAS Direct Attached Storage
- NAS Network Attached Storage
- RAID Redundant Array of Inexpensive Disks
- SAN storage area network
- storage system 104 may be a storage array, which may include one or more storage drives (for example, hard disk drives, solid state drives, etc.).
- the physical storage space provided by storage system 104 may each be presented as a logical storage space.
- logical storage space also referred as “logical volume”, “virtual disk”, or “storage volume”
- LUN Logical Unit Number
- physical storage space provided by storage system 104 may be presented as multiple logical volumes. In such case, each of the logical storage spaces may be referred to by a separate LUN.
- a LUN may refer to the entire physical disk, or a subset of the physical disk or disk volume.
- storage system 104 is a storage array comprising multiple storage disk drives
- physical storage space provided by the disk drives may be aggregated as a logical storage space.
- the aggregated logical storage space may be divided into multiple logical storage volumes, wherein each logical storage volume may be referred to by a separate LUN.
- LUNs thus, may be used to identify individual or collections of physical disk devices for address by a protocol associated with a Small Computer System Interface (SCSI), Internet Small Computer System Interface (iSCSI), or Fibre Channel (FC).
- SCSI Small Computer System Interface
- iSCSI Internet Small Computer System Interface
- FC Fibre Channel
- storage system 104 may include one or more snapshots (for example, 114) of a storage volume.
- Computer system 102 may be in communication with storage system 104, for example, via a network.
- the computer network may be a wireless or wired network.
- the computer network may include, for example, a Local Area Network (LAN), a Wireless Local Area Network (WAN), a Metropolitan Area Network (MAN), a Storage Area Network (SAN), a Campus Area Network (CAN), or the like.
- the computer network may be a public network (for example, the Internet) or a private network (for example, an intranet).
- Computer system 102 may communicate with storage system 104 via a suitable interface or protocol such as, but not limited to, Internet Small Computer System Interface (iSCSI), Fibre Channel, Fibre Connection (FICON), HyperSCSI, and ATA over Ethernet.
- iSCSI Internet Small Computer System Interface
- FICON Fibre Connection
- HyperSCSI HyperSCSI
- ATA over Ethernet a suitable interface or protocol such as, but not limited to, Internet Small Computer System Interface (iSCSI), Fibre Channel, Fibre Connection (FICON), HyperSCSI, and ATA over Ethernet.
- computer system (or host system) 102 may include an I/O module 112.
- module may refer to a software component (machine readable instructions), a hardware component or a combination thereof.
- a module may include, by way of example, components, such as software components, processes, tasks, co-routines, functions, attributes, procedures, drivers, firmware, data, databases, data structures, Application Specific Integrated Circuits (ASIC) and other computing devices.
- a module may reside on a volatile or non-volatile storage medium and configured to interact with a processor of a computing device (e.g. 100).
- I/O module may include a dispatch read I/O module, a read I/O validation module, I/O request completion module, a driver initialization module, and a snapshot data layout bitmap management module (not shown in Fig. 1).
- dispatch read I/O module read I/O validation module
- I/O request completion module I/O request completion module
- driver initialization module driver initialization module
- snapshot data layout bitmap management module (not shown in Fig. 1).
- FIG. 2 is a block diagram of an example computing device 200 for data backup.
- computing device 200 may be analogous to computer system 102 of FIG. 1, in which like reference numerals correspond to the same or similar, though perhaps not identical, components.
- like reference numerals correspond to the same or similar, though perhaps not identical, components.
- components or reference numerals of FIG. 2 having a same or similarly described function in FIG. 1 are not being described in detail in connection with FIG. 2. Said components or reference numerals may be considered alike.
- Computing device 200 may be any type of computing system capable of executing machine-readable instructions. Examples of the computing device 200 may include, without limitation, a server, a desktop computer, a notebook computer, a tablet computer, a thin client, a mobile device, a personal digital assistant (PDA), a phablet, and the like.
- a server a desktop computer
- notebook computer a tablet computer
- thin client a mobile device
- PDA personal digital assistant
- Computing device 200 may include an I/O module 202.
- I/O module 202 may be analogous to I/O module 112 of FIG. 1.
- I/O module may include a dispatch read I/O module 204, a read I/O validation module 206, I/O request completion module 208, a driver initialization module 210, and a snapshot data layout bitmap management module 212.
- driver initialization module 210 may get initiated when I/O module is loaded on computer system 102, or when a snapshot is presented to computer system 102.
- the snapshot may be present on storage system 104.
- driver initialization module 210 may issue a command(s) to a storage system (for example, 104) that includes the snapshot to obtain information related to the snapshot.
- the command(s) may be specific to the storage system used to store the snapshot.
- the information related to the snapshot may include information related to page size in the snapshot, number of pages in the snapshot, and a bitmap of pages in the snapshot. The size of the page in the snapshot may vary according to the storage system that stores the snapshot.
- the page numbers corresponding to a Logical block addressing may be determined based on the page size in the snapshot.
- the number of bits in snapshot bitmap page is equal to the number of pages in the snapshot.
- Each bit of the bitmap may indicate whether a page is written or unwritten.
- the obtained information may be stored in snapshot data layout bitmap management module 212.
- the information stored in snapshot data layout bitmap management module 212 may be refreshed when the I/O module is loaded on computer system 102, or when a snapshot is presented to computer system 102.
- dispatch read I/O module 204 may receive or intercept an I/O request sent to a snapshot of a storage volume.
- the snapshot may be present on storage system 104.
- the I/O request may be sent by a computer application (for example, a backup application) on computer system.
- the I/O request may be sent to the snapshot to initiate (or during) data backup from the snapshot to another storage device or system (not shown in Fig. 1).
- Such storage device or system may be an internal storage device, an external storage device, or a network attached storage device.
- a storage system that may be used for data backup may include a hard disk drive, a storage disc (for example, a CD-ROM, a DVD, etc.), a storage tape, a solid state drive, a USB drive, a Serial Advanced Technology Attachment (SATA) disk drive, a Fibre Channel (FC) disk drive, a Serial Attached SCSI (SAS) disk drive, a magnetic tape drive, an optical jukebox, and the like.
- SATA Serial Advanced Technology Attachment
- FC Fibre Channel
- SAS Serial Attached SCSI
- the storage system used for data backup may be a Direct Attached Storage (DAS) device, a Network Attached Storage (NAS) device, a Redundant Array of Inexpensive Disks (RAID), a data archival storage system, or a block-based device over a storage area network (SAN).
- the storage system used for data backup may be a storage array, which may include one or more storage drives (for example, hard disk drives, solid state drives, etc.).
- dispatch read I/O module 204 may forward the I/O request to read I/O data validation module 206.
- Read I/O data validation module 206 may determine whether the I/O request is for an unwritten or a written page of the snapshot.
- read I/O data validation module 206 may first determine whether the I/O request is for a snapshot supported by the I/O module. In an instance, in order to make this determination, read I/O data validation module 206 may refer to data stored in snapshot data layout bitmap management module 212. Based on the data stored therein, if read I/O data validation module determines that the snapshot is supported by the I/O module, read I/O data validation module may proceed to determine whether the I/O request is for an unwritten or a written page of the snapshot. In an instance, in order to make this determination, read I/O data validation module 206 may refer to data stored in snapshot data layout bitmap management module 212.
- Read I/O data validation module 206 may identify the pages to which the LBA range in the I/O request maps to and refer to the snapshot's page bitmap in the snapshot data layout bitmap management module, to determine whether the I/O request is for the written page or the unwritten page of the snapshot. If read I/O data validation module determines that the I/O request is for a written page of the snapshot, the I/O request may be sent to the next layer of the operating system storage stack for further processing. In other words, read I/O data validation module may send the I/O request to the storage system that stores the snapshot for further processing.
- read I/O data validation module 206 may send the I/O request to I/O request completion module 208 for processing.
- the I/O request may be processed by the I/O module itself.
- read I/O data validation module may complete the I/O request in the I/O module by filling the allocated data buffer with zeroes and returning the output to an upper layer of the stack. The I/O request is not sent to the next layer of the operating system storage stack for further processing and, therefore, may not be forwarded to the storage system that stores the snapshot.
- I/O module 202 may be a device-specific module (DSM). In such case, I/O module 202 may include information related to a storage manufacturer's hardware. In an instance, I/O module 202 may include information related to hardware of storage system 104. In another instance, I/O module 202 may be as storage filter driver. In a yet another instance, I/O module 202 may be part of a data backup application. In another instance, I/O module 202 may part of a storage stack on a computer system (for example, 102).
- DSM device-specific module
- FIG. 3 is a block diagram of an example method 300 for data backup.
- the method 300 may be partially executed on a computer device such as computing system 102 of FIG. 1, and computing device 200 of FIG. 2. However, other suitable computing devices may execute method 300 as well.
- an I/O module on a computing system (for example, 102) may intercept an I/O request sent to a snapshot of a storage volume for backing up data stored in the snapshot.
- the I/O module may determine whether the I/O request is for an unwritten page of the snapshot.
- the I/O module may itself complete request.
- the I/O module may not send the I/O request to a storage system (for example, 104) that stores the snapshot for further processing.
- the I/O module may send the I/O request to a storage system (for example, 104) that stores the snapshot for further processing.
- FIG. 4 is a block diagram of an example system 400 for data backup.
- System 400 includes a processor 402 and a machine-readable storage medium 404 communicatively coupled through a system bus.
- system 400 may be analogous to systems 102 and 104 of FIG. 1, and computing device 200 of FIG. 2.
- Processor 402 may be any type of Central Processing Unit (CPU), microprocessor, or processing logic that interprets and executes machine-readable instructions stored in machine-readable storage medium 404.
- Machine-readable storage medium 404 may be a random access memory (RAM) or another type of dynamic storage device that may store information and machine-readable instructions that may be executed by processor 402.
- RAM random access memory
- machine-readable storage medium 404 may be Synchronous DRAM (SDRAM), Double Data Rate (DDR), Rambus DRAM (RDRAM), Rambus RAM, etc. or storage memory media such as a floppy disk, a hard disk, a CD- ROM, a DVD, a pen drive, and the like.
- machine-readable storage medium may be a non-transitory machine-readable medium.
- Machine-readable storage medium 404 may store instructions 406, 408, 410, and 412.
- instructions 406 may be executed by processor 402 to cause an I/O request to be issued, by a data backup application, to a snapshot of a storage volume.
- Instructions 408 may be executed by processor 402 to cause the data backup application to determine whether the I/O request is for a written page or an unwritten page of the snapshot.
- Instructions 410 may be executed by processor 402 to cause the data backup application to send the I/O request to the snapshot, if the I/O request is for the written page of the snapshot.
- Instructions 410 may be executed by processor 410 to cause the data backup application to complete the I/O request, if the I/O request is for the unwritten page of the snapshot.
- FIG. 4 For the purpose of simplicity of explanation, the example method of FIG. 4 is shown as executing serially, however it is to be understood and appreciated that the present and other examples are not limited by the illustrated order.
- the example systems of FIGS. 1, 3, and 4, and method of FIG. 4 may be implemented in the form of a computer program product including computer-executable instructions, such as program code, which may be run on any suitable computing device in conjunction with a suitable operating system (for example, Microsoft Windows, Linux, UNIX, and the like). Examples within the scope of the present solution may also include program products comprising non-transitory computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer.
- such computer- readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM, magnetic disk storage or other storage devices, or any other medium which can be used to carry or store desired program code in the form of computer-executable instructions and which can be accessed by a general purpose or special purpose computer.
- the computer readable instructions can also be accessed from memory and executed by a processor.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Examples disclosed herein relate to data backup. In an example, an I/O module on a computing system may intercept an I/O request sent to a snapshot of a storage volume for backing up data stored in the snapshot. The I/O module may determine whether the I/O request is for an unwritten page of the snapshot. If the I/O request is for the unwritten page of the snapshot, the I/O module may complete the request.
Description
DATA BACKUP
Background
[001] Organizations may need to deal with a vast amount of business data these days, which could range from a few terabytes to multiple petabytes of data. Loss of data or inability to access data may impact an enterprise in various ways such as loss of potential business and lower customer satisfaction.
Brief Description of the Drawings
[002] For a better understanding of the solution, embodiments will now be described, purely by way of example, with reference to the accompanying drawings, in which:
[003] FIG. 1 is a diagram of an example system for data backup;
[004] FIG. 2 is a block diagram of an example computing device for data backup;
[005] FIG. 3 is a block diagram of an example method for data backup; and
[006] FIG. 4 is a block diagram of an example system for data backup.
Detailed Description
[007] Organizations may back up their data for various reasons. For instance, in order to recover data after its loss, or to recover data from an earlier time. Organizations may back up their data to a backup storage system or device. A backup storage system may include, for example, a secondary storage media such as external hard
disk drives, solid-state drives (SSD), a storage array, USB flash drives, storage tapes, CDs, and DVDs.
[008] In an instance, an approach to data backup may include taking snapshots of volumes of a storage system, and then backing up the data of those snapshots to another storage system or device. Backup solutions using such approach do not consider whether the data being read from the snapshot is from a written page or from an unwritten page. While reading from a snapshot, there is no mechanism that verifies the validity of a page to which a read request is sent. Thus, taking back up of a snapshot without considering the validity of page have drawbacks. For instance, it may cause unnecessary utilization of storage system resources (for example, storage controller processing power, memory, and 10 bandwidth) if the I/O read requests are for unwritten pages. Further, additional I/O load from back up clients may affect the main I/O load from various hosts and other applications. It may also lead to unnecessary utilization of SAN resources (for example, Host Bus Adaptor (HBA), switches and network bandwidth). Furthermore, I/O read requests to unwritten pages of snapshots may go all the way to a storage system for processing even though there may not be any returnable data. This may affect the performance of backup clients especially when there are a large number of unwritten pages.
[009] To address these issues, the present disclosure describes various examples for data backup. In an example, an I/O module on a computing system may receive an I/O request for a snapshot of a storage volume on a storage system. The I/O module may determine whether the snapshot is supported by the I/O module. In response to the determination that the snapshot is supported by the I/O module, the I/O module may determine whether the I/O request is for a written or an unwritten page of the snapshot. If the I/O request is for the unwritten page of the snapshot, the request may be completed by the I/O module, and the I/O request is not sent to the storage system. If the I/O request is for the written page of the snapshot, the I/O module may send the I/O request to the storage system, for processing.
[0010] In an instance, the proposed solution provides an efficient mechanism of handling I/O read requests that are targeted to unwritten pages of a snapshot. The proposed solution reduces I/O load and resource utilization on storage systems, and improves the performance of data backup solutions.
[0011] A "written page" may be defined as a page of a storage volume that has been written to at least once, for example, by a computing device. An "unwritten page" may be defined as a page of a storage volume that has not been written to even once. An unwritten pages may contain "zeroes" only.
[0012] FIG. 1 is a block diagram of an example computing environment 100 for data backup. Computing environment 100 may include a computer system 102, and a storage system 104. Although only one computer system, and one storage system is shown in FIG. 1, other examples of this disclosure may include more than one computer system, and more than one storage system.
[0013] Computer system 102 be any type of computing device capable of executing machine-readable instructions. Examples of computer system 102 may include, without limitation, a server, a desktop computer, a notebook computer, a tablet computer, a thin client, a mobile device, a personal digital assistant (PDA), a phablet, and the like. In an example, computer system may include one or more applications, for example, an email application and a database. In an example, computer system may be referred as a host system.
[0014] In an example, storage system 104 may be an internal storage device, an external storage device, or a network attached storage device. Some non-limiting examples of storage system may include a hard disk drive, a storage disc (for example, a CD-ROM, a DVD, etc.), a storage tape, a solid state drive, a USB drive, a Serial Advanced Technology Attachment (SATA) disk drive, a Fibre Channel (FC) disk
drive, a Serial Attached SCSI (SAS) disk drive, a magnetic tape drive, an optical jukebox, and the like. In an example, storage system 104 may be a Direct Attached Storage (DAS) device, a Network Attached Storage (NAS) device, a Redundant Array of Inexpensive Disks (RAID), a data archival storage system, or a block-based device over a storage area network (SAN). In another example, storage system 104 may be a storage array, which may include one or more storage drives (for example, hard disk drives, solid state drives, etc.).
[0015] In an example, the physical storage space provided by storage system 104 may each be presented as a logical storage space. Such logical storage space (also referred as "logical volume", "virtual disk", or "storage volume") may be identified using a "Logical Unit Number" (LUN). In another instance, physical storage space provided by storage system 104 may be presented as multiple logical volumes. In such case, each of the logical storage spaces may be referred to by a separate LUN. Thus, if storage system 104 is a physical disk, a LUN may refer to the entire physical disk, or a subset of the physical disk or disk volume. In another example, if storage system 104 is a storage array comprising multiple storage disk drives, physical storage space provided by the disk drives may be aggregated as a logical storage space. The aggregated logical storage space may be divided into multiple logical storage volumes, wherein each logical storage volume may be referred to by a separate LUN. LUNs, thus, may be used to identify individual or collections of physical disk devices for address by a protocol associated with a Small Computer System Interface (SCSI), Internet Small Computer System Interface (iSCSI), or Fibre Channel (FC). In an example, storage system 104 may include one or more snapshots (for example, 114) of a storage volume. 16] Computer system 102 may be in communication with storage system 104, for example, via a network. The computer network may be a wireless or wired network. The computer network may include, for example, a Local Area Network (LAN), a Wireless Local Area Network (WAN), a Metropolitan Area Network (MAN), a Storage
Area Network (SAN), a Campus Area Network (CAN), or the like. Further, the computer network may be a public network (for example, the Internet) or a private network (for example, an intranet).
[0017] Computer system 102 may communicate with storage system 104 via a suitable interface or protocol such as, but not limited to, Internet Small Computer System Interface (iSCSI), Fibre Channel, Fibre Connection (FICON), HyperSCSI, and ATA over Ethernet.
[0018] In the example of FIG. 1, computer system (or host system) 102 may include an I/O module 112. The term "module" may refer to a software component (machine readable instructions), a hardware component or a combination thereof. A module may include, by way of example, components, such as software components, processes, tasks, co-routines, functions, attributes, procedures, drivers, firmware, data, databases, data structures, Application Specific Integrated Circuits (ASIC) and other computing devices. A module may reside on a volatile or non-volatile storage medium and configured to interact with a processor of a computing device (e.g. 100).
[0019] In an example, I/O module may include a dispatch read I/O module, a read I/O validation module, I/O request completion module, a driver initialization module, and a snapshot data layout bitmap management module (not shown in Fig. 1). Some of the example functionalities that may be performed by dispatch read I/O module, read I/O validation module, I/O request completion module, driver initialization module, and snapshot data layout bitmap management module are described in reference to FIG. 2 below.
[0020] FIG. 2 is a block diagram of an example computing device 200 for data backup.
In an example, computing device 200 may be analogous to computer system 102 of FIG. 1, in which like reference numerals correspond to the same or similar, though
perhaps not identical, components. For the sake of brevity, components or reference numerals of FIG. 2 having a same or similarly described function in FIG. 1 are not being described in detail in connection with FIG. 2. Said components or reference numerals may be considered alike.
[0021] Computing device 200 may be any type of computing system capable of executing machine-readable instructions. Examples of the computing device 200 may include, without limitation, a server, a desktop computer, a notebook computer, a tablet computer, a thin client, a mobile device, a personal digital assistant (PDA), a phablet, and the like.
[0022] Computing device 200 may include an I/O module 202. In an example, I/O module 202 may be analogous to I/O module 112 of FIG. 1. In an example, I/O module may include a dispatch read I/O module 204, a read I/O validation module 206, I/O request completion module 208, a driver initialization module 210, and a snapshot data layout bitmap management module 212.
[0023] In an example, driver initialization module 210 may get initiated when I/O module is loaded on computer system 102, or when a snapshot is presented to computer system 102. In an instance, the snapshot may be present on storage system 104. Upon initiation, driver initialization module 210 may issue a command(s) to a storage system (for example, 104) that includes the snapshot to obtain information related to the snapshot. In an instance, the command(s) may be specific to the storage system used to store the snapshot. Some non-limiting examples of the information related to the snapshot may include information related to page size in the snapshot, number of pages in the snapshot, and a bitmap of pages in the snapshot. The size of the page in the snapshot may vary according to the storage system that stores the snapshot. The page numbers corresponding to a Logical block addressing (LBA) may be determined based on the page size in the snapshot. The number of bits in snapshot bitmap page is equal to the number of
pages in the snapshot. Each bit of the bitmap may indicate whether a page is written or unwritten.
[0024] In an instance, the obtained information may be stored in snapshot data layout bitmap management module 212. In an instance, the information stored in snapshot data layout bitmap management module 212 may be refreshed when the I/O module is loaded on computer system 102, or when a snapshot is presented to computer system 102.
[0025] In an example, dispatch read I/O module 204 may receive or intercept an I/O request sent to a snapshot of a storage volume. The snapshot may be present on storage system 104. In an example, the I/O request may be sent by a computer application (for example, a backup application) on computer system. In an instance, the I/O request may be sent to the snapshot to initiate (or during) data backup from the snapshot to another storage device or system (not shown in Fig. 1). Such storage device or system may be an internal storage device, an external storage device, or a network attached storage device. Some non-limiting examples of a storage system that may be used for data backup may include a hard disk drive, a storage disc (for example, a CD-ROM, a DVD, etc.), a storage tape, a solid state drive, a USB drive, a Serial Advanced Technology Attachment (SATA) disk drive, a Fibre Channel (FC) disk drive, a Serial Attached SCSI (SAS) disk drive, a magnetic tape drive, an optical jukebox, and the like. In an example, the storage system used for data backup may be a Direct Attached Storage (DAS) device, a Network Attached Storage (NAS) device, a Redundant Array of Inexpensive Disks (RAID), a data archival storage system, or a block-based device over a storage area network (SAN). In another example, the storage system used for data backup may be a storage array, which may include one or more storage drives (for example, hard disk drives, solid state drives, etc.).
[0026] Upon receipt, dispatch read I/O module 204 may forward the I/O request to read I/O data validation module 206. Read I/O data validation module 206 may determine whether the I/O request is for an unwritten or a written page of the snapshot. In an instance, read I/O data validation module 206 may first determine whether the I/O request is for a snapshot supported by the I/O module. In an instance, in order to make this determination, read I/O data validation module 206 may refer to data stored in snapshot data layout bitmap management module 212. Based on the data stored therein, if read I/O data validation module determines that the snapshot is supported by the I/O module, read I/O data validation module may proceed to determine whether the I/O request is for an unwritten or a written page of the snapshot. In an instance, in order to make this determination, read I/O data validation module 206 may refer to data stored in snapshot data layout bitmap management module 212.
[0027] Read I/O data validation module 206 may identify the pages to which the LBA range in the I/O request maps to and refer to the snapshot's page bitmap in the snapshot data layout bitmap management module, to determine whether the I/O request is for the written page or the unwritten page of the snapshot. If read I/O data validation module determines that the I/O request is for a written page of the snapshot, the I/O request may be sent to the next layer of the operating system storage stack for further processing. In other words, read I/O data validation module may send the I/O request to the storage system that stores the snapshot for further processing.
[0028] On the other hand, if read I/O data validation module 206 determines that the I/O request is for an unwritten page of the snapshot, read I/O data validation module may send the I/O request to I/O request completion module 208 for processing. In other words, the I/O request may be processed by the I/O module itself. In an instance, read I/O data validation module may complete the I/O request in the I/O module by filling the allocated data buffer with zeroes and returning the
output to an upper layer of the stack. The I/O request is not sent to the next layer of the operating system storage stack for further processing and, therefore, may not be forwarded to the storage system that stores the snapshot.
[0029] In an instance, I/O module 202 may be a device-specific module (DSM). In such case, I/O module 202 may include information related to a storage manufacturer's hardware. In an instance, I/O module 202 may include information related to hardware of storage system 104. In another instance, I/O module 202 may be as storage filter driver. In a yet another instance, I/O module 202 may be part of a data backup application. In another instance, I/O module 202 may part of a storage stack on a computer system (for example, 102).
[0030] FIG. 3 is a block diagram of an example method 300 for data backup. The method 300, which is described below, may be partially executed on a computer device such as computing system 102 of FIG. 1, and computing device 200 of FIG. 2. However, other suitable computing devices may execute method 300 as well. At block 302, an I/O module on a computing system (for example, 102) may intercept an I/O request sent to a snapshot of a storage volume for backing up data stored in the snapshot. At block 304, the I/O module may determine whether the I/O request is for an unwritten page of the snapshot. At block 306, if the I/O request is for the unwritten page of the snapshot, the I/O module may itself complete request. In such case, the I/O module may not send the I/O request to a storage system (for example, 104) that stores the snapshot for further processing. On the other hand, if the I/O request is for a written page of the snapshot, the I/O module may send the I/O request to a storage system (for example, 104) that stores the snapshot for further processing.
[0031] FIG. 4 is a block diagram of an example system 400 for data backup. System 400 includes a processor 402 and a machine-readable storage medium 404 communicatively coupled through a system bus. In an example, system 400 may be
analogous to systems 102 and 104 of FIG. 1, and computing device 200 of FIG. 2. Processor 402 may be any type of Central Processing Unit (CPU), microprocessor, or processing logic that interprets and executes machine-readable instructions stored in machine-readable storage medium 404. Machine-readable storage medium 404 may be a random access memory (RAM) or another type of dynamic storage device that may store information and machine-readable instructions that may be executed by processor 402. For example, machine-readable storage medium 404 may be Synchronous DRAM (SDRAM), Double Data Rate (DDR), Rambus DRAM (RDRAM), Rambus RAM, etc. or storage memory media such as a floppy disk, a hard disk, a CD- ROM, a DVD, a pen drive, and the like. In an example, machine-readable storage medium may be a non-transitory machine-readable medium.
[0032] Machine-readable storage medium 404 may store instructions 406, 408, 410, and 412. In an example, instructions 406 may be executed by processor 402 to cause an I/O request to be issued, by a data backup application, to a snapshot of a storage volume. Instructions 408 may be executed by processor 402 to cause the data backup application to determine whether the I/O request is for a written page or an unwritten page of the snapshot. Instructions 410 may be executed by processor 402 to cause the data backup application to send the I/O request to the snapshot, if the I/O request is for the written page of the snapshot. Instructions 410 may be executed by processor 410 to cause the data backup application to complete the I/O request, if the I/O request is for the unwritten page of the snapshot.
[0033] For the purpose of simplicity of explanation, the example method of FIG. 4 is shown as executing serially, however it is to be understood and appreciated that the present and other examples are not limited by the illustrated order. The example systems of FIGS. 1, 3, and 4, and method of FIG. 4 may be implemented in the form of a computer program product including computer-executable instructions, such as program code, which may be run on any suitable computing device in conjunction with a suitable operating system (for example, Microsoft Windows, Linux, UNIX, and
the like). Examples within the scope of the present solution may also include program products comprising non-transitory computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer. By way of example, such computer- readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM, magnetic disk storage or other storage devices, or any other medium which can be used to carry or store desired program code in the form of computer-executable instructions and which can be accessed by a general purpose or special purpose computer. The computer readable instructions can also be accessed from memory and executed by a processor. 34] It should be noted that the above-described examples of the present solution is for the purpose of illustration only. Although the solution has been described in conjunction with a specific example thereof, numerous modifications may be possible without materially departing from the teachings and advantages of the subject matter described herein. Other substitutions, modifications and changes may be made without departing from the spirit of the present solution. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the steps of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive.
Claims
1. A method of data backup, comprising:
intercepting, by an I/O module on a computing system, an I/O request sent to a snapshot of a storage volume on a storage system, for backing up data stored in the snapshot;
determining, by the I/O module, whether the I/O request is for an unwritten page of the snapshot; and
if the I/O request is for the unwritten page of the snapshot, completing the I/O request by the I/O module.
2. The method of claim 1, wherein determining whether the I/O request is for the unwritten page of the snapshot, comprises:
obtaining, by the I/O module, information related to the snapshot from the storage system; and
determining, by the I/O module, that the I/O request is for the unwritten page of the snapshot, based on the obtained information.
3. The method of claim 1, further comprising:
determining, by the I/O module, whether the I/O request is for a written page of the snapshot; and
if the I/O request is for the written page of the snapshot, sending, by the I/O module, the I/O request to the storage system.
4. The method of claim 3, wherein determining whether the I/O request is for the written page of the snapshot, comprises:
obtaining, by the I/O module, information related to the snapshot from the storage system; and
determining, by the I/O module, that the I/O request is for the written page of the snapshot, based on the obtained information.
5. The method of claim 1, wherein the I/O request is sent by a data backup application for backing data stored in the snapshot to another storage system.
6. The method of claim 1, wherein the I/O module is a storage filter driver.
7. The method of claim 1, wherein the I/O module is a Device Specific Module (DSM).
8. The method of claim 1, further comprising:
determining, by the I/O module, that the snapshot is supported by the I/O module.
9. A system for data backup, comprising:
a dispatch read I/O module to intercept an I/O request intended for a snapshot of a storage volume;
a read I/O module to determine whether the I/O request is for a written or an unwritten page of the snapshot and, if the I/O request is for the written page of the snapshot, send the I/O request to a storage system that stores the snapshot; and
an I/O request completion module to complete the I/O request, if the I/O request is for the unwritten page of the snapshot.
10. The system of claim 9, further comprising a snapshot data layout bitmap management module to obtain and store information related to the snapshot from the storage system.
11. The system of claim 10, wherein the read I/O module is to:
determine, based on the information stored in the snapshot data layout bitmap management module, whether the I/O request is for the written page or the unwritten page of the snapshot.
12. The system of claim 10, wherein the information includes one of page size in the snapshot, number of pages in the snapshot, and a bitmap of pages in the snapshot.
13. A non-transitory machine-readable storage medium comprising instructions for data backup, the instructions executable by a processor to:
cause an I/O request to be issued, by a backup application, to a snapshot of a storage volume;
cause the backup application to determine whether the I/O request is for a written page or an unwritten page of the snapshot;
cause the backup application to send the I/O request to the snapshot, if the I/O request is for the written page of the snapshot; and
cause the backup application to complete the I/O request, if the I/O request is for the unwritten page of the snapshot.
14. The storage medium of claim 13, wherein the I/O request to the snapshot is for backing up data stored in the snapshot to a storage system.
15. The storage medium of claim 13, further comprising instructions to stop sending the I/O request to the snapshot, if the I/O request is for the unwritten page of the snapshot.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IN6764/CHE/2015 | 2015-12-18 | ||
| IN6764CH2015 | 2015-12-18 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2017105533A1 true WO2017105533A1 (en) | 2017-06-22 |
Family
ID=59057154
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2016/024277 Ceased WO2017105533A1 (en) | 2015-12-18 | 2016-03-25 | Data backup |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2017105533A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113722149A (en) * | 2021-07-23 | 2021-11-30 | 苏州浪潮智能科技有限公司 | Data backup method and device and related components |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1476810B1 (en) * | 2002-02-15 | 2010-06-09 | International Business Machines Corporation | Providing a snapshot of a subset of a file system |
| US20110093437A1 (en) * | 2009-10-15 | 2011-04-21 | Kishore Kaniyar Sampathkumar | Method and system for generating a space-efficient snapshot or snapclone of logical disks |
| US20110107025A1 (en) * | 2009-10-29 | 2011-05-05 | Symantec Corporation | Synchronizing snapshot volumes across hosts |
| US8127096B1 (en) * | 2007-07-19 | 2012-02-28 | American Megatrends, Inc. | High capacity thin provisioned storage server with advanced snapshot mechanism |
| US8356148B2 (en) * | 2009-09-22 | 2013-01-15 | Lsi Corporation | Snapshot metadata management in a storage system |
-
2016
- 2016-03-25 WO PCT/US2016/024277 patent/WO2017105533A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1476810B1 (en) * | 2002-02-15 | 2010-06-09 | International Business Machines Corporation | Providing a snapshot of a subset of a file system |
| US8127096B1 (en) * | 2007-07-19 | 2012-02-28 | American Megatrends, Inc. | High capacity thin provisioned storage server with advanced snapshot mechanism |
| US8356148B2 (en) * | 2009-09-22 | 2013-01-15 | Lsi Corporation | Snapshot metadata management in a storage system |
| US20110093437A1 (en) * | 2009-10-15 | 2011-04-21 | Kishore Kaniyar Sampathkumar | Method and system for generating a space-efficient snapshot or snapclone of logical disks |
| US20110107025A1 (en) * | 2009-10-29 | 2011-05-05 | Symantec Corporation | Synchronizing snapshot volumes across hosts |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113722149A (en) * | 2021-07-23 | 2021-11-30 | 苏州浪潮智能科技有限公司 | Data backup method and device and related components |
| CN113722149B (en) * | 2021-07-23 | 2023-06-16 | 苏州浪潮智能科技有限公司 | Data backup method and device and related components |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10152254B1 (en) | Distributing mapped raid disk extents when proactively copying from an EOL disk | |
| US8938584B2 (en) | System and method to keep parity consistent in an array of solid state drives when data blocks are de-allocated | |
| US9009724B2 (en) | Load balancing data access in virtualized storage nodes | |
| US9934108B2 (en) | System and method for optimizing mirror creation | |
| US20180275919A1 (en) | Prefetching data in a distributed storage system | |
| US8868869B2 (en) | Enhanced copy-on-write operation for solid state drives | |
| JP6409613B2 (en) | Information processing apparatus, multipath control method, and multipath control program | |
| US20180260281A1 (en) | Restoring a storage volume from a backup | |
| CN106776147B (en) | Differential data backup method and differential data backup device | |
| EP2836900B1 (en) | Creating encrypted storage volumes | |
| JP2020533694A (en) | Dynamic relocation of data using cloud-based ranks | |
| US11157198B2 (en) | Generating merge-friendly sequential IO patterns in shared logger page descriptor tiers | |
| US20150234595A1 (en) | Storage device | |
| US11429318B2 (en) | Redirect-on-write snapshot mechanism with delayed data movement | |
| US20150370716A1 (en) | System and Method to Enable Dynamic Changes to Virtual Disk Stripe Element Sizes on a Storage Controller | |
| US11416330B2 (en) | Lifecycle of handling faults in next generation storage systems | |
| US20130179634A1 (en) | Systems and methods for idle time backup of storage system volumes | |
| US9229814B2 (en) | Data error recovery for a storage device | |
| KR102277731B1 (en) | Method for operating storage system and storage controller | |
| WO2017034610A1 (en) | Rebuilding storage volumes | |
| WO2017105533A1 (en) | Data backup | |
| CN112540869A (en) | Memory controller, memory device, and method of operating memory device | |
| US11662949B2 (en) | Storage server, a method of operating the same storage server and a data center including the same storage server | |
| WO2016209313A1 (en) | Task execution in a storage area network (san) | |
| TW201443647A (en) | Tiered data storage system with data management and method of operation 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: 16876181 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: 16876181 Country of ref document: EP Kind code of ref document: A1 |