From 6be7a80a7b2066d965570c49b8582090bd5502a9 Mon Sep 17 00:00:00 2001 From: fishu Date: Mon, 19 Oct 2020 18:32:56 +0800 Subject: [PATCH] update design doc: cluster_backup_and_restore.md --- doc/design/zh/cluster_backup_and_restore.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/doc/design/zh/cluster_backup_and_restore.md b/doc/design/zh/cluster_backup_and_restore.md index e83c13bd7..b92166efd 100644 --- a/doc/design/zh/cluster_backup_and_restore.md +++ b/doc/design/zh/cluster_backup_and_restore.md @@ -2,7 +2,9 @@ 目前只支持备份到 ceph 对象存储及本地 pvc 中。 -备份开始时使用 redis-cli 同步 Master 的 RDB到本地后再使用 [Rclone](https://rclone.org/) 将 RDB 文件传输到对象存储或者 pvc 中。 +备份开始时使用 redis-cli 同步 Master 的 RDB到本地后再使用 [Rclone](https://rclone.org/) 将 +RDB 文件传输到对象存储或者 pvc 中,恢复时先使用 Rclone 从之前备份的位置同步备份到本地后,再启动 Redis +服务。备份恢复的工具类镜像中预置了 redis-cli 和 Rclone,参见 [Dockerfile](hack/docker/redis-tools/Dockerfile)。 ## 备份 @@ -18,11 +20,15 @@ redis/default/redis-cluster-test/20191101083020/backup-1 redis/default/redis-cluster-test/20191101083020/backup-2 ``` -每个master节点备份的快照和节点元数据信息会存储在上述路径,用户可以到相应的bucket中查看。 +每个master节点备份的快照和节点元数据信息会存储在上述路径,用户可以到相应的 bucket 中查看。 ## 从备份恢复 从备份恢复和创建步骤不同,分为两阶段,第一阶段同步数据,从快照启动 Master 节点;第二阶段启动 Slave 节点。 -1. 根据备份信息,创建与备份集群切片数相同的 Statefulset,设置 Replicas 为 1,只启动 master 节点,注入 init container,init container 的作用是拉取对象存储上的快照数据。 -2. 第1步完成之后,增加每个分片的副本数调大 Statefulset 的 Replicas,拉起 Slave 节点,等待所有 Pod 节点状态变为 Runing 之后,设置每个 Statefulset 的 Slave 节点 replicate Master 节点,加入集群。 \ No newline at end of file +1. 设置`DistributedRedisCluster.Status.Restore.Phase=Running`,根据备份信息,创建与备份集群切片数相同的 Statefulset, +设置 Replicas 为 1,只启动 master 节点,注入 init container,init container 的作用是拉取对象存储上的快照数据。 +2. 等待第1步同步数据完成,master 启动完成后,设置`DistributedRedisCluster.Status.Restore.Phase=Restart`,移除 +init container 后等待节点重启。 +3. 第2步完成之后,增加每个分片的副本数调大 Statefulset 的 Replicas,拉起 Slave 节点,设置`DistributedRedisCluster.Status.Restore.Phase=Succeeded`, +等待所有 Pod 节点状态变为 Runing 之后,设置每个 Statefulset 的 Slave 节点 replicate Master 节点,加入集群。