Q. 如何获取块卷复制的状态

Q. How to get the status of block volume duplication

如何知道块卷复制的逻辑复制完成? *目的是在完成逻辑拷贝后重启应用DB。

我想知道它是否能够通过以下 API 或另一个 API 进行检查。

  1. 当源盘中"number of active transaction"的值为0时。*
  2. 当 API "Network_Storage::isDuplicateReadyToMount" 指示目标磁盘 "true" 时。
  3. 当 API "SoftLayer_Network_Storage_Iscsi::getVolumeStatus" 指示源磁盘上的某个值时。

*由"slcli block volume-detail"等显示

要知道卷复制是否成功完成,您需要验证存储卷上是否没有任何活动事务。

  1. 如您所见,此交易次数应为 0。
  2. 此方法仅 returns 一个与卷是否准备好让主机授权访问它相关的布尔值,但它还声明 "This does not indicate whether another operation may be blockings" 并更好地检查卷状态,因此它无法验证如果存储卷已完全配置。
  3. 此方法 returns 如果指定卷上有事务 运行 则为 null,成功完成后为 "PROVISION COMPLETED" 值。

您可以在块卷上使用 SoftLayer_Network_Storage::getObject 方法,如果它尚未完成,它在 activeTransactionsCount 参数上的值将不同于 0,并且对象 activeTransactions 将显示更多信息。

尝试以下 REST 示例: 方法 GET

https://[apiUsername]:[apiKey]@api.softlayer.com/rest/v3.1/SoftLayer_Network_Storage/[storageId]/getObject?objectMask=mask[id,capacityGb,username,activeTransactionCount,activeTransactions, originalVolumeName,originalVolumeSize]

我会推荐上面的方法,因为控制门户和 SLcli 使用此方法。