关于文件系统 cow - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要把任何和邀请码有关的内容发到 NAS 节点。

邀请码相关的内容请使用 /go/in 节点。

如果没有发送到 /go/in,那么会被移动到 /go/pointless 同时账号会被降权。如果持续触发这样的移动,会导致账号被禁用。
YUyu101
V2EX    NAS

关于文件系统 cow

  •  
  •   YUyu101 2024-03-13 13:59:49 +08:00 2636 次点击
    这是一个创建于 635 天前的主题,其中的信息可能已经有所发展或是发生改变。

    zfs 是不是没有命令进行 cow 的复制啊,还是说只有开启去重后才能达到类似的效果,我查到 btrfs 是有 cp -reflink 的,但 zfs 貌似没有。 另一个问题是微软的 refs 也有 cow ,那通过 powershell 或界面复制能达到 cp -reflink 这种效果吗,还是说只能靠 win server 上的定时去重任务来做。

    8 条回复    2024-03-13 22:43:47 +08:00
    juranjue
        1
    juranjue  
       2024-03-13 17:44:01 +08:00
    zfs 整个文件系统就是机遇 cow 机制,并且无法关闭。
    guoyijun163
        2
    guoyijun163  
       2024-03-13 18:36:17 +08:00
    openzfs 2.2 支持了 block clone, 不过貌似有 bug 又给关上了
    bjfane
        3
    bjfane  
    PRO
       2024-03-13 19:10:43 +08:00
    refs 不是说还不完全稳定的么
    YUyu101
        4
    YUyu101  
    OP
       2024-03-13 19:26:13 +08:00
    @juranjue 但直接复制的话不是 cow ,网上搜到 btrfs 倒是有这功能
    juranjue
        5
    juranjue  
       2024-03-13 20:08:26 +08:00
    @YUyu101 是我理解错了 reflink 的功能,相当于 ZFS 对单个文件进行 Deduplication
    Jirajine
        6
    Jirajine  
       2024-03-13 20:25:48 +08:00   1
    Cow == copy on write
    指的是 write 的过程中会发生 copy (一般来说即把覆盖写入已有数据的请求重定向到空白区块)
    而不是 copy 的过程中有什么特别的行为。snapshot/dedup/cp -reflink 等等是根据这种特性(被覆盖的数据仍然存在、且是 immutable 的)实现的不同的功能。
    显然不是每个 Cow 的文件系统都实现了每个 Cow 可能实现的功能。如果你要 shallow copy,硬链接或许就足够;如果你要以 copy on write 的语义创建文件的多个副本,snapshot 也可以达到。
    YUyu101
        7
    YUyu101  
    OP
       2024-03-13 21:33:36 +08:00
    @Jirajine 清楚了,感谢,目前是在 zfs 上用的硬链接,snapshot 貌似也不能对单个文件使用,感觉不太便利。
    laminux29
        8
    laminux29  
       2024-03-13 22:43:47 +08:00
    1.楼主需要的,其实是 zfs 的实时去重功能,当新建 zfs pool 后,是需要手动开启的:
    zfs set dedup=on New-ZFS-Pool-Name

    2.COW ,或者说 Copy on Write ,这个名字是有问题的,因为它没考虑到对原始文件的相同区域 write 了相同的 data ,相当于原始文件没有发生任何更改,此时就不需要对原始文件进行复制出新版本的操作。

    更严谨的叫法,应该是 Copy on Update:COU 。

    也就是说,只有当一个原始文件的某一个引用,对其进行修改时,才能对原始文件,进行复制出新版本的行为。修改操作主要有 3 种:改动已有字节、append 、删除并新建相当于 realloc

    3. ZFS 是目前地球上最强单机 FS ,不仅是因为它支持实时去重,而且支持实时 zstd 或 lz4 压缩、支持 raid 、支持热备盘、支持 cache disk 分层存储、支持独立读写存储介质隔离。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1090 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 23:14 PVG 07:14 LAX 15:14 JFK 18:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86