配置持久卷声明的灾难恢复
要实现应用 PVC 的跨集群灾难恢复,请使用 Alauda Build of VolSync。
目录
概述术语前提条件部署 Alauda Build of VolSync配置定时同步配置一次性同步启用应用 PVC 的灾难恢复计划迁移操作流程故障切换操作流程故障恢复后切换回主集群(Failback)操作流程概述
Alauda Build of VolSync 是一个 operator,用于在集群内或跨集群异步复制持久卷。VolSync 提供的复制与存储系统无关,允许对通常不支持远程复制的存储类型进行复制。此外,它还能跨不同类型(及厂商)的存储进行复制。
术语
前提条件
- 下载 与您的平台架构对应的 Alauda Build of VolSync 安装包。
- 使用上传软件包机制将 Alauda Build of VolSync 安装包上传到主集群和备集群。
- 在主集群和备集群均已部署 Alauda Container Platform Snapshot Management。
- PVC 使用的存储必须由 CSI 供应,并支持 快照 功能。
部署 Alauda Build of VolSync
-
登录,进入 Administrator 页面。
-
点击 Marketplace > OperatorHub 进入 OperatorHub 页面。
-
找到 Alauda Build of VolSync,点击 Install,进入 Install Alauda Build of VolSync 页面。
配置参数:
配置定时同步
配置 PVC 的定时同步后,VolSync 会按照指定的时间间隔自动将数据从 ReplicationSource 同步到 ReplicationDestination。
本节介绍从主集群同步到备集群的配置步骤。若需从备集群同步到主集群,请将以下示例中的集群角色(主集群和备集群)互换。
创建 rsync-tls 数据搬运 Secret
在 主集群 和 备集群 上创建该 Secret;如果 Secret 已存在则跳过此步骤。
参数说明:
创建 ReplicationDestination 资源
在 备集群 创建 ReplicationDestination
参数说明:
关于 Service 类型
如果指定为 ClusterIP,Service 会从“集群网络”地址池中分配一个 IP 地址。默认情况下,这些地址集群外不可访问,因此不适合跨集群复制。但某些网络插件如 Submariner 可以桥接集群网络,使其成为可行选项。
如果指定为 LoadBalancer,会分配一个外部可访问的 IP 地址。这需要集群支持负载均衡器,如云厂商提供的负载均衡器或物理集群中的 MetalLB。虽然这是云环境中分配可访问地址最简单的方法,但负载均衡器通常会产生额外费用且数量有限。
创建 ReplicationSource 资源
在 主集群 创建 ReplicationSource
参数说明:
检查同步状态
从 ReplicationSource 查看同步状态
最近一次同步完成时间为 .status.lastSyncTime,耗时 .status.lastSyncDuration 秒。
下一次计划同步时间为 .status.nextSyncTime。
配置一次性同步
一次性同步由手动触发。通过在 ReplicationSource 资源的 trigger 规范下设置唯一字符串的 manual 字段来控制。应用配置后,同步任务会立即执行一次。
启用应用 PVC 的灾难恢复
计划迁移
用户场景:
在主集群和备集群均正常运行的情况下,将业务服务从主集群迁移至备集群。
操作流程
-
缩减应用 Pod
缩减所有使用灾难恢复 PVC 的应用 Pod,位于 主集群。
-
删除 ReplicationSource 资源
删除 主集群 上的
ReplicationSource -
创建一次性同步
从 主集群 发起同步任务,确保 备集群 数据为最新。
在 主集群 创建
ReplicationSource参见配置一次性同步
-
删除一次性同步
一次性同步完成后,删除一次性
ReplicationSource资源 -
删除 ReplicationDestination 资源
删除 备集群 上的
ReplicationDestination -
扩展应用 Pod
扩展所有使用灾难恢复 PVC 的应用 Pod,位于 备集群。
-
设置备集群到主集群的同步
通过在 主集群 创建
ReplicationDestination,在 备集群 创建ReplicationSource,设置 PVC 灾难恢复的备集群到主集群同步。参见配置定时同步
故障切换
用户场景:
主集群突发宕机后,将服务切换至备集群。
操作流程
为确保数据完整性(防止主集群同步时发生故障),在 备集群 进行本地同步。以应用 PVC 最近快照恢复的 PVC 作为源,应用当前 PVC 作为目标,执行数据同步。
-
恢复 PVC
从 备集群 的
ReplicationDestination恢复 PVC -
创建本地 ReplicationSource 资源
在 备集群 创建
ReplicationSource资源参数参见配置一次性同步
-
等待同步完成
如果输出与
<manual-id>匹配,则同步完成。 -
删除本地 ReplicationSource
删除 备集群 上的本地
ReplicationSource -
删除 ReplicationDestination
删除 备集群 上的
ReplicationDestination -
扩展应用 Pod
扩展 备集群 上所有应用 Pod。
故障恢复后切换回主集群(Failback)
用户场景:
主集群已恢复并正常运行,需要将服务切换回主集群。
操作流程
-
缩减主集群应用 Pod
主集群恢复后,应用 Pod 会自动恢复,但需先缩减服务以停止流量。同步完备集群最新数据到主集群后,再扩展应用恢复正常运行。
-
删除主集群 ReplicationSource
需先删除主集群故障前创建的
ReplicationSource。 -
从备集群同步最新数据
设置
备集群到主集群的一次性同步。在主集群创建
ReplicationDestination,在备集群创建一次性ReplicationSource。参见配置一次性同步
-
删除 ReplicationDestination 和 ReplicationSource
数据同步完成后,删除一次性资源。
删除备集群的
ReplicationSource删除主集群的
ReplicationDestination -
迁移应用
缩减 备集群 应用 Pod
扩展 主集群 应用 Pod
-
设置主集群到备集群的同步
参见配置定时同步