主权项 |
1. A method comprising:
generating, by a first computational platform, a data structure that indicates a set of blocks, wherein the data structure indicates that a first block of a logical storage structure is different between the first computational platform and a second computational platform, wherein a second block of the logical storage structure in the first computational platform is also different in the first computational platform and the second computational platform, wherein the first block and the second block are both corrupted in the first computational platform subsequent to being backed up in the second computational platform, wherein a third block is not corrupted in the first computational platform after being backed up in the second computational platform, wherein the first computational platform is a production server, wherein the second computational platform is a backup server, wherein the logical storage structure is a file, and wherein the first block, the second block, and the third block are data blocks included in the file; receiving, by the first computational platform, an Input/Output (I/O) request; determining a type of the I/O request received; in response to determining that the type of the I/O request corresponds to a write I/O, performing write operations and subsequent to performing the write operations performing backup operations and update operations to the data structure; in response to determining that the type of the I/O request corresponds to a read operation on the first block of the logical storage structure, performing:
in response to determining from the data structure that the first block that is corrupted must be rewritten to revert the logical storage structure stored in the first computational platform to a previous state, prioritizing restoration of the first block to the first computational platform over restoration of the second block by requesting the first block from the second computational platform prior to requesting the second block; andreceiving, by the first computational platform, the backed up version of the first block from the second computational platform in response to a request made by the first computational platform to the second computational platform for the first block that is both corrupted in the first computational platform and is needed for the read operation, wherein the restoration of the first block that is corrupted and needed for the read operation is prioritized over the restoration of the second block that is corrupted but not needed for the read operation, wherein the restoration of the second block that is corrupted but not needed for the read operation is prioritized over a restoration of the third block that is not corrupted and not needed for the read operation, and wherein the first block and the second block are rewritten to revert the logical storage structure stored in the first computational platform to the previous state; and in response to restoring a selected block from the backup server to the production server, performing:
determining whether a block integrity verification indicator maintained in the production server is set;in response to determining that the block integrity verification indicator is set, performing:
determining, at the production server, a signature of the selected block that is restored;transmitting, by the production server, the signature and corresponding block information of the selected block that is restored to the backup server;determining, by the production server, whether the backup server has replied that the transmitted signature matches a signature of a backed up block corresponding to the selected block in the backup server; andin response to determining that the backup server has replied that the transmitted signature does not match the signature of the backed up block corresponding to the selected block, determining, by the production server, that the restored block has not been restored properly, and performing corrective operations; andin response to determining that the block integrity verification indicator is not set, avoiding performing an integrity check for the selected block that is restored. |