复制故障转移
如果源文件共享变为不可用,那么故障转移到副本文件共享将使数据可用。 故障转移会切换复制关系,以便副本文件共享成为源文件共享,而源共享成为只读副本文件共享。
复制故障转移概念
创建副本文件共享时,副本将根据复制调度从源文件共享中提取数据。 副本文件共享上的数据设置为只读。 故障转移会切换复制关系。 只读副本文件共享将成为读/写源文件共享,而原始共享将成为只读共享。 现在,您可以安装活动文件共享并将其作为常规文件共享进行管理。
启动故障转移时,可以选择在故障转移操作失败或超时时发生的情况。 默认超时为 5 分钟。
-
如果您决定保留复制关系,那么系统将“回退”到源共享。 即使操作失败,系统也会尝试在下一个计划时间再次复制数据。 当调度主站点进行 例程维护 时,可以使用此选项。 当维护完成且站点再次稳定时,您可以回退到原始共享。 可以恢复复制。
-
如果您决定除去复制关系,那么系统会将两个文件共享分割开,并使它们成为独立的读/写文件共享。 当尽快启动应用程序更重要时,此选项可用于 灾难恢复 情境中的故障转移。 因此您可以在副本站点上继续正常操作,而原始站点的未来是不确定的。
在对源或副本文件共享执行另一操作 (例如,正在扩展文件共享大小) 时,无法执行故障转移操作或副本分割。 拆分或故障转移操作继续挂起,直到其他操作完成。
故障转移状态 在操作正在进行或服务正在等待另一个操作完成时显示 failover_pending。
例程维护的故障转移
将故障转移用于主站点上的例程维护,或者在站点出现问题时使用故障转移。 流程如下
- 区域 A 中的源文件共享拒绝所有读和写操作。 然后,系统尝试将共享数据的最终副本拉取到区域 B 中的副本共享。
- 将数据复制到副本文件共享,这将变为读/写,并被视为新的源站点。 (复制关系相反)
- 服务尝试按调度将数据从区域 B 中的活动源复制到区域 A 中的原始共享。 如果数据传输失败,那么系统会在下一次调度的复制时间再次尝试。
- 当维护完成并且站点再次稳定时,您可以回退到原始共享。 或者,可以保留副本共享作为源共享。
灾难恢复情境中的故障转移
故障转移也是灾难恢复的一个选项。 如果已确认原始站点不可用,并且需要尽快在副本位置上启动应用程序,请选择删除复制关系。 删除复制关系是启动故障转移时备用策略的一个选项。 灾难恢复的故障转移按以下方式工作:
- 源站点上的文件共享会拒绝所有读和写操作,并且系统会尝试将共享数据的最终副本拉取到副本文件共享。
- 当数据拉出超时并失败时,文件服务会中断复制关系。 副本文件共享变为读/写,并作为独立文件共享运行。 可以将其作为常规文件共享进行安装和管理。
- 无法重新建立复制关系。 但是,当站点再次变为可操作时,您可以在原始站点上设置新副本。
由于灾难恢复故障转移的性质,您可能会发现最新数据集未被复制。 在这种情况下,当源文件共享再次可用时,您可能需要手动协调应用程序的状态。 如果源文件共享区域再次变为可用,那么可从副本共享获取数据,以便从事件发生时到恢复点进行协调。
限制
执行故障转移时,这些限制适用。
-
成功故障转移的缺省超时为 5 分钟。 您可以在 启动故障转移 选项时修改此值。
-
当对源文件共享执行其他操作 (例如,扩展共享大小) 时,故障转移仍处于暂挂状态。 操作完成后,将恢复故障转移。
在控制台中启动故障切换
-
浏览至所有文件共享的列表。 在 IBM Cloud 控制台中,单击导航菜单图标
> 基础架构
> 存储 > 文件存储共享。
-
单击副本文件共享的名称以打开其详细信息页面。
-
从 操作 菜单
中,选择 执行故障转移。 在故障转移之前,将执行文件的最终同步,以确保故障转移共享具有最新内容。 故障转移完成后,副本文件共享将成为新的源文件共享。 先前的源共享将成为新的只读副本共享。
-
要设置超时值,请选中 超时 (可选) 下的框并指定时间值。 此值指定完成故障转移的绝对时间限制。 根据您可以使文件共享脱机的时间设置超时。
-
在 故障转移策略下,如果故障转移操作未成功或超时,请选择保留复制关系或对其进行更改:
- 保留复制关系-不会对副本文件共享或源文件共享进行任何更改。
- 除去复制关系-此操作将创建两个单独的读/写文件共享。 由于关系已中断,因此对一个文件共享的更改不会影响另一个文件共享。
你断了关系之后,就不能重新建立了。
-
单击 执行故障转移。 将显示指示已请求故障转移并且正在执行故障转移的消息。
文件共享详细信息页面已更新,复制关系将副本文件共享显示为新的源文件共享。
从 CLI 启动故障转移
在使用 CLI 之前,您必须安装 IBM Cloud CLI 和 VPC CLI 插件。 有关更多信息,请参阅 CLI 先决条件。
-
通过使用
ibmcloud is shares命令列出区域中的所有文件共享,找到要故障转移到的副本文件共享ibmcloud is sharesListing shares in all resource groups and region us-south under account Test Account as user test.user@ibm.com... ID Name Lifecycle state Zone Profile Size(GB) Resource group Replication role Accessor binding role Snapshot count Snapshot size r006-a8d6af48-0c97-4c6b-bab1-fbefdc1e1e03 my-file-share stable us-south-2 dp2 10 defaults none none 0 0 r006-aaf4bfe9-358c-4faa-a4ec-0b955090b940 my-file-share-2 stable us-south-2 dp2 10 defaults none none 0 0 r006-a60bfa90-a893-40ad-be34-28ab51a963f9 replica-dal-2 stable us-south-2 dp2 10 defaults replica none 0 0 r006-3f21e3c3-e12d-425f-ab77-810cabfde8df source-dal-1 stable us-south-1 dp2 10 defaults source none 0 0 r006-455b601c-8fc1-4476-8771-4708c49c8ef7 my-replica-share-dal-1 stable us-south-1 dp2 10 defaults replica none 0 0 r006-4dadac27-cd17-42df-a5fe-1388705d33e0 my-source-share-dal-2 stable us-south-2 dp2 10 defaults source none 0 0 -
运行
ibmcloud is share-replica-failover命令并指定fallback-policy属性。 可以为此属性指定fail或split。- 以下示例为
fallback-policy属性指定fail。 如果故障转移操作失败或达到超时,那么故障转移操作将失败。 源共享保持活动状态,复制将按计划恢复。
ibmcloud is share-replica-failover r006-a60bfa90-a893-40ad-be34-28ab51a963f9 --fallback-policy failThe file share r006-a60bfa90-a893-40ad-be34-28ab51a963f9 failover request was accepted under account Test Account as user test.user@ibm.com... The file share failover request was accepted.- 以下示例为
fallback-policy属性指定split。 如果故障转移操作失败,那么将从源文件共享拆分副本共享。 如果故障转移失败,那么结果是两个独立的读/写文件共享。
ibmcloud is share-replica-failover my-source-share-dal-2 --fallback-policy splitThe file share r006-4dadac27-cd17-42df-a5fe-1388705d33e0 failover request was accepted under account Test Account as user test.user@ibm.com... The file share failover request was accepted. - 以下示例为
有关命令选项的更多信息,请参阅 ibmcloud is share-replica-failover。
使用 API 启动故障转移
发出 POST /shares/{share_id}/failover 请求并指定 timeout 和 fallback_policy 属性。 最小超时为 300 秒,最大超时为 3600 秒。 此请求启动源文件共享到副本共享 (由副本文件共享标识指定) 的故障转移。
fallback_policy 属性可以具有以下值: split 或 fail。 指定 fail 时,如果故障转移操作失败或达到超时,那么故障转移操作将失败。 复制关系保持不变。
如果对 fallback_policy 属性指定 split,那么每当故障转移操作失败时,将从源共享拆分副本共享。 结果是两个独立的读/写文件共享。 在这种情况下,由于最终文件同步未完成,因此副本共享可能不包含源文件共享的所有数据。 如果已知无法访问源文件共享,请将此选项用于灾难恢复。
如果未在请求中指定 fallback_policy 属性,那么当故障转移操作失败时,系统缺省为 split。
此示例为 fallback_policy 属性指定 fail。 timeout 属性是可选的。 可以使用默认超时。
curl -X POST \
"$vpc_api_endpoint/v1/shares/$replica_id?/failover?version=2023-08-08"\
-H "Authorization: $iam_token"\
-d '{
"fallback_policy": "fail",
"timeout": 600
}'
成功响应指示已接受文件共享故障转移请求。
您可以使用 API 来验证复制故障转移是否成功,暂挂或失败。 发出 GET /shares/{replica_id} 调用。 查看 latest_job 属性。 有关更多信息,请参阅 使用 API 验证复制。
使用 Terraform 启动故障转移
执行故障转移时,副本共享将成为源,而源共享将成为副本。 需要修改 Terraform 配置以匹配此更改。 fallback_policy 定义在接受故障转移请求但无法执行或超时时要采取的操作。 接受的值为 split 或 fail。 如果指定 split 并且故障转移失败,那么系统将中断复制关系,并且两个文件共享将彼此独立。
resource "ibm_is_share_replica_operations" "test" {
share_replica = ibm_is_share.replica.id
fallback_policy = "split"
timeout = 500
}
有关自变量和属性的更多信息,请参阅 ibm_is_share_replica_operations。
后续步骤
管理复制。