找回密码
 加入我们
搜索
      
查看: 1146|回复: 6

[NAS] 简要讨论linux服务端(deb系)对win实现smb-direct(RoCEv2)目前的困难

[复制链接]
发表于 2025-3-28 01:33 来自手机 | 显示全部楼层 |阅读模式
众所周知 ,想在linux上搭建可以走roce这样的直通的smb服务器,需要三个方面的条件具备
1. 内核参数 /boot/config-内核 其中的CONFIG_SMB吧啦吧啦需要为yes
2. 服务端允许 这里有个ksmbd可以用
3. 驱动等配置完毕,目前没找到完整的教程

而很多人为了这个目前难以解决的问题跑去给nas装Windows,我认为这是非常遗憾的,有以下几点:
1. linux系统本身的资源占用少
2. linux可以更方便地配置自启动项
3. linux的网桥经过更少的设置可以跑更快,同时修改路由简单明了
4. linux直接就能用容器
5. 有共用内核的lxc
6. 直通硬件设备更方便
7. zfs适配程度更高
等等
所以我最近上网翻了翻, linux之间有nfs on rdma,win之间直接就能跑smb直通,linux-win之间倒是没有什么好的方法。为了防止日后几百块U.2的全闪nas白日梦被耽搁,所以我最近探索了这个技术,得到了一些结果。
根据本人目前的探索,简要分享一下目前的进度和阻碍,本文只讨论linux作为服务端的情况。

1.本人不会编译内核,电脑配置也不够高,经常等几个小时等到个失败。这里分享一下我的方法:参考debian系统安装proxmox的教程,把pve的内核装上来用,pve的内核把这个参数开了,默认的debian我是没有发现开了,ubuntu我也用不习惯,没有了解。

2. ksmbd-tools,软件源直接下载就完事了,教程极其简单 man页面看就完事了(man ksmbd.xxx)。这里需要注意添加的用户密码是加盐的,需要你自行保管,如果遇到权限问题,将ksmbd用户创建同名用户到系统,再配置组。同时经过个人探索,得出结论:对用户A,主组B、组C,无法访问一个权限770,所有者D,所有组C的文件文件夹,所以自行注意,或者直接ACL一把梭哈。这里提醒下想要用ksmbd替代samba的人,debian stable源的 ksmbd-tools(3.4.X版本的)存在bug,具体为无法将共享目录设置为挂载目录(例如 /mnt/A不行,/mnt/A/b才能,意思了解到就行),需要暂时把源变成testing,安装3.5.X版本解决。(同时再次提醒在pve里整这出的人,安装完ksmbd,什么都别动换回stable,否则你下次更新软件或者这次,你的pve大概率会因为比要求新的某某包而被删掉,成功自爆)

3. 对于此问题,我参考了nfs on rdma的类似配置,注意到需要调用驱动监听端口,同时配置服务端客户端,但是我无法了解到ksmbd的类似配置,也不能确定是否需要加载的模块一致,所以无法尝试。根据微软的文档,启用smb直通似乎需要开启smb多通道,这是我目前唯一的线索。


主要问题在于:
1. 如何配置ksmbd,使它知道要兼容一下roce
2. 如何配置驱动,使得能支持roce
3. 如何配置系统,让处于类似的监听rdma包的状态
我目前看到几个老外的帖子解决了,但也只是跑个分,也没提怎么解决的,因为语言和翻译问题,我也不确定是真的解决了。
请各位懂的指导,希望论坛的nas佬有一天再也不会因为能跑到4-5G的rdma存储池放弃docker、lxc容器和sriov的一堆vf。
发表于 2025-3-28 07:03 来自手机 | 显示全部楼层
我只看到了那句几百块u2的Nas梦
发表于 2025-3-28 11:00 | 显示全部楼层
之前搞过一次感觉家用的话nfs over rdma还是samba direct都是不太好用,网卡的话要使用支持rdma的网卡,然后insmod对应的driver,然后能看到rdma的kmod,然后安装对应的librdma.so, 这个一般来说如果是mellanox的话直接安装套件就带,最后nfs的配置里面能启用rdma,实际测下来并没有什么区别。samba就更无解了,只能windows server,linux下user mode的samba工具好像就不支持rdma。
发表于 2025-3-28 11:50 | 显示全部楼层
本帖最后由 网仙 于 2025-3-28 11:53 编辑

我之前是放弃了linux下的RDMA。转投windows server门下。
用winserver提供SMB共享,可在网内任意win PC上实现ROCEV2传输。

最近因为在一台xeon服务器上跑LLM,只能用Ubuntu或者debian,也就是这台linux需要作为客户端访问winserver的smb共享文件夹。
在不使用RDMA的情况下(任务管理器网卡能看到流量),单口传输速度一般不超过30Gbps.跟一张25G网卡相当。所以希望能用上rdma.

因为两头都是mellanox CX6,100G网卡,deepseek给推荐了一个方案,直接使用nvdia的ztrcc模式,但多次尝试均失败。
在unbuntu下安装最新MLNX_OFED驱动后,提示没有成功load mlx5_pci.
等后面有空再研究。
不过据说使用IB模式直连可以很轻松的达成这个诉求,但是需要使用双模的网卡(支持配置成双口ib或者单口ib模式)
发表于 2025-3-28 13:13 | 显示全部楼层
网仙 发表于 2025-3-28 11:50
我之前是放弃了linux下的RDMA。转投windows server门下。
用winserver提供SMB共享,可在网内任意win PC上实 ...

smb运行在tcp协议上,你要用ib的话估计只能IPoIB,转换的话性能优势未必会体现
发表于 2025-3-28 17:52 | 显示全部楼层
商业存储也是32G的FC为主流,主要利用的是多链路提升总体吞吐量,复杂度很高
等商业百G技术成熟下放到家用或开源社区吧
发表于 2025-3-28 18:26 | 显示全部楼层
Linux 采用KSMBD作为服务端,共享SMB给Windows用,是可以的,但不同的kernel性能差异较大,总体来讲,不太稳定,技巧要求过高,再等等吧。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-4-27 20:43 , Processed in 0.113524 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表