cinder-backup服务用于将Cinder-卷备份到其他存储系统上去,目前支持的有以Ceph、Swift和IBM TSM(Tivoli Storage Manager)为后端存储的备份存储系统,其中默认的是采用Swift备份的存储系统。
1.RPC调用的备份API
cinder/backup/rpcapi.py文件提供了所有客户端的卷备份服务相关的请求,给RPC调用的BackupAPI接口。rpcapi.py主要实现了3个方法。
1)create_backup:远程调用实现卷的备份的建立(对应api.py中的创建方法)。
2)restore_backup:远程调用实现恢复备份(对应api.py中的恢复方法)。
3)delete_backup:远程调用实现删除卷的备份(对应api.py中的删除方法)。
2.卷备份管理的API
cinder/backup/api.py处理所有与卷备份服务相关的请求卷备份管理的接口API,主要定义了卷备份相关的3个操作的API。
1)create:实现卷的备份的建立。
2)delete:实现删除卷的备份。
3)restore:实现恢复备份。
这3个操作都需要通过backup_rpcapi定义的RPC框架类的远程调用来实现。
3.后端备份存储系统的驱动类
cinder/backup/driver.py文件是所有备份驱动类的基类,cinder/backup/drivers/目录中就存放以下3类后端存储备份的驱动。
(1)cinder/backup/drivers/ceph.py
是Ceph备份服务的驱动,class CephBackupDriver(BackupDriver)是Ceph对象存储的Cinder卷备份类,这个类确认备份Cinder卷到Ceph对象存储系统。
(2)cinder/backup/drivers/swift.py
用Swift作为后端的备份服务的驱动,class SwiftBackupDriver(BackupDriver)是用Swift作为后端的备份服务的各种管理操作的实现类。
(3)/cinder/backup/drivers/tsm.py
IBM Tivoli存储管理(TSM)的备份驱动类,class TSMBackupDriver(BackupDriver)实现了针对TSM驱动的卷备份的备份、恢复和删除等操作。
Cinder备份流程如图3-4所示。
图3-4 Cinder备份流程