RBD介紹


一、RBD回收

# 1、創建一塊盤
[root@node1 ~]# rbd create ceph-demo/ceph-trash.img --size 1G

# 2、info
[root@node1 ~]# rbd info ceph-demo/ceph-trash.img       
rbd image 'ceph-trash.img':
        size 1 GiB in 256 objects
        order 22 (4 MiB objects)
        snapshot_count: 0
        id: 283b35df6c430
        block_name_prefix: rbd_data.283b35df6c430
        format: 2
        features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
        op_features: 
        flags: 
        create_timestamp: Mon Jan 25 17:46:29 2021
        access_timestamp: Mon Jan 25 17:46:29 2021
        modify_timestamp: Mon Jan 25 17:46:29 2021
        
# 3、刪除(如果這樣刪,直接就沒了)
[root@node1 ~]# rbd rm ceph-demo/ceph-trash.img     
Removing image: 100% complete...done.

# 4、回收站查看,也是沒有的
[root@node1 ~]# rbd -p  ceph-demo trash ls

# 5、再次創建,然后通過回收站的形式刪除
[root@node1 ~]# rbd create ceph-demo/ceph-trash.img --size 1G
--expires-at  指定過期時間
[root@node1 ~]# rbd trash  move ceph-demo/ceph-trash.img --expires-at 20201126

# 6、查看
[root@node1 ~]# rbd -p  ceph-demo trash ls
2cff636e77644(回收就通過這個id回收) ceph-trash.img

# 7、回收操作
[root@node1 ~]# rbd trash restore -p ceph-demo 2cff636e77644
[root@node1 ~]# rbd -p  ceph-demo trash ls                  
[root@node1 ~]# rbd -p  ceph-demo ls  # 恢復
ceph-trash.img
rbd-demo.img

二、RBD快照

也是一種備份的形式

[root@node1 ~]# rbd create ceph-demo/rbd-test.img --image-feature layering --size 1G

[root@node1 ~]# rbd info  ceph-demo/rbd-test.img
rbd image 'rbd-test.img':
        size 1 GiB in 256 objects
        order 22 (4 MiB objects)
        snapshot_count: 0
        id: 2d00bff5c0ac4
        block_name_prefix: rbd_data.2d00bff5c0ac4
        format: 2
        features: layering
        op_features: 
        flags: 
        create_timestamp: Mon Jan 25 18:14:45 2021
        access_timestamp: Mon Jan 25 18:14:45 2021
        modify_timestamp: Mon Jan 25 18:14:45 2021
        
# 3、映射到本地文件系統,然后掛載起來
[root@node1 ~]# rbd device map  ceph-demo/rbd-test.img   
/dev/rbd0
[root@node1 ~]# mkfs.ext4  /dev/rbd0
[root@node1 ~]# mkdir /mnt/test1
[root@node1 ~]# mount /dev/rbd0 /mnt/test1

# 4、進到這里問價夾,創建一些文件,然后打快照,刪除原來的,再恢復
[root@node1 ~]# cd /mnt/test1; echo 111 > test

# 5、打快照
[root@node1 ~]# rbd snap create ceph-demo/rbd-test.img@snap_2021125
[root@node1 ~]# rbd snap ls ceph-demo/rbd-test.img    
SNAPID   NAME         SIZE        PROTECTED TIMESTAMP                
   4     snap_2021125 1 GiB     Mon Jan 25 19:03:38 2021
   
# 6、誤刪數據、然后恢復數據(恢復之前的快照)
[root@node1 test1]# rm -rf test # 模擬刪除
[root@node1 test1]# rbd snap rollback ceph-demo/rbd-test.img@snap_2021125   # 回滾
Rolling back to snapshot: 100% complete...done.

# 7、查看文件是否恢復(顯然沒有,因為文件回滾的時候是離線的)。得卸載這個盤,再掛載才有
[root@node1 test1]# ll
[root@node1 ~]# umount /mnt/test1/
[root@node1 ~]# mount /dev/rbd0  /mnt/test1/ 

# 8、克隆快照、父子關系解除

三、RBD備份與恢復

# 1、查看現在有的快照
[root@node1 ~]# rbd snap ls ceph-demo/rbd-test.img    
SNAPID   NAME         SIZE        PROTECTED TIMESTAMP                
   4     snap_2021125 1 GiB     Mon Jan 25 19:03:38 2021
   
# 2、導出快照、備份快照
[root@node1 ~]# rbd export ceph-demo/rbd-test.img@snap_2021125  /app/rbd-test.img
Exporting image: 100% complete...done.

# 3、導入快照、恢復快照
[root@node1 ~]# rbd import /app/rbd-test.img ceph-demo/rbd-test-new.img
Importing image: 100% complete...done.

四、RBD增量備份與增量恢復

[root@node1 ~]# rbd export-diff ceph-demo/rbd-test.img@snap_2021125  /app/rbd-test1.img                     
Exporting image: 100% complete...done.
[root@node1 ~]# ll -h /app/rbd-test1.img 
-rw-r--r-- 1 root root 5.8M Jan 25 19:54 /app/rbd-test1.img

[root@node1 ~]# rbd import-diff /app/rbd-test1.img ceph-demo/rbd-test-new.img  

# 3、查看文件是否恢復(顯然沒有,因為文件回滾的時候是離線的)。得卸載這個盤,再掛載才有
[root@node1 test1]# ll
[root@node1 ~]# umount /mnt/test1/
[root@node1 ~]# mount /dev/rbd0  /mnt/test1/ 

{{uploading-image-857883.png(uploading...)}}


免責聲明!

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



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