Abstract: A method for generating a snapshot that records data transmitted to a storage system prior to a selected moment in time, while allowing a client server to continue sending data to the storage system, is disclosed. A snapshot marker is inserted into a cache, data continues to be flushed to disk until the snapshot marker is flushed from the cache, and a snapshot is performed. Additionally, a method for recording data stored in a storage system is disclosed that includes initiating a transaction with the storage system according to standard protocols, transmitting to the storage system a command representing a snapshot request, and performing a snapshot of the data. In accordance with one implementation, the command is transmitted as a SCSI command descriptor block.
Abstract: A method and system are provided for comparing data stored in a first storage system with corresponding data stored in a second storage system. In one implementation, the first system generates a random value associated with a respective data block P, and transmits to the second system an identifier associated with the data block P, and the random value. The second system generates a first digest representing a data block B, uses the first digest to encode the random value, producing a first encoded value, and transmits the first encoded value to the first system. The first system generates a second digest representing the data block P, uses the second digest to encode the random value, producing a second encoded value, and compares the first and second encoded values. If the two encoded values are equal, the data block B is a duplicate of the data block P. If the two encoded values are not the same, the data blocks are different.
Abstract: A method for processing requests or commands for writing and reading to and from memory that has not been allocated and reserved for one or more volumes, and a method for establishing one or more volumes, where the one or more volumes define an area of the memory that is accumulatively greater than the actual memory capacity, thus allowing for memory to be added at a later time.
Abstract: A hash-optimized backup system and method takes data blocks and generates a probabilistically unique digital fingerprint of the content of each data block using a substantially collision-free algorithm. The process compares the generated fingerprint to a database of stored fingerprints and, if the generated fingerprint matches a stored fingerprint, the data block is determined to already have been backed up, and therefore does not need to be backed up again. Only if the generated fingerprint does not match a stored fingerprint is the data block backed up, at which point the generated fingerprint is added to the database of stored fingerprints. Because the algorithm is substantially collision-free, there is no need to compare actual data content if there is a hash-value match. The process can also be used to audit software license compliance, inventory software, and detect computer-file tampering such as viruses and malware.