V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
hewitt29
V2EX  ›  Linux

请问 Linux 如何实现从存储 A 目录拷贝文件到存储 B 目录 流量不走客户端本地中转

  •  
  •   hewitt29 · 2022-01-14 15:50:25 +08:00 · 3090 次点击
    这是一个创建于 826 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前使用 cp 命令所实现的过程是 文件从 A 目录到客户机,再由客户机上传到 B 目录。。

    而 win8 以后的系统对存储目录间的拷贝流量是不过本地中转的

    我知道可以使用软链接的方式。。。但是目前的在使用的应用服务对软链接的支持有问题,所以还是想问问有办法像 win 一样的实现方式吗

    第 1 条附言  ·  2022-01-18 15:49:05 +08:00

    就是由图一的方式变为图二的方式

    第 2 条附言  ·  2022-01-18 15:59:33 +08:00

    下面这个是微软的图 1是传统拷贝 2是想要实现的方式。。。现在win默认就是第2种

    14 条回复    2022-01-19 10:29:11 +08:00
    ziseyinzi
        1
    ziseyinzi  
       2022-01-14 15:58:16 +08:00
    你是指远程文件夹?同一个挂载点内不会走本机,跨挂载点就不行了。
    ungrown
        2
    ungrown  
       2022-01-14 19:36:15 +08:00
    感觉你问题没描述清楚,是针对 CIFS/SMB 远程共享吗
    learningman
        3
    learningman  
       2022-01-14 21:28:07 +08:00
    拷贝是 fread 和 fwrite ,肯定是要过本地的,你得自己写驱动重载对应的 posix 接口,里面做判断是不是服务器端执行然后再传给服务器去执行
    est
        4
    est  
       2022-01-14 22:30:57 +08:00   ❤️ 1
    > 目前使用 cp 命令所实现的过程是 文件从 A 目录到客户机,再由客户机上传到 B 目录。。

    你这个 cp 命令不是原装的把。。。
    ltkun
        5
    ltkun  
       2022-01-15 09:14:59 +08:00 via Android
    既然知道软连接 那不还有硬链接呗
    IvanLi127
        6
    IvanLi127  
       2022-01-16 17:42:48 +08:00 via Android
    你的 cp 有点 奇怪
    GoodRui
        7
    GoodRui  
       2022-01-16 21:33:20 +08:00 via iPhone
    scp 不行吗?
    libook
        8
    libook  
       2022-01-17 10:23:56 +08:00
    拓扑是啥样的,描述看不大明白。

    假设是从计算机 X 连到计算机 Y ,操作计算机 Y 上的 A 目录和 B 目录里的文件,如何才能让文件数据不经过计算机 X ,是这个意思吗?

    这样的话,你从 X 上 SSH 到 Y ,然后在 Y 的环境下用 cp 命令就不会走 X 了,就像你在 Y 计算机直接使用 cp 命令一样。
    hewitt29
        9
    hewitt29  
    OP
       2022-01-18 15:25:54 +08:00
    @ziseyinzi 嗯。是的。。我是同一个挂载点。。。但是流量走本地了
    hewitt29
        10
    hewitt29  
    OP
       2022-01-18 15:29:48 +08:00
    @libook 嗯,对的,就是这个意思。。可能是我描述的不清楚

    把你理解中的计算机 Y 换成存储 Y
    hewitt29
        11
    hewitt29  
    OP
       2022-01-18 15:48:24 +08:00
    就是由图一的方式变为图二的方式

    <img src="https://ablum.vercel.app/3.png" >


    <img src="https://ablum.vercel.app/4.png" >
    hewitt29
        12
    hewitt29  
    OP
       2022-01-18 15:54:18 +08:00
    @ungrown 是的 用的是 cifs 挂载的
    yanqiyu
        13
    yanqiyu  
       2022-01-19 10:27:19 +08:00
    Server Side Copy
    https://wiki.samba.org/index.php/Server-Side_Copy
    印象中是默认的啊,你的客户机的 coreutils 和内核版本,主机端服务器版本是多少?以及 samba 的配置文件长啥样?
    yanqiyu
        14
    yanqiyu  
       2022-01-19 10:29:11 +08:00   ❤️ 1
    客户端:
    Linux Kernel support for FSCTL_DUPLICATE_EXTENTS_TO_FILE was added with kernel version 4.2, and can be issued via cp --reflink on supported systems with SMB3+ mounts.
    服务器:
    Samba's smbd file server supports SMB2 Copy-Chunk requests by default, no additional configuration is required.
    看看这些硬性要求有没有被满足
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1066 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 23:05 · PVG 07:05 · LAX 16:05 · JFK 19:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.