Ceph支持一個非常好的特性,以COW(寫時復制)的方式從RBD快照創建克隆,在Ceph中被稱為快照分層。分層特性允許用戶創建多個CEPH RBD克隆實例。這些特性應用於OpenStack等雲平台中,使用快照形式保護ceph RBD 鏡像,快照是只讀的,但COW克隆是完全可以寫 ,可以多次來孵化實例,對雲平台來說是非常有用的。
Ceph RBD鏡像有format-1 和 format-2兩種類型,RBD支持這兩種類型,但是分層特性COW克隆特性只支持format-2鏡像,默認RBD創建的鏡像是format-1。(這個在克隆的時候特別重要)
先看看自己的Linux內核支不支持rbd塊設備
modprobe rbd
如果有錯誤信息說明內核不支持,那你就先去升級一下內核吧~
沒有則繼續!
在一個ceph集群中,我們可以創建rbd塊設備來進行使用。先看一下我的pool
我們這里新建了一個test的pool,以下的塊設備都是建立在test這個pool中。我們看到這個test的pool是0KB的。
1、首先先創建一個塊設備
通過rbd create (pool_name)/(rbd_name) --size xxxxxMB就可以創建一個塊設備了,這里有兩個知識點。
一個是斜杠 / 前面的是這個塊設備建立在的pool的名字,后面是這個塊設備的名字(自己定義的),我們在test這個pool上建立了一個叫myrbd1的塊設備,如果沒有斜杠 / 則默認建立在rbd這個pool上(重要!!!!)
還有一個是這個size的大小,這個大小可以超過你實際pool的大小,這個叫做瘦分配,也叫超賣和按需分配。創建塊之后可以通過指令rbd resize test/myrbd1 --size 51200 --allow-shrink來動態的更改。如下
2、映射改塊設備到你的機器
rbd map test/myrbd1
得到塊設備的映射/dev/rbd1
這個時候你就可以像操作機器上的 塊設備一樣操作該設備了。
3.掛載並且使用
如上,寫入文件系統以后就可以掛載到目錄上去啦!
然后我們 寫點東西進去試試
看到了嗎,我寫了100M的文件進目錄,ceph的test這個pool相應的使用了100M的數據,也就是對/root/test/目錄的操作將會直接寫到ceph集群的test這個pool中,然后寫到ceph的osd上。
4.創建快照
rbd snap create --snap mysnap test/myrbd1
如上創建了一個myrbd1的 快照,快照的名字叫做mysnap,接下來我們試試快照的回滾功能。
5.回滾
上一步我們創建了一個100M的空文件
我們先刪除該文件然后卸載塊, 然后進行回滾。
重新掛載/dev/rbd1然后發現!!file這個文件又出來啦~~
6.模板與克隆
先看看該塊設備支不支持創建快照模板
image-format 必須為2
創建改塊設備也可以這樣設置
rbd create test/myrbd3 --size 102400 --image-format 2
把該塊做成模板,首先要把做成模板的快照做成protect(重要!!!)
rbd snap protect test/myrbd1@mysnap
(通過rbd snap unprotect test/myrbd1@mysnap可以去掉這個保護,但是這樣的話就 不能克隆了)
然后可以利用這個快照來當模板來克隆了,我們克隆一個叫myrbd2的塊 出來試試
先umount myrbd1這個塊。
umount /dev/rbd1
然后克隆一個在test的pool的myrbd2的塊。
rbd clone test/myrbd1@mysnap test/myrbd2
如上看到test這個池上有兩個塊設備了,一個是原來的myrbd1,一個是通過myrbd的鏡像模板克隆出來的myrbd2。
接下來我們看看這個myrbd2看看和myrbd1有什么不一樣。
先映射myrbd2
rbd map test/myrbd2
因為 是克隆myrbd1的,myrbd1上本來就有文件系統,所以myrbd2上也有文件系統,直接掛載就好了
看到了嗎!!!!myrbd2的內容上也是和myrbd1是相同的!!!(因為是克隆來的嘛)
看一下myrbd2信息
這個時候的myrbd2還是依賴myrbd1的鏡像mysnap的,如果myrbd1的mysnap被刪除或者怎么樣,myrbd2也不能夠使用了,要想獨立出去,就必須將父鏡像的信息合並flattern到子鏡像中,
這樣myrbd2就獨立於myrbd1了
可以通過如下方法刪除鏡像模板了
這個時候就已經刪除鏡像模板了。
————————————————
版權聲明:本文為博主「何泰展」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_42551719/article/details/81386909
謝謝博主的分享