2017-02-17 93 views
0

在对块卷进行故障转移后,我对副本(restoreFromSnapshot)进行了恢复操作。该API在约2秒内返回,返回值为True。如何检查快照恢复操作是否已完成

我立即解雇的API故障回复到原来的体积,并得到了以下错误

SoftLayerAPIError(SoftLayer_Exception_Network_Storage_BlockingOperationInProgress):快照恢复正在进行中体积IBM02SEL328078-363。在此过程中,请求的操作(从副本卷立即故障恢复)无法完成,直到该过程完成。

因此,这告诉我,即使restoreFromSnapshot()返回成功,实际还原操作可能仍在进行中。

那么检查还原操作的当前状态以及如何确定它成功完成的方法是什么?

回答

0

当您对Sofltayer的资源执行操作时,会创建一个事务(几乎在所有情况下),并且在事务完成之前无法对资源执行新操作。因此,知道您是否恢复操作的方式已完成,正在验证无事务正在运行,因为您可以使用use the SoftLayer_Network_Storage::getActiveTransactions方法:

RESTful例如

GET https://$USERID:[email protected]/rest/v3/SoftLayer_Network_Storage/$storageID/getActiveTransactions.json 

Note replace: $USERID $APIIKEY and $storageID 

该方法将返回在存储中运行的事务,以防方法返回空结果事务结束。

但是这种方法存在缺陷,有时交易需要一些时间才能创建,因此您需要重复请求API直到您看到交易,而在其他情况下,交易执行得如此之快以至于您永远无法看到交易,所以如果您在几分钟内没有看到交易,您的代码需要处理实际上很可能已经完成的速度非常快,因此您可以在存储上启动另一项操作。

相关问题