首页 » OpenStack系统架构设计实战 » OpenStack系统架构设计实战全文在线阅读

《OpenStack系统架构设计实战》3.5 cinder-backup

关灯直达底部

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备份流程