Request ordering support when switching virtual disk replication logs
First Claim
1. A method comprising:
- receiving storage access requests from a virtual machine in a system in which the storage access requests are received by both a storage request processing module that updates one of multiple virtual disks as directed by each of the storage access requests and a replication management module that stores information associated with each storage access request in one of multiple logs; and
maintaining, when switching the multiple logs, request ordering for write order dependent requests, the switching the multiple logs comprising;
switching the multiple logs in two parts, a first part of the two parts including initializing new logs and blocking processing of the information associated with each storage access request without blocking updating of the multiple virtual disks as directed by the storage access requests.
2 Assignments
0 Petitions
Accused Products
Abstract
Storage access requests, such as write requests, are received from a virtual machine. A storage request processing module updates one of multiple virtual disks as directed by each of the storage access requests, and a replication management module stores information associated with each storage access request in one of multiple logs. The logs can be transferred to a recovery device at various intervals and/or in response to various events, which results in switching logs so that the replication management module stores the information associated with each storage access request in a new log and the previous (old) log is transferred to the recovery device. During this switching, request ordering for write order dependent requests is maintained at least in part by blocking processing of the information associated with each storage access request.
-
Citations
20 Claims
-
1. A method comprising:
-
receiving storage access requests from a virtual machine in a system in which the storage access requests are received by both a storage request processing module that updates one of multiple virtual disks as directed by each of the storage access requests and a replication management module that stores information associated with each storage access request in one of multiple logs; and maintaining, when switching the multiple logs, request ordering for write order dependent requests, the switching the multiple logs comprising; switching the multiple logs in two parts, a first part of the two parts including initializing new logs and blocking processing of the information associated with each storage access request without blocking updating of the multiple virtual disks as directed by the storage access requests. - View Dependent Claims (2, 3, 4, 5, 6, 7, 17, 18)
-
-
8. One or more computer storage media having stored thereon multiple instructions that, when executed by one or more processors of a system, cause the one or more processors to:
-
receive storage access requests from a virtual machine in the system in which the storage access requests are received by both a storage request processing module and a replication management module; update, by the storage request processing module for each of the storage access requests, one of multiple virtual disks as directed by the storage access request; buffer, by the replication management module, each of the storage access requests in parallel with the update performed by the storage request processing module; store, by the replication management module for each of the buffered storage access requests, information associated with the storage access request in one of multiple logs; switch the multiple logs and, while switching the multiple logs, blocking processing of the information associated with each storage access request without blocking updating of the multiple virtual disks as directed by the storage access requests, and maintaining request ordering for write order dependent requests; and transmit, for each of the storage access requests, a response to the virtual machine indicating a respective storage access request as complete when the storage request processing module has completed the update of the one of multiple virtual disks as directed by the respective storage access request and the replication management module has completed the storing of the information associated with the respective storage access request in the one of multiple logs. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 19, 20)
-
-
16. A system comprising:
-
a storage request processing module configured to receive storage access requests from a virtual machine in the system in which the storage access requests are received by both the storage request processing module and a replication management module and update, for each of the storage access requests, one of multiple virtual disks as directed by the storage access request; the replication management module configured to store, for each of the storage access requests, information associated with the storage access request in one of multiple logs, switch the multiple logs in multiple stages, maintain, during the switching, request ordering for write order dependent requests, and transmit, for each of the storage access requests, a response to the virtual machine indicating a respective storage access request as complete when the storage request processing module has completed the update of the one of multiple virtual disks as directed by the respective storage access request and the replication management module has completed the storing of the information associated with the respective storage access request in the one of multiple logs, and the multiple stages including; a first stage in which new logs are initialized but processing of the information associated with each storage access request is not blocked, a second stage in which processing of the information associated with each storage access request is blocked without blocking the update of the one of multiple virtual disks as directed by the storage access requests, the second stage being performed only after all the new logs are initialized, a third stage in which the new logs are changed to and processing of new log queue entries is unblocked, the third stage being performed only after processing of the information associated with each storage access request is blocked, and a fourth stage in which switching of the multiple logs is finalized including flushing log queue entries in memory to storage, the fourth stage being performed only after processing of the new log queue entries is unblocked.
-
Specification