简介:快照
快照是一个镜像在某一个特定时间点的只读拷贝。其中Ceph块设备的高级功能是能够创建快照保留镜像的历史状态。Ceph支持快照分层,允许快速克隆镜像。 Ceph还支持使用RDB和如KVM,libvirt等创建快照。当做快照时需要停止I/O。如果镜像包含文件系统,文件系统必须在做快照前保持一致性。
本文档主要从以下几个方面进行测试:
1:快照、创建、查询、删除、清理;
2:快照clone、增量快照、保护快照;
3:p_w_picpath导入、导出;
4:利用ceph存储快照功能,做数据备份、数据恢复;
5:p_w_picpath 空间resize(xfs、ext4文件系统);
6:pool快照创建、pool copy、pool快照查看、删除;
文档内容初步整理,后续将不断完善,内容有误的地方欢迎留言指正,我会及时更新修正。
##############测试目的#############
1:p_w_picpath快照如何创建、删除、查询;
2:快照回滚、数据恢复;
#############步骤1~15##############
1:创建一个pool
[root@node241 ~]# ceph osd pool create mypool 24
pool 'mypool' created
2:要创建一个新的RBD镜像为10GB
rbd -p mypool create myp_w_picpath --size 10240
或者:
rbd create mypool/myp_w_picpath --size 10240
3:再新建一个镜像、做快照导入测试使用
rbd create mypool/myp_w_picpath1 --size 10240
4:查看镜像
[root@node242 ~]# rbd --pool mypool ls
myp_w_picpath
myp_w_picpath1
5:映射镜像 myp_w_picpath
[root@node242 ~]# rbd map mypool/myp_w_picpath
/dev/rbd0
6:格式化
mkfs.xfs /dev/rbd0
7:建立挂载点、挂载磁盘
mkdir /myp_w_picpath
mount /dev/rbd0 /myp_w_picpath/
8:映射镜像 myp_w_picpath1
[root@node242 ~]# rbd map mypool/myp_w_picpath1
/dev/rbd1
9:格式化
mkfs.xfs /dev/rbd1
10:建立挂载点、挂载磁盘
mkdir /myp_w_picpath1
mount /dev/rbd1 /myp_w_picpath1/
11:验证查看挂载分区
[root@node242 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
。。。。。。。。。。。。。。。
/dev/rbd0 xfs 10G 33M 10G 1% /myp_w_picpath
/dev/rbd1 xfs 10G 33M 10G 1% /myp_w_picpath1
[root@node242 ~]#
12:myp_w_picpath目录创建测试文件
touch /myp_w_picpath/{1..10}myp_w_picpath.data.txt
查看数据生成
ll /myp_w_picpath
total 0
-rw-r--r-- 1 root root 0 Oct 9 12:24 10myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 1myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 2myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 3myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 4myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 5myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 6myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 7myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 8myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 9myp_w_picpath.data.txt
13:myimge创建一个快照:
[root@node242 ~]# rbd snap create mypool/myp_w_picpath@myp_w_picpathsnap
14:查看快照信息
[root@node242 ~]# rbd snap ls mypool/myp_w_picpath
SNAPID NAME SIZE
2 myp_w_picpathsnap 10240 MB
15:验证数据回滚
15.1:然后删除所有创建的文件
[root@node242 ~]# rm -rf /myp_w_picpath/*
[root@node242 ~]# ll /myp_w_picpath
total 0
15.2:回滚快照,
注意:回滚快照就是将当前镜像的数据用快照重新替换。回滚的执行时间随着镜像大小的增加而增加。克隆将会比回滚快照更花时间。
使用RBD命令回滚快照,指定snap rollback选项,指定池名称,镜像名称和单元名称。
[root@node242 ~]# rbd snap rollback mypool/myp_w_picpath@myp_w_picpathsnap
Rolling back to snapshot: 100% complete...done.
用于回滚部分,你要注意回滚意味着从快照中的数据覆盖当前版本,需要更长的时间与较大的镜像。因此,克隆是可取的快速恢复。
注意: 镜像快照回滚意味着从快照覆盖原快照当时版本的镜像数据。执行回滚所花费的时间与镜像的大小有关。快照克隆比快照回滚恢复得更快,它是返回到一个预先存在的状态优选的方法。
15.3:卸载挂载目录
[root@node242 ~]# umount /myp_w_picpath
15.4:重新挂载
[root@node242 ~]# mount /dev/rbd0 /myp_w_picpath
15.5:查看数据,已经恢复
[root@node242 ~]# ll /myp_w_picpath
total 0
-rw-r--r-- 1 root root 0 Oct 9 12:24 10myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 1myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 2myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 3myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 4myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 5myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 6myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 7myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 8myp_w_picpath.data.txt
-rw-r--r-- 1 root root 0 Oct 9 12:24 9myp_w_picpath.data.txt
##############测试目的#############
1:p_w_picpath导入、导出,数据备份恢复;
2:导出p_w_picpath信息、导入到其它pool;
#############步骤16##############
16:###导出、导入镜像
16.1: 把ceph pool中的一个镜像导出
[root@node242 ~]# rbd export -p mypool --p_w_picpath myp_w_picpath /tmp/exportmyp_w_picpath.img
Exporting p_w_picpath: 100% complete...done
16.2:验证查看导出文件
[root@node242 ~]# ll /tmp/exportmyp_w_picpath.img
-rw-r--r-- 1 root root 10737418240 Oct 9 13:29 /tmp/exportmyp_w_picpath.img
16.3:把一个镜像导入ceph中
导入镜像名,不能与现有pool中的p_w_picpath重名
[root@node242 ~]# rbd import /tmp/exportmyp_w_picpath.img -p mypool --p_w_picpath myp_w_picpath2
Importing p_w_picpath: 100% complete...done.
16.4:验证查看导入镜像文件
[root@node242 ~]# rbd -p mypool ls
myp_w_picpath
myp_w_picpath1
myp_w_picpath2
16.7:映射导入挂载镜像
[root@node242 ~]# rbd map mypool/myp_w_picpath2
/dev/rbd2
16.8:挂载报错
[root@node242 ~]# mount -t xfs /dev/rbd2 /myp_w_picpath3
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和之前只做p_w_picpath 的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
myp_w_picpath
myp_w_picpath1
myp_w_picpath2
16.11:做镜像映射
[root@node245 ~]# rbd map mypool/myp_w_picpath2
/dev/rbd0
16.12:创建挂载目录
[root@node245 ~]# mkdir /myp_w_picpath2
16.13:挂载分区
[root@node245 ~]# mount /dev/rbd0 /myp_w_picpath2/
16.14:验证数据与到在源镜像导出时数据一致
[root@node245 ~]# ll /myp_w_picpath2/
total 0
-rw-r--r--. 1 root root 0 Oct 9 00:24 10myp_w_picpath.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 1myp_w_picpath.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 2myp_w_picpath.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 3myp_w_picpath.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 4myp_w_picpath.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 5myp_w_picpath.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 6myp_w_picpath.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 7myp_w_picpath.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 8myp_w_picpath.data.txt
-rw-r--r--. 1 root root 0 Oct 9 00:24 9myp_w_picpath.data.txt
16.15:查看uuid 与源id一致
[root@node245 myp_w_picpath2]# 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/myp_w_picpath
SNAPID NAME SIZE
2 myp_w_picpathsnap 10240 MB
18:要删除一个快照:
[root@node245 ~]# rbd snap rm mypool/myp_w_picpath@myp_w_picpathsnap
删除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 {p_w_picpath-name}
19.2:查看
[root@node243 t1p_w_picpath]# rbd snap ls mypool/myp_w_picpath1
SNAPID NAME SIZE
3 myp_w_picpath1snap 10240 MB
5 myp_w_picpath1snap1 10240 MB
6 myp_w_picpath1snap2 10240 MB
7 myp_w_picpath1snap3 10240 MB
8 myp_w_picpath1snap4 10240 MB
19.3:清除所有快照
[root@node243 t1p_w_picpath]# rbd snap purge mypool/myp_w_picpath1
Removing all snapshots: 100% complete...done.
19.4:再次查看所有快照已经被删除
[root@node243 t1p_w_picpath]# rbd snap ls mypool/myp_w_picpath1
##############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:参数
--p_w_picpath-format format
指定使用对象布局。默认值是1。
format 1 - 一个新的RBD镜像使用原始的格式。所有版本的librbd和RBD内核模块理解这种格式,但不支持新的功能,如克隆。
format 2- 使用的第二个的RBD格式,这是在这个时候由librbd(但不包括RBD内核模块)支持。这增加了支持克隆和更容易扩展,让更多的功能,在未来的。
--snap snap
指定快照名称具体操作。
3:命令
clone [ parent-snapname ] [ p_w_picpath-name ]
将会创建一个父类快照的克隆(子类的副本) 。对象命令将会与父类镜像相同,除非指定。否则 大小将会与父类快照相同。
父类快照必须要被保护 (参阅 rbd snap protect).。这需要format 2。
flatten [p_w_picpath-name]
如果镜像是被克隆的,从父类快照福之所有共享的块并且让子类独立于父类, 切断子类与父类快照的链接。如果没有依赖的克隆,父类快照能被不保护并且能被删除。这需要format 2。
children [p_w_picpath-name]
列出给定的快照中镜像的克隆。这检查了每个池,输出池名/镜像名的结果。
export [p_w_picpath-name] [dest-path]
导出至dest-path路径的镜像(在stdout中使用 )。
import [path] [dest-path]
创建一个新的镜像,并导入其数据路径(使用-for 标准输出)。导入操作,如果可能的话,将尝试创建稀少RBD镜像。进口从标准输入,稀少化单元目标镜像数据块大小(1 << order)。
export-diff [p_w_picpath-name] [dest-path] [-from-snap snapname]
导出增量差异的镜像到dest的路径(使用 - 在stdout中)。如果指定一个初始快照,因为该快照都包含唯一的改变,否则,任何地区的镜像包含的数据。最终的快照被指定使用的标准 –snap或者 @snap 语法(见下文)。diff格式包括镜像的元数据,镜像大小的变化,并开始和结束的快照。它有效地代表丢弃或“零”的镜像区域。
import-diff [src-path] [p_w_picpath-name]
导入增量差异的镜像,并把它应用到当前的镜像。如果diff产生相对于一开始快照,我们确认,快照已经存在,然后再继续。如果有一个结束的快照,我们核实它不已经存在的应用更改之前,当我们完成创建快照。
diff [p_w_picpath-name] [-from-snap snapname]
转储字节扩展的镜像已经改变了,因为指定的起始快照或自创建映像的列表。每一条输出线包括起始偏移量(以字节为单位),该区域的长度(以字节为单位),无论是“零”或“数据”,以表示该区域是否是已知的零或可以含有其它的数据。
snap ls [p_w_picpath-name]
转储快照列表,里面有具体的镜像。
snap create[p_w_picpath-name]
创建一个新的快照。需要指定快照名称参数。
snap rollback[p_w_picpath-name]
回滚快照镜像内容。这将遍历的整个街区阵列和更新的数据头内容的快照版本。
snap rm [ p_w_picpath-name]
删除指定的快照。
snap purge [p_w_picpath-name]
从镜像中删除所有快照。
snap protect [p_w_picpath-name]
从删除保护的快照,使克隆可以用它制成的(见RBD克隆)。之前前克隆,快照,必须保护,保护意味着存在依赖克隆子类,是指本快照克隆RBD未受保护的快照将失败。这需要格式2。
snap unprotect [p_w_picpath-name]
撤消删除的快照(撤消单元保护)。如果克隆的子类,捕捉撤消失败。(注意克隆可能存在于不同的存储池,比母公司快照。)这需要格式2。
##############测试目的###########
1:创建快照;
2:快照写保护;
3:查看快照详细信息;
#############步骤1~5#############
1:创建p_w_picpath,为后续测试做准备;
[root@node243 t1p_w_picpath]# rbd create mypool/myp_w_picpath5 --p_w_picpath-format 2 --size 10240
2:为p_w_picpath创建快照
[root@node243 myp_w_picpath5]# rbd snap create mypool/myp_w_picpath5@myp_w_picpath5.snap1
3:查看快照信息;
[root@node243 myp_w_picpath5]# rbd snap ls mypool/myp_w_picpath5
SNAPID NAME SIZE
18 myp_w_picpath5.snap1 10240 MB
[root@node243 myp_w_picpath5]#
4:设置快照保护
[root@node243 myp_w_picpath5]# rbd snap protect mypool/myp_w_picpath5@myp_w_picpath5.snap1
注意: 您无法删除受保护的快照。
5:查看快照详细信息,验证保护状态
[root@node243 ~]# rbd -p mypool info myp_w_picpath5@myp_w_picpath5.snap1
rbd p_w_picpath 'myp_w_picpath5':
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:p_w_picpath信息夸pool克隆,功能验证;
3:clone数据验证;
#############步骤6~12#############
要克隆一个快照,指定您需要指定父类池,镜像和快照,子类池和镜像名称。你必须执行保护快照才可以克隆它。
6:将mypool/myp_w_picpath5@myp_w_picpath5.snap1 克隆到rbd 池 名字为 clone-myp_w_picpath5
[root@node243 myp_w_picpath5]# rbd clone mypool/myp_w_picpath5@myp_w_picpath5.snap1 rbd/clone-myp_w_picpath5
7:验证镜像文件
[root@node243 myp_w_picpath5]# rbd ls
foo
t1p_w_picpath
clone-myp_w_picpath5
8:映射到一台主机
[root@node243 ~]# rbd map rbd/clone-myp_w_picpath5
/dev/rbd2
9:建立挂载目录、挂载克隆镜像
[root@node243 ~]# mkdir /clone-myp_w_picpath5
10:挂载报错是因为,本机已经挂载源镜像,被克隆的p_w_picpath 生成硬盘uuid 一样导致
[root@node243 ~]# mount /dev/rbd2 /clone-myp_w_picpath5/
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:卸载源p_w_picpathmap信息,挂载clone生成p_w_picpath信息,对比数据;
查看源镜像挂载后,存储数据、然后umount
[root@node243 ~]# ll /myp_w_picpath5/
total 0
-rw-r--r-- 1 root root 0 Oct 9 20:00 10.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 1.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 2.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 3.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 4.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 5.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 6.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 7.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 8.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 9.myp_w_picpath.test.data.txt
12:然后挂载克隆镜像,验证数据完全一致
[root@node243 ~]# mount /dev/rbd2 /clone-myp_w_picpath5/
[root@node243 ~]# ll /clone-myp_w_picpath5/
total 0
-rw-r--r-- 1 root root 0 Oct 9 20:00 10.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 1.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 2.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 3.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 4.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 5.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 6.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 7.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 8.myp_w_picpath.test.data.txt
-rw-r--r-- 1 root root 0 Oct 9 20:00 9.myp_w_picpath.test.data.txt
##############测试目的###########
1:查看子类快照信息;
2:压缩克隆快照;
3:解除p_w_picpath保护;
4:导入p_w_picpath转换p_w_picpath格式;
5:锁定p_w_picpath;
#############步骤13~19#############
13:要列出一个子类快照,执行以下命令:
[root@node243 ~]# rbd children mypool/myp_w_picpath5@myp_w_picpath5.snap1
rbd/clone-myp_w_picpath5
注意: 您可以复制镜像的从一个池到一个池的快照。例如,你可以以一个池作为模板,保持只读镜像和快照,在另一个池中克隆。
14:压缩克隆镜像
克隆映像保留父类快照的引用。当您删除从子类克隆父快照引用,有效“压缩化”的镜像从快照复制的克隆信息。压缩克隆所花费的时间增加快照大小。要删除快照,则必须先压缩子类镜像。
[root@node243 clone-myp_w_picpath5]# rbd flatten rbd/clone-myp_w_picpath5
Image flatten: 100% complete...done.
注意: 由于压缩的镜像中包含的所有信息的快照,一个压缩的镜像会比一个分层的克隆占用更多的存储空间。
15:解除保护快照
删除快照之前,您必须先解除保护的快照。此外,你可能不会删除克隆引用的快照。您必须删除每个克隆的快照,然后才能删除快照。
[root@node243 clone-myp_w_picpath5]# rbd snap unprotect mypool/myp_w_picpath5@myp_w_picpath5.snap1
16:查看快照详细信息,验证保护状态
[root@node243 ~]# rbd -p mypool info myp_w_picpath5@myp_w_picpath5.snap1
rbd p_w_picpath 'myp_w_picpath5':
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/myp_w_picpath@snap /tmp/img
rbd import --format 2 /tmp/img mypool/myp_w_picpath2
18:锁定一个专用的镜像
rbd lock add mypool/myp_w_picpath mylockid
19:释放锁:
rbd lock remove mypool/myp_w_picpath mylockid client.2485
####################ok#################
####### pool copy ######
##############测试目的###########
1:测试pool copy的使用方法;
2:pool数据copy后数据对比;
3:pool数据copy后p_w_picpath快照查看;
#############步骤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里面的p_w_picpath数量名称
[root@node243 ~]# rbd ls -p rbd
foo
t1p_w_picpath
clone-myp_w_picpath5
[root@node243 ~]# rbd ls -p mypool
myp_w_picpath
myp_w_picpath1
myp_w_picpath2
myp_w_picpath5
myp_w_picpath6
[root@node243 ~]# rbd ls -p testpool
foo1
t1p_w_picpath111
clone-myp_w_picpath5111
[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
myp_w_picpath
myp_w_picpath1
myp_w_picpath2
myp_w_picpath5
myp_w_picpath6
[root@node243 ~]# rbd ls -p mypool
myp_w_picpath
myp_w_picpath1
myp_w_picpath2
myp_w_picpath5
myp_w_picpath6
6:另外pool会将原有pool的p_w_picpath镜像也一块copy
[root@node243 ~]# rbd snap ls testpool/myp_w_picpath5
SNAPID NAME SIZE
16 myp_w_picpath1 10240 MB
17 myp_w_picpath.snap1 10240 MB
18 myp_w_picpath5.snap1 10240 MB
######## resize p_w_picpath (XFS 格式文件系统)########
##############测试目的###########
1:测试p_w_picpath resize的使用方法;
2:p_w_picpath 空间resize 后使用注意事项;
#############步骤1~6#############
1:查看已挂载rbd分区大小
[root@node245 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
...................
/dev/rbd0 xfs 20G 33M 20G 1% /myp_w_picpath2
2:调整p_w_picpath大小
[root@node245 ~]# rbd resize -p mypool --p_w_picpath myp_w_picpath2 --size 30000
Resizing p_w_picpath: 100% complete...done.
3:卸载分区重新挂载,发现分区空间大小没有变化
[root@node245 ~]# umount /myp_w_picpath2/
[root@node245 ~]# mount /dev/rbd0 /myp_w_picpath2/
4:查看分区大小
[root@node245 ~]# df -Th
。。。。。。。。。。。。。。。。。
/dev/rbd0 xfs 10G 36M 10G 1% /myp_w_picpath2
[root@node245 ~]#
5:然后再次测试、unmap 镜像后从新挂载空间大小还是没有变化,说明调整空间后的镜像,要重新格式化才能是被新的空间。
rbd unmap /dev/rbd0
rbd showmapped
rbd map mypool/myp_w_picpath2
rbd showmapped
mount /dev/rbd0 /myp_w_picpath2/
df -Th
6:重新格式化后(注意数据备份),重新挂载,系统识别新增空间
mkfs.xfs -f /dev/rbd0
[root@node245 ~]# df -TH
...............
/dev/rbd0 xfs 22G 35M 22G 1% /myp_w_picpath2
[root@node245 ~]#
######## resize p_w_picpath (ext4 格式文件系统)########
##############测试目的###########
1:测试p_w_picpath resize的使用方法;
2:p_w_picpath 空间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-p_w_picpath --pool test-pool
Resizing p_w_picpath: 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:p_w_picpath空间的动态调整;
2:修改导入p_w_picpath活着clone生成硬盘UUID如何修改;
3:增量快照的详细使用方式;
4:clone快照的压缩特性,使用场景等;
3:pool快照如何恢复,有何特性;