这篇文章将为大家详细讲解有关ceph中如何删除巨型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”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。