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中)。如果指定一个初始快照,因为该快照都包含唯一的改变,否则,任何地区的镜像包含的数据。最终的快照被指定使用的标准 �Csnap或者 @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.


  查看硬盘uuid

  [root@node243 ~]# blkid 

/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:增量快照的详细使用方式;

4:clone快照的压缩特性,使用场景等;

3:pool快照如何恢复,有何特性;


本文出自 “康建华” 博客,转载请与作者联系!

你可能感兴趣的:(快照,clone,回滚,ceph,Snap)