SMB 代表的是服务器消息块 (Server Message Block),它是用于在 Windows 上共享文件的协议的原始名称。 CIFS 代表公共 Internet 文件系统 (Common Internet File System),它是 Microsoft 描述该协议最近一个版本的新字首组合词。
samba认证Samba 有它自己独特的口令数据库。为什么它不使用标准 Unix 口令来认证 administrator 用户呢?当 Windows 发送以明文表示的口令时,它 过去 可能这样做,但所有现代版本的 Windows 都以加密形式发送 SMB/CIFS 口令,这样就与标准 Unix 口令散列不兼容了。换句话说,Samba 没有办法使用标准 Unix passwd 散列来验证 Windows 加密的口令是否正确。幸运的是,Samba 提供了许多方法来将这两个数据库同步,这样系统管理员的日子就好过多了。
Linux samba如果您从原始源码中编译和安装 Samba,可以在 /usr/local/samba/etc/smb.conf 中找到 Samba 的配置文件。但如果您从二进制 RPM 或另一种 Linux 软件包格式安装软件,就很可能在 /etc 中找到 smb.conf。
/usr/local/samba/bin 包含所有 Samba 二进制可执行文件
主要 Samba 可执行文件称为 smbd 和 nmbd。
Smbd 设计为提供 SMB/CIFS 文件共享服务,而 nmbd 通过对 NetBIOS 名利用 IP 地址查找来执行与 WINS 相关的功能。
还有一些其它实用程序,包括 smbclient(一个类似于 ftp 的工具,可用来与 SMB/CIFS 共享连接和交互),以及 testparm(一个方便的实用程序,通过检查来确保 Samba 的主要配置文件的语法正确)。
/usr/local/samba/etc 包含 smb.conf,主要的 Samba 配置文件
Smb.conf 是一个非常重要的文件,包含几乎所有 Samba 的配置选项。
在这个文件中,您可以找到控制全局 Samba 功能的设置,还有启用特定目录树和打印机共享的配置选项。
在获得使用 Samba 的经验的同时,您也将用额外的配置选项(对 Samba 进行微调来适应特定位置)来补充 smb.conf 文件。
对 Samba 最主要的一个抱怨是 smb.conf 文件有相当高的学习曲线。
/usr/local/samba/private 包含 smbpasswd,Samba 的加密口令文件
我在前面提到过 Samba 有自己的口令存储器,它是与标准 Unix passwd 数据库不同的。
在 smbpasswd 文件中, Samba 存储了所有允许访问 Samba 共享的用户和工作站(以及它们相关的口令)。
可以进一步对特定用户和组锁定个别的共享。要修改 smbpasswd 文件,使用名称相同的二进制可执行文件 smbpasswd。
/usr/local/samba/var 包含 Samba 的两个日志文件,log.smb 和 log.nmb
可能您已经猜到,log.smb 是 smbd 的日志文件,而 log.nmb 是 nmbd 的日志文件。
/usr/local/samba/swat 包含用于 SWAT(Samba 的 Web 管理工具)的文件
SWAT 是 Samba Web 管理工具,是灵巧的小 Web 应用程序,可以让管理员远程管理他们的 Samba 网络。
Samba提供了基于CIFS的四个服务:文件和打印服务、授权与被授权、名字解析、浏览服务。前两项服务由smbd提供,后两项服务则由nmbd提供。 简单地说,smbd进程的作用是处理到来的SMB软件包,为使用该软件包的资源与Linux进行协商,nmbd进程使主机(或工作站)能浏览Linux服 务器。
smbd服务进程为客户端提供文件共享与打印机服务。另外,该进程还负责用户权限验证以及锁功能,smbd默认监听的端口是TCP协议的139与445,Samba通过smb服务启动smbd进程,使用netstat -nutlp查看进程端口信息。
nmbd进程提供NetBIOS名称服务,以满足基于Common Internet File System(CIFS)协议的共享访问环境。Samba通过nmb服务启动nmbd进程,该进程默认使用是UDP 137端口。
SMB性能samba的性能在https://www.samba.org/samba/docs/old/Samba3-Developers-Guide/architecture.html中有这样一句话
The longer versions is that there are very good reasons for not making smbd multi-threaded. Multi-threading would actually make Samba much slower, less scalable, less portable and much less robust. The fact that we use a separate process for each connection is one of Samba's biggest advantages.
多线程会使samba变慢,所以samba为每个连接使用单独的进程。【有点酸哈^_^】
不过samba在[samba3.0]windows8&windows2012的版本中增加了SMB Multichannel功能,如果服务器及客户端之间使用SMB Multichannel功能话,性能还是有提高的。
SMB Multichannel在启用samba服务的windows server默认开启。
windows2012中实现SMB Multichannel必须为不同子网的多张网卡
windows2016时SMB Multichannel可以是相同子网的多张网卡了。
RSS网卡帮助把传输负载均匀分散多个CPU核心上,配合SMB多通道可以发挥最大效果!
SMB Multichannel配合NIC teaming也可以实现高一点的性能。
可参考http://blog.51cto.com/wzde2012/2043510
举例说明:
不同子网的多张网卡:网卡1为192.1268.1.1/24,网卡2为192.1268.2.1/24
相同子网的多张网卡:网卡1为192.1268.1.1/24,网卡2为192.1268.1.2/24