千家信息网

ceph中如何删除巨型rbd image

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章将为大家详细讲解有关ceph中如何删除巨型rbd image,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。怎样删除巨型rbd image删除巨型rbd im
千家信息网最后更新 2025年01月24日ceph中如何删除巨型rbd image

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

怎样删除巨型rbd image

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

#创建一个1PB大小的块[root@osd2 ceph]# time rbd create myrbd/huge-image -s 1024000000real    0m0.353suser    0m0.016ssys     0m0.009s[root@osd2 ceph]# rbd info myrbd/huge-imagerbd 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-imageRemoving image: 2% complete...^\Quit (core dumped)real    10m24.406suser    18m58.335ssys     11m39.507s

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

[root@osd2 ceph]# rados -p myrbd rm huge-image.rbd[root@osd2 ceph]# time rbd rm myrbd/huge-image2014-11-06 09:44:42.916826 7fdb4fd5a7e0 -1 librbd::ImageCtx: error finding header: (2) No such file or directoryRemoving image: 100% complete...done.real    0m0.192suser    0m0.012ssys     0m0.013s

来个1TB大小的块试试:

[root@osd2 ceph]# rbd create myrbd/huge-image -s 1024000[root@osd2 ceph]# rbd info myrbd/huge-imagerbd 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-imageRemoving image: 100% complete...done.real    0m29.418suser    0m52.467ssys     0m32.372s

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

format 1:

[root@osd2 ceph]# rbd create myrbd/huge-image -s 1024000000[root@osd2 ceph]# rbd info myrbd/huge-imagerbd 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-image2014-11-06 09:54:12.718211 7ffae55747e0 -1 librbd::ImageCtx: error finding header: (2) No such file or directoryRemoving image: 100% complete...done.real    0m0.191suser    0m0.015ssys     0m0.010s

format 2:

[root@osd2 ceph]# rbd create myrbd/huge-image -s 1024000000 --image-format=2[root@osd2 ceph]# rbd info myrbd/huge-imagerbd 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-image2014-11-06 09:59:26.043671 7f6b6923c7e0 -1 librbd::ImageCtx: error finding header: (2) No such file or directoryRemoving image: 100% complete...done.real    0m0.192suser    0m0.016ssys    0m0.010s

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

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

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

0