AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 827805
Accepted
Isabell Cowan
Isabell Cowan
Asked: 2017-01-23 00:58:52 +0800 CST2017-01-23 00:58:52 +0800 CST 2017-01-23 00:58:52 +0800 CST

修改时使用 fallocate --dig-holes 是否安全

  • 772

在修改/写入文件时使用它是否安全?fallocate --dig-holes例如,在 KVM 来宾打开的 QCOW2 映像上?

filesystems qcow2
  • 1 1 个回答
  • 599 Views

1 个回答

  • Voted
  1. Best Answer
    v6ak
    2017-06-11T01:11:15+08:002017-06-11T01:11:15+08:00

    我一般会说不。如果文件是挂载到 VM 的映像,您可以尝试 TRIM(例如 fstrim -a)。严格来说,这不是等效的(TRIM 还可以释放一些未归零的已删除文件的空间),但这可能是您想要的。

    在某些特定情况下它可能是安全的,但我不会依赖它。例如,当某些数据在没有任何预分配的情况下按顺序流式传输到文件时,听起来可能是安全的。但由于文档并未暗示这一点,并且它仅依赖于实现,因此我强烈不推荐它。

    会出什么问题?想象一下,应用程序/VM 将覆盖某个归零块,而您同时运行 fallocate -d。比赛可能如下所示:

    1. Fallocate 看到一个零块,所以它决定在那里挖一个洞。
    2. 另一个应用程序/VM 将一些数据写入归零块。
    3. Fallocate 在街区挖了一个洞。

    听起来可能在 1 和 3 之间有一个很小的时间范围。也许这是真的,但 fallocate 可能希望一次释放多个后续块。(不确定,我没有检查过实现,但即使相反,你以后也不能依赖它。)这会增加 1 和 3 之间的延迟,使竞态条件更有可能发生。

    • 4

相关问题

  • 我如何知道 AIX 中磁盘上的文件系统是什么?

  • 控制 UNIX 目录内容用户组所有权

  • 在 Ubuntu 上将 Windows 磁盘分区与 Linux 分区合并

  • 在 VMPlayer 上 Windows 和 Linux 之间共享目录的最佳方式

  • md5sum 重复为同一台机器上的同一文件提供不同的校验和

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve