Ksmbd 让你的 Samba 服务,速度加倍!
大家好我是你们的技术宅,近期有朋友介绍了个好东西——ksmbd。
近期服务器的风扇不行了,提示很久,最近换了风扇,终于不报警了。
为什么要使用ksmbd?
ksmbd 才支持使用Windows cifs的独特特性,比如RDMA。
简单介绍下 ksmbd
ksmbd是一个运行在Linux内核上的SMB3文件共享服务器,它支持Linux CIFS内核模块的用户空间版本,提供了更好的性能和稳定性。
ksmbd提供了一个用户友好的WebUI界面,可以方便地管理共享文件和文件夹,支持Windows、Linux和Mac等操作系统的访问。同时,ksmbd还支持高级特性如SMB加密、多通道、RDMA等,可以提供更加安全、高效的文件共享服务。
ksmbd是一个开源软件,由Open Source Samba小组维护,其代码托管在GitHub上,任何人都可以自由地使用、修改和分发。
ksmbd 性能测试
在这里还要普及一个概念 RDMA,什么是RDMA?
RDMA(Remote Direct Memory Access)是一种高性能、低延迟、低CPU占用的数据传输技术,它允许两个计算机在不同的物理位置之间直接交换数据,而无需CPU的干预。
传统的数据传输方式需要CPU将数据从内存复制到网络接口,再通过网络发送到目标计算机,目标计算机再将数据复制回内存。而RDMA技术则可以直接将数据从一个计算机的内存复制到另一个计算机的内存,跳过了CPU的复制和处理过程,从而提高了数据传输的效率和性能。
RDMA技术通常使用专用的网络适配器,如InfiniBand和RoCE(RDMA over Converged Ethernet),这些适配器支持硬件加速和高速数据传输,可以提供非常低的延迟和高带宽。
RDMA技术在高性能计算、云计算、大数据处理等领域得到了广泛的应用,可以加速数据传输和处理,提高系统的性能和可扩展性。
下面介绍 ksmbd的安装
ksmbd需要和内核结合,所以一般有两种安装方式。
首先下载源码 : 自行搜索 github ksmbd
第一种 作为一个独立模块
安装 相关版本的 linux-header,这里用 ubuntu 示例;
apt install linux-headers-$(uname -r)
安装 gcc
apt install gcc
切换 ksmbd 目录
cd ksmbd
编译
make
安装模块
sudo make install
加载模块
modprobe ksmbd
检查加载成功否
lsmod |grep ksmbd
第二种 作为内核的一部分
Let’s take [linux] as the path to your kernel source dir.
cd [linux] cp -ar ksmbd [linux]/fs/
edit [linux]/fs/Kconfig
source "fs/cifs/Kconfig" +source "fs/ksmbd/Kconfig" source "fs/coda/Kconfig"
edit [linux]/fs/Makefile
obj-$(CONFIG_CIFS) += cifs/ +obj-$(CONFIG_SMB_SERVER) += ksmbd/ obj-$(CONFIG_HPFS_FS) += hpfs/
make menuconfig and set ksmbd
[*] Network File Systems ---> <M> SMB server support
build your kernel
安装ksmbd相关工具链
下载 github ksmbd-tools
编译安装
ubuntu 相关依赖
git gcc pkgconf autoconfautomake libtool make meson ninja-build gawk libnl-3-devlibnl-genl-3-dev libglib2.0-dev
安装完成
用法介绍
man 8 ksmbd.addshareman 8 ksmbd.adduserman 8 ksmbd.controlman 8 ksmbd.mountdman 5 ksmbd.confman 5 ksmbdpwd.db
创建共享目录
mkdir -vp $HOME/MyShare
sudo ksmbd.addshare --add-share=MyShare --options=" path = $HOME/MyShare read only = no "
添加用户
sudo ksmbd.adduser --add-user=MyUser
设置共享权限
sudo ksmbd.addshare --update-share=MyShare --options=" force user = $USER force group = $USER "
加载模块
sudo modprobe ksmbd
开启服务
sudo ksmbd.mountd
更改用户密码
sudo ksmbd.adduser --update-user=MyUser --password=MyNewPassword
删除用户
sudo ksmbd.adduser --del-user=MyUser
关机
sudo ksmbd.control --shutdown
默认配置文件
/usr/local/etc/ksmbd/ksmbd.conf















校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案