ceph 快照,克隆


轉載 https://my.oschina.net/wangzilong/blog/1595081

ceph 快照,克隆

ceph是一個非常好的后端存儲系統。其中包括最常用的塊存儲,對象存儲,文件系統。下面我們就說說用的最多的塊存儲。
塊存儲的原理和機制大家都了解,但是快存儲也是支持快照和克隆的。

1、快照

ceph的快照是把源鏡像做一個只讀副本,以后用於恢復。

[root@ceph-admin ceph]# rbd ls test_pool7
testRBD
test_rbd7
test_rbd_clone7
[root@ceph-admin ceph]# rbd info test_pool7/testRBD
rbd image 'testRBD':
	size 1024 MB in 256 objects
	order 22 (4096 kB objects)
	block_name_prefix: rbd_data.e3bcda74b0dc51
	format: 2
	features: layering
	flags: 

2、克隆 

這里主要講的是可以基於快照鏡像克隆,克隆所采用的也就是cow,叫做copy on write 俗話也叫做“寫時復制”,更貼切一點叫做“寫時再復制”。這里的克隆就是基於快照創建的克隆只創建了映射到源(這里的源也就是快照)的邏輯,還沒有給克隆分配真實的物理空間。這一點相信大家都理解。雖然快照是只讀的,但是基於快照創建的克隆是可讀可寫的。當我們對克隆的鏡像執行寫操作的時候,系統才會真正的給克隆的鏡像分配物理空間。克隆的鏡像或者被寫過的克隆鏡像都是可以正常使用的和鏡像本身是一樣的。這就是所謂的cow。當對克隆的鏡像沒有寫而是讀的時候,那么讀取的是要被克隆的快照,明白了上面的道理所以我們知道從快照克隆的鏡像是依賴於快照的,一旦快照被刪除則這個克隆鏡像也就毀了,所以我們要保護好這個快照。

#創建快照
[root@ceph-admin ceph]# rbd snap create test_pool7/testRBD@testRBD-snap---也就是testRBD鏡像的副本
#查看快照
[root@ceph-admin ceph]# rbd snap list test_pool7/testRBD
SNAPID NAME            SIZE 
     7 testRBD-snap 1024 MB 
#創建快照的克隆
[root@ceph-admin ceph]# rbd clone test_pool7/testRBD@testRBD-snap test_pool7/testRBD-snap-clone----對快照進行克隆
2017-12-26 14:05:48.941845 7fe1f4082d80 -1 librbd: parent snapshot must be protected
rbd: clone error: (22) Invalid argument
# 上面報錯了,告訴你快照創建克隆之前需要被保護-------這個錯誤提醒的很對,要不提醒的

# 保護快照
[root@ceph-admin ceph]# rbd snap protect test_pool7/testRBD@testRBD-snap-----對快照進行保護
# 創建克隆
[root@ceph-admin ceph]# rbd clone test_pool7/testRBD@testRBD-snap test_pool7/testRBD-snap-clone-----再對快照進行克隆
#查看克隆
[root@ceph-admin ceph]# rbd ls test_pool7|grep clone|grep RBD
testRBD-snap-clone
#查看克隆的詳細信息
[root@ceph-admin ceph]# rbd info test_pool7/testRBD-snap-clone
rbd image 'testRBD-snap-clone':
	size 1024 MB in 256 objects
	order 22 (4096 kB objects)
	block_name_prefix: rbd_data.e3f94a2ae8944a
	format: 2
	features: layering
	flags: 
	parent: test_pool7/testRBD@testRBD-snap
	overlap: 1024 MB	

我們可以看到克隆成功的鏡像是依賴於快照的,能看到 parent,overlap

如果不想被依賴於快照,需要對克隆和快照做一個合並

[root@ceph-admin ceph]# rbd flatten test_pool7/testRBD-snap-clone---對克隆進行合並
Image flatten: 100% complete...done.
[root@ceph-admin ceph]# rbd info test_pool7/testRBD-snap-clone
rbd image 'testRBD-snap-clone':
	size 1024 MB in 256 objects
	order 22 (4096 kB objects)
	block_name_prefix: rbd_data.e3f94a2ae8944a
	format: 2
	features: layering
	flags:	

現在克隆的鏡像已經不依賴於快照了,看不見parent和overlap
現在我們刪除快照是可以的

# 解除快照保護
[root@ceph-admin ceph]# rbd snap unprotect test_pool7/testRBD@testRBD-snap
#刪除快照
[root@ceph-admin ceph]# rbd snap rm test_pool7/testRBD@testRBD-snap
	

 

  

  


免責聲明!

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



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