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