2024-02-16 05:49:15
云原生容灾备份实践主要涉及需备份的数据、备份任务执行方式、不同组件的备份恢复方法及备份数据存储位置,以下为详细介绍:
需备份的数据Postgres:cloudUp portal端使用的关系数据库,存储portal的用户数据、配置数据等。
Mongo:cloudUp devops端使用的nosql数据库,存储devops端的系统配置数据、任务数据等。
Mysql:cloudUp devops端使用的关系数据库,存储devops的用户数据及用户登录数据等。
minio:cloudUp devops端使用的对象数据库,存储devops运行时产生的日志数据等。
备份etcd:使用官方etcdctl工具,在golang中调用etcdutl依赖包
恢复etcd:使用官方etcdctl工具,在golang中调用etcdutl依赖包go,
备份postgres:采用官方提供的pg dump工具,该工具是postgres自带且依赖postgres环境运行。使用portal对应版本的postgres作为基础镜像即可使用此工具,在golang中使用exec.Command方法启动pg_dump工具。
恢复postgres:使用对应的sql driver连接到新的postgres数据库,然后执行需要恢复的sql语句。
备份mongo:使用官方提供的MongoDump工具,在golang中调用依赖包
恢复mongo:使用官方提供的MongoRestore工具,在golang中调用依赖包github,com/mongodb/mongo-tools/mongorestore中的MongoRestore.Restore()方法进行数据恢复。
备份minio:先获取一个桶下的所有object,然后逐一获取object并打包成一个统一的备份文件。
恢复minio:将备份的object重新写入到minio的对应桶中。
备份mysql:采用mysql驱动,执行sql语句的方式,从mysql数据库中查询并拼接成sql语句。
恢复mysql:采用mysql驱动,执行备份sql语句的方式。
根据传入的参数决定数据存储的目标存储中心,cloudUp定义了三个存储中心: