laminux29

目前 AI 距离顶级专家还有些差距

  •  
  •   laminux29 · 13 days ago · 1224 views
    用硬盘挂载为例,比如一块新硬盘,作为数据盘,需要挂载到 /mnt/Data-2

    几款主流的 AI ,在把新硬盘格式化后,mkdir /mnt/Data-2 ,然后把挂载信息写入 /etc/fstab ,就完事了。

    这里其实有个大隐患,如果数据盘掉了,那么对 /mnt/Data-2 的写入,会直接写穿到系统盘上,原因是当数据盘掉了后,/mnt/Data-2 这个路径依然会存在,而且此时它变成系统盘上的路径了。

    顶级专家在 mkdir /mnt/Data-2 ,之后,还会 chattr +i /mnt/cachedata ,这应该属于防止写穿的基本操作,然而目前对于几款主流 AI ,如果你不提防写穿,它是不会帮你去实现这事。而且还有些 AI 居然用了一些奇奇怪怪且有 Bug 的思路去处理防写穿。
    uh
        1
    uh  
       13 days ago
    你是否给了 AI 完善的背景信息呢?万一在数据盘挂载失败的情况下,让依赖于这个挂载路径的程序能够依然读写数据( fallback 到系统盘),而不至于直接崩溃,这样是某些场景下的合理做法,AI 给你的答案不就是对的了?
    lucifer9
        2
    lucifer9  
       12 days ago via iPhone
    按说不应该啊
    如果已经挂上了然后硬盘掉线那读写会直接报错吧
    如果系统启动时候硬盘就掉线了那 ai 生成的 fstab 多半会导致启动停下来
    laminux29
        3
    laminux29  
    OP
       12 days ago
    @uh 数据盘挂载的失败,APP 应该直接崩溃,不应该让 APP 写穿到系统盘。

    原因很简单,前者只需要处理数据盘与 APP ,后者还连累到了系统。
    laminux29
        4
    laminux29  
    OP
       12 days ago
    @lucifer9 还有一种情况,就是维护时,人为 umount 数据盘时,忘了先把 APP 停掉。如果做了防写穿,APP 的数据落盘就不会直接写穿到系统盘上。
    lucifer9
        5
    lucifer9  
       11 days ago
    @laminux29 #4 要是 systemd service 里面写了 WorkingDirectory=/mnt/Data-2 ,并且程序在挂载正常时候就启动了,且代码里面没 chdir 之类的操作,那后续尝试手动 umount 会出错的。
    laminux29
        6
    laminux29  
    OP
       11 days ago
    @lucifer9 #5 如果路径正在使用,当然不能 umount ,因为会报错说该路径正忙。但如果恰哈遇到一个空隙,APP 没有使用该路径,然后手动 umount 了。如果没做防写穿,APP 的 IO 就穿透到系统盘上去了。
    lucifer9
        7
    lucifer9  
       11 days ago via iPhone
    @laminux29 #6 systemd 的 WorkingDirectory=/data 就是设置进程的当前工作目录在 /data 这个挂载点内。这样进程就会持有对该挂载文件系统的引用。哪怕它没有打开任何普通文件,仅仅 cwd 在 /data ,也足以让普通 umount /data 返回 EBUSY 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   898 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 20:02 · PVG 04:02 · LAX 13:02 · JFK 16:02
    ♥ Do have faith in what you're doing.