温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ceph中如何删除巨型rbd image

发布时间:2022-03-14 11:49:42 来源:亿速云 阅读:663 作者:小新 栏目:开发技术

这篇文章将为大家详细讲解有关ceph中如何删除巨型rbd image,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

怎样删除巨型rbd image

删除巨型rbd image,如果直接通过rbd rm的话会很耗时(漫长的夜)。但在ceph 0.87上尝试了一下,这个问题已经不存在了,具体过程如下:

#创建一个1PB大小的块
[root@osd2 ceph]# time rbd create myrbd/huge-image -s 1024000000

real	0m0.353s
user	0m0.016s
sys	0m0.009s
[root@osd2 ceph]# rbd info myrbd/huge-image
rbd image 'huge-image':
	size 976 TB in 256000000 objects
	order 22 (4096 kB objects)
	block_name_prefix: rb.0.1489.6b8b4567
	format: 1
[root@osd2 ceph]# time rbd rm myrbd/huge-image
Removing image: 2% complete...^\Quit (core dumped)

real	10m24.406s
user	18m58.335s
sys	11m39.507s

上面创建了一个1PB大小的块,也许是太大了,直接rbd rm删除的时候还是很慢,所以用了一下方法:

[root@osd2 ceph]# rados -p myrbd rm huge-image.rbd
[root@osd2 ceph]# time rbd rm myrbd/huge-image
2014-11-06 09:44:42.916826 7fdb4fd5a7e0 -1 librbd::ImageCtx: error finding header: (2) No such file or directory
Removing image: 100% complete...done.

real	0m0.192s
user	0m0.012s
sys	0m0.013s

来个1TB大小的块试试:

[root@osd2 ceph]# rbd create myrbd/huge-image -s 1024000
[root@osd2 ceph]# rbd info myrbd/huge-image
rbd image 'huge-image':
	size 1000 GB in 256000 objects
	order 22 (4096 kB objects)
	block_name_prefix: rb.0.149c.6b8b4567
	format: 1
[root@osd2 ceph]# time rbd rm myrbd/huge-image
Removing image: 100% complete...done.

real	0m29.418s
user	0m52.467s
sys	0m32.372s

所以巨型的块删除还是要用以下方法:

format 1:

[root@osd2 ceph]# rbd create myrbd/huge-image -s 1024000000
[root@osd2 ceph]# rbd info myrbd/huge-image
rbd image 'huge-image':
	size 976 TB in 256000000 objects
	order 22 (4096 kB objects)
	block_name_prefix: rb.0.14a5.6b8b4567
	format: 1
[root@osd2 ceph]# rados -p myrbd rm huge-image.rbd
[root@osd2 ceph]# time rados -p myrbd ls|grep '^rb.0.14a5.6b8b4567'|xargs -n 200  rados -p myrbd rm
[root@osd2 ceph]# time rbd rm myrbd/huge-image
2014-11-06 09:54:12.718211 7ffae55747e0 -1 librbd::ImageCtx: error finding header: (2) No such file or directory
Removing image: 100% complete...done.

real	0m0.191s
user	0m0.015s
sys	0m0.010s

format 2:

[root@osd2 ceph]# rbd create myrbd/huge-image -s 1024000000 --image-format=2
[root@osd2 ceph]# rbd info myrbd/huge-image
rbd image 'huge-image':
	size 976 TB in 256000000 objects
	order 22 (4096 kB objects)
	block_name_prefix: rbd_data.14986b8b4567
	format: 2
	features: layering
[root@osd2 ceph]# rados -p myrbd rm rbd_id.huge-image
[root@osd2 ceph]# rados -p myrbd rm rbd_header.14986b8b4567
[root@osd2 ceph]# rados -p myrbd ls | grep '^rbd_data.14986b8b4567' | xargs -n 200  rados -p myrbd rm
[root@osd2 ceph]# time rbd rm myrbd/huge-image
2014-11-06 09:59:26.043671 7f6b6923c7e0 -1 librbd::ImageCtx: error finding header: (2) No such file or directory
Removing image: 100% complete...done.

real    0m0.192s
user    0m0.016s
sys    0m0.010s

注意,如果块是空的,不许要xargs那条语句;如果是非空就需要了。

所以,如果是100TB以上的块,最好还是先删除id,再rbd rm进行删除。

关于“ceph中如何删除巨型rbd image”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI