????????Copy offload是一个特性,它允许指示文件系统或存储设备拷贝到文件/逻辑块,而不需要本地CPU参与。
????????参考RISC-V峰会主题演讲单线程的性能由于Denard scaling和多线程,性能收到限制(因为摩尔定理)。随着SINA计算技术存储工作组TWG的兴起,将计算offloading到设备或通过光纤将变得更受欢迎因为有几个方案可用。当前内核最通用的方法但还没有合入到的是copy offload 到fabrics或设备上。
1 问题
????????原始工作是有Martin做的。最新的工作是有Mikulas发出的,但还没有合入。这两种方法彼此完全不同。一些存储供应商不鼓励将copy offload请求和正常的READ/WRITE混合。此外,如果一个拷贝请求需要被拆分,当操作失败时,存在副作用,即阻止copy offload在几乎所有常见的部署配置中使用。
2 当前工作状态
- 在不将命令切分为2个(一个用于拷贝IN,一个用于拷贝OUT)时很难处理仲裁的DM/MD栈。在[4]中表明了为什么[3]不适合作为候选。同时[4]对于两个命令方案也有一个没有解决的问题,如何在IN和OUT操作间修改DM布局。
????????去年年底,没有LSFMMM,我们与感兴趣的人进行了一次电话会议,我们希望与更广泛的社区成员分享细节。
3 为什么现在LINUX内核存储系统需要copy offload?
????????随着SNIA计算TWG和解决方案的增加,协议中存在SCSI XCopy的支持,Zoned设备在LINUX内核文件系统中的最新进展,NVME设备的P2P DMA支持,NVME设备和子系统将从copy offload操作中获利。
????????在这个背景下,我们有很多需要等待LINUX内核block层copy offload支持的场景,因此LINUX内核存储子系统可以处理之前提到的问题,允许更有效率的数据offload相关的操作(如move和copy)。
下列为一些需要等待copy offload的场景:
- SCSI-attached storage arrays
- 支持Xcopy DM/MD的栈设备
- 计算存储方案
- 文件系统:本地,NFS和Zonefs
- Block设备:分布的,本地的,以及Zoned设备
- P2P DMA支持方案
- NVME子系统包括NVME PCIE和NVMEOF
4 在会议上将讨论的内容
- 阻塞Copy Offload实现的部分
- 讨论有一个文件系统接口
- 讨论从用户态的系统调用
- 如何将该工作推进
[LSF/MM/BFP ATTEND] [LSF/MM/BFP TOPIC] Storage: Copy Offload (kernel.org)
|