NFS 备份与恢复
本文档介绍如何对部署的 RadonDB MySQL 集群进行备份和恢复。
安装 NFS server 与资源
方法一:使用 Helm 安装
helm install demo charts/mysql-operator --set nfsBackup.installServer=true --set nfsBackup.volume.createLocalPV=true
或者手动创建 PVC,再运行如下命令:
helm install demo charts/mysql-operator --set nfsBackup.installServer=true --set nfsBackup.volume.specifiedPVC=XXXX
其中
XXX
为 PVC 名称。
用该方法,可以在安装 operator 时, 也将 NFS server 的 Pod 和 Service 安装到集群中。
方法二:使用 kubectl 安装
kubectl apply -f config/samples/nfs_pv.yaml
kubectl apply -f config/samples/nfs_server.yaml
获取 NFS 服务的 IP 地址
例如:
kubectl get svc nfs-server --template={{.spec.clusterIP}}
10.96.253.82
获取到 ClusterIp
,就可以使用该地址进行 NFS 备份。这里 IP 地址为 10.96.253.82
。
创建 NFS 备份
1. 配置 NFS 服务的 IP 地址
# config/samples/mysql_v1alpha1_backup.yaml
nfsServerAddress: "10.96.253.82"
2. 创建备份
kubectl apply -f config/samples/mysql_v1alpha1_backup.yaml
注意:备份自定义资源与 MySQL 集群自定义资源必须在同一个命名空间中。
3. 验证备份
使用如下命令,可以发现名称格式为 <cluster name>_<timestamp>
的备份文件夹。
kubectl exec -it <pod name of nfs server> -- ls /exports
index.html initbackup sample_2022419101946
从已有的 NFS 备份恢复集群
配置 mysql_v1alpha1_cluster.yaml
,将 nfsServerAddress
设置为 NFS server 的地址。
...
restoreFrom: "sample_2022419101946"
nfsServerAddress: 10.96.253.82
注意:
restoreFrom
字段是备份的路径名称,可以从 NFS 服务加载的路径中看到。
然后运行如下命令从 NFS 备份副本恢复集群:
kubectl apply -f config/samples/mysql_v1alpha1_cluster.yaml