gpt4 book ai didi

linux - CIFS/SMB 写入优化

转载 作者:太空宇宙 更新时间:2023-11-04 04:20:26 25 4
gpt4 key购买 nike

我正在考虑对 CIFS/SMB 进行写入优化,以便抑制重复 block 的写入。例如,我从远程共享读取一个文件并修改文件末尾附近的部分。当我保存文件时,我只想将文件中实际更改的部分的写入请求发送回远程端。因此,基本上,抑制所有写入,直到遇到非重复写入为止。那时,抑制将被禁用,并且写入将像平常一样被允许。问题是我找不到任何 MS-SMB/MS-SMB2/MS-CIFS 或其他文档来表明这是否是有效的操作。有谁知道这是否有效?

最佳答案

深入研究 Linux 内核的源代码,可以找到有关 CIFS 的文档 - 包括源代码和文本。例如。 http://www.mjmwired.net/kernel/Documentation/filesystems/cifs.txt

如果您想研究例如的行为CIFS协议(protocol),您可以使用unix命令“dd”对其进行测试。通过 CIFS 挂载任何远程文件系统,例如进入/media/remote。更改到此文件夹

cd /media/remote
现在创建一个包含一些随机内容的文件(例如来自内核的随机池):
dd if=/dev/urandom of=test.bin bs=4M count=5 
在此示例中,您应该看到大约 20MB 的流量。然后在您的计算机上的某个位置(例如您的主文件夹)创建另一个较小的文件:
dd if=/dev/urandom of=~/test_chunk.bin bs=4M count=1
有趣的是,如果您尝试将 block 写入远程测试文件的特定位置,会发生什么:
dd if=~/test_chunk.bin of=test.bin bs=4M count=1 seek=3 conv=notrunc
实际上,这应该只更改目标文件中 5 个 block 中的第 4 个 block 。我想你可以调整 block 大小...我用 4 MB block 做到了这一点。但它应该有助于理解网络上发生的事情。

关于linux - CIFS/SMB 写入优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13736170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com