Cinder Backup备份

cinder 备份提供了三种驱动服务: Ceph,TSM,Swift 其中默认备份驱动服务为swift

cinder 驱动服务的配置在cinder.conf文件中

backup_driver=cinder.backup.drivers.swift

Ceph的配置

backup_driver = cinder.backup.drivers.ceph

backup_ceph_conf=/etc/ceph/ceph.conf
backup_ceph_user = cinder
backup_ceph_chunk_size = 134217728
backup_ceph_pool = backups
backup_ceph_stripe_unit = 0
backup_ceph_stripe_count = 0

配置 Nova 来挂载 Ceph RBD 块设备

为了挂载 Cinder 块设备(块设备或者启动卷),必须告诉 Nova 挂载设备时使用的用户和 uuid 。libvirt会使用该用户来和 Ceph 集群进行连接和认证。

rbd_user = cinder
rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337

完整版Ceph的配置:
backup_driver = cinder.backup.drivers.ceph
backup_ceph_conf=/etc/ceph/ceph.conf
backup_ceph_user = cinder
backup_ceph_chunk_size = 134217728
backup_ceph_pool = backups
backup_ceph_stripe_unit = 0
backup_ceph_stripe_count = 0
rbd_user = cinder
rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337

TSM的配置
backup_driver = cinder.backup.drivers.tsm

backup_tsm_compression = True     (BoolOpt) 启用或禁用压缩备份
backup_tsm_password = password     (StrOpt)  运行TSM用户的密码(节点密码)
backup_tsm_volume_prefix = backup     (StrOpt) 当备份到TSM时备份标识id的卷前缀

Swift的配置

backup_driver = cinder.backup.drivers.swift

backup_swift_url = http://localhost:8080/v1/AUTH
backup_swift_auth = per_user
backup_swift_user = <None>
backup_swift_key = <None>
backup_swift_container = volumebackups
backup_swift_object_size = 52428800
backup_swift_retry_attempts = 3
backup_swift_retry_backoff = 2
backup_compression_algorithm = zlib

代码分析

backup(/cinder/backup/)
  /cinder/backup/__init__.py:指定并导入cinder-backup的API类;
  /cinder/backup/api.py:处理所有与卷备份服务相关的请求;

class API(base.Base):卷备份管理的接口API,主要定义了卷的备份相关的三个操作的API:
    create:实现卷的备份的建立;
    delete:实现删除卷的备份;
    restore:实现恢复备份;
这三个操作都需要通过backup_rpcapi定义的RPC框架类的远程调用来实现;

/cinder/backup/driver.py:所有备份驱动类的基类;

class BackupDriver(base.Base):所有备份驱动类的基类;

/cinder/backup/manager.py:卷备份的管理操作的实现;

class BackupManager(manager.SchedulerDependentManager):块存储设备的备份管理;继承自类 SchedulerDependentManager;
主要实现的是三个远程调用的方法:
   create_backup:实现卷的备份的建立(对应api.py中的creat方法);
   restore_backup:实现恢复备份(对应api.py中的restore方法);
   delete_backup:实现删除卷的备份(对应api.py中的delete方法);

/cinder/backup/drivers/ceph.py:ceph备份服务实现;
   class CephBackupDriver(BackupDriver):Ceph对象存储的Cinder卷备份类;这个类确认备份Cinder卷到Ceph对象存储系统;

/cinder/backup/drivers/swift.py:用swift作为后端的备份服务的实现;
   class SwiftBackupDriver(BackupDriver):用swift作为后端的备份服务的各种管理操作实现类;

/cinder/backup/drivers/tsm.py:IBM Tivoli存储管理(TSM)的备份驱动类;
   class TSMBackupDriver(BackupDriver):实现了针对TSM驱动的卷备份的备份、恢复和删除等操作;

具体操作

创建卷
cinder create --display-name volume1 1
备份卷
cinder backup-create --container volumes_backup --display-name backuptoswift volume1
恢复卷
cinder backup-restore --volume-id cb0fe233-f9b6-4303-8a61-c31c863ef7ce volume1
删除卷
cinder backup-delete 1b9237a4-b384-4c8e-ad05-2e2dfd0c698c

具体可参见:
Ceph BLOCK DEVICES AND OPENSTACK

时间: 2024-12-20 08:47:29

Cinder Backup备份的相关文章

cinder backup ceph的配置和使用

Backup 是将 volume 备份到别的地方(备份设备),将来可以通过 restore 操作恢复. 初看 backup 功能好像与 snapshot 很相似,都可以保存 volume 的当前状态,以备以后恢复.但二者在用途和实现上还是有区别的,具体表现在: Snapshot 依赖于源 volume,不能独立存在:而 backup 不依赖源 volume,即便源 volume 不存在了,也可以 restore. Snapshot 与源 volume 通常存放在一起,都由同一个 volume p

利用Azure backup备份和恢复Azure虚拟机(1)

中国区Azure最近发布了关于使用Azure Backup来备份VM服务,于3月1日正式上线,该功能对于需要对关键工作负载进行备份的用户来讲,极大的降低了操作复杂度.以前我们所使用Powershell来做的Azure虚拟机备份功能,不仅存在诸多限制,而且本身只是存储的快照,而不是虚拟机的. Azure backup的虚拟机备份服务使用的是Windows的数据卷影子复制服务(Volume Shadow Copy Service)能够使得在虚拟机不关机的情况下,对虚拟机进行快照,然后通过备份服务将快

使用Microsoft Azure Backup备份Hyper-V数据

在之前的文章中讲到了微软的云计算备份解决方案-Microsoft Azure Backup,通过技术可以备份Azure中的VM以及企业内部的Hyper-V.关于Microsoft Azure Backup可参见之前写的文章<Microsoft Azure Backup介绍>: http://ericxuting.blog.51cto.com/8995534/1641104 今天主要为大家带来如何通过Azure Backup备份企业内部Hyper-V数据.(PS:本文档基于国际版Azure,由世

使用Windows Server Backup备份与还原Hyper-V虚拟机

Windows Server Backup 是Windows Server内置的一种功能,使用 Windows Server Backup 可以备份整个服务器(所有卷).选定卷.系统状态或特定的文件或文件夹,并且可以创建用于裸机恢复的备份.可以恢复卷.文件夹.文件.某些应用程序和系统状态.此外,在发生诸如硬盘故障之类的灾难时,可以执行裸机恢复.(为此,你将需要备份整个服务器或只备份包含操作系统文件的卷以及 Windows 恢复环境,这会将完整的系统还原到旧系统中或新的硬盘上.)可以使用 Wind

删除windows server backup备份副本

大家好,今天分享下在实际过程中遇到的一个问题,分享给大家,希望能够对大家有帮助 由于工作需要,在一台服务器上使用Windows server backup 程序对一个应用程序的文件夹做了周期性的备份,经过一段时间后发现磁盘满了, 但是单击文件夹属性,显示的是50多个G,如图: 但是,整个磁盘块满,打开显示影藏文件等,都找不打是哪里占了空间,后来打开Windows server backup程序,发现有61个副本,但是这个程序没有提供删除的入口,然后就开始想办法,在网上找资料也有问题,如图: 后来

python实例:backup 备份

本文来源于<python简明教程>中的实例 1. 提出问题: 我想要一个可以为我的所有重要文件创建备份的程序.2. 分析明确问题:我们如何确定该备份哪些文件?备份保存在哪里?我们怎么样存储备份?3. 设计程序列表: 1). 需要备份的文件和目录由一个列表指定. 2). 备份应该保存在主备份目录中. 3). 文件备份成一个zip文件. 4). zip存档的名称是当前的日期和时间. 4. 编写代码: # Filename: backup_ver1.py import os import time

坎坷的Windows Server Backup备份之路01

今天是坎坷的一天,为什么会这样子了,因为在用Windows Server Backup做系统状态备份的时候,出现了失败的情况:前段时间给一个朋友做了一个计划任务做系统状态备份,今天发现出现错误了,如下图所示,全部失败了,WHY? 查看状态,显示拒绝访问 通过这个报错,给我的第一想法是共享目录没有写权限造成的,如果我查看了对应的共享目录,果然administrator没有写权限,很怪,于是手动加上了写的权限,本以为没有问题了,可是... 如是下查日志发现错误代码2155347997,于是googl

Azure恢复服务-使用Windows Backup备份到云端

通过Microsoft Azure的恢复服务,我们可以把我们本地数据中心到数据通过Windows Backup者DPM备份到Azure云端进行保护.而Azure廉价按需计费到存储也能大大节省我们的存储投入的费用.Azure Backup通过 Microsoft Azure 备份代理来备份和还原文件和文件夹的基本工作流与使用任何其他类型的备份工作流相同:标识要备份的项,然后将这些项复制到存储中,供以后需要时使用. 下面的示例将介绍使用Windows Backup来备份文件到Azure. 首先登陆到

使用Cobian Backup 备份时出错“无法创建目的地目录”

情况描述如下: A服务器想要把文件备份到另B服务器,B服务器文件夹开启了everyone可读写的共享都不行,一直报错,琢磨可能是Cobian Backup不支持目的地路径是网络路径吧 换个思路,那就在B服务器上运行Cobian Backup,这样源路径就是网络路径,备份路径就是B服务器的本地路径,测试备份正常,问题解决