15分钟上手企业级备份神器!open-eBackup零基础实战指南
为什么选择open-eBackup?
你是否还在为以下问题困扰:
- 商业备份软件 license 费用高昂,中小企业难以承受
- 开源工具功能零散,缺乏统一管理界面
- 数据量爆炸式增长,传统备份方案性能不足
- 备份策略配置复杂,新手望而却步
open-eBackup——这款华为开源的企业级备份软件,采用集群高扩展架构,通过应用备份通用框架、并行备份等技术,为主流数据库、虚拟化、文件系统、大数据等应用提供E2E的数据备份、恢复等能力,帮助用户实现关键数据高效保护。
读完本文,你将获得:
- 从零搭建企业级备份系统的完整流程
- 规避90%新手常犯的配置错误
- 掌握核心组件的工作原理与优化技巧
- 实现数据库、文件系统的自动化备份方案
产品架构解析
核心组件
open-eBackup采用微服务架构设计,主要包含六大核心组件:
工作流程
备份过程中的核心调用关系如下:
环境准备与部署
系统要求
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 4核 | 8核及以上 |
| 内存 | 8GB | 16GB及以上 |
| 磁盘 | 100GB SSD | 500GB SSD |
| 操作系统 | openEuler 22.03 LTS | openEuler 22.03 LTS |
| Kubernetes | 1.23+ | 1.24+ |
网络规划
open-eBackup需要规划5个网络平面:
| 名称 | 说明 | IP地址需求 |
|---|---|---|
| 管理网络 | 系统管理和维护 | 1个管理IP/节点 |
| 备份网络 | 应用系统备份恢复 | 1个备份IP/节点 |
| 归档网络 | 与对象存储对接 | 1个归档IP/节点(独立场景) |
| 复制网络 | 与从端open-eBackup对接 | 1个复制IP/节点(独立场景) |
| 内部通信网络 | 集群节点间信令传输 | ≥2个/节点(高可用场景) |
备份组网示意图:
快速部署步骤
1. 安装操作系统
部署openEuler 22.03 LTS操作系统,具体步骤参考官方文档。
2. 安装Docker
# 安装Docker
yum install -y docker
# 启动Docker服务并设置开机自启
systemctl start docker
systemctl enable docker
# 配置镜像源
cat <<EOF > /etc/docker/daemon.json
{
"registry-mirrors": ["https://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com"],
"insecure-registries": ["hub-mirror.c.163.com", "docker.mirrors.ustc.edu.cn", "registry.docker-cn.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"experimental": true
}
EOF
# 重启Docker服务
systemctl daemon-reload
systemctl restart docker
3. 安装Kubernetes集群
# 设置主机名
hostnamectl set-hostname master
# 添加K8S yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
# 安装kubeadm, kubelet, kubectl
yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6
# 设置kubelet开机自启动
systemctl enable kubelet
# 拉取CoreDNS镜像(ARM架构)
docker pull registry.cn-hangzhou.aliyuncs.com/goodrain/mirrored-coredns-coredns:1.10.1
docker tag registry.cn-hangzhou.aliyuncs.com/goodrain/mirrored-coredns-coredns:1.10.1 registry.aliyuncs.com/google_containers/coredns:v1.8.4
# 初始化K8S集群
kubeadm init --apiserver-advertise-address=<管理平面IP> --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.23.6
# 配置kubectl
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
# 去除主节点污点
kubectl taint nodes master node-role.kubernetes.io/master-
# 添加节点标签
kubectl label nodes master role=MASTER --overwrite
4. 安装网络插件(Flannel)
# 安装cni-plugins
wget https://github.com/containernetworking/plugins/releases/download/v0.9.1/cni-plugins-linux-arm64-v0.9.1.tgz
mkdir -p /opt/cni/bin
tar -zxvf cni-plugins-linux-arm64-v0.9.1.tgz -C /opt/cni/bin
# 创建kube-flannel.yaml配置文件(内容略,见官方文档)
# 应用配置
kubectl apply -f kube-flannel.yaml
5. 安装Traefik ingress控制器
# 拉取Traefik镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/rancher/mirrored-library-traefik:2.10.7-linuxarm64v8
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/rancher/mirrored-library-traefik:2.10.7-linuxarm64v8 traefik:v2.11.2
# 创建配置文件(traefik_config.yaml、traefik_rbac.yaml、traefik_ingress_controller.yaml)
# 应用配置
kubectl apply -f traefik_config.yaml
kubectl apply -f traefik_rbac.yaml
kubectl apply -f traefik_ingress_controller.yaml
6. 安装Helm
# 下载Helm
wget https://get.helm.sh/helm-v3.13.3-linux-arm64.tar.gz
# 解压并安装
tar -zxvf helm-v3.13.3-linux-arm64.tar.gz
cp linux-arm64/helm /usr/local/bin/
# 验证安装
helm version
7. 部署open-eBackup
# 创建命名空间
kubectl create namespace dpa
# 创建安装目录
mkdir -p /open-eBackup
cd /open-eBackup
# 上传安装包并解压(假设已上传)
unzip open-ebackup-xxx.zip
# 加载镜像
mkdir open-eBackup_MasterServer_image
tar -zxvf open-eBackup_xxx_MasterServer.tgz -C open-eBackup_MasterServer_image
docker load -i open-eBackup_MasterServer_image/open-eBackup_xxx_MasterServer.tar.xz
mkdir open-eBackup_MediaServer_image
tar -zxvf open-eBackup_xxx_MediaServer.tgz -C open-eBackup_MediaServer_image
docker load -i open-eBackup_MediaServer_image/open-eBackup_xxx_MediaServer.tar.xz
mkdir open-eBackup_DataManager_image
tar -zxvf open-eBackup_xxx_DataManager.tgz -C open-eBackup_DataManager_image/
docker load -i open-eBackup_DataManager_image/open-eBackup_xxx_DataManager.tar.xz
# 安装MasterServer
mkdir open-eBackup_MasterServer_chart
tar -zxvf open-eBackup_MasterServer_chart.tgz -C open-eBackup_MasterServer_chart
tar -zxvf open-eBackup_MasterServer_chart/databackup-*.tgz -C open-eBackup_MasterServer_chart
helm install master-server ./open-eBackup_MasterServer_chart/databackup \
--namespace dpa \
--set global.deploy_type=d10 \
--set global.replicas=2 \
--set global.gaussdbpwd=R2F1c3NkYl8xMjM=
配置与使用
访问Web控制台
部署完成后,通过以下地址访问Web控制台:
https://<管理IP>:25080
默认用户名和密码请参考官方文档,首次登录需修改密码。
创建存储库
- 登录Web控制台,进入"存储 > 存储库"页面
- 点击"创建"按钮,选择存储类型
- 配置存储参数(路径、容量等)
- 点击"确定"完成创建
配置备份策略
执行备份任务
- 进入"任务 > 备份任务"页面
- 点击"新建任务"
- 选择保护对象和备份策略
- 设置任务优先级和执行时间
- 点击"立即执行"或"预约执行"
监控任务状态
通过"监控 > 任务监控"页面,可实时查看任务执行状态、进度和结果。
常见问题解决
问题1:Kubernetes节点状态NotReady
可能原因:网络插件未正常部署或运行
解决方法:
# 检查Flannel pods状态
kubectl get pods -n kube-flannel
# 查看Flannel日志
kubectl logs -n kube-flannel <flannel-pod-name>
# 重新部署Flannel
kubectl delete -f kube-flannel.yaml
kubectl apply -f kube-flannel.yaml
问题2:备份任务失败,提示"连接超时"
可能原因:
- 备份网络不通
- 目标存储不可用
- 保护代理未正常运行
解决方法:
- 检查备份网络连通性
- 确认存储库状态正常
- 检查保护代理状态:
kubectl get pods -n dpa | grep protect-agent
问题3:Web控制台无法访问
可能原因:
- Traefik服务未启动
- 防火墙端口未开放
- 证书配置问题
解决方法:
- 检查Traefik状态:
kubectl get pods -n kube-system | grep traefik
- 开放防火墙端口:
firewall-cmd --add-port=25080/tcp --permanent
firewall-cmd --reload
性能优化建议
-
网络优化:
- 备份网络与管理网络物理隔离
- 采用10GbE或更高带宽网络
- 启用Jumbo Frames(MTU=9000)
-
存储优化:
- 使用高性能SSD存储
- 合理规划存储分区
- 定期进行存储碎片整理
-
任务调度:
- 避免备份任务集中在同一时间段
- 根据数据重要性设置不同优先级
- 大文件采用增量备份策略
-
资源配置:
- 根据数据量调整保护代理数量
- 为关键组件预留足够CPU和内存资源
- 启用自动扩缩容(适用于云环境)
总结与展望
通过本文的指导,你已经成功部署并开始使用open-eBackup开源备份软件。作为一款企业级备份解决方案,open-eBackup不仅提供了全面的数据保护能力,还具备良好的可扩展性和灵活性,能够满足不同规模企业的备份需求。
未来,你可以进一步探索:
- 配置跨站点备份与容灾
- 集成监控系统(Prometheus/Grafana)
- 开发自定义备份插件
- 实现与云平台的深度集成
open-eBackup社区持续活跃,欢迎参与贡献代码、报告问题或分享使用经验!
附录:常用命令参考
| 操作 | 命令 |
|---|---|
| 查看集群状态 | kubectl get nodes |
| 查看命名空间所有pod | kubectl get pods -n dpa |
| 查看服务日志 | kubectl logs -n dpa |
| 重启服务 | kubectl delete pod -n dpa |
| 查看Helm发布 | helm list -n dpa |
| 升级Helm发布 | helm upgrade master-server ./databackup -n dpa |
| 卸载Helm发布 | helm uninstall master-server -n dpa |
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



