簡介:快照
快照是一個鏡像在某一個特定時間點的隻讀拷貝。其中Ceph塊裝置的進階功能是能夠建立快照保留鏡像的曆史狀态。Ceph支援快照分層,允許快速克隆鏡像。 Ceph還支援使用RDB和如KVM,libvirt等建立快照。當做快照時需要停止I/O。如果鏡像包含檔案系統,檔案系統必須在做快照前保持一緻性。
本文檔主要從以下幾個方面進行測試:
1:快照、建立、查詢、删除、清理;
2:快照clone、增量快照、保護快照;
3:image導入、導出;
4:利用ceph存儲快照功能,做資料備份、資料恢複;
5:image 空間resize(xfs、ext4檔案系統);
6:pool快照建立、pool copy、pool快照檢視、删除;
文檔内容初步整理,後續将不斷完善,内容有誤的地方歡迎留言指正,我會及時更新修正。
##############測試目的#############
1:image快照如何建立、删除、查詢;
2:快照復原、資料恢複;
#############步驟1~15##############
1:建立一個pool
[root@node241 ~]# ceph osd pool create mypool 24
pool 'mypool' created
2:要建立一個新的RBD鏡像為10GB
rbd -p mypool create myimage --size 10240
或者:
rbd create mypool/myimage --size 10240
3:再建立一個鏡像、做快照導入測試使用
rbd create mypool/myimage1 --size 10240
4:檢視鏡像
[root@node242 ~]# rbd --pool mypool ls
myimage
myimage1
5:映射鏡像 myimage
[root@node242 ~]# rbd map mypool/myimage
/dev/rbd0
6:格式化
mkfs.xfs /dev/rbd0
7:建立挂載點、挂載磁盤
mkdir /myimage
mount /dev/rbd0 /myimage/
8:映射鏡像 myimage1
[root@node242 ~]# rbd map mypool/myimage1
/dev/rbd1
9:格式化
mkfs.xfs /dev/rbd1
10:建立挂載點、挂載磁盤
mkdir /myimage1
mount /dev/rbd1 /myimage1/
11:驗證檢視挂載分區
[root@node242 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
。。。。。。。。。。。。。。。
/dev/rbd0 xfs 10G 33M 10G 1% /myimage
/dev/rbd1 xfs 10G 33M 10G 1% /myimage1
[root@node242 ~]#
12:myimage目錄建立測試檔案
touch /myimage/{1..10}myimage.data.txt
檢視資料生成
ll /myimage
total 0
-rw-r--r-- 1 root root 0 Oct 9 12:24 10myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 1myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 2myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 3myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 4myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 5myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 6myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 7myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 8myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 9myimage.data.txt
13:myimge建立一個快照:
[root@node242 ~]# rbd snap create mypool/myimage@myimagesnap
14:檢視快照資訊
[root@node242 ~]# rbd snap ls mypool/myimage
SNAPID NAME SIZE
2 myimagesnap 10240 MB
15:驗證資料復原
15.1:然後删除所有建立的檔案
[root@node242 ~]# rm -rf /myimage/*
[root@node242 ~]# ll /myimage
total 0
15.2:復原快照,
注意:復原快照就是将目前鏡像的資料用快照重新替換。復原的執行時間随着鏡像大小的增加而增加。克隆将會比復原快照更花時間。
使用RBD指令復原快照,指定snap rollback選項,指定池名稱,鏡像名稱和單元名稱。
[root@node242 ~]# rbd snap rollback mypool/myimage@myimagesnap
Rolling back to snapshot: 100% complete...done.
用于復原部分,你要注意復原意味着從快照中的資料覆寫目前版本,需要更長的時間與較大的鏡像。是以,克隆是可取的快速恢複。
注意: 鏡像快照復原意味着從快照覆寫原快照當時版本的鏡像資料。執行復原所花費的時間與鏡像的大小有關。快照克隆比快照復原恢複得更快,它是傳回到一個預先存在的狀态優選的方法。
15.3:解除安裝挂載目錄
[root@node242 ~]# umount /myimage
15.4:重新挂載
[root@node242 ~]# mount /dev/rbd0 /myimage
15.5:檢視資料,已經恢複
[root@node242 ~]# ll /myimage
total 0
-rw-r--r-- 1 root root 0 Oct 9 12:24 10myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 1myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 2myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 3myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 4myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 5myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 6myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 7myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 8myimage.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 9myimage.data.txt
##############測試目的#############
1:image導入、導出,資料備份恢複;
2:導出image資訊、導入到其它pool;
#############步驟16##############
16:###導出、導入鏡像
16.1: 把ceph pool中的一個鏡像導出
[root@node242 ~]# rbd export -p mypool --image myimage /tmp/exportmyimage.img
Exporting image: 100% complete...done
16.2:驗證檢視導出檔案
[root@node242 ~]# ll /tmp/exportmyimage.img
-rw-r--r-- 1 root root 10737418240 Oct 9 13:29 /tmp/exportmyimage.img
16.3:把一個鏡像導入ceph中
導入鏡像名,不能與現有pool中的image重名
[root@node242 ~]# rbd import /tmp/exportmyimage.img -p mypool --image myimage2
Importing image: 100% complete...done.
16.4:驗證檢視導入鏡像檔案
[root@node242 ~]# rbd -p mypool ls
myimage
myimage1
myimage2
16.7:映射導入挂載鏡像
[root@node242 ~]# rbd map mypool/myimage2
/dev/rbd2
16.8:挂載報錯
[root@node242 ~]# mount -t xfs /dev/rbd2 /myimage3
mount: wrong fs type, bad option, bad superblock on /dev/rbd2,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
16.9:排查發現新導入的鏡像的uuid和之前隻做image 的uuid 一樣,看來本機挂載需要修改硬碟的uuid 才行
[root@node242 ~]# blkid
。。。。。。。。。。。。。。。。。。。。
/dev/rbd0: UUID="517f2923-04eb-4168-ac0d-229a90e17534" TYPE="xfs" ????
/dev/rbd1: UUID="aea281df-22e6-4411-a98c-688de1b45500" TYPE="xfs"
/dev/rbd2: UUID="517f2923-04eb-4168-ac0d-229a90e17534" TYPE="xfs" ????
[root@node242 ~]#
16.10:換另外一台伺服器試一下
先檢視鏡像是否存在
[root@node245 ~]# rbd -p mypool ls
myimage
myimage1
myimage2
16.11:做鏡像映射
[root@node245 ~]# rbd map mypool/myimage2
/dev/rbd0
16.12:建立挂載目錄
[root@node245 ~]# mkdir /myimage2
16.13:挂載分區
[root@node245 ~]# mount /dev/rbd0 /myimage2/
16.14:驗證資料與到在源鏡像導出時資料一緻
[root@node245 ~]# ll /myimage2/
total 0
-rw-r--r--. 1 root root 0 Oct 9 00:24 10myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 1myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 2myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 3myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 4myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 5myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 6myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 7myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 8myimage.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 9myimage.data.txt
16.15:檢視uuid 與源id一緻
[root@node245 myimage2]# blkid
。。。。。。。。。。。。。。。。。
/dev/rbd0: UUID="517f2923-04eb-4168-ac0d-229a90e17534" TYPE="xfs"
16.16: 總結
導出的鏡像檔案導入叢集後生成的硬碟UUID和之前的源鏡像一緻,挂載磁盤使用不能挂載再同一台主機。
##############測試目的#############
1:檢視快照;
2:删除快照;
3:删除寫保護的快照;
4:清除所有快照;
#############步驟17~19##############
17:檢視快照
[root@node245 ~]# rbd snap ls mypool/myimage
SNAPID NAME SIZE
2 myimagesnap 10240 MB
18:要删除一個快照:
[root@node245 ~]# rbd snap rm mypool/myimage@myimagesnap
删除snap 删除snap報(rbd: snapshot 'snapshot-xxxx' is protected from removal.)寫保護 ,使用 rbd snap unprotect volumes/snapshot-xxx' 解鎖,然後再删除
注意: Ceph的OSDs删除資料不同步,是以删除快照的磁盤空間不會立即釋放。
19:清除快照
19.1:用RBD删除所有快照鏡像,指定snap purge選項和映像名稱。
rbd --pool {pool-name} snap purge {image-name}
19.2:檢視
[root@node243 t1image]# rbd snap ls mypool/myimage1
SNAPID NAME SIZE
3 myimage1snap 10240 MB
5 myimage1snap1 10240 MB
6 myimage1snap2 10240 MB
7 myimage1snap3 10240 MB
8 myimage1snap4 10240 MB
19.3:清除所有快照
[root@node243 t1image]# rbd snap purge mypool/myimage1
Removing all snapshots: 100% complete...done.
19.4:再次檢視所有快照已經被删除
[root@node243 t1image]# rbd snap ls mypool/myimage1
##############RBD -管理RADOS塊裝置(RBD)的鏡像,增量快照功能示範#############
##############測試目的###########
1:快照使用簡介;
1:快照相關參數詳解;
1:快照相關指令詳解;
#############步驟1~3#############
1:簡介
rbd [-c ceph.conf][-m monaddr][-p| -pool pool][-size size][-order bits][command...]
說明
rbd是一個實用程式,用于操縱rados塊裝置(RBD)的鏡像,QEMU/KVM就是使用的Linux rbd驅動和rbd存儲驅動。RBD鏡像是分在對象和存儲在RADOS對象存儲中的簡單的塊裝置。則散置對象鏡像的大小必須是2的幂。
選項
-c ceph.conf, -- conf ceph.conf
使用ceph.conf配置檔案,而不是預設的/etc/ceph/ceph.conf檔案在啟動過程中确定監控位址。
-m monaddress [:port]
連接配接到指定的監視位址上(而不是ceph.conf)。
-P pool, --pool pool
與池進行互動。大多數指令是必需的。
--no-progress
不輸出進度資訊(預設情況下,某些指令輸出标準錯誤)
2:參數
--image-format format
指定使用對象布局。預設值是1。
format 1 - 一個新的RBD鏡像使用原始的格式。所有版本的librbd和RBD核心子產品了解這種格式,但不支援新的功能,如克隆。
format 2- 使用的第二個的RBD格式,這是在這個時候由librbd(但不包括RBD核心子產品)支援。這增加了支援克隆和更容易擴充,讓更多的功能,在未來的。
--snap snap
指定快照名稱具體操作。
3:指令
clone [ parent-snapname ] [ image-name ]
将會建立一個父類快照的克隆(子類的副本) 。對象指令将會與父類鏡像相同,除非指定。否則 大小将會與父類快照相同。
父類快照必須要被保護 (參閱 rbd snap protect).。這需要format 2。
flatten [image-name]
如果鏡像是被克隆的,從父類快照福之所有共享的塊并且讓子類獨立于父類, 切斷子類與父類快照的連結。如果沒有依賴的克隆,父類快照能被不保護并且能被删除。這需要format 2。
children [image-name]
列出給定的快照中鏡像的克隆。這檢查了每個池,輸出池名/鏡像名的結果。
export [image-name] [dest-path]
導出至dest-path路徑的鏡像(在stdout中使用 )。
import [path] [dest-path]
建立一個新的鏡像,并導入其資料路徑(使用-for 标準輸出)。導入操作,如果可能的話,将嘗試建立稀少RBD鏡像。進口從标準輸入,稀少化單元目标鏡像資料塊大小(1 << order)。
export-diff [image-name] [dest-path] [-from-snap snapname]
導出增量差異的鏡像到dest的路徑(使用 - 在stdout中)。如果指定一個初始快照,因為該快照都包含唯一的改變,否則,任何地區的鏡像包含的資料。最終的快照被指定使用的标準 –snap或者 @snap 文法(見下文)。diff格式包括鏡像的中繼資料,鏡像大小的變化,并開始和結束的快照。它有效地代表丢棄或“零”的鏡像區域。
import-diff [src-path] [image-name]
導入增量差異的鏡像,并把它應用到目前的鏡像。如果diff産生相對于一開始快照,我們确認,快照已經存在,然後再繼續。如果有一個結束的快照,我們核實它不已經存在的應用更改之前,當我們完成建立快照。
diff [image-name] [-from-snap snapname]
轉儲位元組擴充的鏡像已經改變了,因為指定的起始快照或自建立映像的清單。每一條輸出線包括起始偏移量(以位元組為機關),該區域的長度(以位元組為機關),無論是“零”或“資料”,以表示該區域是否是已知的零或可以含有其它的資料。
snap ls [image-name]
轉儲快照清單,裡面有具體的鏡像。
snap create[image-name]
建立一個新的快照。需要指定快照名稱參數。
snap rollback[image-name]
復原快照鏡像内容。這将周遊的整個街區陣列和更新的資料頭内容的快照版本。
snap rm [ image-name]
删除指定的快照。
snap purge [image-name]
從鏡像中删除所有快照。
snap protect [image-name]
從删除保護的快照,使克隆可以用它制成的(見RBD克隆)。之前前克隆,快照,必須保護,保護意味着存在依賴克隆子類,是指本快照克隆RBD未受保護的快照将失敗。這需要格式2。
snap unprotect [image-name]
撤消删除的快照(撤消單元保護)。如果克隆的子類,捕捉撤消失敗。(注意克隆可能存在于不同的存儲池,比母公司快照。)這需要格式2。
##############測試目的###########
1:建立快照;
2:快照寫保護;
3:檢視快照詳細資訊;
#############步驟1~5#############
1:建立image,為後續測試做準備;
[root@node243 t1image]# rbd create mypool/myimage5 --image-format 2 --size 10240
2:為image建立快照
[root@node243 myimage5]# rbd snap create mypool/[email protected]
3:檢視快照資訊;
[root@node243 myimage5]# rbd snap ls mypool/myimage5
SNAPID NAME SIZE
18 myimage5.snap1 10240 MB
[root@node243 myimage5]#
4:設定快照保護
[root@node243 myimage5]# rbd snap protect mypool/[email protected]
注意: 您無法删除受保護的快照。
5:檢視快照詳細資訊,驗證保護狀态
[root@node243 ~]# rbd -p mypool info [email protected]
rbd image 'myimage5':
size 10240 MB in 2560 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.5ebe2ae8944a
format: 2
features: layering
flags:
protected: True #狀态
##############測試目的###########
1:快照克隆;
2:image資訊誇pool克隆,功能驗證;
3:clone資料驗證;
#############步驟6~12#############
要克隆一個快照,指定您需要指定父類池,鏡像和快照,子類池和鏡像名稱。你必須執行保護快照才可以克隆它。
6:将mypool/[email protected] 克隆到rbd 池 名字為 clone-myimage5
[root@node243 myimage5]# rbd clone mypool/[email protected] rbd/clone-myimage5
7:驗證鏡像檔案
[root@node243 myimage5]# rbd ls
foo
t1image
clone-myimage5
8:映射到一台主機
[root@node243 ~]# rbd map rbd/clone-myimage5
/dev/rbd2
9:建立挂載目錄、挂載克隆鏡像
[root@node243 ~]# mkdir /clone-myimage5
10:挂載報錯是因為,本機已經挂載源鏡像,被克隆的image 生成硬碟uuid 一樣導緻
[root@node243 ~]# mount /dev/rbd2 /clone-myimage5/
mount: wrong fs type, bad option, bad superblock on /dev/rbd2,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
/dev/sdb1: UUID="0b1a386a-e055-4b7a-8956-e13a638a4270" TYPE="xfs" PARTLABEL="ceph data" PARTUUID="bbb535a8-7c50-475b-9b7c-5def1790495f"
。。。。。。。。。。。。
/dev/rbd1: UUID="f47bd41d-85e7-4da7-b90a-b31259fb2225" TYPE="xfs"
/dev/rbd2: UUID="f47bd41d-85e7-4da7-b90a-b31259fb2225" TYPE="xfs"
[root@node243 ~]#
11:解除安裝源imagemap資訊,挂載clone生成image資訊,對比資料;
檢視源鏡像挂載後,存儲資料、然後umount
[root@node243 ~]# ll /myimage5/
total 0
-rw-r--r-- 1 root root 0 Oct 9 20:00 10.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 1.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 2.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 3.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 4.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 5.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 6.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 7.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 8.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 9.myimage.test.data.txt
12:然後挂載克隆鏡像,驗證資料完全一緻
[root@node243 ~]# mount /dev/rbd2 /clone-myimage5/
[root@node243 ~]# ll /clone-myimage5/
total 0
-rw-r--r-- 1 root root 0 Oct 9 20:00 10.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 1.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 2.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 3.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 4.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 5.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 6.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 7.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 8.myimage.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 9.myimage.test.data.txt
##############測試目的###########
1:檢視子類快照資訊;
2:壓縮克隆快照;
3:解除image保護;
4:導入image轉換image格式;
5:鎖定image;
#############步驟13~19#############
13:要列出一個子類快照,執行以下指令:
[root@node243 ~]# rbd children mypool/[email protected]
rbd/clone-myimage5
注意: 您可以複制鏡像的從一個池到一個池的快照。例如,你可以以一個池作為模闆,保持隻讀鏡像和快照,在另一個池中克隆。
14:壓縮克隆鏡像
克隆映像保留父類快照的引用。當您删除從子類克隆父快照引用,有效“壓縮化”的鏡像從快照複制的克隆資訊。壓縮克隆所花費的時間增加快照大小。要删除快照,則必須先壓縮子類鏡像。
[root@node243 clone-myimage5]# rbd flatten rbd/clone-myimage5
Image flatten: 100% complete...done.
注意: 由于壓縮的鏡像中包含的所有資訊的快照,一個壓縮的鏡像會比一個分層的克隆占用更多的存儲空間。
15:解除保護快照
删除快照之前,您必須先解除保護的快照。此外,你可能不會删除克隆引用的快照。您必須删除每個克隆的快照,然後才能删除快照。
[root@node243 clone-myimage5]# rbd snap unprotect mypool/[email protected]
16:檢視快照詳細資訊,驗證保護狀态
[root@node243 ~]# rbd -p mypool info [email protected]
rbd image 'myimage5':
size 10240 MB in 2560 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.5ebe2ae8944a
format: 2
features: layering
flags:
protected: False
17:修改鏡像格式
要更改為另一種格式的鏡像,将其導出,然後導入所需的格式:
rbd export mypool/myimage@snap /tmp/img
rbd import --format 2 /tmp/img mypool/myimage2
18:鎖定一個專用的鏡像
rbd lock add mypool/myimage mylockid
19:釋放鎖:
rbd lock remove mypool/myimage mylockid client.2485
####################ok#################
####### pool copy ######
##############測試目的###########
1:測試pool copy的使用方法;
2:pool資料copy後資料對比;
3:pool資料copy後image快照檢視;
#############步驟1~6#############
1:檢視叢集現有那幾個pool
[root@node243 ~]# ceph df
GLOBAL:
SIZE AVAIL RAW USED %RAW USED
474G 473G 1228M 0.25
POOLS:
NAME ID USED %USED MAX AVAIL OBJECTS
rbd 4 92512k 0.02 157G 2589
mypool2 5 70976k 0.01 157G 94
testpool 6 159M 0.03 157G 2681
2:檢視pool裡面的image數量名稱
[root@node243 ~]# rbd ls -p rbd
foo
t1image
clone-myimage5
[root@node243 ~]# rbd ls -p mypool
myimage
myimage1
myimage2
myimage5
myimage6
[root@node243 ~]# rbd ls -p testpool
foo1
t1image111
clone-myimage5111
[root@node243 ~]#
4:将mypool的内容copy到testpool
[root@node243 ~]# rados cppool mypool testpool
successfully copied pool mypool
5:檢視testpool發現,testpool的内容被覆寫,内容和mypool内容保持一緻
[root@node243 ~]# rbd ls -p testpool
myimage
myimage1
myimage2
myimage5
myimage6
[root@node243 ~]# rbd ls -p mypool
myimage
myimage1
myimage2
myimage5
myimage6
6:另外pool會将原有pool的image鏡像也一塊copy
[root@node243 ~]# rbd snap ls testpool/myimage5
SNAPID NAME SIZE
16 myimage1 10240 MB
17 myimage.snap1 10240 MB
18 myimage5.snap1 10240 MB
######## resize image (XFS 格式檔案系統)########
##############測試目的###########
1:測試image resize的使用方法;
2:image 空間resize 後使用注意事項;
#############步驟1~6#############
1:檢視已挂載rbd分區大小
[root@node245 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
...................
/dev/rbd0 xfs 20G 33M 20G 1% /myimage2
2:調整image大小
[root@node245 ~]# rbd resize -p mypool --image myimage2 --size 30000
Resizing image: 100% complete...done.
3:解除安裝分區重新挂載,發現分區空間大小沒有變化
[root@node245 ~]# umount /myimage2/
[root@node245 ~]# mount /dev/rbd0 /myimage2/
4:檢視分區大小
[root@node245 ~]# df -Th
。。。。。。。。。。。。。。。。。
/dev/rbd0 xfs 10G 36M 10G 1% /myimage2
[root@node245 ~]#
5:然後再次測試、unmap 鏡像後從新挂載空間大小還是沒有變化,說明調整空間後的鏡像,要重新格式化才能是被新的空間。
rbd unmap /dev/rbd0
rbd showmapped
rbd map mypool/myimage2
rbd showmapped
mount /dev/rbd0 /myimage2/
df -Th
6:重新格式化後(注意資料備份),重新挂載,系統識别新增空間
mkfs.xfs -f /dev/rbd0
[root@node245 ~]# df -TH
...............
/dev/rbd0 xfs 22G 35M 22G 1% /myimage2
[root@node245 ~]#
######## resize image (ext4 格式檔案系統)########
##############測試目的###########
1:測試image resize的使用方法;
2:image 空間resize 後使用注意事項;
3:ext4 檔案系統熱更新磁盤空間;
#############步驟1~5#############
1:檢視現運作磁盤空間大小
[root@pttes mycephfs]# df -h /mnt/mycephfs/
Filesystem Size Used Avail Use% Mounted on
/dev/rbd1 976M 1.3M 908M 1% /mnt/mycephfs
2:執行resize操作
[root@pttes mycephfs]# rbd resize --size 2048 test-image --pool test-pool
Resizing image: 100% complete...done.
3:運作blockdev 工具允許從指令行調用區塊裝置控制程式。
[root@pttes mycephfs]# blockdev --getsize64 /dev/rbd1
2147483648
4:運作resize2fs程式會重新定義磁盤空間;
resize2fs程式會重新定義ext2或者是ext4檔案系統。能夠用于擴大或者縮小一個在裝置上未挂載的檔案系統。
如果這個檔案系統是挂載的,它能夠用于擴大挂載了的檔案系統,假定核心支援線上重新定義大小。(linux的2.6核心支援使用ext3,ext4系統的線上重定義大小。)大小參數指定要求的檔案系統的新大小。
如果機關沒有指定,大小參數的機關會成為檔案系統的檔案系統的檔案塊尺寸。
[root@pttes mycephfs]# resize2fs /dev/rbd1
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/rbd1 is mounted on /mnt/mycephfs; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/rbd1 to 524288 (4k) blocks.
The filesystem on /dev/rbd1 is now 524288 blocks long.
5:檢視磁盤空間
[root@pttes mycephfs]# df -h /mnt/mycephfs/
Filesystem Size Used Avail Use% Mounted on
/dev/rbd1 2.0G 1.6M 1.9G 1% /mnt/mycephfs
############使用rados 指令建立快照###############
1:為rbd pool建立快照
[root@node243 ~]# rados -p testpool mksnap rbdsnaprados
created pool testpool snap rbdsnaprados
2:列出給定池的快照,驗證檢視生成snap
[root@node243 ~]# rados -p testpool lssnap
1 testpoolsnap1 2015.10.10 12:40:53
2 testpool.snap1 2015.10.10 12:47:33
3 testpool3 2015.10.10 14:07:47
4 rbdsnaprados 2015.10.10 15:41:53
4 snaps
3:删除快照
[root@node243 ~]# rados -p testpool rmsnap testpool3
removed pool testpool snap testpool3
#################ok#################
後續深入研究調研
1:image空間的動态調整;
2:修改導入image活着clone生成硬碟UUID如何修改;
3:增量快照的詳細使用方式;