天天看點

ceph叢集快照、clone相關指令整理v1

簡介:快照

    快照是一個鏡像在某一個特定時間點的隻讀拷貝。其中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:增量快照的詳細使用方式;