ceph 快照,轉殖

2022-06-26 08:54:07 字數 2933 閱讀 5916

ceph是乙個非常好的後端儲存系統。其中包括最常用的塊儲存,物件儲存,檔案系統。下面我們就說說用的最多的塊儲存。

塊儲存的原理和機制大家都了解,但是快儲存也是支援快照和轉殖的。

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:

這裡主要講的是可以基於快照映象轉殖,轉殖所採用的也就是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

建立快照 轉殖虛擬機器

第二章 1.虛擬機器快照功能 1 關機後才能製作快照 關機命令 shutdown h now init 0 重啟命令 reboot init 6 恢復快照 快照管理器 2.虛擬機器轉殖功能 轉殖分兩種狀態 1 當前狀態 虛擬機器當前是什麼樣的,轉殖後就是一樣的配置內容,沒有任何區別。不會更改系統配置...

ceph官網的ceph塊裝置 二) 快照相關

一 快照基礎命令 1.建立快照 rbd snap create yhcpool yhctest yhctestsnap 2.查詢rbd映象 rbd snap ls yhcpool yhctest snapid name size 4 yhctestsnap 512 mb 3.快照回滾 命令 rbd ...

管理ceph的pool 快照,回滾

pool是ceph儲存資料時的邏輯分割槽,它起到namespace的作用。其他分布式儲存系統,比如mogilefs couchbase swift都有pool的概念,只是叫法不同。每個pool包含一定數量的pg,pg裡的物件被對映到不同的osd上,因此pool是分布到整個集群的。pool有兩種方法增...