US7100089B1 - Determining differences between snapshots - Google Patents
Determining differences between snapshots Download PDFInfo
- Publication number
- US7100089B1 US7100089B1 US10/237,432 US23743202A US7100089B1 US 7100089 B1 US7100089 B1 US 7100089B1 US 23743202 A US23743202 A US 23743202A US 7100089 B1 US7100089 B1 US 7100089B1
- Authority
- US
- United States
- Prior art keywords
- snapshot
- volume
- volumes
- exceptions
- data
- 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.)
- Expired - Lifetime, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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 operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Definitions
- the present invention relates generally to data storage systems and, more particularly, to determining differences between snapshots.
- Storage systems can be made up of multiple interconnected storage devices connected to one or more servers to increase performance in terms of storage capacity, reliability, scalability, and availability.
- System storage performance can be enhanced by using system management operations including management of data communication and management of data placement.
- Data system management has multiple aspects including techniques for data storage, storage device mapping, data recovery, data integrity, backup operations, and storage element utilization.
- Storage systems can store large amounts of data at least partly on the basis of inherent and simple scalability.
- the volume capacity can be simply increased by adding physical storage devices.
- the mere addition of hardware resources does not create the most efficient and useful storage system.
- Virtualization of memory facilitates the management of data storage systems.
- Virtualization yields a “virtual volume” which is an abstraction of the various data storage devices in the systems.
- a virtual volume of memory can be managed by maintaining a “change log” or a “dirty block list” for tracking which blocks of data on a virtual volume have changed over time.
- Such techniques were disadvantageous in that the change logs or dirty block lists were additional data structures that needed to be defined and maintained by the data storage systems.
- a method for determining differences between two snapshots of a volume of memory represented by a snapshot tree.
- the snapshot tree includes a plurality of snapshot volumes. Each of the two snapshots corresponds to a respective snapshot volume of the snapshot tree.
- the snapshot volumes corresponding to the two snapshots are ascended in the snapshot tree. The method begins with the older and ends with the more recent of the snapshot volumes corresponding to the two snapshots.
- the method comprises for each snapshot volume: searching for exceptions in the snapshot volume presently being considered; if exceptions are found, processing for the exceptions; otherwise, if no exceptions are found, determining whether the snapshot volume presently being considered is the more recent of the snapshot volumes corresponding to the two snapshots; and if the snapshot volume presently being considered is not the more recent of the snapshot volumes corresponding to the two snapshots, moving to the next snapshot volume up the tree from the snapshot volume presently being considered and treating the next snapshot volume as the snapshot presently being considered.
- a method for synchronization of a backup copy of a volume of memory represented by a snapshot tree.
- the snapshot tree includes a plurality of snapshot volumes, each snapshot volume corresponding to a respective snapshot of the volume of memory.
- the method comprises the following: determining whether there are any exceptions in any of the snapshot volumes in the snapshot tree between and including the snapshot volumes corresponding to a first and a second snapshot; if there are exceptions, processing for the exceptions to synchronize the backup copy of the memory volume; otherwise, if there are no exceptions, ignoring the snapshot volumes.
- FIG. 1 illustrates a scalable cluster data handling system, which can be an exemplary environment within which embodiments of the present invention may operate.
- FIG. 2 is a block diagram of a scalable cluster data handling software architecture.
- FIG. 3 is a schematic block diagram that illustrates an example of the use of a virtual volume region table for handling data in a data storage management system, according to an embodiment of the present invention.
- FIG. 4 illustrates the access to the virtual volumes of multiple nodes by a host device through the virtual volume region tables on several nodes.
- FIG. 5 illustrates a number of data structures for a snapshot technique that may be created as data is written or modified in a base virtual volume.
- FIG. 6A illustrates one view of storage volumes for the data structures FIG. 5 .
- FIG. 6B illustrates another view of storage volumes for the data structures of FIG. 5 .
- FIG. 7 is a flowchart for an exemplary method for a multiple level mapping for a virtual volume, according to an embodiment of the present invention.
- FIG. 8 illustrates a snapshot tree descended from a base volume.
- FIG. 9 is a flowchart of an exemplary method for determining differences between two snapshot volumes, where one of the snapshot volumes is ascended from the other in the snapshot tree.
- FIG. 10 is a flowchart of an exemplary method for determining differences between two snapshot volumes which are not ascended.
- FIGS. 1–10 of the drawings The preferred embodiments for the present invention and their advantages are best understood by referring to FIGS. 1–10 of the drawings. Like numerals are used for like and corresponding parts of the various drawings.
- a process, method, routine, or sub-routine is generally considered to be a sequence of computer-executed steps leading to a desired result. These steps generally require manipulations of physical quantities. Usually, although not necessarily, these quantities take the form of electrical, magnetic, or optical signals capable of being stored, transferred, combined, compared, or otherwise manipulated. It is conventional for those skilled in the art to refer to these signals as bits, values, elements, symbols, characters, text, terms, numbers, records, files, or the like. It should be kept in mind, however, that these and some other terms should be associated with appropriate physical quantities for computer operations, and that these terms are merely conventional labels applied to physical quantities that exist within and during operation of the computer.
- manipulations within the computer system are often referred to in terms such as adding, comparing, moving, searching, or the like, which are often associated with manual operations performed by a human operator. It must be understood that no involvement of the human operator may be necessary, or even desirable, in the present invention. Some of the operations described herein are machine operations performed in conjunction with the human operator or user that interacts with the computer or system.
- systems and methods are provided for determining differences between snapshots of a volume of memory.
- the data and information for the snapshots may be captured or reflected in one or more exception tables. Using these exception tables, the methods and systems quickly and efficiently determine which blocks of data on the memory volume have changed over time.
- the systems and methods determine differences between two snapshot volumes in a snapshot tree, which identifies modified pages of data. The methods and systems advantageously support or facilitate rapid synchronization of various backup copies for the memory volume.
- FIG. 1 illustrates a scalable cluster data handling system 10 , which can be an exemplary environment within which embodiments of the present invention may operate.
- the scalable cluster data handling system 10 is an architecture suitable for communication-intensive, highly available data storage, processing, and/or routing.
- the architecture is useful for many applications to provide high performance, scalable, flexible, and cost-effective storage arrays.
- Scalable cluster data handling system 10 can be incorporated or used in a data storage system to provide mass storage for data and information routed, generated, manipulated, processed, or otherwise operated upon, by various host devices 18 .
- host devices 18 can include various processing devices, such as, for example, server clusters, personal computers, mainframes, and server towers.
- Host devices 18 may also include various peripheral devices, such as, for example, printers, a modems, and routers.
- Each of these host devices 18 is connected to scalable cluster data handling system 10 .
- the terms “connected” or “coupled” mean any connection or coupling, either direct or indirect, between two or more elements; such connection or coupling can be physical or logical.
- the data storage system (in which scalable cluster data handling system 10 may be incorporated) also includes a number of storage devices 20 .
- These storage devices 20 can be implemented with any suitable mass storage resource, such as tape or disk storage.
- the storage devices 20 may be one or more JBOD (Just a Bunch of Disks) facilities comprising a plurality of disk drives.
- the disk drives can be mounted in a rack-mountable storage shelf having one or more hot-pluggable disk drive sleds. Each sled may accommodate four disk drives on a pair of fibre channel (FC) connections.
- FC fibre channel
- the sleds can be configured in one of two possible ways: (1) all sleds on the same redundant FC connections, or (2) half of the sleds on one set of redundant FC connections and the other half of the sleds on another set of redundant FC connections.
- Scalable cluster data handling system 10 allows the host devices 18 to store and retrieve information from the storage devices 20 .
- the scalable cluster data handling system 10 includes a plurality of interconnected nodes 12 .
- eight nodes 12 are provided, with each node 12 connected to every other node 12 by a respective high-speed link 16 .
- Each node 12 generally functions as a point of interface/access for one or more host devices 18 and storage devices 20 .
- a node 12 can be a modular computer component that has one or more PCI bus slots or other interfaces for connections to storage devices 20 and host devices 18 .
- each node 12 may include one or more peripheral component interconnect (PCI) slots, each of which supports a respective connection 14 .
- PCI peripheral component interconnect
- connection 14 can connect a host device 18 or a storage device 20 .
- Connections can be small computer system interface (SCSI), fibre channel (FC), fibre channel arbitrated loop (FCAL), Ethernet, Infiniband, or any other suitable connection.
- a node 12 performs software processes (procedures, methods, and routines) under control of independently executing operating systems.
- a host device 18 i.e., Host 1 is in communication with a plurality of nodes 12 (i.e., Node 0 and Node 1). These nodes 12 control access to a plurality of storage devices 20 (e.g., physical disks) that are separated into multiple storage regions.
- a virtual volume mapping or table (described herein) at each node 12 comprises pointers that are configured to designate the location of data on the storage devices 20 .
- the host device 18 accesses all of the storage devices of the region table in the manner of accessing a single large, fast, and reliable virtual disk with multiple redundant paths.
- Host device 18 can write to a particular storage region on the storage devices via one communication path and read back data on a different path.
- the virtual volume region table is used to track the stored data so that the most recent and correct data copy can be accessed by the host device 18 from a proper node 12 .
- FIG. 2 is a block diagram of a scalable cluster data handling software architecture 1000 .
- This software architecture 1000 may be used in scalable cluster data handling system 10 of FIG. 1 .
- the scalable cluster data handling software architecture 1000 may be implemented on one or more nodes 12 and is configured to supply reliable, high-performance storage services for transferring data between host devices 18 (e.g., processors) and storage devices 20 (e.g., physical disk drives).
- the storage services can be either the abstraction of raw disks via Small Computer Serial Interface (SCSI) commands, for example over Fibre channel or parallel SCSI, or higher level access protocols or network data services such as NFS, CIFS/SMB or HTTP.
- SCSI Small Computer Serial Interface
- the scalable cluster data handling software architecture 1000 complements primary data storage functions with additional storage support functions such as server-less backup, remote mirroring, and volume cloning. In addition to the storage and storage support functions, the scalable cluster data handling software architecture 1000 supplies administration and management tools that automate tuning and recovery from failure, and supply centralized system management and monitoring.
- a host interface layer 1004 connects the host devices to the scalable cluster data handling software architecture 1000 .
- the host interface 1004 can include Fibre Channel/SCSI (FC/SCSI) target drivers 1010 and network adapter drivers 1012 .
- File systems 1024 communicate with the host interfaces 1004 via network data services 1014 .
- the network data services 1014 can include TCP/IP or UDP/IP 1016 services, as well as NFS 1018 , CIFS 1020 , and HTTP 1022 .
- NFS 1018 , CIFS 1020 , and HTTP 1022 can be used to access the file systems 1024 .
- Storage in the scalable cluster data handling software architecture 1000 also includes one or more virtual volumes 1026 , logical disks 1028 , and physical disk layers 1032 .
- the virtual volumes 1026 are caches 1030 .
- the physical disk layers 1032 include physical disk drivers 1034 , which provide an interface for physical disk drives. Physical disks are logically divided into pieces called “chunklets” (described below in more detail). In an illustrative embodiment, chunklets are fixed-size, for example 256 MB contiguous segments of disk space.
- the logical disks 1028 are connected to the FC/SCSI target drivers 1010 as well as the file systems 1024 . Logical disks 1028 comprise multiple chunklets organized into groups.
- a logical disk driver (not shown) controls operation so that the chunklets in a RAID group are arranged on different spindles and, if possible, on different Fibre channel strings. Some spindles may not be connected to a Fibre channel loop on the node.
- the disk caches 1030 can also be abstracted as logical disks 1028 .
- Virtual volumes 1026 are representations of data storage.
- the virtual volumes 1026 are an abstraction of the scalable cluster data handling software 1000 that are accessible directly by the hosts devices via the FC/SCSI target drivers 1010 , or accessible internally by the file systems 1024 .
- Virtual volumes 1026 provide high-performance by virtue of performing caching and optimized RAID level mappings in addition to basic, uncached fixed-RAID service supplied by logical disk abstractions.
- a virtual volume manager 1040 may be in communication with various components of the scalable cluster data handling software architecture 1000 .
- Virtual volume manager 1040 general functions to configure, set-up, and otherwise manage virtual volumes 1026 .
- Virtual volume manager 1040 may map blocks (or regions) of the virtual volumes 1026 onto blocks on logical disks 1028 . The mapping can be used to cache selected blocks of a virtual volume, place selected regions of the virtual volume 1026 on higher performance RAID groups, and create point-in-time images (snapshots) or clones of data on virtual volumes 1026 .
- FIG. 3 is a schematic block diagram that illustrates an example of the use of a virtual volume region table 104 for handling data in a data storage management system 100 , according to an embodiment of the present invention.
- the data storage management system 100 controls data management operations, and can be implemented as part of, for example, scalable cluster data handling system 10 .
- the data storage management system 100 can be implemented, at least in part, as software.
- the virtual volume region table 104 is associated with a virtual volume 1026 , which is a virtual representation of data storage.
- the virtual volume 1026 may represent the collective storage space of a number of hardware storage devices (e.g., physical disk drives 112 ).
- the virtual volume region table 104 includes entries 105 for a number of regions (e.g., REGION 0, REGION 1, REGION 2, . . . , REGION N) of the virtual volume that correspond to particular storage spaces in the storage devices.
- the regions map to one or more logical disks 106 that provide access to a plurality of physical disks 112 .
- the virtual volume region table 104 may be used to record and manage the ownership of regions in a storage structure, such as the virtual volumes 1026 , by a one or more nodes 12 .
- each virtual volume 1026 in a network is associated with its own ownership table.
- the virtual volume region table 104 comprises an entry for each region in a virtual volume 1026 . Thus, if a virtual volume has 100 regions, then the table 104 has a 100 entries. Each entry in the virtual volume region table 104 stores an indication (e.g., an address) of an owning node (or owner) assigned to the region and an indication (e.g., an address) of a backup node (or replicant) assigned to the region.
- the owner is the node allocated to track a region of virtual memory stored in the physical storage associated with that owner node.
- a replicant node functions as a backup to track a region of virtual memory.
- each entry 105 of the virtual volume region table 104 includes one or more elements that provide pointers 108 that point to logical disks 106 .
- these elements may include an owning node element 130 , a backup node element 132 , a logical disk element 134 , and a region element 136 for specifying the owning node, the backup node (or replicant), a logical disk, and a region, respectively.
- a pointer 108 e.g., LD.id.reg_number
- the virtual volume 104 may thus virtualize all storage on multiple physical disks 112 .
- Present-technology physical disks 112 may have a size of about 1 GB to about 144 GB, so that the virtualization of many physical disks creates an enormous storage space. From a host device's perspective, the virtual volume 104 may be accessed and behave in the manner of a physical disk.
- the virtual volume 1026 associated with region table 104 may have a total virtual volume size that is substantially equal to sum of the storage capacity of the hardware storage devices represented.
- the regions of the virtual volume 1026 (e.g., REGION 0, REGION 1, REGION 2, . . . , REGION N) may each correspond to particular storage space. Each region may be the same or different size. In one embodiment, the number of regions in the virtual volume 1026 is equal to the total virtual volume size (e.g., 1 Terabyte) divided by the region size (e.g., 16 Megabytes) divided by the number of nodes (e.g., 8 nodes). Each region of the virtual volume 1026 may be associated with one or more logical disks 106 which, in turn, may be associated with one or more physical disks 112 .
- the virtual volume region table 104 can be accessed by a host device 18 . Furthermore, the virtual volume region table 104 may be accessible, via a volume manager 102 , to a user interface 120 or an operating system 122 .
- the user interface can be a graphical user interface (GUI) or a command line interface (CLI).
- GUI graphical user interface
- CLI command line interface
- the operating system 122 is local to a scalable cluster data handling system 10 or a node contained therein. This allows files of the virtual volume to be exported/imported using standard network file systems (e.g., Sun Microsystem's Network File System (NFS) and Microsoft's Common Internet File Service (CIFS)) associated with the operating system 122 , or as web pages using hypertext transfer protocol (HTTP). Furthermore, the virtual volume is accessible.
- standard network file systems e.g., Sun Microsystem's Network File System (NFS) and Microsoft's Common Internet File Service (CIFS)
- HTTP hypertext transfer protocol
- the virtual volume is accessible.
- the volume manager 102 creates, configures, and manages the virtual volume (also called a “virtual disk”) that is associated with virtual volume region table 104 . To accomplish this, the volume manager 102 may create, modify, and delete entries of the virtual volume region table 104 .
- the volume manager 102 may operate in Fibre Channel, small computer serial interface (SCSI), or other suitable interface, bus, or communication standard environments.
- SCSI small computer serial interface
- each node 12 in a scalable cluster data handling system 10 has its own separate volume manager 102 . In another embodiment, a plurality of these nodes share one or more volume managers 102 .
- the volume manager 102 presents the virtual volume (for example, over Fibre Channel) to one or more hosts 120 .
- the virtual volume is more reliable than physical disks because the volume manager 102 may implement a redundancy scheme that activates redundant replacement storage in the event of disk failure.
- the virtual volume can be much larger than a single physical disk and have a size that can change dynamically through operations of the volume manager 102 . Also, the virtual volume can be enlarged in a relatively seamless manner.
- the virtual volume provides improved access performance and much lower latencies in comparison to physical disks, if for example, the virtual volume is accessed with patterns that are amenable to caching.
- the virtual volume may have a much higher bandwidth than physical disks.
- the virtual volume may be accessed over multiple interfaces, such as multiple Fibre Channels or SCSI links.
- the virtual volume may be cloned to create copies of the original volume. Since any region of the virtual volume can be mapped to essentially any logical disk 106 , the logical disks 106 can be configured to achieve specific performance criteria, depending on characteristics of the data access operations to be performed. Data access characteristics include occurrence frequency of the operations, volumes of data to be processed, sparseness or concentration of data accessed in an operation, and the like.
- a host device 12 addresses the virtual volume as a single memory via the virtual volume region table 104 .
- the region table 104 may map a region (e.g., REGION 0) of the virtual volume onto one or more logical disks 106 for any storage location.
- the volume manager 102 uses the virtual volume 104 to translate a virtual volume address to a logical disk address, and then to a physical storage location on a physical disk 112 by indexing into a virtual volume region table 104 .
- the volume manager 102 creates the mappings from the regions of the virtual volume 104 (e.g., REGION 0 through REGION N) to one or more logical disks 106 and/or cached block locations in cluster memory (of one or more nodes). This allows logical disks 106 to be directly accessible by host devices 120 . Mapping allows the virtual volume 104 to extend through multiple logical disks 106 . Virtual volume mapping also allows an extremely large number of blocks to be cached with cache blocks located in the cluster memory of any node.
- regions of the virtual volume 104 e.g., REGION 0 through REGION N
- This allows logical disks 106 to be directly accessible by host devices 120 .
- Mapping allows the virtual volume 104 to extend through multiple logical disks 106 . Virtual volume mapping also allows an extremely large number of blocks to be cached with cache blocks located in the cluster memory of any node.
- Virtual volume mapping enables additional storage functionality including creation of a “virtual volume clone” at another node or at another cluster data handling system.
- a “virtual volume clone” may be a copy of a virtual volume's mapping, and can be both read and written.
- the virtual volume clone when a virtual volume clone is first created, the virtual volume clone only includes a copy of the original virtual volume's mapping, which is a small record that is quickly created and consumes almost no additional storage space. Accordingly, data of the virtual volume clone is accessed indirectly from the original virtual volume.
- new physical storage blocks are allocated for the virtual volume clone. The mapping is changed only when particular disk blocks are written in either the virtual volume clone or the original virtual volume. If only a small fraction of total virtual volume size is written, then the additional memory space used by the clone is small.
- An alternative technique for virtual volume cloning creates clones by physically copying the entire volume, which consumes the same physical disk space in the clone as is used in the original volume.
- Another alternative technique for virtual volume cloning utilizes read-only copying of a file system, not copying of physical storage. The read-only copies are adequate for some purposes such as backups, but read-write copies are required for purposes such as application testing on actual data.
- the data storage management system 100 may be managed by backup software executed on the nodes.
- the nodes run a general-purpose operating system that permits operation of commercially-available software products.
- the data storage management system 100 can be directly connected to a tape library (not shown) and data can be directly transferred between disk and tape.
- the data storage management system 100 may operate in a different manner for accesses of unprocessed virtual volumes and of virtual volumes implemented with file systems.
- backup software typically runs on a server and sends extended block copy commands to the data storage management system 100 to directly transfer blocks between virtual volumes and tape. Since the data that is backed up does not traverse the network to extend to the server and return again from the server to the tape library, server network bandwidth is greatly reduced, and the server is not burdened with the backup task. Volume backup is also facilitated by virtual volume cloning.
- FIG. 4 illustrates the access to the virtual volumes 1026 of multiple nodes 12 by a host device 18 through the virtual volume region tables 104 on several nodes 12 .
- Each host device 18 may have one or more virtual volume region tables 104 for mapping to respective virtual volumes 1026 .
- Each virtual volume region table 104 may be stored locally at its associated node 12 (owner node) and also one or more backup nodes 12 (replicant nodes).
- the virtual volume region tables 104 provides mappings between the respective virtual volumes and one or more logical or physical disks.
- Each node 12 may use its virtual volume region tables 104 to update and manage data stored in the physical disks.
- the owning node 12 stores or manages a virtual volume. Replicant nodes maintain copies of the virtual volume.
- the owning node may be responsible for maintaining coherency of data in the various copies of the virtual volume maintained at the owning node and the one or more replicant nodes.
- the owning node maintains coherency by managing the control and data structures (e.g., level mapping tables, described herein) that specify the location of data blocks, and the virtual volume region tables 104 that specify the nodes 12 responsible for particular data blocks.
- the owning node sends messages to other nodes, informs the other nodes of access to the owning node's physical storage, and requests/coordinates updating of tables and data structures at the other nodes.
- the owning node may await acknowledgements from the other nodes to ensure that all nodes have coherent tables and data structures. Thus, consistency of copies of the virtual volume are maintained across multiple nodes.
- any operation to write data to a particular area or page of storage in a virtual volume causes such data to be written into the copies of the virtual volume at each of the owning node and the replicant nodes.
- data can be written to a virtual volume by indexing into the respective virtual volume region table 104 to determine which nodes 12 are the owning and replicant nodes for the virtual volume.
- the write operation is executed and a copy of the data is sent to the owning and replicant nodes.
- the virtual volume region table 104 can be used to determine the replicant node so that, in case a block write operation fails, the redundant copy of the data can be accessed.
- each of the nodes 12 in a system has a copy of the virtual volume region table 104 for other nodes and tracks the replicant nodes for various data blocks.
- the volume manager 102 uses the virtual volume region table 104 to provide access to redundant data of the virtual volume through the replicant node.
- the replicant node may access the virtual volume region table 104 and other data management structures to determine how to derive information in case of failure. For example, the replicant node can access information such as transaction logs for error recovery when a failure requires the replicant node to assume management conditions of a failing owner node.
- Backup copies (which may be referred to as “backup volumes”) of the virtual volume may be stored or managed in the owning and replicant nodes 12 .
- Each backup volume may comprise a complete copy of the virtual volume at a particular point in time.
- the backup volumes can be used in the event that the associated base virtual volume becomes inaccessible. This may be the case, for example, when there is a system failure in the owning node that requires disaster recovery.
- a host device 18 may use the virtual volume region tables 104 of any node 12 to which the host device 18 is connected.
- Host 1 may use table VV_RT (Node 0) or table VV_RT (Node 1).
- the nodes 12 may use their virtual volume region tables 104 as “hash” tables to perform a hashing operation. That is, a virtual volume region table 104 may implement a hash function, such as a transformation h from an input index m to a fixed-size string H(m). Hash functions can have a variety of general computational uses, and may be used to identify data owner nodes and data replicant nodes, for example in a cache lookup operation. Each node 12 may be designated as an owner node or a replicant node for a set of storage devices (e.g., disk drives). The virtual volume region table 104 may hold an array of control indices or virtual volume offsets that map data to physical storage locations, such as the physical disks 112 . Entries in a virtual volume region table 104 may identify nodes 12 that control and store owner and replicant tags that define a location of data storage on physical disks 112 and redundant paths for accessing the data.
- a hash function such as a transformation h from an input index
- Snapshots may be taken of each virtual volume 1026 to record the history of what has been stored in that virtual volume 1026 .
- a snapshot can be a point-in-time picture of the virtual volume at the time that the snapshot is taken.
- a snapshot can record the state of saved memory including the contents of all memory bytes. Snapshots of the virtual volume 1026 may be used to restore the data storage system in the event of failure. For example, snapshots enable previous versions of files to be brought back for review or to be placed back into use. Snapshots of the virtual volume 1026 can be taken at regular intervals, or based upon particular triggering events (e.g., upon some indication that the system is about to crash).
- any data changes in a base virtual volume after an initial point in time may be reflected in a snapshot.
- each snapshot may reflect the difference between what is stored in the virtual volume 1026 at one moment of time versus another moment of time.
- a first snapshot of the virtual volume may correspond to the state of the base virtual volume of data (and mappings) at a time X.
- a second snapshot of the virtual volume may correspond to the state of the base virtual volume (and mappings) at a time Y.
- any changes or writes of data to the base virtual volume between time X and time Y can be determined by comparing the first snapshot to the second snapshot.
- a copy-on-write (COW) technique can be used in conjunction with the snapshots.
- COW copy-on-write
- a data page or block is copied to a snapshot before that data block is modified by any write operations.
- a COW push a COW operation
- Subsequent write operations to that data block are allowed to directly change a base virtual volume.
- a complete copy of all the data blocks is made to the snapshot. After the complete copy, all of the data blocks can be modified.
- FIG. 5 illustrates a number of data structures that may be created and modified as data is written or changed in a base virtual volume 654 .
- these data structures include a number of tables arranged in a hierarchy of multiple levels (e.g., Level 1, Level 2, and Level 3).
- Level 1 there is a table 666 a .
- Level 2 there are tables 668 a and 668 b .
- Level 3 there are tables 670 a , 670 b , and 670 c .
- the base virtual volume 654 may be the most current version or state of a virtual volume 1026 .
- the tables 666 , 668 , and 670 may be used to track any data changed or written to the base virtual volume 654 for one or more snapshots. As depicted, four write operations are made to write data (e.g., W1, W2, W3, and W4) into various parts of the base virtual volume 654 . In the illustrative example, each of these write operations to the base virtual volume 654 cause the data which was modified to be captured in a snapshot, which can be the same or different snapshots for the various write operations. Data for the various snapshots is stored in data storage areas 602 , 604 , 606 , 608 , which can be in physical storage devices (e.g., physical disks 112 ) or in virtual volume memory.
- data storage areas 602 , 604 , 606 , 608 which can be in physical storage devices (e.g., physical disks 112 ) or in virtual volume memory.
- Each data storage area 602 , 604 , 606 , or 608 can be a page of data which, in one embodiment, may comprise one or more disk or data blocks.
- a data block can be the minimum size or region of data accessible from a physical storage device.
- the tables at the various levels and the data storage areas may provide a snapshot of data written to multiple physical disks using virtualized disk operations.
- creation and modification of the tables 666 , 668 , and 670 may be controlled by a “master” node 12 , which has a backup master node in case the master node malfunctions or is inaccessible.
- Level 1 (or L1) table 666 a is a first level mapping structure.
- the table 666 a comprises a plurality of entries (e.g., 1024 ).
- Each entry in the Level 1 table 666 a addresses a range of memory locations (or segments) of the entire base virtual volume 654 .
- Each segment may, for example, comprise 1000 memory locations of the entire base virtual volume 654 .
- a first entry (entry 0) addresses locations 0–99 of the base virtual volume 654 (which may correspond to a first Level 2 table)
- a second entry (entry1) addresses locations 100–199(which may correspond to a second Level 2 table), and so on.
- Each Level 2 table 668 a , 668 b may comprise a plurality of entries (e.g., 10), each of which corresponds to a particular range of memory locations within the segment of the Level 1 entry pointing to that Level 2 table. For example, a first entry of a Level 2 table may address locations 0–9 of the base virtual volume 654 (which may correspond to a first Level 3 table), a second entry of the same table may address locations 10–19(which may correspond to a second Level 3 table), and so on. Each Level 3 table may also comprise a number of entries (e.g., 10), each of which points to a particular storage area (e.g., 602 , 604 , 606 , or 608 ) storing data that was changed or written. In one embodiment, each Level 2 table is controlled by a specific node 12 , which may also control the Level 3 tables associated with that Level 2 table.
- entries e.g. 10
- Data snapshots typically involve changes to only a small portion (e.g., 1% or less) of the entire storage space of virtual volume, where the data changes occur at locations that are generally widely separated.
- data structures for the snapshots are recursive so that further tables for snapshot volume are created only when write accesses are made to those particular levels.
- the pointer in the Level 1 table 666 a points to an entry in the Level 2 table (e.g., table 668 a or 668 b ) for further specifying the specific location of the base virtual memory 654 .
- Tables and corresponding entries for other levels e.g., Level 3 table 670 ) are generated and made.
- An entry in the final level table specifies the storage location, which may be in a virtual volume 1028 . With the entries, pointers are set in the various tables, and a page of data is written to the physical storage area.
- the volume manager 102 designates or creates a pointer to an existing element of a Level 2 table (e.g., table 668 a or 668 b )
- the volume manager 102 reads the element of the Level 2 table 668 that corresponds to the target physical storage. If this entry is null/empty, the volume manager 102 creates a new Level 3 table 670 ; otherwise, the volume manager 102 uses the element as a pointer to an existing Level 3 table. This is continued for all level until a page of data is written to the physical storage area.
- the various level mapping tables may be considered exception tables. This is because, in some embodiments, entries in the level mapping tables only exist if data has been change or written (which is considered an exception, rather than the norm) in the respective storage areas.
- the state of data for the virtual volume 1026 at a specific time can be brought back or placed into use by accessing the data for a snapshot created at that time.
- the tables 666 a , 668 a , 668 b , 670 a , 670 b , and 670 c can illustrate an example of copy-on-write operations that result in data (W1, W2, W3, and W4) being stored in the data storage areas 602 , 604 , 606 , and 608 .
- a first data write operation to a location in the base virtual volume 654 causes a copy of the data W1 to be stored in storage area 604 .
- Storage area 604 is addressed by the tables 666 a , 668 a , and 670 a .
- a second data write operation causes a copy of data W2 to be stored in storage area 606 .
- the second data storage area 606 is addressed by some of the same tables as storage area 604 (i.e., tables 666 a and 668 a ) and a different table (table 670 b ).
- a third data write operation causes a copy of data W3 to be stored in storage area 608 .
- the data storage area 608 is addressed by tables 666 a , 668 b , and 670 c .
- a fourth data write operation causes a copy of data W4 to be stored in storage area 602 .
- the data storage area 602 is addressed by the same tables as storage area 604 (i.e., 666 a , 668 a , and 670 a ).
- the copy-on-write technique can be implemented by creating and managing the hierarchy of tables 666 , 668 , and 670 which ultimately point to data storage areas 602 , 604 , 606 , 608 .
- a volume manager 102 may determine if a particular area of storage was previously written. If the area was not previously written, the volume manager 102 creates appropriate tables at the various levels for that storage area. Otherwise, if the area was previously written, all appropriate tables should already have been created, and the volume manager 102 functions to add or modify entries in the tables to reflect the data changes to the virtual volume 654 .
- a node 12 receives a write request to a particular region of a virtual volume
- the owning node of the virtual volume determines whether there are entries for the region in one or more level mapping tables (e.g., Level 1, Level 2, or Level 3 mapping tables). If no such entries exist, then the owning node reads the data at the target region in the base virtual volume, creates appropriate tables and entries, and writes information for the tables and entries into a snapshot volume. The owning node then writes the new data block to the base virtual volume and sends an acknowledge signal to the node that received the write request.
- level mapping tables e.g., Level 1, Level 2, or Level 3 mapping tables
- snapshot techniques can be used in conjunction with cloning techniques in the data storage system.
- the data storage management system 100 may generate remote mirror copies or “clones” of data on virtual volumes 1026 and logical disks 106 in the multiple nodes 12 .
- the system 100 manages remote mirror cloning of data segments of a virtual volume 1026 by creating local and remote mirror data structures (which may include various level tables and snapshot data).
- local and remote mirror data structures which may include various level tables and snapshot data.
- the system allocates storage space for a clone structure resident on or controlled by a remote node 12 that corresponds to the data structure in the local node 12 .
- the system stores header or management information that defines the local and remote structures as mirror copies.
- data is subsequently written to the storage structures of one of the local or remote nodes 12 , information is transferred to the other node 12 so that the same data is written to the clone.
- the data structures e.g., L1, L2, L3 tables and W1, W2 data storage spaces or pages
- the data structures e.g., L1, L2, L3 tables and W1, W2 data storage spaces or pages
- the data structures can be stored various volumes of memory (which themselves can be virtual or real).
- FIG. 6A illustrates one view of storage volumes for the data structures for a snapshot technique. As depicted, these may include a base virtual volume 654 , snapshot administration volume 656 , and snapshot data volume 658 for various snapshots.
- the base virtual volume 654 may be the most current version of a virtual volume 1026 .
- the base virtual volume 654 may comprises data stored in the virtual volume at some initial point in time, such as time X (or time 0), and any data that has been subsequently written by a host after time X.
- the base virtual volume 654 is associated with a virtual volume region table (e.g., virtual volume region table 104 ) that maps regions of the base virtual volume 654 to physical storage devices (e.g., physical disks 112 ).
- the base virtual volume 654 may specify or include virtual data structures of all physical storage devices in communication with a plurality of nodes 12 in a data handling system 10 .
- a base virtual volume 654 of a multi-node system may comprise 1 Terabyte (“1T”) of data.
- 1T 1 Terabyte
- various snapshots can be taken to provide a history of what has been stored in that virtual volume at different moments.
- Snapshot data volume 658 stores data for each snapshot—i.e., data that has been written/changed in the base virtual volume 654 from an initial point in time to when a snapshot is taken. As depicted, separate data may be stored for each snapshot of the virtual volume.
- the snapshot administration volume 656 stores a number of tables 666 , 668 , and 670 in a hierarchy with multiple levels (e.g., Level 1, Level 2, and Level 3). The different levels of tables may map the data of a snapshot back to a particular location of the virtual volume (as described with reference to FIG. 5 ), so that the state of the base virtual volume at previous point in time can be re-created.
- FIG. 6B illustrates another view of storage volumes for the data structures for a snapshot technique. Similar to the view depicted in FIG. 6A , these volumes include a base virtual volume 654 , a snapshot administration volume 656 , and snapshot data volume 658 . Snapshot data (reflecting data changes made to base virtual volume 654 ) may be stored in any space which is available and accessible in snapshot data volume 658 . Likewise, snapshot tables (which map the snapshot data back to the base virtual volume 645 for particular snapshots) may be stored in any available and accessible space of snapshot administration volume 656 .
- the tables for multiple levels may each contain entries for various snapshots.
- an entry 680 of the Level 1 (or L1) table comprises a virtual volume name (VV_name) and an offset.
- this virtual volume name can be the name of the snapshot administration volume 656 and the offset points to a particular entry 682 in an Level 2 (or L2) table.
- This entry 682 for the L2 table also comprises a virtual volume name and offset.
- the volume name can be the name of the snapshot administration volume 656 and the offset points to a specific entry 684 n .
- the L3 entry 684 comprises a virtual volume name for the snapshot data volume 658 and an offset which points to specific data (e.g., data page).
- FIG. 7 is a flowchart for an exemplary method 800 for a multiple level mapping for a virtual volume 1026 , according to an embodiment of the present invention.
- method 800 may be performed by volume manager 102 ( FIGS. 2 and 3 ). This method may cause tables at various levels (e.g., Level 1, Level 2, and Level 3) to be generated or created.
- Method 800 begins at step 802 where volume manager 102 allocates a Level 1 mapping table for the virtual volume.
- a write operation is initiated. This write operation may be directed to a particular storage segment or location in the virtual volume.
- the volume manager 102 at step 806 , looks up for an entry in the Level 1 mapping table corresponding to the segment or location.
- the volume manager 102 determines if an appropriate entry for the segment or location exists in the Level 1 mapping table.
- the volume manager 102 accesses the Level 2 mapping table to which the Level 1 entry points.
- the volume manager 102 looks for an entry in the Level 2 mapping table corresponding to the particular segment or location of the virtual volume.
- the volume manager 102 determines if an appropriate entry for the segment or location exists in the Level 2 mapping table.
- method 800 moves to steps 820 and 822 where a suitable Level 3 mapping table is allocated and an appropriate entry is created. Thereafter method 800 moves to step 828 . Otherwise, if at step 816 an appropriate entry is found in the Level 2 mapping table, then the volume manager 102 accesses the Level 3 mapping table to which the Level 2 entry points. At step 818 the volume manager 102 looks for an entry in the Level 3 mapping table corresponding to the particular segment or location of the virtual volume. At step 824 the volume manager 102 determines if an appropriate entry for the segment or location exists in the Level 3 mapping table.
- step 828 a COW page for the data is created. Otherwise, if at step 824 an appropriate entry is found in the Level 3 mapping table, then the volume manager 102 obtains the COW page to which the Level 3 entry points.
- step 830 the COW page is updated. Thereafter, method 800 ends.
- mapping tables for Level 1, Level 2, and Level 3 provide the management of COW pages for the virtual volume. Because at least some of the mapping tables are not allocated until they are needed, disk resources are only used or committed when a COW happens and memory resources are committed only when a reference to a particular storage area is made.
- FIG. 8 illustrates a snapshot tree 2000 for a virtual volume 1026 .
- One or more snapshot trees may be generated or provided for each virtual volume 1026 that is maintained in a data storage system.
- snapshot tree 2000 includes a base virtual volume 2200 and a series of snapshot volumes 2104 , 2106 , 2204 , 2210 , 2212 , 2206 , 2304 , 2308 , 2310 , and 2306 .
- Base virtual volume 2200 can be written into and read from by a user or host device 18 .
- the base virtual volume 2200 may be the most current version of the respective virtual volume 1026 , and most reads and writes of data are performed on the base virtual volume.
- base virtual volume 2200 comprises data initially stored at a point in time, such as time X (or time 0), and any data that has been subsequently written by a host device or user after time X.
- Base virtual volume 2200 may serve as a “root” for the snapshot tree 2000 .
- Each snapshot volume maintains data and tables for an associated snapshot of the base virtual volume.
- the snapshot volumes may be considered to “descend” from a base virtual volume 2200 . Any of the snapshot volumes can be accessed to obtain data that was written at a prior time.
- a snapshot volume can be either a read-only (R/O) snapshot volume (or ROSS) or a read/write (R/W) snapshot volume (or RWSS).
- ROSS presents a constant view of the data in a virtual volume at a specific time. After creation of a ROSS, data can be read from but not written into the ROSS.
- a RWSS descends from a ROSS (e.g., a parent snapshot volume) and may serve to hold modifications to the parent ROSS.
- a RWSS can be read and written like a base virtual volume.
- a RWSS can be viewed as a writable/modifiable version of its parent ROSS.
- snapshot volumes 2106 , 2204 , 2210 , 2212 , 2206 , 2308 , and 2310 are ROSSes
- snapshot volumes 2104 , 2304 , and 2306 are RWSSes.
- Each of the RWSSes may have one or more descending ROSSes.
- a RWSS 2306 can descend from a ROSS 2308 of another RWSS 2304 .
- the snapshot volumes may be grouped in branches.
- a branch is made up of a read-write volume (either base virtual volume or RWSS) as its base and one or more read-only snapshot volumes maintained in a time-ordered link attached to the read-write volume.
- a branch can be the base virtual volume 2200 and a sequence of read-only snapshots volumes, such as the ROSSes 2204 , 2210 , 2212 , and 2206 .
- a branch may also be a read/write snapshot volume, such as a RWSS 2304 and one or more read-only snapshot volumes, such as the ROSSes 2308 and 2310 .
- a new branch can be created by adding a read-write snapshot volume to a read-only snapshot volume, after which read-only snapshot volumes can be added to grow the branch.
- the snapshot volumes extend from oldest to most recent. For example, in the branch comprising base volume 2200 and snapshot volumes 2204 , 2210 , 2212 , and 2206 , snapshot volume 2206 is the oldest (created earliest in time) while snapshot 2204 is the most recent (created last in time).
- a snapshot volume may be created or started by execution of a command from the volume manager 102 , a node 12 , or a host device 18 .
- the volume manager 102 may execute a command that causes the creation of a first snapshot volume (e.g., snapshot volume 2206 ).
- the volume manager 102 may execute other commands which can similarly result in creation of additional snapshot volumes (e.g., snapshot volumes 2212 , 2210 , and 2204 ).
- a second snapshot volume (e.g., snapshot volume 2212 ) stores data that has been more recently changed or modified than data in the first snapshot volume.
- data of a virtual volume may be read in a manner opposite to a write, for example, by accessing the data from the base virtual volume 2200 and one or more snapshot volumes, as desired.
- a data block from the base virtual volume 2200 may be accessed by simply reading the physical storage designated by the base virtual volume mappings (e.g., from a virtual volume region table 104 ).
- a data block from a snapshot volume may be accessed by reading through the level mapping tables (i.e., from the Level 1 table to the last level table, such as, for example, Level 3 table). If the entries in the tables of the snapshot volume associated with the data block are not zero, then an pointer for that element exists and can be used to read the stored data from the snapshot volume.
- Each of the volumes in the snapshot tree from one that is under consideration up to the base volume may be analyzed in turn to see whether the data block was modified during the respective snapshots.
- the snapshot volumes are read until a pointer value that is not zero is available or the base virtual volume is reached. That is, for each snapshot volume, the data storage system passes level by level through the storage structures until a pointer is available, and reads the data designated by the first available pointer. If the data block was not found in any of the snapshot volumes, then the system looks in the base virtual volume.
- a snapshot read operation is performed by first accessing the data structures of the most recent snapshot volume before the data structures of the base virtual volume so that the latest written data is accessed.
- the system searches the various Level 1, 2, and so on tables, and if a pointer entry is found in the snapshot volume, the entry is returned as the result of the read operation.
- a pointer in the final level table e.g., Level 3 tables 670 a , 670 b , or 670 c ) points to a block in physical storage. If no pointer entry is found in the snapshot volumes, the system returns to the base virtual volume.
- pointers may be set to skip over one or more snapshot volumes of the snapshot tree. For example, if a desired data block is found in the fourth snapshot volume along a branch, then a pointer may be set in the first snapshot volume so that a subsequent search for the data block in the first snapshot volume will automatically skip to the fourth snapshot volume. This saves time and improves performance by avoiding the second and third snapshot volumes in subsequent searches for that data block.
- data and structures of the base and snapshot volumes of the snapshot tree 2000 may be exported or transferred between nodes 12 of the data storage system.
- Embodiments of the present invention provide or facilitate rapid synchronization of backup copies of a virtual volume.
- a differential backup operation can be readily performed. For example, assume that the latest snapshot volume available to some device for backup is snapshot volume 2212 . If it is desirable to create a backup copy of a virtual volume as it existed at the time associated with snapshot volume 2204 , the differences between snapshot volumes 2204 and 2212 can be determined so that a backup copy can be synchronized for snapshot volume 2204 .
- processes are provided for quickly and efficiently determining which pages are different between two snapshot volumes that descend from the same base volume (i.e., two snapshot volumes in the same snapshot tree (e.g., snapshot tree 2000 )). This can be done by examining the exception tables for each snapshot volume being considered. The process iterates or is repeated through the pages of the two snapshot volumes, determining which pages are different between the two volumes. Once the differences have been determined, a backup copy of the volume can be generated or modified so that it reflects the state of memory of the volume at the time that the most recent snapshot was created.
- FIG. 9 is a flowchart of an exemplary method 500 for determining differences between two snapshot volumes, where one of the snapshot volumes is directly ascended from the other in the snapshot tree (i.e., one snapshot volume is “up the tree” from the other snapshot volume). This would be the case for: (1) two snapshot volumes on the same branch of the snapshot tree; or (2) two snapshot volumes on different branches, where one branch is an offshoot of the other (main) branch and the snapshot volume on the main branch appears on that branch at a point prior to the offshoot.
- snapshot volumes 2206 and 2204 An illustrative example of two snapshot volumes on the same branch of the snapshot tree would be snapshot volumes 2206 and 2204 in FIG. 8 .
- These snapshot volumes 2206 and 2204 are both on the branch made up of base volume 2200 and snapshot volumes 2206 , 2212 , 2210 , and 2204 ).
- there are two intervening snapshot volumes i.e., snapshots 2210 and 2212 ) between snapshot volumes 2204 and 2206 , but it should be understood that there may be any number of intervening, previous or subsequent snapshot volumes with respect to the two snapshot volumes 2204 , 2206 being examined.
- Snapshot volume 2206 is an older snapshot volume, while the snapshot volume 2204 is more recent.
- snapshot volumes 2308 and 2204 An illustrative example of two snapshot volumes on different branches, where one branch is an offshoot of the other (main) branch and the snapshot volume on the main branch appears on that branch at a point prior to the offshoot, would be snapshot volumes 2308 and 2204 .
- Snapshot volume 2204 is on the branch comprising snapshot volumes 2206 , 2212 , 2210 , and 2204
- snapshot volume 2308 is on the branch comprising snapshot volumes 2310 , 2308 , and 2304 .
- Snapshot volume 2204 appears at a point in the first branch of snapshot tree at or before it divides into the second branch.
- method 500 will be provided in the context of the first illustrative example from above (i.e., in which the two snapshot volumes 2206 and 2204 under consideration are on the same branch of the snapshot tree), but it should be understood that method 500 is applicable for the second illustrative example as well.
- method 500 can be performed by hardware/software at a node 12 , including one or more executable processes. Method 500 can be performed for each page or block of storage locations in a virtual volume. Method 500 begins at step 502 where the exceptions, if any, of the snapshot 2206 are examined. This can be done, for example, by examining the exception tables for the snapshot volume 2206 . Exceptions are identified by entries in the various level mapping tables (e.g., Level 1, Level 2, and Level 3 tables), which may be considered exception tables. An entry in a level mapping table only exists if data has been changed or written (which is considered an exception) in a respective storage area of the virtual volume.
- level mapping tables e.g., Level 1, Level 2, and Level 3 tables
- the software/hardware at a node accesses the exception tables for the snapshot volume. More specifically, the node 12 may access the nodes that control the Level 1, Level 2, Level 3 tables to determine the exceptions (changed data) of the snapshot.
- the node 12 determines if any exceptions can be found for the present snapshot volume (e.g., snapshot volume 2206 ). If exceptions are found, then changes were made to a particular page or pages of the base virtual volume 2200 since the time that the snapshot corresponding to volume 2206 was created and the time that the snapshot corresponding to volume 2212 was created.
- the node 12 processes the exceptions, for example, as part of a routine for synchronization of a backup volume, after which method 500 ends. Else, if no exceptions are found at step 506 for the snapshot volume 2212 , then no changes were made to the particular page or pages of the base volume 2200 at the time of the snapshot. This snapshot volume can be ignored at step 508 (no further processing is needed for that snapshot).
- the node 12 determines if the present snapshot is the last (or most recent) snapshot. If not, then at step 504 the node 12 moves up the snapshot branch to a newer snapshot volume (e.g., snapshot volume 2212 ), after which method 500 returns to step 502 when the exceptions of that snapshot volume are examined. Steps 504 through 512 are repeated until, at step 512 the node 12 determines that the present snapshot volume is the most recent snapshot volume. Method 500 then ends.
- a newer snapshot volume e.g., snapshot volume 2212
- snapshot volumes including the two snapshot volumes under consideration
- differences between two snapshot volumes can be readily and quickly identified.
- backup copies of the virtual volume made using the different snapshot volumes can be rapidly and more efficiently synchronized. This differs from previously developed techniques for determining which blocks of data on a virtual volume have changed over time. These previously developed techniques involved maintaining a “change log” or a “dirty block list” for the virtual volume, thus requiring maintaining extra structures in addition to the structures needed to maintain a snapshot.
- FIG. 10 is a flowchart of an exemplary method 550 for determining differences between two snapshot volumes which are not directly ascended (i.e., neither snapshot volume is “up the tree” from the other snapshot volume). This would be the case for two snapshot volumes on different branches, where one branch is an offshoot of the other branch and the two snapshot volumes appear on their respective branches at a point after the offshoot.
- snapshot volumes 2206 and 2308 in FIG. 8 An illustrative example of two such snapshot volumes would be snapshot volumes 2206 and 2308 in FIG. 8 , which are on different branches.
- Snapshot volume 2206 is on the branch comprising snapshot volumes 2206 , 2212 , 2210 , and 2204
- snapshot volume 2308 is on the branch comprising snapshot volumes 2310 , 2308 , and 2304 .
- Snapshot volume 2206 appears at a point in the first branch of snapshot tree after it divides into the second branch. Thus, neither snapshot 2206 or 2308 is “up the tree” from the other snapshot.
- method 550 can be performed by hardware/software at a node 12 , including one or more executable processes. Method 550 can be performed for each page or block of storage locations in a virtual volume. Method 550 begins at step 552 where the node 12 examines exceptions, if any, for the two snapshot volumes 2206 and 2308 . This can be done, for example, by accessing the various level mapping tables for the respective snapshots. Then, for each snapshot volume 2206 or 2308 being considered, node 12 moves to a newer snapshot volume at step 554 . At step 556 , the node 12 looks for exceptions in the newer snapshot.
- node 12 determines if the first common parent snapshot volume (i.e., snapshot volume 2204 in this illustrative example) has been reached. If not, method 550 returns to step 554 where node 12 moves to a newer snapshot in the respective branch. Steps 554 through 558 are repeated for each of the first and second branches until the common parent snapshot is reached. Thus, in the illustrative example, the intervening snapshot volumes 2212 and 2210 of the first branch and intervening snapshot volume 2304 of the second branch are examined for exceptions up to the common parent snapshot volume 2204 .
- the node 12 determines if any exception were found in any of the snapshot volumes 2308 , 2304 , 2204 , 2206 , 2212 , and 2210 . If no exceptions are found, then there is no difference between the snapshot volumes under consideration (e.g., snapshot volumes 2206 and 2308 ). Accordingly, the snapshot volumes are ignored at step 562 , after which method 550 ends.
- the node 12 compares the first exception that was found on the one branch with the first exception found on the other branch (if any), and determines at step 564 if the first exceptions in each branch point to the same location or area of data storage. If the first exceptions in each branch do point to the same area of data storage, there are no differences between the snapshot volumes 2308 and 2206 under consideration. Thus, method 550 moves to step 562 where the node 12 ignores the snapshot volumes, after which method 550 ends. Else, if at step 564 it is determined that the exceptions in the two branches do not point to the same location, then at step 566 the node 12 processes for these exceptions, after which method 550 ends.
- method 550 allows various snapshot volumes to be ignored. Accordingly, backup copies of the virtual volume made using the different snapshot volumes can be rapidly and more efficiently synchronized. Furthermore, the rate of change of a base volume can be readily determined, and differences in virtual volume over time may be analyzed.
Abstract
Description
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/237,432 US7100089B1 (en) | 2002-09-06 | 2002-09-06 | Determining differences between snapshots |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/237,432 US7100089B1 (en) | 2002-09-06 | 2002-09-06 | Determining differences between snapshots |
Publications (1)
Publication Number | Publication Date |
---|---|
US7100089B1 true US7100089B1 (en) | 2006-08-29 |
Family
ID=36915722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/237,432 Expired - Lifetime US7100089B1 (en) | 2002-09-06 | 2002-09-06 | Determining differences between snapshots |
Country Status (1)
Country | Link |
---|---|
US (1) | US7100089B1 (en) |
Cited By (130)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040024919A1 (en) * | 2002-08-02 | 2004-02-05 | Alacritus, Inc. | Protectable data storage system and a method of protecting and/or managing a data storage system |
US20040133602A1 (en) * | 2002-10-16 | 2004-07-08 | Microsoft Corporation | Optimizing defragmentation operations in a differential snapshotter |
US20040153739A1 (en) * | 2002-12-09 | 2004-08-05 | Alacritus, Inc. | Method and system for creating and using removable disk based copies of backup data |
US20040186900A1 (en) * | 2003-03-18 | 2004-09-23 | Hitachi, Ltd. | Method of maintaining a plurality of snapshots, server apparatus and storage apparatus |
US20040230724A1 (en) * | 2003-05-14 | 2004-11-18 | Roger Stager | Method and system for data compression and compression estimation in a virtual tape library environment |
US20050138623A1 (en) * | 2003-12-22 | 2005-06-23 | Nedim Fresko | System and method for dynamically and persistently tracking incremental profiling data in a process cloning application environment |
US20050171979A1 (en) * | 2004-02-04 | 2005-08-04 | Alacritus, Inc. | Method and system for maintaining data in a continuous data protection system |
US20050182953A1 (en) * | 2004-02-04 | 2005-08-18 | Alacritus, Inc. | Method and system for browsing objects on a protected volume in a continuous data protection system |
US20050188256A1 (en) * | 2004-02-04 | 2005-08-25 | Alacritus, Inc. | Method and system for data recovery in a continuous data protection system |
US20050193244A1 (en) * | 2004-02-04 | 2005-09-01 | Alacritus, Inc. | Method and system for restoring a volume in a continuous data protection system |
US20050193272A1 (en) * | 2004-02-04 | 2005-09-01 | Alacritus, Inc. | Method and system for storing data using a continuous data protection system |
US20050216536A1 (en) * | 2004-02-04 | 2005-09-29 | Alacritus, Inc. | Method and system for backing up data |
US20050227569A1 (en) * | 2001-09-03 | 2005-10-13 | Matsushita Electric Industrial Co., Ltd. | Light-emitting semiconductor device, light-emitting system and method for fabricating light-emitting semiconductor device |
US20050228937A1 (en) * | 2003-11-26 | 2005-10-13 | Veritas Operating Corporation | System and method for emulating operating system metadata to provide cross-platform access to storage volumes |
US20060106855A1 (en) * | 2004-11-02 | 2006-05-18 | International Business Machines Corporation | Reusable row indices table |
US20060106893A1 (en) * | 2004-11-02 | 2006-05-18 | Rodger Daniels | Incremental backup operations in storage networks |
US20060112251A1 (en) * | 2003-11-26 | 2006-05-25 | Veritas Operating Corporation | Host-based virtualization optimizations in storage environments employing off-host storage virtualization |
US20060168352A1 (en) * | 2004-12-20 | 2006-07-27 | Alexander Gebhart | Automated grid compute node cleaning |
US20070016740A1 (en) * | 2005-06-29 | 2007-01-18 | Nagender Somavarapu | Method and system for managing point-to-time images |
US20070083727A1 (en) * | 2005-10-06 | 2007-04-12 | Network Appliance, Inc. | Maximizing storage system throughput by measuring system performance metrics |
US20070162515A1 (en) * | 2005-12-28 | 2007-07-12 | Network Appliance, Inc. | Method and apparatus for cloning filesystems across computing systems |
US20070186001A1 (en) * | 2006-02-07 | 2007-08-09 | Dot Hill Systems Corp. | Data replication method and apparatus |
US20080072003A1 (en) * | 2006-03-28 | 2008-03-20 | Dot Hill Systems Corp. | Method and apparatus for master volume access during colume copy |
US20080104139A1 (en) * | 2006-10-26 | 2008-05-01 | Xia Xu | Managing snapshots in storage systems |
US20080177957A1 (en) * | 2007-01-18 | 2008-07-24 | Dot Hill Systems Corp. | Deletion of rollback snapshot partition |
US7437387B2 (en) | 2002-08-30 | 2008-10-14 | Netapp, Inc. | Method and system for providing a file system overlay |
US20080256311A1 (en) * | 2007-04-11 | 2008-10-16 | Dot Hill Systems Corp. | Snapshot preserved data cloning |
US20080256141A1 (en) * | 2007-04-11 | 2008-10-16 | Dot Hill Systems Corp. | Method and apparatus for separating snapshot preserved and write data |
US20080281875A1 (en) * | 2007-05-10 | 2008-11-13 | Dot Hill Systems Corp. | Automatic triggering of backing store re-initialization |
US20080281877A1 (en) * | 2007-05-10 | 2008-11-13 | Dot Hill Systems Corp. | Backing store re-initialization method and apparatus |
US20080320258A1 (en) * | 2007-06-25 | 2008-12-25 | Dot Hill Systems Corp. | Snapshot reset method and apparatus |
US20090043983A1 (en) * | 2006-03-22 | 2009-02-12 | Hitachi, Ltd. | Method and apparatus for reducing the amount of data in a storage system |
US7593973B2 (en) | 2006-11-15 | 2009-09-22 | Dot Hill Systems Corp. | Method and apparatus for transferring snapshot data |
US20090241108A1 (en) * | 2004-10-29 | 2009-09-24 | Hewlett-Packard Development Company, L.P. | Virtual computing infrastructure |
US20090254695A1 (en) * | 2008-04-07 | 2009-10-08 | Hitachi, Ltd. | Storage system comprising plurality of storage system modules |
US20090300605A1 (en) * | 2004-10-29 | 2009-12-03 | Hewlett-Packard Development Company, L.P. | Virtual computing infrastructure |
US7650533B1 (en) | 2006-04-20 | 2010-01-19 | Netapp, Inc. | Method and system for performing a restoration in a continuous data protection system |
US20100017444A1 (en) * | 2008-07-15 | 2010-01-21 | Paresh Chatterjee | Continuous Data Protection of Files Stored on a Remote Storage Device |
US20100076934A1 (en) * | 2008-08-25 | 2010-03-25 | Vmware, Inc. | Storing Block-Level Tracking Information in the File System on the Same Block Device |
US20100077165A1 (en) * | 2008-08-25 | 2010-03-25 | Vmware, Inc. | Tracking Block-Level Changes Using Snapshots |
US20100115009A1 (en) * | 2008-10-30 | 2010-05-06 | Callahan Michael J | Managing Counters in a Distributed File System |
US20100114849A1 (en) * | 2008-10-30 | 2010-05-06 | Kingsbury Brent A | Allocating Priorities to Prevent Deadlocks in a Storage System |
US20100115011A1 (en) * | 2008-10-30 | 2010-05-06 | Callahan Michael J | Enumerating Metadata in File System Directories |
WO2010050943A1 (en) * | 2008-10-30 | 2010-05-06 | Hewlett-Packard Development Company, L.P. | Creating snapshots of a file system |
US20100125583A1 (en) * | 2008-10-30 | 2010-05-20 | Corene Casper | Tracking Memory Space in a Storage System |
US7743028B1 (en) * | 2005-07-13 | 2010-06-22 | Symantec Corporation | Incremental backup of partial volumes |
US7752401B2 (en) | 2006-01-25 | 2010-07-06 | Netapp, Inc. | Method and apparatus to automatically commit files to WORM status |
US7757056B1 (en) * | 2005-03-16 | 2010-07-13 | Netapp, Inc. | System and method for efficiently calculating storage required to split a clone volume |
US7774610B2 (en) | 2004-12-14 | 2010-08-10 | Netapp, Inc. | Method and apparatus for verifiably migrating WORM data |
US7783606B2 (en) | 2004-02-04 | 2010-08-24 | Netapp, Inc. | Method and system for remote data recovery |
US20100274980A1 (en) * | 2009-04-28 | 2010-10-28 | Symantec Corporation | Techniques for system recovery using change tracking |
US20100312783A1 (en) * | 2009-06-05 | 2010-12-09 | Donald James Brady | Snapshot based search |
US7882081B2 (en) | 2002-08-30 | 2011-02-01 | Netapp, Inc. | Optimized disk repository for the storage and retrieval of mostly sequential data |
US7904679B2 (en) | 2004-02-04 | 2011-03-08 | Netapp, Inc. | Method and apparatus for managing backup data |
US20110106763A1 (en) * | 2009-10-30 | 2011-05-05 | Symantec Corporation | Storage replication systems and methods |
CN101546282B (en) * | 2008-03-28 | 2011-05-18 | 国际商业机器公司 | Method and device used for writing and copying in processor |
US20110119748A1 (en) * | 2004-10-29 | 2011-05-19 | Hewlett-Packard Development Company, L.P. | Virtual computing infrastructure |
US7984085B1 (en) * | 2004-10-25 | 2011-07-19 | Network Appliance, Inc. | Rate of change of data using on-the-fly accounting |
US20110208932A1 (en) * | 2008-10-30 | 2011-08-25 | International Business Machines Corporation | Flashcopy handling |
US8024172B2 (en) | 2002-12-09 | 2011-09-20 | Netapp, Inc. | Method and system for emulating tape libraries |
US8028135B1 (en) | 2004-09-01 | 2011-09-27 | Netapp, Inc. | Method and apparatus for maintaining compliant storage |
US20110258381A1 (en) * | 2010-04-20 | 2011-10-20 | Xyratex Technology Limited | Data duplication resynchronisation |
US20120311261A1 (en) * | 2011-05-31 | 2012-12-06 | Hitachi, Ltd. | Storage system and storage control method |
US20130173552A1 (en) * | 2011-01-28 | 2013-07-04 | International Business Machines Corporation | Space efficient cascading point in time copying |
WO2013121465A1 (en) * | 2012-02-16 | 2013-08-22 | Hitachi, Ltd. | Storage system, management server, storage apparatus, and data management method |
US8615495B1 (en) * | 2008-08-13 | 2013-12-24 | Symantec Corporation | Techniques for providing a differential backup from a storage image |
US8639969B2 (en) | 2008-10-24 | 2014-01-28 | Hitachi, Ltd. | Fast data recovery from HDD failure |
US20140052899A1 (en) * | 2012-08-18 | 2014-02-20 | Yen Chih Nan | Memory address translation method for flash storage system |
US8751467B2 (en) | 2007-01-18 | 2014-06-10 | Dot Hill Systems Corporation | Method and apparatus for quickly accessing backing store metadata |
US20140195749A1 (en) * | 2013-01-10 | 2014-07-10 | Pure Storage, Inc. | Deduplication of Volume Regions |
US20150095285A1 (en) * | 2003-11-13 | 2015-04-02 | Commvault Systems, Inc. | System and method for performing an image level snapshot and for restoring partial volume data |
US9223659B1 (en) * | 2012-06-28 | 2015-12-29 | Emc International Company | Generating and accessing a virtual volume snapshot in a continuous data protection system |
US9235594B2 (en) | 2011-11-29 | 2016-01-12 | International Business Machines Corporation | Synchronizing updates across cluster filesystems |
US20160034197A1 (en) * | 2014-08-04 | 2016-02-04 | Fujitsu Limited | Data migration method and data migration device |
US9298715B2 (en) | 2012-03-07 | 2016-03-29 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9342537B2 (en) | 2012-04-23 | 2016-05-17 | Commvault Systems, Inc. | Integrated snapshot interface for a data storage system |
US20160202927A1 (en) * | 2015-01-13 | 2016-07-14 | Simplivity Corporation | System and method for optimized signature comparisons and data replication |
US9424744B2 (en) | 2009-10-30 | 2016-08-23 | International Business Machines Corporation | Method and apparatus for traffic management |
US9448731B2 (en) | 2014-11-14 | 2016-09-20 | Commvault Systems, Inc. | Unified snapshot storage management |
US9471578B2 (en) | 2012-03-07 | 2016-10-18 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US20160306550A1 (en) * | 2015-04-15 | 2016-10-20 | Emc Corporation | Constructing a scalable storage device, and scaled storage device |
US9495251B2 (en) | 2014-01-24 | 2016-11-15 | Commvault Systems, Inc. | Snapshot readiness checking and reporting |
US9495370B1 (en) | 2007-07-19 | 2016-11-15 | American Megatrends, Inc. | Data recovery point review in a continuous data protection system |
US9632874B2 (en) | 2014-01-24 | 2017-04-25 | Commvault Systems, Inc. | Database application backup in single snapshot for multiple applications |
US9639426B2 (en) | 2014-01-24 | 2017-05-02 | Commvault Systems, Inc. | Single snapshot for multiple applications |
US9639428B1 (en) * | 2014-03-28 | 2017-05-02 | EMC IP Holding Company LLC | Optimized backup of clusters with multiple proxy servers |
US9648105B2 (en) | 2014-11-14 | 2017-05-09 | Commvault Systems, Inc. | Unified snapshot storage management, using an enhanced storage manager and enhanced media agents |
US9753812B2 (en) | 2014-01-24 | 2017-09-05 | Commvault Systems, Inc. | Generating mapping information for single snapshot for multiple applications |
US9774672B2 (en) | 2014-09-03 | 2017-09-26 | Commvault Systems, Inc. | Consolidated processing of storage-array commands by a snapshot-control media agent |
US9858156B2 (en) | 2012-06-13 | 2018-01-02 | Commvault Systems, Inc. | Dedicated client-side signature generator in a networked storage system |
US9886346B2 (en) | 2013-01-11 | 2018-02-06 | Commvault Systems, Inc. | Single snapshot for multiple agents |
US9898478B2 (en) | 2010-12-14 | 2018-02-20 | Commvault Systems, Inc. | Distributed deduplicated storage system |
US9898225B2 (en) | 2010-09-30 | 2018-02-20 | Commvault Systems, Inc. | Content aligned block-based deduplication |
US9934238B2 (en) | 2014-10-29 | 2018-04-03 | Commvault Systems, Inc. | Accessing a file system using tiered deduplication |
US10042716B2 (en) | 2014-09-03 | 2018-08-07 | Commvault Systems, Inc. | Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent |
US10061663B2 (en) | 2015-12-30 | 2018-08-28 | Commvault Systems, Inc. | Rebuilding deduplication data in a distributed deduplication data storage system |
US10126973B2 (en) | 2010-09-30 | 2018-11-13 | Commvault Systems, Inc. | Systems and methods for retaining and using data block signatures in data protection operations |
US10191816B2 (en) | 2010-12-14 | 2019-01-29 | Commvault Systems, Inc. | Client-side repository in a networked deduplicated storage system |
US10229133B2 (en) | 2013-01-11 | 2019-03-12 | Commvault Systems, Inc. | High availability distributed deduplicated storage system |
US10331374B2 (en) * | 2017-06-30 | 2019-06-25 | Oracle International Corporation | High-performance writable snapshots in data storage systems |
US10339106B2 (en) | 2015-04-09 | 2019-07-02 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
US10380072B2 (en) | 2014-03-17 | 2019-08-13 | Commvault Systems, Inc. | Managing deletions from a deduplication database |
US10481826B2 (en) | 2015-05-26 | 2019-11-19 | Commvault Systems, Inc. | Replication using deduplicated secondary copy data |
US10503753B2 (en) | 2016-03-10 | 2019-12-10 | Commvault Systems, Inc. | Snapshot replication operations based on incremental block change tracking |
US10521151B1 (en) | 2018-03-05 | 2019-12-31 | Pure Storage, Inc. | Determining effective space utilization in a storage system |
US10540327B2 (en) | 2009-07-08 | 2020-01-21 | Commvault Systems, Inc. | Synchronized data deduplication |
US10732885B2 (en) | 2018-02-14 | 2020-08-04 | Commvault Systems, Inc. | Block-level live browsing and private writable snapshots using an ISCSI server |
US10831608B2 (en) | 2009-09-14 | 2020-11-10 | Commvault Systems, Inc. | Systems and methods for performing data management operations using snapshots |
US10908835B1 (en) | 2013-01-10 | 2021-02-02 | Pure Storage, Inc. | Reversing deletion of a virtual machine |
US10921986B2 (en) | 2019-05-14 | 2021-02-16 | Oracle International Corporation | Efficient space management for high performance writable snapshots |
US10942650B1 (en) | 2018-03-05 | 2021-03-09 | Pure Storage, Inc. | Reporting capacity utilization in a storage system |
US11003623B2 (en) * | 2019-01-10 | 2021-05-11 | Druva Inc. | Snapshot usage tracking system and method |
US11010258B2 (en) | 2018-11-27 | 2021-05-18 | Commvault Systems, Inc. | Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication |
US11016859B2 (en) | 2008-06-24 | 2021-05-25 | Commvault Systems, Inc. | De-duplication systems and methods for application-specific data |
US20210173747A1 (en) * | 2018-11-30 | 2021-06-10 | Tencent Technology (Shenzhen) Company Limited | Data backup method and apparatus, server, and computer-readable storage medium |
US11150834B1 (en) | 2018-03-05 | 2021-10-19 | Pure Storage, Inc. | Determining storage consumption in a storage system |
US11249858B2 (en) | 2014-08-06 | 2022-02-15 | Commvault Systems, Inc. | Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host |
US11294768B2 (en) | 2017-06-14 | 2022-04-05 | Commvault Systems, Inc. | Live browsing of backed up data residing on cloned disks |
US11314424B2 (en) | 2015-07-22 | 2022-04-26 | Commvault Systems, Inc. | Restore for block-level backups |
US11321195B2 (en) | 2017-02-27 | 2022-05-03 | Commvault Systems, Inc. | Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount |
US11416341B2 (en) | 2014-08-06 | 2022-08-16 | Commvault Systems, Inc. | Systems and methods to reduce application downtime during a restore operation using a pseudo-storage device |
US11436038B2 (en) | 2016-03-09 | 2022-09-06 | Commvault Systems, Inc. | Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block- level pseudo-mount) |
US11442896B2 (en) | 2019-12-04 | 2022-09-13 | Commvault Systems, Inc. | Systems and methods for optimizing restoration of deduplicated data stored in cloud-based storage resources |
US11463264B2 (en) | 2019-05-08 | 2022-10-04 | Commvault Systems, Inc. | Use of data block signatures for monitoring in an information management system |
US11687424B2 (en) | 2020-05-28 | 2023-06-27 | Commvault Systems, Inc. | Automated media agent state management |
US11698727B2 (en) | 2018-12-14 | 2023-07-11 | Commvault Systems, Inc. | Performing secondary copy operations based on deduplication performance |
US11733908B2 (en) | 2013-01-10 | 2023-08-22 | Pure Storage, Inc. | Delaying deletion of a dataset |
US11829251B2 (en) | 2019-04-10 | 2023-11-28 | Commvault Systems, Inc. | Restore using deduplicated secondary copy data |
US11861170B2 (en) | 2018-03-05 | 2024-01-02 | Pure Storage, Inc. | Sizing resources for a replication target |
US11972134B2 (en) | 2022-01-12 | 2024-04-30 | Pure Storage, Inc. | Resource utilization using normalized input/output (‘I/O’) operations |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5819292A (en) | 1993-06-03 | 1998-10-06 | Network Appliance, Inc. | Method for maintaining consistent states of a file system and for creating user-accessible read-only copies of a file system |
US5963962A (en) | 1995-05-31 | 1999-10-05 | Network Appliance, Inc. | Write anywhere file-system layout |
US6061770A (en) | 1997-11-04 | 2000-05-09 | Adaptec, Inc. | System and method for real-time data backup using snapshot copying with selective compaction of backup data |
US20010047482A1 (en) * | 2000-01-20 | 2001-11-29 | Harris Gordon J. | Distributed storage resource management in a storage area network |
US6341341B1 (en) | 1999-12-16 | 2002-01-22 | Adaptec, Inc. | System and method for disk control with snapshot feature including read-write snapshot half |
US20020083037A1 (en) | 2000-08-18 | 2002-06-27 | Network Appliance, Inc. | Instant snapshot |
US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
US20030159007A1 (en) * | 2002-02-15 | 2003-08-21 | International Business Machines Corporation | Deferred copy-on-write of a snapshot |
US6799258B1 (en) * | 2001-01-10 | 2004-09-28 | Datacore Software Corporation | Methods and apparatus for point-in-time volumes |
US6823376B1 (en) * | 1999-04-26 | 2004-11-23 | International Business Machines Corporation | Method and system for capturing and storing system changes for application to multiple users and systems in a heterogeneous server environment |
US6829617B2 (en) * | 2002-02-15 | 2004-12-07 | International Business Machines Corporation | Providing a snapshot of a subset of a file system |
-
2002
- 2002-09-06 US US10/237,432 patent/US7100089B1/en not_active Expired - Lifetime
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289356B1 (en) | 1993-06-03 | 2001-09-11 | Network Appliance, Inc. | Write anywhere file-system layout |
US5819292A (en) | 1993-06-03 | 1998-10-06 | Network Appliance, Inc. | Method for maintaining consistent states of a file system and for creating user-accessible read-only copies of a file system |
US5963962A (en) | 1995-05-31 | 1999-10-05 | Network Appliance, Inc. | Write anywhere file-system layout |
US6061770A (en) | 1997-11-04 | 2000-05-09 | Adaptec, Inc. | System and method for real-time data backup using snapshot copying with selective compaction of backup data |
US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
US6823376B1 (en) * | 1999-04-26 | 2004-11-23 | International Business Machines Corporation | Method and system for capturing and storing system changes for application to multiple users and systems in a heterogeneous server environment |
US6341341B1 (en) | 1999-12-16 | 2002-01-22 | Adaptec, Inc. | System and method for disk control with snapshot feature including read-write snapshot half |
US20010047482A1 (en) * | 2000-01-20 | 2001-11-29 | Harris Gordon J. | Distributed storage resource management in a storage area network |
US6826580B2 (en) * | 2000-01-20 | 2004-11-30 | Emc Corporation | Distributed storage resource management in a storage area network |
US20020083037A1 (en) | 2000-08-18 | 2002-06-27 | Network Appliance, Inc. | Instant snapshot |
US6799258B1 (en) * | 2001-01-10 | 2004-09-28 | Datacore Software Corporation | Methods and apparatus for point-in-time volumes |
US20030159007A1 (en) * | 2002-02-15 | 2003-08-21 | International Business Machines Corporation | Deferred copy-on-write of a snapshot |
US6829617B2 (en) * | 2002-02-15 | 2004-12-07 | International Business Machines Corporation | Providing a snapshot of a subset of a file system |
Non-Patent Citations (5)
Title |
---|
"Snapshot Feature", LSI Logic Storage Systems, SANtricity brochure, 2 pages. |
"The Enterprise Challenge Served by Snapshot", Whitepaper, LSI Logic Storage Systems, pp. 1-8. |
Dave Hitz et al., "File System Design for an NFS File Server Appliance", paper downloaded from http://www.netapp.com/tech<SUB>-</SUB>library/3002.html on Sep. 30, 2002, 13 pages. |
Suresh B. Siddha et al., "A Persistent Snapshot Device Driver for Linux", Proceedings of the 5th Annual Linux Showcase & Conference, Oakland, CA, USA, Nov. 5-10, 2001, 11 pages. |
Suresh B. Siddha et al., "A Persistent Snapshot Device Driver for Linux", published Sep. 13, 2001, downloaded from http://www.linuxshowcase.org/full<SUB>-</SUB>papers/siddha/siddha<SUB>-</SUB>html/index.html on May 15, 2002, 4 pages. |
Cited By (263)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050227569A1 (en) * | 2001-09-03 | 2005-10-13 | Matsushita Electric Industrial Co., Ltd. | Light-emitting semiconductor device, light-emitting system and method for fabricating light-emitting semiconductor device |
US7454529B2 (en) | 2002-08-02 | 2008-11-18 | Netapp, Inc. | Protectable data storage system and a method of protecting and/or managing a data storage system |
US20040024919A1 (en) * | 2002-08-02 | 2004-02-05 | Alacritus, Inc. | Protectable data storage system and a method of protecting and/or managing a data storage system |
US7882081B2 (en) | 2002-08-30 | 2011-02-01 | Netapp, Inc. | Optimized disk repository for the storage and retrieval of mostly sequential data |
US7437387B2 (en) | 2002-08-30 | 2008-10-14 | Netapp, Inc. | Method and system for providing a file system overlay |
US20100100701A1 (en) * | 2002-10-16 | 2010-04-22 | Microsoft Corporation | Optimizing defragmentation operations in a differential snapshotter |
US8386434B2 (en) | 2002-10-16 | 2013-02-26 | Microsoft Corporation | Optimizing defragmentation operations in a differential snapshotter |
US20040133602A1 (en) * | 2002-10-16 | 2004-07-08 | Microsoft Corporation | Optimizing defragmentation operations in a differential snapshotter |
US7664771B2 (en) * | 2002-10-16 | 2010-02-16 | Microsoft Corporation | Optimizing defragmentation operations in a differential snapshotter |
US20040153739A1 (en) * | 2002-12-09 | 2004-08-05 | Alacritus, Inc. | Method and system for creating and using removable disk based copies of backup data |
US7567993B2 (en) | 2002-12-09 | 2009-07-28 | Netapp, Inc. | Method and system for creating and using removable disk based copies of backup data |
US8024172B2 (en) | 2002-12-09 | 2011-09-20 | Netapp, Inc. | Method and system for emulating tape libraries |
US20040186900A1 (en) * | 2003-03-18 | 2004-09-23 | Hitachi, Ltd. | Method of maintaining a plurality of snapshots, server apparatus and storage apparatus |
US7657721B2 (en) | 2003-03-18 | 2010-02-02 | Hitachi, Ltd. | Method of maintaining a plurality of snapshots, server apparatus and storage apparatus |
US7237076B2 (en) * | 2003-03-18 | 2007-06-26 | Hitachi, Ltd. | Method of maintaining a plurality of snapshots, server apparatus and storage apparatus |
US20040230724A1 (en) * | 2003-05-14 | 2004-11-18 | Roger Stager | Method and system for data compression and compression estimation in a virtual tape library environment |
US7437492B2 (en) | 2003-05-14 | 2008-10-14 | Netapp, Inc | Method and system for data compression and compression estimation in a virtual tape library environment |
US9208160B2 (en) * | 2003-11-13 | 2015-12-08 | Commvault Systems, Inc. | System and method for performing an image level snapshot and for restoring partial volume data |
US9619341B2 (en) | 2003-11-13 | 2017-04-11 | Commvault Systems, Inc. | System and method for performing an image level snapshot and for restoring partial volume data |
US9405631B2 (en) | 2003-11-13 | 2016-08-02 | Commvault Systems, Inc. | System and method for performing an image level snapshot and for restoring partial volume data |
US20150095285A1 (en) * | 2003-11-13 | 2015-04-02 | Commvault Systems, Inc. | System and method for performing an image level snapshot and for restoring partial volume data |
US20060112251A1 (en) * | 2003-11-26 | 2006-05-25 | Veritas Operating Corporation | Host-based virtualization optimizations in storage environments employing off-host storage virtualization |
US20050228937A1 (en) * | 2003-11-26 | 2005-10-13 | Veritas Operating Corporation | System and method for emulating operating system metadata to provide cross-platform access to storage volumes |
US7669032B2 (en) * | 2003-11-26 | 2010-02-23 | Symantec Operating Corporation | Host-based virtualization optimizations in storage environments employing off-host storage virtualization |
US7689803B2 (en) | 2003-11-26 | 2010-03-30 | Symantec Operating Corporation | System and method for communication using emulated LUN blocks in storage virtualization environments |
US20050138623A1 (en) * | 2003-12-22 | 2005-06-23 | Nedim Fresko | System and method for dynamically and persistently tracking incremental profiling data in a process cloning application environment |
US7421698B2 (en) * | 2003-12-22 | 2008-09-02 | Sun Microsystems, Inc. | System and method for dynamically and persistently tracking incremental profiling data in a process cloning application environment |
US7720817B2 (en) | 2004-02-04 | 2010-05-18 | Netapp, Inc. | Method and system for browsing objects on a protected volume in a continuous data protection system |
US20050216536A1 (en) * | 2004-02-04 | 2005-09-29 | Alacritus, Inc. | Method and system for backing up data |
US7406488B2 (en) | 2004-02-04 | 2008-07-29 | Netapp | Method and system for maintaining data in a continuous data protection system |
US7315965B2 (en) | 2004-02-04 | 2008-01-01 | Network Appliance, Inc. | Method and system for storing data using a continuous data protection system |
US7426617B2 (en) * | 2004-02-04 | 2008-09-16 | Network Appliance, Inc. | Method and system for synchronizing volumes in a continuous data protection system |
US7797582B1 (en) | 2004-02-04 | 2010-09-14 | Netapp, Inc. | Method and system for storing data using a continuous data protection system |
US7783606B2 (en) | 2004-02-04 | 2010-08-24 | Netapp, Inc. | Method and system for remote data recovery |
US20050182953A1 (en) * | 2004-02-04 | 2005-08-18 | Alacritus, Inc. | Method and system for browsing objects on a protected volume in a continuous data protection system |
US20050171979A1 (en) * | 2004-02-04 | 2005-08-04 | Alacritus, Inc. | Method and system for maintaining data in a continuous data protection system |
US7325159B2 (en) | 2004-02-04 | 2008-01-29 | Network Appliance, Inc. | Method and system for data recovery in a continuous data protection system |
US7490103B2 (en) | 2004-02-04 | 2009-02-10 | Netapp, Inc. | Method and system for backing up data |
US7979654B2 (en) | 2004-02-04 | 2011-07-12 | Netapp, Inc. | Method and system for restoring a volume in a continuous data protection system |
US20050193272A1 (en) * | 2004-02-04 | 2005-09-01 | Alacritus, Inc. | Method and system for storing data using a continuous data protection system |
US20050193244A1 (en) * | 2004-02-04 | 2005-09-01 | Alacritus, Inc. | Method and system for restoring a volume in a continuous data protection system |
US20050188256A1 (en) * | 2004-02-04 | 2005-08-25 | Alacritus, Inc. | Method and system for data recovery in a continuous data protection system |
US7904679B2 (en) | 2004-02-04 | 2011-03-08 | Netapp, Inc. | Method and apparatus for managing backup data |
US8028135B1 (en) | 2004-09-01 | 2011-09-27 | Netapp, Inc. | Method and apparatus for maintaining compliant storage |
US7984085B1 (en) * | 2004-10-25 | 2011-07-19 | Network Appliance, Inc. | Rate of change of data using on-the-fly accounting |
US20090300605A1 (en) * | 2004-10-29 | 2009-12-03 | Hewlett-Packard Development Company, L.P. | Virtual computing infrastructure |
US8544002B2 (en) * | 2004-10-29 | 2013-09-24 | Hewlett-Packard Development Company, L.P. | Managing virtual overlay infrastructures |
US20090241108A1 (en) * | 2004-10-29 | 2009-09-24 | Hewlett-Packard Development Company, L.P. | Virtual computing infrastructure |
US20110119748A1 (en) * | 2004-10-29 | 2011-05-19 | Hewlett-Packard Development Company, L.P. | Virtual computing infrastructure |
US9596239B2 (en) | 2004-10-29 | 2017-03-14 | Hewlett Packard Enterprise Development Lp | Controlling virtual overlay infrastructure |
US8719914B2 (en) | 2004-10-29 | 2014-05-06 | Hewlett-Packard Development Company, L.P. | Virtual computing infrastructure |
US20060106855A1 (en) * | 2004-11-02 | 2006-05-18 | International Business Machines Corporation | Reusable row indices table |
US20060106893A1 (en) * | 2004-11-02 | 2006-05-18 | Rodger Daniels | Incremental backup operations in storage networks |
US7774610B2 (en) | 2004-12-14 | 2010-08-10 | Netapp, Inc. | Method and apparatus for verifiably migrating WORM data |
US20060168352A1 (en) * | 2004-12-20 | 2006-07-27 | Alexander Gebhart | Automated grid compute node cleaning |
US7587480B2 (en) * | 2004-12-20 | 2009-09-08 | Sap Ag | Automated grid compute node cleaning |
US7757056B1 (en) * | 2005-03-16 | 2010-07-13 | Netapp, Inc. | System and method for efficiently calculating storage required to split a clone volume |
US9152503B1 (en) | 2005-03-16 | 2015-10-06 | Netapp, Inc. | System and method for efficiently calculating storage required to split a clone volume |
US20070016740A1 (en) * | 2005-06-29 | 2007-01-18 | Nagender Somavarapu | Method and system for managing point-to-time images |
US7480778B2 (en) * | 2005-06-29 | 2009-01-20 | Netapp, Inc. | Method and system for managing point-in-time images |
US7743028B1 (en) * | 2005-07-13 | 2010-06-22 | Symantec Corporation | Incremental backup of partial volumes |
US7401198B2 (en) | 2005-10-06 | 2008-07-15 | Netapp | Maximizing storage system throughput by measuring system performance metrics |
US20070083727A1 (en) * | 2005-10-06 | 2007-04-12 | Network Appliance, Inc. | Maximizing storage system throughput by measuring system performance metrics |
US20070162515A1 (en) * | 2005-12-28 | 2007-07-12 | Network Appliance, Inc. | Method and apparatus for cloning filesystems across computing systems |
US7464116B2 (en) * | 2005-12-28 | 2008-12-09 | Network Appliance, Inc. | Method and apparatus for cloning filesystems across computing systems |
US7752401B2 (en) | 2006-01-25 | 2010-07-06 | Netapp, Inc. | Method and apparatus to automatically commit files to WORM status |
US20070186001A1 (en) * | 2006-02-07 | 2007-08-09 | Dot Hill Systems Corp. | Data replication method and apparatus |
US8990153B2 (en) | 2006-02-07 | 2015-03-24 | Dot Hill Systems Corporation | Pull data replication model |
US20110087792A2 (en) * | 2006-02-07 | 2011-04-14 | Dot Hill Systems Corporation | Data replication method and apparatus |
US7913052B2 (en) * | 2006-03-22 | 2011-03-22 | Hitachi, Ltd. | Method and apparatus for reducing the amount of data in a storage system |
US20090043983A1 (en) * | 2006-03-22 | 2009-02-12 | Hitachi, Ltd. | Method and apparatus for reducing the amount of data in a storage system |
US20080072003A1 (en) * | 2006-03-28 | 2008-03-20 | Dot Hill Systems Corp. | Method and apparatus for master volume access during colume copy |
US7783850B2 (en) | 2006-03-28 | 2010-08-24 | Dot Hill Systems Corporation | Method and apparatus for master volume access during volume copy |
US7650533B1 (en) | 2006-04-20 | 2010-01-19 | Netapp, Inc. | Method and system for performing a restoration in a continuous data protection system |
US8046534B2 (en) * | 2006-10-26 | 2011-10-25 | Hewlett-Packard Development Company, L.P. | Managing snapshots in storage systems |
US20080104139A1 (en) * | 2006-10-26 | 2008-05-01 | Xia Xu | Managing snapshots in storage systems |
US7593973B2 (en) | 2006-11-15 | 2009-09-22 | Dot Hill Systems Corp. | Method and apparatus for transferring snapshot data |
US8751467B2 (en) | 2007-01-18 | 2014-06-10 | Dot Hill Systems Corporation | Method and apparatus for quickly accessing backing store metadata |
US7831565B2 (en) | 2007-01-18 | 2010-11-09 | Dot Hill Systems Corporation | Deletion of rollback snapshot partition |
US20080177957A1 (en) * | 2007-01-18 | 2008-07-24 | Dot Hill Systems Corp. | Deletion of rollback snapshot partition |
US7975115B2 (en) | 2007-04-11 | 2011-07-05 | Dot Hill Systems Corporation | Method and apparatus for separating snapshot preserved and write data |
US20080256311A1 (en) * | 2007-04-11 | 2008-10-16 | Dot Hill Systems Corp. | Snapshot preserved data cloning |
US8656123B2 (en) | 2007-04-11 | 2014-02-18 | Dot Hill Systems Corporation | Snapshot preserved data cloning |
US7716183B2 (en) | 2007-04-11 | 2010-05-11 | Dot Hill Systems Corporation | Snapshot preserved data cloning |
US20090307450A1 (en) * | 2007-04-11 | 2009-12-10 | Dot Hill Systems Corporation | Snapshot Preserved Data Cloning |
US20080256141A1 (en) * | 2007-04-11 | 2008-10-16 | Dot Hill Systems Corp. | Method and apparatus for separating snapshot preserved and write data |
WO2008127831A1 (en) * | 2007-04-11 | 2008-10-23 | Dot Hill Systems Corp. | Snapshot preserved data cloning |
US8001345B2 (en) | 2007-05-10 | 2011-08-16 | Dot Hill Systems Corporation | Automatic triggering of backing store re-initialization |
US20080281877A1 (en) * | 2007-05-10 | 2008-11-13 | Dot Hill Systems Corp. | Backing store re-initialization method and apparatus |
US20080281875A1 (en) * | 2007-05-10 | 2008-11-13 | Dot Hill Systems Corp. | Automatic triggering of backing store re-initialization |
US7783603B2 (en) | 2007-05-10 | 2010-08-24 | Dot Hill Systems Corporation | Backing store re-initialization method and apparatus |
US20080320258A1 (en) * | 2007-06-25 | 2008-12-25 | Dot Hill Systems Corp. | Snapshot reset method and apparatus |
US8200631B2 (en) | 2007-06-25 | 2012-06-12 | Dot Hill Systems Corporation | Snapshot reset method and apparatus |
US8204858B2 (en) | 2007-06-25 | 2012-06-19 | Dot Hill Systems Corporation | Snapshot reset method and apparatus |
US9495370B1 (en) | 2007-07-19 | 2016-11-15 | American Megatrends, Inc. | Data recovery point review in a continuous data protection system |
CN101546282B (en) * | 2008-03-28 | 2011-05-18 | 国际商业机器公司 | Method and device used for writing and copying in processor |
US20090254695A1 (en) * | 2008-04-07 | 2009-10-08 | Hitachi, Ltd. | Storage system comprising plurality of storage system modules |
US8645658B2 (en) * | 2008-04-07 | 2014-02-04 | Hitachi, Ltd. | Storage system comprising plurality of storage system modules |
US11016859B2 (en) | 2008-06-24 | 2021-05-25 | Commvault Systems, Inc. | De-duplication systems and methods for application-specific data |
US20100017444A1 (en) * | 2008-07-15 | 2010-01-21 | Paresh Chatterjee | Continuous Data Protection of Files Stored on a Remote Storage Device |
US8706694B2 (en) * | 2008-07-15 | 2014-04-22 | American Megatrends, Inc. | Continuous data protection of files stored on a remote storage device |
US8615495B1 (en) * | 2008-08-13 | 2013-12-24 | Symantec Corporation | Techniques for providing a differential backup from a storage image |
US8117410B2 (en) * | 2008-08-25 | 2012-02-14 | Vmware, Inc. | Tracking block-level changes using snapshots |
US20100076934A1 (en) * | 2008-08-25 | 2010-03-25 | Vmware, Inc. | Storing Block-Level Tracking Information in the File System on the Same Block Device |
US20100077165A1 (en) * | 2008-08-25 | 2010-03-25 | Vmware, Inc. | Tracking Block-Level Changes Using Snapshots |
US8615489B2 (en) | 2008-08-25 | 2013-12-24 | Vmware, Inc. | Storing block-level tracking information in the file system on the same block device |
US9189335B2 (en) | 2008-10-24 | 2015-11-17 | Hitachi, Ltd. | Fast data recovery from HDD failure |
US8639969B2 (en) | 2008-10-24 | 2014-01-28 | Hitachi, Ltd. | Fast data recovery from HDD failure |
US20100125583A1 (en) * | 2008-10-30 | 2010-05-20 | Corene Casper | Tracking Memory Space in a Storage System |
US20100115011A1 (en) * | 2008-10-30 | 2010-05-06 | Callahan Michael J | Enumerating Metadata in File System Directories |
US9176963B2 (en) | 2008-10-30 | 2015-11-03 | Hewlett-Packard Development Company, L.P. | Managing counters in a distributed file system |
US8560524B2 (en) | 2008-10-30 | 2013-10-15 | Hewlett-Packard Development Company, L.P. | Allocating priorities to prevent deadlocks in a storage system |
US8688936B2 (en) * | 2008-10-30 | 2014-04-01 | International Business Machines Corporation | Point-in-time copies in a cascade using maps and fdisks |
US8874627B2 (en) | 2008-10-30 | 2014-10-28 | Hewlett-Packard Development Company, L.P. | Enumerating metadata in file system directories |
US8713272B2 (en) | 2008-10-30 | 2014-04-29 | International Business Machines Corporation | Point-in-time copies in a cascade using maps and fdisks |
US8312242B2 (en) | 2008-10-30 | 2012-11-13 | Hewlett-Packard Development Company, L.P. | Tracking memory space in a storage system |
WO2010050943A1 (en) * | 2008-10-30 | 2010-05-06 | Hewlett-Packard Development Company, L.P. | Creating snapshots of a file system |
US20100115009A1 (en) * | 2008-10-30 | 2010-05-06 | Callahan Michael J | Managing Counters in a Distributed File System |
US20110208932A1 (en) * | 2008-10-30 | 2011-08-25 | International Business Machines Corporation | Flashcopy handling |
US20100114849A1 (en) * | 2008-10-30 | 2010-05-06 | Kingsbury Brent A | Allocating Priorities to Prevent Deadlocks in a Storage System |
US8996826B2 (en) | 2009-04-28 | 2015-03-31 | Symantec Corporation | Techniques for system recovery using change tracking |
US20100274980A1 (en) * | 2009-04-28 | 2010-10-28 | Symantec Corporation | Techniques for system recovery using change tracking |
WO2010129179A3 (en) * | 2009-04-28 | 2010-12-29 | Symantec Corporation | Techniques for system recovery using change tracking |
US8751523B2 (en) * | 2009-06-05 | 2014-06-10 | Apple Inc. | Snapshot based search |
US20100312783A1 (en) * | 2009-06-05 | 2010-12-09 | Donald James Brady | Snapshot based search |
US11288235B2 (en) | 2009-07-08 | 2022-03-29 | Commvault Systems, Inc. | Synchronized data deduplication |
US10540327B2 (en) | 2009-07-08 | 2020-01-21 | Commvault Systems, Inc. | Synchronized data deduplication |
US10831608B2 (en) | 2009-09-14 | 2020-11-10 | Commvault Systems, Inc. | Systems and methods for performing data management operations using snapshots |
US8762337B2 (en) * | 2009-10-30 | 2014-06-24 | Symantec Corporation | Storage replication systems and methods |
US20110106763A1 (en) * | 2009-10-30 | 2011-05-05 | Symantec Corporation | Storage replication systems and methods |
US9424744B2 (en) | 2009-10-30 | 2016-08-23 | International Business Machines Corporation | Method and apparatus for traffic management |
US8745343B2 (en) * | 2010-04-20 | 2014-06-03 | Xyratex Technology Limited | Data duplication resynchronization with reduced time and processing requirements |
US20110258381A1 (en) * | 2010-04-20 | 2011-10-20 | Xyratex Technology Limited | Data duplication resynchronisation |
US10126973B2 (en) | 2010-09-30 | 2018-11-13 | Commvault Systems, Inc. | Systems and methods for retaining and using data block signatures in data protection operations |
US9898225B2 (en) | 2010-09-30 | 2018-02-20 | Commvault Systems, Inc. | Content aligned block-based deduplication |
US10191816B2 (en) | 2010-12-14 | 2019-01-29 | Commvault Systems, Inc. | Client-side repository in a networked deduplicated storage system |
US11169888B2 (en) | 2010-12-14 | 2021-11-09 | Commvault Systems, Inc. | Client-side repository in a networked deduplicated storage system |
US11422976B2 (en) | 2010-12-14 | 2022-08-23 | Commvault Systems, Inc. | Distributed deduplicated storage system |
US9898478B2 (en) | 2010-12-14 | 2018-02-20 | Commvault Systems, Inc. | Distributed deduplicated storage system |
US10740295B2 (en) | 2010-12-14 | 2020-08-11 | Commvault Systems, Inc. | Distributed deduplicated storage system |
US10430281B2 (en) | 2011-01-28 | 2019-10-01 | International Business Machines Corporation | Space efficient cascading point in time copying |
US10114701B2 (en) | 2011-01-28 | 2018-10-30 | International Business Machines Corporation | Space efficient cascading point in time copying |
US20130173552A1 (en) * | 2011-01-28 | 2013-07-04 | International Business Machines Corporation | Space efficient cascading point in time copying |
US9514139B2 (en) * | 2011-01-28 | 2016-12-06 | International Business Machines Corporation | Space efficient cascading point in time copying |
US9501231B2 (en) | 2011-05-31 | 2016-11-22 | Hitachi, Ltd. | Storage system and storage control method |
US20120311261A1 (en) * | 2011-05-31 | 2012-12-06 | Hitachi, Ltd. | Storage system and storage control method |
US8909883B2 (en) * | 2011-05-31 | 2014-12-09 | Hitachi, Ltd. | Storage system and storage control method |
US9235594B2 (en) | 2011-11-29 | 2016-01-12 | International Business Machines Corporation | Synchronizing updates across cluster filesystems |
US10698866B2 (en) | 2011-11-29 | 2020-06-30 | International Business Machines Corporation | Synchronizing updates across cluster filesystems |
JP2014534482A (en) * | 2012-02-16 | 2014-12-18 | 株式会社日立製作所 | Storage system, management computer, storage device, and data management method |
US9026753B2 (en) | 2012-02-16 | 2015-05-05 | Hitachi, Ltd. | Snapshot volume generational management for snapshot copy operations using differential data |
WO2013121465A1 (en) * | 2012-02-16 | 2013-08-22 | Hitachi, Ltd. | Storage system, management server, storage apparatus, and data management method |
US9298715B2 (en) | 2012-03-07 | 2016-03-29 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9898371B2 (en) | 2012-03-07 | 2018-02-20 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9471578B2 (en) | 2012-03-07 | 2016-10-18 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9928146B2 (en) | 2012-03-07 | 2018-03-27 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9342537B2 (en) | 2012-04-23 | 2016-05-17 | Commvault Systems, Inc. | Integrated snapshot interface for a data storage system |
US11269543B2 (en) | 2012-04-23 | 2022-03-08 | Commvault Systems, Inc. | Integrated snapshot interface for a data storage system |
US9928002B2 (en) | 2012-04-23 | 2018-03-27 | Commvault Systems, Inc. | Integrated snapshot interface for a data storage system |
US10698632B2 (en) | 2012-04-23 | 2020-06-30 | Commvault Systems, Inc. | Integrated snapshot interface for a data storage system |
US10387269B2 (en) | 2012-06-13 | 2019-08-20 | Commvault Systems, Inc. | Dedicated client-side signature generator in a networked storage system |
US10956275B2 (en) | 2012-06-13 | 2021-03-23 | Commvault Systems, Inc. | Collaborative restore in a networked storage system |
US10176053B2 (en) | 2012-06-13 | 2019-01-08 | Commvault Systems, Inc. | Collaborative restore in a networked storage system |
US9858156B2 (en) | 2012-06-13 | 2018-01-02 | Commvault Systems, Inc. | Dedicated client-side signature generator in a networked storage system |
US9223659B1 (en) * | 2012-06-28 | 2015-12-29 | Emc International Company | Generating and accessing a virtual volume snapshot in a continuous data protection system |
US20140052899A1 (en) * | 2012-08-18 | 2014-02-20 | Yen Chih Nan | Memory address translation method for flash storage system |
US11573727B1 (en) | 2013-01-10 | 2023-02-07 | Pure Storage, Inc. | Virtual machine backup and restoration |
US20140195749A1 (en) * | 2013-01-10 | 2014-07-10 | Pure Storage, Inc. | Deduplication of Volume Regions |
US10908835B1 (en) | 2013-01-10 | 2021-02-02 | Pure Storage, Inc. | Reversing deletion of a virtual machine |
US11733908B2 (en) | 2013-01-10 | 2023-08-22 | Pure Storage, Inc. | Delaying deletion of a dataset |
US9891858B1 (en) * | 2013-01-10 | 2018-02-13 | Pure Storage, Inc. | Deduplication of regions with a storage system |
US9589008B2 (en) * | 2013-01-10 | 2017-03-07 | Pure Storage, Inc. | Deduplication of volume regions |
US11847026B2 (en) | 2013-01-11 | 2023-12-19 | Commvault Systems, Inc. | Single snapshot for multiple agents |
US10229133B2 (en) | 2013-01-11 | 2019-03-12 | Commvault Systems, Inc. | High availability distributed deduplicated storage system |
US11157450B2 (en) | 2013-01-11 | 2021-10-26 | Commvault Systems, Inc. | High availability distributed deduplicated storage system |
US10853176B2 (en) | 2013-01-11 | 2020-12-01 | Commvault Systems, Inc. | Single snapshot for multiple agents |
US9886346B2 (en) | 2013-01-11 | 2018-02-06 | Commvault Systems, Inc. | Single snapshot for multiple agents |
US10671484B2 (en) | 2014-01-24 | 2020-06-02 | Commvault Systems, Inc. | Single snapshot for multiple applications |
US10223365B2 (en) | 2014-01-24 | 2019-03-05 | Commvault Systems, Inc. | Snapshot readiness checking and reporting |
US9495251B2 (en) | 2014-01-24 | 2016-11-15 | Commvault Systems, Inc. | Snapshot readiness checking and reporting |
US9639426B2 (en) | 2014-01-24 | 2017-05-02 | Commvault Systems, Inc. | Single snapshot for multiple applications |
US9753812B2 (en) | 2014-01-24 | 2017-09-05 | Commvault Systems, Inc. | Generating mapping information for single snapshot for multiple applications |
US9632874B2 (en) | 2014-01-24 | 2017-04-25 | Commvault Systems, Inc. | Database application backup in single snapshot for multiple applications |
US10572444B2 (en) | 2014-01-24 | 2020-02-25 | Commvault Systems, Inc. | Operation readiness checking and reporting |
US10942894B2 (en) | 2014-01-24 | 2021-03-09 | Commvault Systems, Inc | Operation readiness checking and reporting |
US9892123B2 (en) | 2014-01-24 | 2018-02-13 | Commvault Systems, Inc. | Snapshot readiness checking and reporting |
US11188504B2 (en) | 2014-03-17 | 2021-11-30 | Commvault Systems, Inc. | Managing deletions from a deduplication database |
US10445293B2 (en) | 2014-03-17 | 2019-10-15 | Commvault Systems, Inc. | Managing deletions from a deduplication database |
US10380072B2 (en) | 2014-03-17 | 2019-08-13 | Commvault Systems, Inc. | Managing deletions from a deduplication database |
US11119984B2 (en) | 2014-03-17 | 2021-09-14 | Commvault Systems, Inc. | Managing deletions from a deduplication database |
US9639428B1 (en) * | 2014-03-28 | 2017-05-02 | EMC IP Holding Company LLC | Optimized backup of clusters with multiple proxy servers |
US10929244B2 (en) | 2014-03-28 | 2021-02-23 | EMC IP Holding Company LLC | Optimized backup of clusters with multiple proxy servers |
US10055306B1 (en) | 2014-03-28 | 2018-08-21 | EMC IP Holding Company LLC | Optimized backup of clusters with multiple proxy servers |
US10528430B2 (en) | 2014-03-28 | 2020-01-07 | EMC IP Holding Company LLC | Optimized backup of clusters with multiple proxy servers |
US20160034197A1 (en) * | 2014-08-04 | 2016-02-04 | Fujitsu Limited | Data migration method and data migration device |
US10001921B2 (en) * | 2014-08-04 | 2018-06-19 | Fujitsu Limited | Data migration method and data migration device |
US11249858B2 (en) | 2014-08-06 | 2022-02-15 | Commvault Systems, Inc. | Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host |
US11416341B2 (en) | 2014-08-06 | 2022-08-16 | Commvault Systems, Inc. | Systems and methods to reduce application downtime during a restore operation using a pseudo-storage device |
US10891197B2 (en) | 2014-09-03 | 2021-01-12 | Commvault Systems, Inc. | Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent |
US10042716B2 (en) | 2014-09-03 | 2018-08-07 | Commvault Systems, Inc. | Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent |
US10044803B2 (en) | 2014-09-03 | 2018-08-07 | Commvault Systems, Inc. | Consolidated processing of storage-array commands by a snapshot-control media agent |
US11245759B2 (en) | 2014-09-03 | 2022-02-08 | Commvault Systems, Inc. | Consolidated processing of storage-array commands by a snapshot-control media agent |
US10419536B2 (en) | 2014-09-03 | 2019-09-17 | Commvault Systems, Inc. | Consolidated processing of storage-array commands by a snapshot-control media agent |
US10798166B2 (en) | 2014-09-03 | 2020-10-06 | Commvault Systems, Inc. | Consolidated processing of storage-array commands by a snapshot-control media agent |
US9774672B2 (en) | 2014-09-03 | 2017-09-26 | Commvault Systems, Inc. | Consolidated processing of storage-array commands by a snapshot-control media agent |
US9934238B2 (en) | 2014-10-29 | 2018-04-03 | Commvault Systems, Inc. | Accessing a file system using tiered deduplication |
US11113246B2 (en) | 2014-10-29 | 2021-09-07 | Commvault Systems, Inc. | Accessing a file system using tiered deduplication |
US11921675B2 (en) | 2014-10-29 | 2024-03-05 | Commvault Systems, Inc. | Accessing a file system using tiered deduplication |
US10474638B2 (en) | 2014-10-29 | 2019-11-12 | Commvault Systems, Inc. | Accessing a file system using tiered deduplication |
US9996428B2 (en) | 2014-11-14 | 2018-06-12 | Commvault Systems, Inc. | Unified snapshot storage management |
US9648105B2 (en) | 2014-11-14 | 2017-05-09 | Commvault Systems, Inc. | Unified snapshot storage management, using an enhanced storage manager and enhanced media agents |
US10521308B2 (en) | 2014-11-14 | 2019-12-31 | Commvault Systems, Inc. | Unified snapshot storage management, using an enhanced storage manager and enhanced media agents |
US11507470B2 (en) | 2014-11-14 | 2022-11-22 | Commvault Systems, Inc. | Unified snapshot storage management |
US9921920B2 (en) | 2014-11-14 | 2018-03-20 | Commvault Systems, Inc. | Unified snapshot storage management, using an enhanced storage manager and enhanced media agents |
US10628266B2 (en) | 2014-11-14 | 2020-04-21 | Commvault System, Inc. | Unified snapshot storage management |
US9448731B2 (en) | 2014-11-14 | 2016-09-20 | Commvault Systems, Inc. | Unified snapshot storage management |
US20160202927A1 (en) * | 2015-01-13 | 2016-07-14 | Simplivity Corporation | System and method for optimized signature comparisons and data replication |
US10884633B2 (en) * | 2015-01-13 | 2021-01-05 | Hewlett Packard Enterprise Development Lp | System and method for optimized signature comparisons and data replication |
US11301420B2 (en) | 2015-04-09 | 2022-04-12 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
US10339106B2 (en) | 2015-04-09 | 2019-07-02 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
US20160306550A1 (en) * | 2015-04-15 | 2016-10-20 | Emc Corporation | Constructing a scalable storage device, and scaled storage device |
US11070979B2 (en) * | 2015-04-15 | 2021-07-20 | EMC IP Holding Company LLC | Constructing a scalable storage device, and scaled storage device |
US10481826B2 (en) | 2015-05-26 | 2019-11-19 | Commvault Systems, Inc. | Replication using deduplicated secondary copy data |
US10481824B2 (en) | 2015-05-26 | 2019-11-19 | Commvault Systems, Inc. | Replication using deduplicated secondary copy data |
US10481825B2 (en) | 2015-05-26 | 2019-11-19 | Commvault Systems, Inc. | Replication using deduplicated secondary copy data |
US11733877B2 (en) | 2015-07-22 | 2023-08-22 | Commvault Systems, Inc. | Restore for block-level backups |
US11314424B2 (en) | 2015-07-22 | 2022-04-26 | Commvault Systems, Inc. | Restore for block-level backups |
US10956286B2 (en) | 2015-12-30 | 2021-03-23 | Commvault Systems, Inc. | Deduplication replication in a distributed deduplication data storage system |
US10310953B2 (en) | 2015-12-30 | 2019-06-04 | Commvault Systems, Inc. | System for redirecting requests after a secondary storage computing device failure |
US10255143B2 (en) | 2015-12-30 | 2019-04-09 | Commvault Systems, Inc. | Deduplication replication in a distributed deduplication data storage system |
US10877856B2 (en) | 2015-12-30 | 2020-12-29 | Commvault Systems, Inc. | System for redirecting requests after a secondary storage computing device failure |
US10061663B2 (en) | 2015-12-30 | 2018-08-28 | Commvault Systems, Inc. | Rebuilding deduplication data in a distributed deduplication data storage system |
US10592357B2 (en) | 2015-12-30 | 2020-03-17 | Commvault Systems, Inc. | Distributed file system in a distributed deduplication data storage system |
US11436038B2 (en) | 2016-03-09 | 2022-09-06 | Commvault Systems, Inc. | Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block- level pseudo-mount) |
US11238064B2 (en) | 2016-03-10 | 2022-02-01 | Commvault Systems, Inc. | Snapshot replication operations based on incremental block change tracking |
US10503753B2 (en) | 2016-03-10 | 2019-12-10 | Commvault Systems, Inc. | Snapshot replication operations based on incremental block change tracking |
US11836156B2 (en) | 2016-03-10 | 2023-12-05 | Commvault Systems, Inc. | Snapshot replication operations based on incremental block change tracking |
US11321195B2 (en) | 2017-02-27 | 2022-05-03 | Commvault Systems, Inc. | Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount |
US11294768B2 (en) | 2017-06-14 | 2022-04-05 | Commvault Systems, Inc. | Live browsing of backed up data residing on cloned disks |
US10922007B2 (en) | 2017-06-30 | 2021-02-16 | Oracle International Corporation | High-performance writable snapshots in data storage systems |
US10331374B2 (en) * | 2017-06-30 | 2019-06-25 | Oracle International Corporation | High-performance writable snapshots in data storage systems |
US11422732B2 (en) | 2018-02-14 | 2022-08-23 | Commvault Systems, Inc. | Live browsing and private writable environments based on snapshots and/or backup copies provided by an ISCSI server |
US10732885B2 (en) | 2018-02-14 | 2020-08-04 | Commvault Systems, Inc. | Block-level live browsing and private writable snapshots using an ISCSI server |
US10740022B2 (en) | 2018-02-14 | 2020-08-11 | Commvault Systems, Inc. | Block-level live browsing and private writable backup copies using an ISCSI server |
US11861170B2 (en) | 2018-03-05 | 2024-01-02 | Pure Storage, Inc. | Sizing resources for a replication target |
US11150834B1 (en) | 2018-03-05 | 2021-10-19 | Pure Storage, Inc. | Determining storage consumption in a storage system |
US11836349B2 (en) | 2018-03-05 | 2023-12-05 | Pure Storage, Inc. | Determining storage capacity utilization based on deduplicated data |
US10521151B1 (en) | 2018-03-05 | 2019-12-31 | Pure Storage, Inc. | Determining effective space utilization in a storage system |
US11474701B1 (en) | 2018-03-05 | 2022-10-18 | Pure Storage, Inc. | Determining capacity consumption in a deduplicating storage system |
US10942650B1 (en) | 2018-03-05 | 2021-03-09 | Pure Storage, Inc. | Reporting capacity utilization in a storage system |
US11614881B2 (en) | 2018-03-05 | 2023-03-28 | Pure Storage, Inc. | Calculating storage consumption for distinct client entities |
US11010258B2 (en) | 2018-11-27 | 2021-05-18 | Commvault Systems, Inc. | Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication |
US11681587B2 (en) | 2018-11-27 | 2023-06-20 | Commvault Systems, Inc. | Generating copies through interoperability between a data storage management system and appliances for data storage and deduplication |
US20210173747A1 (en) * | 2018-11-30 | 2021-06-10 | Tencent Technology (Shenzhen) Company Limited | Data backup method and apparatus, server, and computer-readable storage medium |
US11698727B2 (en) | 2018-12-14 | 2023-07-11 | Commvault Systems, Inc. | Performing secondary copy operations based on deduplication performance |
US11003623B2 (en) * | 2019-01-10 | 2021-05-11 | Druva Inc. | Snapshot usage tracking system and method |
US11829251B2 (en) | 2019-04-10 | 2023-11-28 | Commvault Systems, Inc. | Restore using deduplicated secondary copy data |
US11463264B2 (en) | 2019-05-08 | 2022-10-04 | Commvault Systems, Inc. | Use of data block signatures for monitoring in an information management system |
US10921986B2 (en) | 2019-05-14 | 2021-02-16 | Oracle International Corporation | Efficient space management for high performance writable snapshots |
US11416145B2 (en) | 2019-05-14 | 2022-08-16 | Oracle International Corporation | Efficient space management for high performance writable snapshots |
US11442896B2 (en) | 2019-12-04 | 2022-09-13 | Commvault Systems, Inc. | Systems and methods for optimizing restoration of deduplicated data stored in cloud-based storage resources |
US11687424B2 (en) | 2020-05-28 | 2023-06-27 | Commvault Systems, Inc. | Automated media agent state management |
US11972134B2 (en) | 2022-01-12 | 2024-04-30 | Pure Storage, Inc. | Resource utilization using normalized input/output (‘I/O’) operations |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7100089B1 (en) | Determining differences between snapshots | |
US7743031B1 (en) | Time and space efficient technique for creating virtual volume copies | |
US7191304B1 (en) | Efficient and reliable virtual volume mapping | |
US8131782B1 (en) | Shadow directory structure in a distributed segmented file system | |
US10372559B2 (en) | Managing a redundant computerized database using a replicated database cache | |
US10430392B2 (en) | Computer file system with path lookup tables | |
JP4568115B2 (en) | Apparatus and method for hardware-based file system | |
US7496725B2 (en) | Systems and methods of data migration in snapshot operations | |
US7676514B2 (en) | Distributed maintenance of snapshot copies by a primary processor managing metadata and a secondary processor providing read-write access to a production dataset | |
US6826666B2 (en) | Method and system for transporting data content on a storage area network | |
US6973556B2 (en) | Data element including metadata that includes data management information for managing the data element | |
US8943282B1 (en) | Managing snapshots in cache-based storage systems | |
US7836266B2 (en) | Managing snapshot history in a data storage system | |
US7707165B1 (en) | System and method for managing data versions in a file system | |
US20050216788A1 (en) | Fast backup storage and fast recovery of data (FBSRD) | |
US7424497B1 (en) | Technique for accelerating the creation of a point in time prepresentation of a virtual file system | |
JP2003518659A (en) | Apparatus and method for operating a computer storage system | |
EP1642216A2 (en) | Snapshots of file systems in data storage systems | |
US5504857A (en) | Highly available fault tolerant relocation of storage with atomicity | |
US10515054B2 (en) | Fast and efficient multi-threaded algorithm for deleting an arbitrarily wide and deep directory tree using limited system resources | |
US11709780B2 (en) | Methods for managing storage systems with dual-port solid-state disks accessible by multiple hosts and devices thereof | |
US9165003B1 (en) | Technique for permitting multiple virtual file systems having the same identifier to be served by a single storage system | |
US11442894B2 (en) | Methods for scalable file backup catalogs and devices thereof | |
US11875060B2 (en) | Replication techniques using a replication log | |
Brinkmann et al. | Realizing multilevel snapshots in dynamically changing virtualized storage environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: 3PARDATA, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PHELPS, ADAM M.;REEL/FRAME:013802/0268 Effective date: 20030226 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: 3PAR INC., CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:3PARDATA, INC.;REEL/FRAME:020571/0664 Effective date: 20070731 Owner name: 3PAR INC.,CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:3PARDATA, INC.;REEL/FRAME:020571/0664 Effective date: 20070731 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:3PAR INC.;REEL/FRAME:026250/0322 Effective date: 20110412 |
|
FEPP | Fee payment procedure |
Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001 Effective date: 20151027 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553) Year of fee payment: 12 |