備份恢復塊存儲和以前作的測試同樣,先將塊存儲狀態以快照的形式備份下來,而後將快照存儲到某個池中獨立存儲或導出鏡像存儲到某個存儲設備或空間中儲存,爲了安全仍是設置保護比較穩妥,
一備份與恢復
建立RBD池
ceph osd pool create RDB_Store_pool 64 64
ceph osd pool create RDB_Backup_pool 64 64
ceph osd lspools
建立塊存儲鏡像並映射掛載
建立塊存儲鏡像
rbd create -p RDB_Store_pool rbd-store-demo.img --image-feature layering --size 10G
rbd info RDB_Store_pool/rbd-store-demo.img
映射塊存儲並掛載
rbd map RDB_Store_pool/rbd-store-demo.img
客戶端掛載塊存儲
格式化塊存儲
mkfs.ext4 /dev/rbd1
掛載塊存儲
mkdir /store
mount /dev/rbd1 /store/
複製文件到塊存儲中
建立塊存儲快照
rbd snap create RDB_Store_pool/rbd-store-demo.img@store-test1
給快照添加保護
rbd snap protect RDB_Store_pool/rbd-store-demo.img@store-test1
將快照存儲到其餘池中
導入到其餘池中建議將父子關係剔除,這樣不會由於父鏡像刪除子鏡像不能使用
將快照存入其餘池內
rbd clone RDB_Store_pool/rbd-store-demo.img@store-test1 RDB_Backup_pool/RSP-SD-ST1.img
查看快照的父鏡像
rbd info RDB_Backup_pool/RSP-SD-ST1.img
刪除父鏡像關係
刪除父鏡像關係這一步驟是針對將快照鏡像存放到池中所設置的,避免因爲溝通不及時或手欠誤刪而致使刪除刪除父鏡像關係子鏡像不可用的結果
rbd flatten RDB_Backup_pool/RSP-SD-ST1.img
或者將塊存儲鏡像快照導出存到其餘存儲空間
rbd export RDB_Store_pool/rbd-store-demo.img@store-test1 /backup/store-test1-202092701.img
恢復1
模擬刪除文件
導入鏡像
rbd import store-test1-202092701.img RDB_Test_pool1/202092701-restore.img
掛載鏡像
掛載映射鏡像,恢復資料
rbd map RDB_Test_pool1/202092701-restore.img
恢復2
模擬刪除文件
使用快照恢復
rbd snap rollback RDB_Store_pool/rbd-store-demo.img@store-test1
安全
二增量備份與恢復
往塊存儲添加新內容
針對添加的新內容建立新快照
rbd snap create RDB_Store_pool/rbd-store-demo.img@store-test2
導出新的快照
能夠看出來第二鏡像和第一個鏡像沒太多差異,增量備份比較節省磁盤空間
rbd export-diff RDB_Store_pool/rbd-store-demo.img@store-test2 /backup/store-test1-202092902.img
導入新鏡像
rbd import /backup/store-test2-202092702.img RDB_Test_pool1/202092702-restore.img
恢復
以前演示過恢復過程,接下來演示下其餘恢復方式
模擬刪除文件
恢復
導入第一個鏡像,注意rbd-store-test.img鏡像是隨機創建的
rbd import /backup/store-test1-202092901.img RDB_Store_pool/rbd-store-test.img
導入第二鏡像 第一個鏡像的差別部分
rbd import-diff /backup/store-test1-202092902.img RDB_Store_pool/rbd-store-test.img
掛載鏡像
ide