IBM Cloud Docs
创建和管理重复卷

创建和管理重复卷

可以创建现有 IBM Cloud® Block Storage for Classic 的复制项。 缺省情况下,重复卷将继承原始卷的容量和性能选项。 但是,可以手动更改这两个属性。 副本具有数据的副本,直到用于创建该副本的快照的时间点为止。 重复卷可以是从属卷,也可以独立于原始卷。

如果您是 IBM Cloud® Kubernetes Service 的 Dedicated 帐户用户,请参阅 IBM Cloud Kubernetes Service 文档中有关复制卷的选项。

因为复制项基于时间点快照中的数据,所以原始卷上需要有快照空间,然后您才能创建复制项。 有关快照以及如何订购快照空间的更多信息,请参阅快照文档

重复卷的类型

独立副本

可以从主卷 和副卷创建独立副本。 副本与原始卷在同一个数据中心创建。 如果您从副本卷创建一个副本,则该副本卷将与副本卷创建在同一数据中心。

独立重复卷的常见用途

  • 黄金副本。 将存储卷用作黄金副本,您可以创建多个副本用于各种用途。
  • 数据刷新。 创建一份生产数据的副本,将其安装到非生产环境中进行测试。
  • 开发和测试。 一次最多可同时创建卷的 4 个复制项,以创建重复数据用于开发和测试。

从属重复项

从属重复卷是通过使用主卷中的快照创建的。 副本卷不能用于创建或更新从属重复项。

从属重复卷的常见用途

  • 灾难恢复测试。 创建源卷的副本并将其与副本进行比较。 通过将副本与副本进行比较,您可以验证要复制的数据是否完整,并且在发生灾难时可以使用这些数据,而不会中断复制。
  • 从快照复原。 从快照复原原始卷上特定文件和日期的数据,而不使用快照复原功能来覆盖整个原始卷。
  • 数据刷新。 创建一份生产数据的副本,将其安装到非生产环境中进行测试。
  • 开发和测试。 一次最多可同时创建卷的 4 个复制项,以创建重复数据用于开发和测试。

在控制台中创建重复卷

您可以通过多种方式从 CLI 和 IBM Cloud 控制台 中创建重复卷。

从控制台中的存储列表创建副本

  1. 点击 基础设施 > 经典基础设施 > 存储 > Block Storage for Classic 进入 IBM Cloud 控制台中的 Block Storage for Classic 列表。

  2. 从列表中选择一个卷,然后单击省略号 "操作" 图标 > 复制卷

  3. 选择重复项是从属项还是独立项。

  4. 选择用于创建副本的快照选项。 您可以选择现有的快照或拍摄新的快照。

  5. 位置条目与原始卷保持相同。

  6. 按小时或按月计费 - 您可以选择以按小时或按月计费方式来供应复制卷。 系统会自动选择原始卷的记帐类型。 如果您希望为复制存储器选择其他计费类型,那么可以在此进行选择。

  7. 可以将新卷的大小更新为大于原始卷。 缺省情况下设置了原始卷的大小。

    Block Storage for Classic 的大小可以调整为卷原始大小的 10 倍。

  8. 可以更新新卷的快照空间,以添加更多或更少的快照空间,或者不添加快照空间。

  9. 您可以选择与原始卷不同的操作系统类型或保持相同。

  10. 如果需要,您可以为新卷指定一个IOPS或IOPS级别。 缺省情况下设置了原始卷的 IOPS 指定值。 这将显示可用性能和大小组合。

  • 如果原始卷为 0.25 IOPS 耐久性层,那么将无法进行新的选择。
  • 如果原始卷为 2、4 或 10 IOPS 耐久性层,那么可以使新卷移至这些层之间的任意位置。
  1. 如果您已阅读并同意条款和条件,请勾选此框。
  2. 点击 “创建” 继续。

从 UI 的“卷详细信息”页面创建副本

  1. 转至 Block Storage for Classic 的列表。

  2. 单击列表中的卷以查看详细信息页面。 (可以是副本,也可以是主卷。)

  3. 单击 操作 "操作" 图标> 复制卷

  4. 选择重复项是从属项还是独立项。

  5. 选择用于创建副本的快照选项。 您可以选择现有的快照或拍摄新的快照。

  6. 位置条目与原始卷保持相同。

  7. 按小时或按月计费 - 您可以选择以按小时或按月计费方式来供应复制卷。 系统会自动选择原始卷的记帐类型。 如果您希望为复制存储器选择其他计费类型,那么可以在此进行选择。

  8. 可以将新卷的大小更新为大于原始卷。 缺省情况下设置了原始卷的大小。

    Block Storage for Classic 的大小可以调整为卷原始大小的 10 倍。

  9. 可以更新新卷的快照空间,以添加更多或更少的快照空间,或者不添加快照空间。

  10. 您可以选择与原始卷不同的操作系统类型或保持相同。

  11. 如果需要,您可以为新卷指定一个IOPS或IOPS级别。 缺省情况下设置了原始卷的 IOPS 指定值。 这将显示可用性能和大小组合。

  • 如果原始卷为 0.25 IOPS 耐久性层,那么将无法进行新的选择。
  • 如果原始卷为 2、4 或 10 IOPS 耐久性层,那么可以使新卷移至这些层之间的任意位置。
  1. 如果您已阅读并同意条款和条件,请勾选此框。
  2. 点击 “创建” 继续。

单击 创建后,将显示订单确认窗口。 关闭窗口时,将返回到资源列表。 您可以返回到 Block Storage for Classic 卷列表,以单击新供应的副本。 “卷详细信息”部分显示诸如“重复类型”之类的信息,指向父卷详细信息页面的链接以及用于创建重复项的快照的名称。

从CLI创建副本

开始之前,请决定要使用的 CLI 客户机。

从 IBMCLOUD CLI 创建副本

您可以使用 ibmcloud sl block volume-duplicate 命令为块共享创建重复项。 以下示例创建块共享 560382016 的独立副本。

ibmcloud sl block volume-duplicate 560382016
This action will incur charges on your account. Continue?> y
OK
Order 110554892 was placed.
 > Storage as a Service
 > File Storage
 > 500 GBs
 > 4 IOPS per GB
 > 500 GB (Snapshot Space)

You may run 'ibmcloud sl block volume-list --order 110554892' to find this block volume after it is ready.

您的新副本将在几分钟内就绪。

$ ibmcloud sl block volume-list --order 110554892
id          username             datacenter   storage_type             capacity_gb   bytes_used   IOPs   ip_addr                                 lunId   active_transactions   rep_partner_count   notes
560391190   SL02SEV1414935_269   dal09        endurance_block_storage   500           -            -      fsf-dal0902b-fz.service.softlayer.com   -       1                     0                   -

如果要创建卷的从属副本,请使用带有 --dependent-duplicate 选项的命令。 请参阅以下示例。

$ ibmcloud sl block volume-duplicate 560391190 --dependent-duplicate
This action will incur charges on your account. Continue?> y
OK
Order 110553472 was placed.
 > Storage as a Service
 > File Storage
 > 500 GBs
 > 4 IOPS per GB
 > 500 GB (Snapshot Space)

You may run 'ibmcloud sl block volume-list --order 110553472' to find this block volume after it is ready.

有关可用于此命令的所有参数的更多信息,请参阅 ibmcloud sl block volume-duplicate

从SLCLI创建副本

要创建 独立副本 Block Storage for Classic 卷,可以使用以下命令。

$ slcli block volume-duplicate --help
Usage: slcli block volume-duplicate [OPTIONS] ORIGIN_VOLUME_ID

Options:
  -o, --origin-snapshot-id INTEGER
                                  ID of an origin volume snapshot to use for
                                  duplcation.
  -c, --duplicate-size INTEGER    Size of duplicate block volume in GB. ***If
                                  no size is specified, the size of the origin
                                  volume will be used.***
                                  Minimum: [the size
                                  of the origin volume]
  -i, --duplicate-iops INTEGER    Performance Storage IOPS, between 100 and
                                  6000 in multiples of 100 [only used for
                                  performance volumes] ***If no IOPS value is
                                  specified, the IOPS value of the origin
                                  volume will be used.***
                                  Requirements: [If
                                  IOPS/GB for the origin volume is less than
                                  0.3, IOPS/GB for the duplicate must also be
                                  less than 0.3. If IOPS/GB for the origin
                                  volume is greater than or equal to 0.3,
                                  IOPS/GB for the duplicate must also be
                                  greater than or equal to 0.3.]
  -t, --duplicate-tier [0.25|2|4|10]
                                  Endurance Storage Tier (IOPS per GB) [only
                                  used for endurance volumes] ***If no tier is
                                  specified, the tier of the origin volume
                                  will be used.***
                                  Requirements: [If IOPS/GB
                                  for the origin volume is 0.25, IOPS/GB for
                                  the duplicate must also be 0.25. If IOPS/GB
                                  for the origin volume is greater than 0.25,
                                  IOPS/GB for the duplicate must also be
                                  greater than 0.25.]
  -s, --duplicate-snapshot-size INTEGER
                                  The size of snapshot space to order for the
                                  duplicate. ***If no snapshot space size is
                                  specified, the snapshot space size of the
                                  origin block volume will be used.***
                                  Input
                                  "0" for this parameter to order a duplicate
                                  volume with no snapshot space.
  --billing [hourly|monthly]      Optional parameter for Billing rate (default
                                  to monthly)
  -h, --help                      Show this message and exit.

也可以使用选项 --dependent-duplicate TRUE 从 CLI 订购 从属重复 卷。

slcli block volume-duplicate --dependent-duplicate TRUE <primary-vol-id>

有关可用命令选项的更多信息,请参阅 block volume-duplicate

使用API创建副本

要使用 API 订购 独立副本 Block Storage for Classic 卷,可以发出 POST 调用。 以下 REST API 示例为耐久性 (IOPS 层) 卷创建独立副本。

  • URL - https://USERNAME:APIKEY@api.softlayer.com/rest/v3.1/SoftLayer_Product_Order/placeOrder
  • 类型-POST
  • 请求主体-
    {
        "parameters":[{
        "complexType": "SoftLayer_Container_Product_Order_Network_Storage_AsAService",
        "packageId": 531,
        "duplicateOriginVolumeId":<PrimaryId>,
        "isDependentDuplicateFlag": 0,
        "prices": [{"id": 19497}, {"id": 16479}, {"id": 12931}, {"id": 15749}, {"id":10407}],
        "quantity": 1,
        "osFormatType":{
         "keyName": "LINUX"
        },
        "location": 2,
        "volumeSize":23
        }]
    }
    

要为性能 (定制 IOPS) 卷订购 从属副本,请执行类似于以下 REST API 示例的 POST /SoftLayer_Product_Order/placeOrder 调用。

  • URL - https://USERNAME:APIKEY@api.softlayer.com/rest/v3.1/SoftLayer_Product_Order/placeOrder
  • 类型-POST
  • 请求主体-
    {
        "parameters":[{
        "complexType": "SoftLayer_Container_Product_Order_Network_Storage_AsAService",
        "packageId": 531,
        "duplicateOriginVolumeId":1327277,
        "isDependentDuplicateFlag": 1,
        "prices": [{"id": 15751}, {"id": 19487}, {"id": 18983}, {"id": 15749}, {"id":10407}],
        "quantity": 1,
        "iops":454,
        "osFormatType":{
            "keyName": "LINUX"
        },
        "location": 2,
        "volumeSize":23
        }]
    }
    

有关 API 和选项的更多信息,请参阅 API 参考

管理复制卷

在供应卷后,主机可以立即访问所有重复卷以执行读和写操作。

但是,在完成从原始卷到复制卷的数据拷贝并且复制卷完全独立之前,不允许独立复制卷的快照和复制。 根据数据的大小,分离过程可能需要几个小时。 完成后,副本可以作为独立卷进行管理和使用。

当数据从原始卷复制到独立副本时,您可以看到详细信息页面上的状态指示器显示复制正在进行中。 在此期间,您可以连接到主机,并读写该卷,但不能创建快照计划或启动刷新。 分离过程完成后,新卷将独立于原始卷,并可以像往常一样通过快照和复制进行管理。 转换完成后,可以使用来自父卷的快照来手动刷新独立卷。

从属 重复项不会执行分离过程,并且可以随时手动刷新。 可以从 CLI、使用 API 和控制台启动刷新过程。 稍后,如果要将从属副本转换为独立卷,也可以使用 UI,CLI 或 API 来启动该过程。

从属重复卷将锁定原始快照,以便在存在从属重复时无法删除快照。

在控制台中更新父卷的副本数据

随着时间的推移和主卷的更改,可以使用这些更改来更新重复卷,以通过刷新操作反映当前状态。 刷新涉及获取主卷的快照,然后使用该快照中的数据更新重复卷。

如果重复卷是独立的,那么可以停止正在运行的刷新操作并启动新的刷新操作。

  1. 点击 基础设施 > 经典基础设施 > 存储 > Block Storage for Classic 进入 IBM Cloud 控制台中的 Block Storage for Classic 列表。

  2. 找到重复的卷,然后单击其名称以查看卷详细信息。

  3. 单击 操作 "操作" 图标 > 复原父快照

  4. 从快照列表中,选择用于保存要复原到重复卷的数据的父快照。 如果要刷新的重复卷是独立卷,那么可以停止正在运行的操作并强制启动新的复原。 如果要强制停止任何当前刷新过程,请先选中该框,然后再继续。

    从快照复原数据会导致丢失自生成所选快照以来创建或修改的任何数据。 在刷新过程中,重复的卷将被禁用,必须在刷新完成后重新挂载。

  5. 点击 “是” 开始刷新。 刷新可能需要一段时间才能完成。 状态栏显示复制到卷的数据所占的百分比。 要查看更新的状态,请在浏览器中刷新页面。

在控制台中将从属卷转换为独立副本

  1. 点击 基础设施 > 经典基础设施 > 存储 > Block Storage for Classic 进入 IBM Cloud 控制台中的 Block Storage for Classic 列表。
  2. 找到重复的卷,然后单击其名称以查看卷详细信息。
  3. 单击 操作 "操作" 图标 > 转换从属重复项
  4. 选中该框以确认您要继续进行转换。
  5. 单击

转换过程可能需要一些时间才能完成。 体积越大,转换时间越长。 您可以在卷详细信息页面上的 复制转换状态 标题下查看进程的状态。

从 CLI 更新来自父卷的重复数据

随着时间的推移和主卷的更改,可以使用这些更改来更新重复卷,以通过刷新操作反映当前状态。 刷新涉及获取主卷的快照,然后使用该快照中的数据更新重复卷。

刷新可通过以下命令启动。

slcli block volume-refresh <duplicate-vol-id> <primary-snapshot-id>

刷新不会导致主卷出现停机时间。 然而,在刷新过程中,重复的卷将被禁用,必须在刷新完成后重新挂载。

刷新过程可能很耗时。 如果发现有要复制到独立重复卷的新数据,那么可以发出带有 --force-refresh 选项的 slcli block volume-refresh 命令,以停止所有正在进行和暂挂的刷新事务,并启动新的刷新。

强制刷新过程仅在独立卷上起作用。

有关可用命令选项的更多信息,请参阅 slcli block volume-refresh

从 CLI 将从属卷转换为独立副本

如果您希望将来将从属卷用作独立卷,那么可以通过 SLCLI 将其转换为正常的独立 IBM Cloud® Block Storage for Classic 卷。 使用以下命令。

slcli block volume-convert <dependent-vol-id>

转换过程可能需要一些时间才能完成。 体积越大,转换时间越长。 使用以下命令来检查进度。

slcli block duplicate-convert-status <dependent-vol-id>

以下示例显示了您可以期望的输出。

slcli block duplicate-convert-status 370597202
Username            Active Conversion Start Timestamp   Completed Percentage
SL02SEVC307608_74   2022-06-13 14:59:17                 90

有关可用命令选项的更多信息,请参阅 duplicate-convert-status

使用 API 从父卷更新重复项上的数据

随着时间的推移和主卷的更改,可以使用这些更改来更新重复卷,以通过刷新操作反映当前状态。 刷新涉及获取主卷的快照,然后使用该快照中的数据更新重复卷。

刷新不会导致主卷出现停机时间。 然而,在刷新过程中,重复的卷将被禁用,必须在刷新完成后重新挂载。

刷新过程可能很耗时。 您可能会发现在完成正在运行的刷新之前,您有要添加到重复项的新数据。 如果是这种情况,您可以再次调用 refreshDuplicate,并将第二个 forceRefresh 参数指定为 true,以停止所有正在进行的和暂挂的刷新事务,并启动新的刷新。 如果第二个参数设置为 false 或未指定此参数,那么当另一个刷新已在进行时,调用将失败。

强制刷新过程仅在独立卷上起作用。

REST API 示例

  • URL - https://USERNAME:APIKEY@api.softlayer.com/rest/v3.1/SoftLayer_Network_Storage/duplicateVolumeId/refreshDuplicate
  • 类型-POST
  • 请求主体-
    {
     "parameters": [primaryVolumeSnapshotId, true OR false]
    }
    

SOAP API 示例

  • URL - https://api.softlayer.com/soap/v3.1/SoftLayer_Network_Storage
  • 类型-POST
  • 请求主体-
    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://api.service.softlayer.com/soap/v3.1/">
    <SOAP-ENV:Header>
     <ns1:authenticate>
      <username>USERNAME</username>
      <apiKey>APIKEY</apiKey>
     </ns1:authenticate>
     <ns2:SoftLayer_Network_StorageInitParameters>
      <id>duplicate Volume Id</id>
     </ns2:SoftLayer_Network_StorageInitParameters>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
     <ns1:refreshDuplicate>
       <snapshotId xsi:type="int">primary Volume Snapshot Id</snapshotId>
       <forceRefresh xsi:type="boolean">true</forceRefresh> <-- (remove this tag for normal refresh)
     </ns1:refreshDuplicate>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    

有关 API 和选项的更多信息,请参阅 API 参考SoftLayer_Network_Storage::refreshDuplicate

使用 API 将从属卷转换为独立副本

如果要在将来将从属卷用作独立卷,那么可以使用 API 将其转换为正常的独立 IBM Cloud® Block Storage for Classic 卷。 请参阅以下使用REST API的示例。

  • URL - https://USERNAME:APIKEY@api.softlayer.com/rest/v3.1/SoftLayer_Network_Storage/<storageId>/convertCloneDependentToIndependent
  • 类型-POST
  • 请求主体-空白

有关 API 和选项的更多信息,请参阅 API 参考

取消具有从属重复项的存储卷

取消具有活动从属卷的父卷需要首先取消从属重复卷。