Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
edis0n0
V2EX  ›  Linux

Linux 下 dedup 工具原理是什么?如果我之后修改了其中一个文件的一部分,文件是变回占两份空间还是只占 1 份 + diff 部分的空间? dedup 有可能导致安全问题(越权访问 / 实现的有问题导致两份副本同时被修改)吗?

  •  
  •   edis0n0 · Feb 8, 2023 · 1903 views
    This topic created in 1209 days ago, the information mentioned may be changed or developed.
    iBugOne
        1
    iBugOne  
       Feb 8, 2023
    这些问题至少取决于你用啥软件和文件系统,基本方式是先扫描再去重。

    扫描重复文件的方法都比较简单粗暴,比较文件大小和内容( checksum )。

    创建 dedup 文件的方法取决于文件系统,简单的方法是 hard link ,那么这时候改其中一份就会同步改掉另一份,但是由于两个文件指向同一个 inode ,权限什么的都是一样的,不会有越权访问; hard link 方式如果想要两份文件独立修改,需要软件支持,并且改完之后就变回占两份空间了。

    如果有 FS 支持的话(比如 XFS / Btrfs ),可以通过 reflink 模式实现 dedup ,两个文件具有不同的 inode ,但底层使用相同的分配块;修改其中一份文件会分配新的块并更新分配表,另一份不受影响,也没有越权访问问题。

    总之你这问题问得太宽泛了,没法具体回答,常见情况大概如上
    busier
        2
    busier  
       Feb 25, 2023
    了解下 Copy On Write
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3157 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 12:25 · PVG 20:25 · LAX 05:25 · JFK 08:25
    ♥ Do have faith in what you're doing.