1. 首页 > NBU-NetBackup教程 > 正文

NetBackup教程FG029-NetBackup容器备份与恢复实战

本文档风哥主要介绍NetBackup容器备份与恢复的方法,包括容器的概念、NetBackup与容器的集成、容器备份方法和实战案例等内容,风哥教程参考NetBackup官方文档NetBackup Container Backup Guide,适合备份管理员和系统工程师在学习和测试中使用。学习交流加群风哥微信: itpux-com

Part01-基础概念与理论知识

1.1 容器概述

容器是一种轻量级的虚拟化技术,允许应用程序在隔离的环境中运行。容器的主要特点包括:

容器的主要特点:

  • 轻量级:比虚拟机更轻量,启动更快
  • 隔离性:容器之间相互隔离
  • 可移植性:可以在不同环境中运行
  • 可扩展性:支持快速扩展
  • 一致性:确保应用在不同环境中行为一致

1.2 NetBackup与容器集成

NetBackup与容器集成,允许备份和恢复容器及其数据。集成的主要优势包括:

1.2.1 集成优势

  • 容器级备份:直接备份整个容器
  • 应用一致性:支持应用一致性备份
  • 增量备份:支持增量备份,减少备份时间和存储占用
  • 快速恢复:支持快速恢复容器
  • 集中管理:通过NetBackup统一管理备份

1.2.2 集成架构

  • NetBackup主服务器:管理备份和恢复操作
  • 容器运行时:如Docker、Kubernetes
  • NetBackup客户端:安装在容器或宿主机上
  • 存储:存储备份数据

1.3 容器备份方法

容器备份的主要方法包括:

1.3.1 基于镜像的备份

  • 优点:备份完整的容器镜像
  • 缺点:备份体积大,恢复时间长

1.3.2 基于卷的备份

  • 优点:只备份数据卷,备份体积小
  • 缺点:需要单独备份容器配置

1.3.3 基于应用的备份

  • 优点:支持应用一致性备份
  • 缺点:需要应用支持

Part02-生产环境规划与建议

2.1 容器备份规划

NetBackup容器备份规划应考虑以下因素:

# 容器备份规划要点
– [ ] 容器数量:评估容器的数量和类型
– [ ] 数据重要性:评估容器数据的重要性
– [ ] 备份窗口:确定备份窗口
– [ ] 存储需求:确定备份存储需求
– [ ] 网络带宽:确保网络带宽满足需求
– [ ] 恢复时间目标:根据业务需求确定恢复时间目标
– [ ] 恢复点目标:根据业务需求确定恢复点目标

2.2 容器备份要求

NetBackup容器备份的系统要求:

# 系统要求
– NetBackup版本:10.0或更高
– 容器运行时:
– Docker 19.03或更高
– Kubernetes 1.18或更高
– 操作系统:
– Linux (RHEL 7.x/8.x/9.x, Oracle Linux 7.x/8.x/9.x)
– Windows Server 2016/2019/2022
– 网络要求:
– 网络带宽:至少1Gbps
– 网络延迟:低于100ms
– 存储要求:
– 存储容量:根据备份数据量确定
– 存储类型:支持各种NetBackup存储类型

2.3 容器备份策略

容器备份策略应考虑以下因素:

2.3.1 备份频率

  • 高频备份:适用于重要的容器,如数据库容器
  • 中频备份:适用于一般应用容器
  • 低频备份:适用于测试和开发容器

2.3.2 备份保留

  • 短期保留:1-7天,用于日常备份和恢复
  • 中期保留:7-30天,用于周度和月度备份
  • 长期保留:30天以上,用于季度和年度备份

2.3.3 备份类型

  • 全量备份:备份整个容器或数据卷
  • 增量备份:仅备份自上次备份以来变化的数据
  • 差异备份:仅备份自上次全量备份以来变化的数据
风哥提示:容器备份规划是NetBackup容器备份部署的重要环节,需要根据容器环境的实际情况进行合理规划。建议在部署前评估容器的数量和类型,确保备份策略能够满足业务需求。学习交流加群风哥QQ113257174

Part03-生产环境项目实施方案

3.1 容器备份设置

3.1.1 配置Docker环境

# 1. 安装Docker
$ sudo yum install -y docker
$ sudo systemctl start docker
$ sudo systemctl enable docker

# 2. 验证Docker安装
$ docker –version
Docker version 20.10.8, build 3967b7d

# 3. 配置Docker用户
$ sudo usermod -aG docker $USER
$ newgrp docker

3.1.2 配置Kubernetes环境

# 1. 安装Kubernetes
$ sudo yum install -y kubeadm kubelet kubectl
$ sudo systemctl start kubelet
$ sudo systemctl enable kubelet

# 2. 初始化Kubernetes集群
$ sudo kubeadm init –pod-network-cidr=10.244.0.0/16

# 3. 配置kubectl
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 4. 安装网络插件
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

3.2 容器备份配置

3.2.1 配置NetBackup容器客户端

# 1. 拉取NetBackup容器客户端镜像
$ docker pull veritas/netbackup-client:10.0

# 2. 运行NetBackup容器客户端
$ docker run -d –name netbackup-client \
-v /var/run/docker.sock:/var/run/docker.sock \
-e NB_MASTER_SERVER=master-server.fgedu.net.cn \
-e NB_CLIENT_NAME=docker-host.fgedu.net.cn \
veritas/netbackup-client:10.0

# 3. 验证NetBackup容器客户端
$ docker exec -it netbackup-client /bin/bash -c “/usr/openv/netbackup/bin/bpclntcmd -pn”

3.2.2 配置Kubernetes Operator

# 1. 安装NetBackup Kubernetes Operator
$ kubectl apply -f https://raw.githubusercontent.com/veritasinc/netbackup-kubernetes-operator/master/deploy/crds/veritas.com_netbackupbackups_crd.yaml
$ kubectl apply -f https://raw.githubusercontent.com/veritasinc/netbackup-kubernetes-operator/master/deploy/service_account.yaml
$ kubectl apply -f https://raw.githubusercontent.com/veritasinc/netbackup-kubernetes-operator/master/deploy/role.yaml
$ kubectl apply -f https://raw.githubusercontent.com/veritasinc/netbackup-kubernetes-operator/master/deploy/role_binding.yaml
$ kubectl apply -f https://raw.githubusercontent.com/veritasinc/netbackup-kubernetes-operator/master/deploy/operator.yaml

# 2. 验证Operator安装
$ kubectl get pods -n default | grep netbackup-operator

3.3 容器备份集成

3.3.1 与Docker集成

# 1. 登录NetBackup管理控制台
# 访问 https://master-server.fgedu.net.cn:14161

# 2. 创建Docker备份策略
– 点击”策略” > “新建策略”
– 输入策略名称:DockerPolicy
– 选择策略类型:Docker
– 点击”确定”按钮

# 3. 配置Docker选项
– 点击”Docker”选项卡
– 输入Docker主机:docker-host.fgedu.net.cn
– 选择容器:选择要备份的容器
– 点击”确定”按钮

# 4. 验证策略配置
$ /NetBackup/app/netbackup/bin/bpplinfo DockerPolicy -U

Policy Name: DockerPolicy
Policy Type: Docker
Active: yes
Docker Host: docker-host.fgedu.net.cn
Containers: fgedu-container

3.3.2 与Kubernetes集成

# 1. 创建Kubernetes备份配置
$ cat > netbackup-backup.yaml << 'EOF' apiVersion: veritas.com/v1 kind: NetBackupBackup metadata: name: fgedu-k8s-backup namespace: default spec: backupName: fgedu-k8s-backup masterServer: master-server.fgedu.net.cn policyName: KubernetesPolicy namespace: default includeResources: - pods - services - deployments EOF # 2. 应用Kubernetes备份配置 $ kubectl apply -f netbackup-backup.yaml # 3. 验证备份配置 $ kubectl get netbackupbackups
生产环境建议:在配置NetBackup容器备份时,应根据容器环境的需求和最佳实践进行配置,确保备份操作的可靠性和安全性。建议在生产环境中先进行测试,然后再大规模部署。更多学习教程公众号风哥教程itpux_com

Part04-生产案例与实战讲解

4.1 容器备份实战

4.1.1 案例1:Docker容器备份

# 1. 准备Docker容器
$ docker run -d –name fgedu-container -v fgedu-volume:/data nginx:latest

# 2. 查看Docker容器
$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1234567890ab nginx:latest “/docker-entrypoint.…” 5 minutes ago Up 5 minutes 80/tcp fgedu-container

# 3. 配置Docker备份策略
$ /NetBackup/app/netbackup/bin/admincmd/bp政策 -add DockerPolicy -stype Docker -residence Default-Unit
$ /NetBackup/app/netbackup/bin/admincmd/bpplinfo DockerPolicy -modify -docker_host docker-host.fgedu.net.cn -docker_containers fgedu-container

# 4. 执行Docker容器备份
$ /NetBackup/app/netbackup/bin/bpbackup -w -p DockerPolicy -s “Full Backup” docker://docker-host.fgedu.net.cn/fgedu-container

Backup started, job id = 12345
Waiting for job to complete…
Job 12345 completed successfully

# 5. 验证备份
$ /NetBackup/app/netbackup/bin/bpimagelist -policy DockerPolicy

Image Information:
server master-server
client docker-host.fgedu.net.cn
policy DockerPolicy
schedule Full Backup
backup id docker-host.fgedu.net.cn_1234567890
backup time 2026-04-10 08:00:00
expiration time 2026-05-10 08:00:00
KBytes 1024000
status 0

4.1.2 案例2:Kubernetes应用备份

# 1. 准备Kubernetes应用
$ kubectl create deployment fgedu-deployment –image=nginx:latest
$ kubectl expose deployment fgedu-deployment –port=80 –type=NodePort

# 2. 查看Kubernetes应用
$ kubectl get deployments
$ kubectl get services

# 3. 配置Kubernetes备份策略
$ /NetBackup/app/netbackup/bin/admincmd/bp政策 -add KubernetesPolicy -stype Kubernetes -residence Default-Unit
$ /NetBackup/app/netbackup/bin/admincmd/bpplinfo KubernetesPolicy -modify -kubernetes_namespace default -kubernetes_resources pods,services,deployments

# 4. 执行Kubernetes应用备份
$ kubectl apply -f netbackup-backup.yaml

# 5. 验证备份
$ /NetBackup/app/netbackup/bin/bpimagelist -policy KubernetesPolicy

Image Information:
server master-server
client kubernetes-host.fgedu.net.cn
policy KubernetesPolicy
schedule Full Backup
backup id kubernetes-host.fgedu.net.cn_1234567891
backup time 2026-04-10 09:00:00
expiration time 2026-05-10 09:00:00
KBytes 1024000
status 0

4.2 容器恢复实战

4.2.1 案例1:Docker容器恢复

# 1. 模拟容器故障
$ docker stop fgedu-container
$ docker rm fgedu-container

# 2. 执行Docker容器恢复
$ /NetBackup/app/netbackup/bin/bprestore -w -C docker-host.fgedu.net.cn -t 0 -D / docker://docker-host.fgedu.net.cn/fgedu-container

Restore started, job id = 12346
Waiting for job to complete…
Job 12346 completed successfully

# 3. 验证容器恢复
$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9876543210ba nginx:latest “/docker-entrypoint.…” 2 minutes ago Up 2 minutes 80/tcp fgedu-container

# 4. 验证数据恢复
$ docker exec -it fgedu-container ls /data

4.2.2 案例2:Kubernetes应用恢复

# 1. 模拟应用故障
$ kubectl delete deployment fgedu-deployment
$ kubectl delete service fgedu-deployment

# 2. 执行Kubernetes应用恢复
$ kubectl apply -f netbackup-restore.yaml

# 3. 验证应用恢复
$ kubectl get deployments
$ kubectl get services

# 4. 验证数据恢复
$ kubectl exec -it $(kubectl get pods -l app=fgedu-deployment -o name) — ls /data

4.3 容器备份故障排除

4.3.1 Docker备份失败

# 问题:Docker备份失败

# 1. 查看作业详细信息
$ /NetBackup/app/netbackup/bin/bpjobinfo -jobid 12345 -detailed

Job ID: 12345
Status: Failed
Status Code: 15
Client: docker-host.fgedu.net.cn
Policy: DockerPolicy
Schedule: Full Backup
Error: cannot connect to client

# 2. 检查Docker服务状态
$ systemctl status docker

# 3. 检查NetBackup容器客户端
$ docker ps | grep netbackup-client

# 4. 检查网络连接
$ ping master-server.fgedu.net.cn

# 5. 解决方案:确保Docker服务运行正常,NetBackup容器客户端运行正常,网络连接正常

4.3.2 Kubernetes备份失败

# 问题:Kubernetes备份失败

# 1. 查看作业详细信息
$ /NetBackup/app/netbackup/bin/bpjobinfo -jobid 12346 -detailed

Job ID: 12346
Status: Failed
Status Code: 23
Client: kubernetes-host.fgedu.net.cn
Policy: KubernetesPolicy
Schedule: Full Backup
Error: write failed: cannot write to disk

# 2. 检查Kubernetes状态
$ kubectl get pods

# 3. 检查NetBackup Operator状态
$ kubectl get pods -n default | grep netbackup-operator

# 4. 检查存储容量
$ kubectl get pv

# 5. 解决方案:确保Kubernetes集群状态正常,NetBackup Operator运行正常,存储容量足够

生产环境建议:定期监控NetBackup容器备份的状态和性能,及时发现和解决问题。建议配置监控和告警机制,当容器备份操作失败时及时通知管理员。from NetBackup视频:www.itpux.com

Part05-风哥经验总结与分享

5.1 容器备份最佳实践

NetBackup容器备份最佳实践:

  • 合理规划:根据容器环境的规模和需求合理规划备份策略
  • 应用一致性:确保备份的应用一致性
  • 监控系统:配置监控和告警机制,及时发现和解决问题
  • 备份测试:定期测试备份和恢复操作,确保数据可恢复性
  • 网络优化:确保网络连接稳定,提高备份速度
  • 存储管理:定期清理过期备份,控制存储成本
  • 文档记录:记录备份策略和操作,便于审计和故障排查

5.2 容器备份优化

NetBackup容器备份优化建议:

5.2.1 性能优化

# 性能优化
– 网络优化:使用高速网络连接,减少网络延迟
– 并行备份:使用多个并发备份作业,提高备份速度
– 增量备份:使用增量备份,减少备份时间和存储占用
– 压缩和重复数据删除:启用压缩和重复数据删除,减少存储占用
– 备份窗口:选择业务低峰期执行备份

5.2.2 可靠性优化

# 可靠性优化
– 多份备份:保存多份备份,存储在不同位置
– 异地存储:将备份存储在异地
– 备份验证:定期验证备份的完整性
– 恢复测试:定期测试恢复流程
– 监控和告警:监控容器备份操作

5.3 容器备份未来趋势

NetBackup容器备份的未来趋势:

  • 云原生:支持更多云原生容器平台
  • 智能策略:使用AI技术自动优化备份策略
  • 边缘计算:支持边缘设备的容器备份
  • 安全增强:加强容器备份的安全性和合规性
  • 自动化:进一步自动化容器备份和恢复操作
  • 混合云:深度集成混合云容器备份策略
风哥提示:NetBackup容器备份是企业容器环境数据保护的重要解决方案,随着容器技术的广泛采用,容器备份的重要性将不断提升。建议系统学习NetBackup容器备份相关知识,掌握其配置和管理技能。更多视频教程www.fgedu.net.cn

持续学习:容器技术和NetBackup容器备份功能不断发展,新的功能和特性不断推出。建议定期关注Veritas官方文档和容器技术文档,了解最新的容器备份技术和最佳实践。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息