Alignment fixing on a storage system during continuous data replication to deduplicated storage
First Claim
Patent Images
1. A method for aligning IOs prior to transmission to or after reception at a data protection appliance, comprising:
- receiving an IO at the data protection appliance, the IO comprising an IO offset and having an IO size, wherein the IO comprises one of a plurality of streamed IOs used to synthesize snapshot backups in a deduplicated backup storage system that synthesizes an initial snapshot backup using a metadata journal and a data journal and copies pointers to data rather than entire data blocks;
determining whether the IO is byte aligned with a storage block having a defined block size on the deduplicated backup storage system by having an IO offset that is a multiple of the block size and an IO size that is the multiple of the block size;
aligning the IO at the data protection appliance to create an aligned IO when the IO is not aligned with the storage block when prior to the transmission by identifying a start offset lower than the IO offset, wherein the start offset is a multiple of the block size, changing the IO offset to the start offset, and aligning the IO by increasing the IO size to a multiple of the block size;
or when after the reception by rounding the IO offset down to the start offset, padding a difference between the start offset and the IO offset and padding the IO to a new size that is the multiple of the block size;
transmitting the aligned IO to a backup storage system, wherein creating the IO comprises writing of snapshot backup data from a computer to the data protection appliance during a continuous data replication operation having periodic snapshot backups;
tracking any IO that is not aligned in a memory of the deduplicated backup storage system to determine if a non-aligned IO is writing to a location that is currently being read thereby creating a desynchronization;
waiting for the computer to flush any open IOs to the deduplicated backup storage system to ensure that any data read from the deduplicated backup storage system is up-to-date to enable the continuous data replication operation;
defining the metadata journal as a logical unit partitioned into segments of a defined size and that stores DO and UNDO metadata streams and pointers thereto for the backup data written to the data protection appliance wherein the DO metadata stream includes the offset for the aligned TO, and wherein the UNDO metadata includes an offset to corresponding old data for the backup data;
storing the IO offset in the metadata journal on the backup storage system, wherein the offset is used to properly align the IO with blocks on the data protection appliance to synthesize the initial snapshot backup of the continuous data replication operation in a first synthesis operation that creates a first pointer to the snapshot backup data for the aligned IO and requests a block size from the backup storage system; and
storing subsequent IO offsets to the metadata journals for aligning subsequent IOs for synthesizing subsequent snapshot backup operations that create additional pointers to respective snapshot backup data for the aligned subsequent IOs.
11 Assignments
0 Petitions
Accused Products
Abstract
The system, process, and methods herein describe a mechanism for aligning IOs with block sizes. The alignment may occur on a storage system as part of a continuous replication process. The TO offset may be rounded down, and the size may be rounded up, so that each is a multiple of the block size.
66 Citations
6 Claims
-
1. A method for aligning IOs prior to transmission to or after reception at a data protection appliance, comprising:
-
receiving an IO at the data protection appliance, the IO comprising an IO offset and having an IO size, wherein the IO comprises one of a plurality of streamed IOs used to synthesize snapshot backups in a deduplicated backup storage system that synthesizes an initial snapshot backup using a metadata journal and a data journal and copies pointers to data rather than entire data blocks; determining whether the IO is byte aligned with a storage block having a defined block size on the deduplicated backup storage system by having an IO offset that is a multiple of the block size and an IO size that is the multiple of the block size; aligning the IO at the data protection appliance to create an aligned IO when the IO is not aligned with the storage block when prior to the transmission by identifying a start offset lower than the IO offset, wherein the start offset is a multiple of the block size, changing the IO offset to the start offset, and aligning the IO by increasing the IO size to a multiple of the block size;
or when after the reception by rounding the IO offset down to the start offset, padding a difference between the start offset and the IO offset and padding the IO to a new size that is the multiple of the block size;transmitting the aligned IO to a backup storage system, wherein creating the IO comprises writing of snapshot backup data from a computer to the data protection appliance during a continuous data replication operation having periodic snapshot backups; tracking any IO that is not aligned in a memory of the deduplicated backup storage system to determine if a non-aligned IO is writing to a location that is currently being read thereby creating a desynchronization; waiting for the computer to flush any open IOs to the deduplicated backup storage system to ensure that any data read from the deduplicated backup storage system is up-to-date to enable the continuous data replication operation; defining the metadata journal as a logical unit partitioned into segments of a defined size and that stores DO and UNDO metadata streams and pointers thereto for the backup data written to the data protection appliance wherein the DO metadata stream includes the offset for the aligned TO, and wherein the UNDO metadata includes an offset to corresponding old data for the backup data; storing the IO offset in the metadata journal on the backup storage system, wherein the offset is used to properly align the IO with blocks on the data protection appliance to synthesize the initial snapshot backup of the continuous data replication operation in a first synthesis operation that creates a first pointer to the snapshot backup data for the aligned IO and requests a block size from the backup storage system; and storing subsequent IO offsets to the metadata journals for aligning subsequent IOs for synthesizing subsequent snapshot backup operations that create additional pointers to respective snapshot backup data for the aligned subsequent IOs. - View Dependent Claims (2)
-
-
3. A computer program product for aligning IOs prior to transmission to or after reception at a data protection appliance, the computer program product comprising a non-transitory computer readable medium encoded with computer executable program, the code enabling:
-
receiving an IO at the data protection appliance, the IO comprising an IO offset, wherein the IO comprises one of a plurality of streamed IOs used to synthesize snapshot backups in a deduplicated backup storage system that synthesizes an initial snapshot backup using a metadata journal and a data journal and copies pointers to data rather than entire data blocks; determining whether the IO is byte aligned with a storage block having a defined block size on the deduplicated backup storage system by having an IO offset that is a multiple of the block size and an IO size that is the multiple of the block size; aligning the IO at the data protection appliance to create an aligned IO when the IO is not aligned with the storage block when prior to the transmission by identifying a start offset lower than the IO offset, wherein the start offset is a multiple of the block size, changing the IO offset to the start offset, and aligning the IO by increasing the IO size to a multiple of the block size;
or when after the reception by rounding the IO offset down to the start offset, padding a difference between the start offset and the IO offset and padding the IO to a new size that is the multiple of the block size;transmitting the aligned IO to a backup storage system, wherein creating the IO comprises writing of snapshot backup data from a computer to the data protection appliance during a continuous data replication operation having periodic snapshot backups; tracking any IO that is not aligned in a memory of the deduplicated backup storage system to determine if a non-aligned IO is writing to a location that is currently being read thereby creating a desynchronization; waiting for the computer to flush any open IOs to the deduplicated backup storage system to ensure that any data read from the deduplicated backup storage system is up-to-date to enable the continuous data replication operation; defining the metadata journal as a logical unit partitioned into segments of a defined size and that stores DO and UNDO metadata streams and pointers thereto for the backup data written to the data protection appliance wherein the DO metadata stream includes the offset for the aligned TO, and wherein the UNDO metadata includes an offset to corresponding old data for the backup data; storing the IO offset in the metadata journal on the backup storage system, wherein the offset is used to properly align the IO with blocks on the data protection appliance to synthesize the initial snapshot backup operation of the continuous data replication operation in a first synthesis operation that creates a first pointer to the snapshot backup data for the aligned IO and requests a block size from the backup storage system; and storing subsequent IO offsets to the metadata journal for aligning subsequent IOs for synthesizing subsequent snapshot backup operations that create additional pointers to respective snapshot backup data for the aligned subsequent IOs. - View Dependent Claims (4)
-
-
5. A system for aligning IOs prior to transmission to or after reception at a data protection appliance, comprising a memory and a processor, the processor configured to execute instructions comprising:
-
receiving an IO at the data protection appliance, the IO comprising an IO offset and having an IO size, wherein the IO comprises one of a plurality of streamed IOs used to synthesize snapshot backups in a deduplicated backup storage system that synthesizes an initial snapshot backup using a metadata journal and a data journal and copies pointers to data rather than entire data blocks; determining whether the IO is byte aligned with a storage block having a defined block size on the deduplicated backup storage system by having an IO offset that is a multiple of the block size and an IO size that is the multiple of the block size; aligning the IO at the data protection appliance to create an aligned IO when the IO is not aligned with the storage block when prior to the transmission by identifying a start offset lower than the IO offset, wherein the start offset is a multiple of the block size, changing the IO offset to the start offset, and aligning the IO by increasing the IO size to a multiple of the block size;
or when after the reception by rounding the IO offset down to the start offset, padding a difference between the start offset and the IO offset and padding the IO to a new size that is the multiple of the block size;transmitting the aligned IO to the deduplicated backup storage system, wherein creating the IO comprises writing of snapshot backup data from a computer to the data protection appliance during a continuous data replication operation having periodic snapshot backups; tracking any IO that is not aligned in a memory of the deduplicated backup storage system to determine if a non-aligned IO is writing to a location that is currently being read thereby creating a desynchronization; waiting for the computer to flush any open IOs to the deduplicated backup storage system to ensure that any data read from the deduplicated backup storage system is up-to-date to enable the continuous data replication operation; defining the metadata journal as a logical unit partitioned into segments of a defined size and that stores DO and UNDO metadata streams and pointers thereto for the backup data written to the data protection appliance wherein the DO metadata stream includes the offset for the aligned TO, and wherein the UNDO metadata includes an offset to corresponding old data for the backup data; storing the IO offset in the metadata journal on the backup storage system, wherein the offset is used to properly align the IO with blocks on the data protection appliance to synthesize the initial snapshot backup of the continuous data replication operation in a first synthesis operation that creates a first pointer to the snapshot backup data for the aligned IO and requests a block size from the backup storage system; and storing subsequent IO offsets to the metadata journal for aligning subsequent IOs for synthesizing subsequent snapshot backup operations that create additional pointers to respective snapshot backup data for the aligned subsequent IOs. - View Dependent Claims (6)
-
Specification