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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM