第 6 章 Cinder - 059 - Backup Volume 操作

本文介绍了Backup Volume操作,对比了Backup与Snapshot的区别,指出Backup有容灾功能。还说明了配置cinder - backup服务的方法,以NFS为backend进行配置。详细阐述了backup操作流程,包括向cinder - api发送请求、发送消息、执行操作等,最后提及增量备份功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Backup Volume 操作

 

Backup 是将 volume 备份到别的地方(备份设备),将来可以通过 restore 操作恢复。

 

Backup VS Snapshot

初看 backup 功能好像与 snapshot 很相似,都可以保存 volume 的当前状态,以备以后恢复。

但二者在用途和实现上还是有区别的,具体表现在:

1、Snapshot 依赖于源 volume,不能独立存在;而 backup 不依赖源 volume,即便源 volume 不存在了,也可以 restore。

2、Snapshot 与源 volume 通常存放在一起,都由同一个 volume provider 管理;而 backup 存放在独立的备份设备中,有自己的备份方案和实现,与 volume provider 没有关系。

上面两点决定了 backup 具有容灾功能;而 snapshot 则提供 volume provider 内便捷的回溯功能。

 

配置 cinder-backup

Cinder 的 backup 功能是由 cinder-backup 服务提供的,devstack 默认没有启用该服务,需要手工启用。

与 cinder-volume 类似,cinder-backup 也通过 driver 架构支持多种备份 backend,包括 POSIX 文件系统、NFS、Ceph、GlusterFS、Swift 和 IBM TSM。

支持的driver 源文件放在 /opt/stack/cinder/cinder/backup/drivers/

 

在实验环境中以 NFS 为 backend 来研究 backup 操作,存放 volume backup 的 NFS 远程目录为 10.12.28.8:/home/backup cinder-backup 服务节点上 mount point 为 /backup_mount。

需要在 /etc/cinder/cinder.conf 中相应配置。

[DEFAULT]

backup_driver = cinder.backup.drivers.nfs

backup_mount_point_base = /backup_mount

backup_share = 10.12.28.8:/home/backup

 

然后手工启动 cinder-backup 服务。

/usr/bin/python /usr/local/bin/cinder-backup --config-file /etc/cinder/cinder.conf

 

backup 操作的流程如下:

1、向 cinder-api 发送 backup 请求

2、cinder-api 发送消息

3、cinder-backup 执行 backup 操作

 

详细分析:

1、向 cinder-api 发送 backup 请求

客户(可以是 OpenStack 最终用户,也可以是其他程序)向 cinder-api 发送请求:“请 backup 指定的 volume。

” 这里将 backup volume “vol-1”,目前 backup 只能在 CLI 中执行。

cinder backup-create vol-1 --force

这里因为 vol-1 已经 attach 到 instance,需要使用 --force 选项。

cinder-api 接收到 backup volume 的请求。

 

 

2、cinder-api 发送消息

cinder-api 发送 backup 消息。

cinder-api 没有打印发送消息的日志,只能通过源代码查看 /opt/stack/cinder/cinder/backup/api.py,方法为 create。

 

 

3、cinder-backup 执行 backup 操作

cinder-backup 收到消息后,通过如下步骤完成 backup 操作。

  • 启动 backup 操作,mount NFS。
  • 创建 volume 的临时快照。
  • 创建存放 backup 的 container 目录。
  • 对临时快照数据进行压缩,并保存到 container 目录。
  • 创建并保存 sha256(加密)文件和 metadata 文件。
  • 删除临时快照。

 

Backup 完成后,查看一下 container 目录的内容,里面有三个文件:

  • *-00001,压缩后的 backup 文件。
  • *_metadata,metadata 文件。
  • *_sha256file,加密文件。

 

可以通过 cinder backup-list 查看当前存在的 backup。

 

另外查看一下 cinder backup-create 的用法。

 

 

这里有 --incremental 选项,表示可以执行增量备份。

如果之前做过普通(全量)备份,之后可以通过增量备份大大减少需要备份的数据量,是个很不错的功能。

 

------------------------------------------------引用来自---------------------------------------------------

https://www.cnblogs.com/CloudMan6/p/5662236.html

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587722&idx=1&sn=7a4fcd874d6276b8d43db3e8a4fea672&chksm=8d308113ba470805993c55fbaa03a66581f7c78af260add26b7097c6a7725a7104c7c7a07300&scene=21#wechat_redirect

转载于:https://www.cnblogs.com/gsophy/p/11078259.html

### 关于OpenStack Cinder备份服务文档和故障排除 #### Cinder Backup Service概述 Cinder作为OpenStack的一部分,提供了块存储管理功能。为了保护数据免受意外丢失的影响,Cinder支持创建卷快照以及将这些快照备份到外部位置的功能[^2]。 #### 配置Backup Backend 要配置Cinder的备份后端,在`cinder.conf`文件中定义相应的参数是非常重要的。通常这涉及到指定用于存储备份的目标系统(如Swift或其他兼容的对象存储解决方案),并设置必要的认证信息以便访问该目标系统。例如: ```ini [DEFAULT] backup_driver = cinder.backup.drivers.swift swift_container = backups swift_object_size = 52428800 swift_retry_attempts = 10 swift_retry_backoff = 20 ``` 上述配置片段展示了如何指向一个名为backups的容器来保存所有的备份副本,并设置了每次上传对象的最大尺寸以及其他重试策略的相关选项。 #### 创建与恢复备份 通过命令行工具可以轻松地执行创建新备份或将现有备份还原的操作。下面是一些常用的CLI指令示例: - **创建一个新的备份** ```bash openstack volume backup create --name my_backup <volume_id> ``` - **查看当前可用的备份列表** ```bash openstack volume backup list ``` - **从特定ID的备份中恢复数据** ```bash openstack volume backup restore <backup_id> <destination_volume_id> ``` 以上命令允许管理员高效管理和操作云环境中各个磁盘卷上的重要资料。 #### 故障排查技巧 当遇到问题时,检查日志是最基本也是最有效的方法之一。对于Cinder而言,默认情况下其日志会被记录在`/var/log/cinder/`目录下。如果发现任何异常情况,则应该仔细审查相关组件的日志文件以获取更多线索;另外也可以尝试提高调试级别从而获得更详细的输出帮助定位错误根源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值