专栏首页SY小站的专栏ceph空间不能释放

ceph空间不能释放

1.问题描述

在OpenStack云环境的部署中,存储通常具备Thin provision的功能,这项功能实现了存储按需分配的能力。现在有这样一种场景,用户在文件系统中创建了大文件,使用完之后进行了删除。但实际上,该文件在存储系统上占用的空间并没有释放。

当用户在文件系统中删除一个文件,并不会在块设备上的对应空间填0,而仅仅在磁盘的元数据结构中将这些block标记为未使用。因此,虽然文件系统知道这些block是未使用或者说可用的,但是底层的存储系统并不知道文件系统做的操作,会认为这些block仍在使用。以RBD image为例,它本身是稀疏格式的,也就是说它所占用objects会随着用户写入数据的增加而增加(Thin provision)。当用户删除数据以后,这些obejct不再使用,但并没有被释放。因为从Ceph的角度讲,它并不知道文件系统中发生的事情。

2.解决办法

需要配置Nova和Glance支持virtio-scsi和discard。

1、glance image-update --property hw_scsi_model=virtio-scsi --property hw_disk_bus=scsi

其中,hw_scsi_model=virtio-scsi 是指libvirt要使用virtio-scsi控制器,hs_disk_bus=scsi是指libvirt使用scsi总线连接磁盘到控制器。

2、编辑nova.conf

[libvirt]

hw_disk_discard = unmap

其中,有效的hw_disk_discard参数包括:

unmap: it unmaps aligned group of sectors

ignore: it ignores the discard request

2.1 触发Trim/Discard请求

有两种方式可以触发Trim/Discard请求,一种是由文件系统自动完成,一种是用户通过执行命令来完成。

一、文件系统自动完成

  只要在挂载文件系统时指定discard参数即可,比如 mount -t ext4 -o discard  device mountpoint,这样在文件系统中删除文件后会自动触发Trim/Discard操作,在块设备上释放占用的空间。

二、用户执行命令

  用户可以执行命令fstrim来触发Trim/Discard操作,采用这种方式mount文件系统时不需要discard参数。比如,fstrim -v mountpoint,就会释放对应块设备上不用的空间。

  需要注意的是,mount的discard参数会导致文件系统性能下降,在并发删除大量小文件时变得很慢,因此需要根据具体场景选择合适的长发方式。

2.2 系统盘加discard

不能通过重新挂载设置丢弃选项,因此必须在第一次挂载时使用它(如果是/,则是在引导时由内核挂载rootfs)。关键是使用rootflags来提供discard mount选项作为内核参数
在/boot/grub2/grub.cfg文件中,增加rootflags=discard

本文分享自微信公众号 - SY技术小站(SYjishuzhan),作者:SY小站

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Prometheus系列 | 监控elasticsearch

    启动成功后,可以访问 http://192.168.50.153:9109/metrics ,看抓取的信息

    SY小站
  • openstack虚拟机状态修改两种方法

    上午线上openstack集群,发现热迁移不了,后经查证是由于新加入的集群操作系统版本太高,导致热迁移少了模块,引发的问题是,热迁移的机器状态一直是迁移中,故做...

    SY小站
  • Kubernetes 调度器介绍

    kube-scheduler 是 kubernetes 的调度器,它的主要作用就是根据特定的调度算法和调度策略将 Pod 调度到合适的 Node 节点上去,是一...

    SY小站
  • Ceph空间不能释放

    问题描述 在OpenStack云环境的部署中,存储通常具备Thin provision的功能,这项功能实现了存储按需分配的能力。现在有这样一种场景,用户在文件系...

    院长技术
  • LeetCode攀登之旅(9)

    点击公众号右下角合作转载->联系我,即可加入我的个人微信,共同探讨交流,以及入交流群(记得备注入群)!

    公众号guangcity
  • 安卓Outlook默认文件夹设置 加速 提升性能for Android

    林万程
  • Linux基础之文件系统 原

    Linux kernel自2.6.28开始正式支持新的文件系统Ext4,Ext4是Ext3的改进版,修改了Ext3中部分重要的数据结构。Ext3对Ext2,只是...

    云飞扬
  • daily-question-01(前端每日一题01)

    在这里记录着每天自己遇到的一道印象深刻的前端问题,以及一道生活中随处可见的小问题。

    小皮咖
  • 没有 Freestyle 照样可以帅!这个小程序,让你变得很「嘻哈」

    随着综艺节目《中国有嘻哈》的热播,节目中制作人吴亦凡的这个「金句」成为了网络上一个热门的梗。

    知晓君
  • Spark核心谈

    在大数据领域,Spark平台因计算模型涵盖MapReduce,Streaming,SQL,Machine Learning,Graph等,为大数据计算提供一栈式...

    加米谷大数据

扫码关注云+社区

领取腾讯云代金券