3.10. 测试 TRIM 和 DISCARD 对 VDO 的影响


此流程测试 TRIMDISCARD 命令是否能正确地从 VDO 测试卷上已删除的文件中释放块。它演示了,丢弃告知 VDO 不再使用空间。

先决条件

流程

  1. 准备可记录测试结果的表:

    Expand
    步骤已使用的文件空间(MB)已使用的数据块使用的逻辑块

    初始空间

       

    添加 1 GiB 文件

       

    运行 fstrim

       

    删除 1 GiB 文件

       

    运行 fstrim

       
  2. 清理文件系统来删除不需要的块:

    # fstrim /mnt/vdo-test

    该命令可能需要很长时间。

  3. 记录文件系统中初始空间的使用情况:

    $ df -m /mnt/vdo-test
  4. 请查看 VDO 卷使用的物理和逻辑数据块数:

    # vdostats --verbose | grep "blocks used"
  5. 使用 VDO 卷上的非重复数据创建一个 1 GiB 文件:

    $ dd if=/dev/urandom of=/mnt/vdo-test/file bs=1M count=1K
  6. 再次记录空间使用量:

    $ df -m /mnt/vdo-test
    
    # vdostats --verbose | grep "blocks used"

    文件系统应使用额外的 1 GiB。data blocks usedlogical blocks used 的值应该同样增加。

  7. 再次执行文件系统:

    # fstrim /mnt/vdo-test
  8. 再次检查空间用量,确认清除操作不会影响物理卷的使用:

    $ df -m /mnt/vdo-test
    
    # vdostats --verbose | grep "blocks used"
  9. 删除 1 GiB 文件:

    $ rm /mnt/vdo-test/file
  10. 检查并记录空间使用情况:

    $ df -m /mnt/vdo-test
    
    # vdostats --verbose | grep "blocks used"

    文件系统知道已删除了某个文件,但是由于没有指向底层存储,物理或逻辑块的数量不会改变。

  11. 再次执行文件系统:

    # fstrim /mnt/vdo-test
  12. 检查并记录空间使用情况:

    $ df -m /mnt/vdo-test
    
    # vdostats --verbose | grep "blocks used"

    fstrim 工具在文件系统中查找空闲的块,并为未使用的地址向 VDO 卷发送 TRIM 命令,这会释放相关的逻辑块。VDO 处理 TRIM 命令以释放底层物理块。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部