讀古今文學網 > OpenStack系統架構設計實戰 > 3.5 cinder-backup >

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