2017-02-17 91 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直到您看到交易,而在其他情況下,交易執行得如此之快以至於您永遠無法看到交易,所以如果您在幾分鐘內沒有看到交易,您的代碼需要處理實際上很可能已經完成的速度非常快,因此您可以在存儲上啓動另一項操作。