考虑使用两台完全相同的WS2012R2服务器的configuration。 两者都有四端口networking板。 每个网卡都有一个网卡连接到其他服务器共享的子网,并最终可以被客户机访问。 每台服务器上的其余三个端口都是“组合在一起”,并连接到仅由两台服务器共享的另一个子网。 我希望看到的是,中小企业的stream量优先考虑更快的3-nicpath,如果有必要的话,只能采用更加拥挤的1-nicpath。
我可以相信SMB3中的负载平衡在这里做正确的事情吗? 如果不是,我可以应用类似于tcp / ip路由成本计算的权重吗?
我感觉相当舒服,告诉你产品会“做正确的事情”,但我没有一个有代表性的环境来模拟你正在谈论的内容。
从技术上讲,恶魔是通过FSCTL_QUERY_NETWORK_INTERFACE_INFO API在服务器计算机的networking接口通信细节之后详细说明的。 此协商实际上在[MS-SMB2]:服务器消息块(SMB)协议版本2和3规范的第4.8节中作为示例显示。 不幸的是,包含与networking连接select关联的逻辑的规范部分只是说“客户端select任何一个networking接口对来build立新的连接…”。 在界面select协议中有一些细微的差别(有趣的是,微软已经从规范中省略了,尽pipe我想有人可能会认为这种行为超出了规范)。 例如, 本文描述了SMB多通道不使用“不可路由”(读取:APIPA和链路本地地址)。
除了上述文章中描述的“非可路由”地址之外,这真的让我怀疑产品中是否存在客户/服务器对上的任意networking接口能够通信的隐含假设。 (这可能是一个失败的静脉,只是等待在一些奇怪的场景,其中的stream量过滤/政策使这个假设不真实。)我会猜测可能有一些偏好接口在同一子网接口的初始频道创build于。 (如果微软发布了这个行为,那肯定会很好!)(我看到我不是唯一一个一直在思考这个问题的人 ,至less…)
您可以从计算机执行Get-SmbMultichannelConnection ,以查看在长时间运行的复制操作期间是否正在创build服务器之间的SMB多通道连接。 如果要查看“未select”path,请添加-IncludeNotSelected参数。
您可以使用New-SmbMultichannelConstraint cmdlet排除SMB多通道的连接,但这并不是加权通道优先级,本身就是排除(这不是您要查找的内容)。
顺便说一句:我假设你在W2K12中使用内置的NIC组合function。 您可能需要使用交换机检查所选的LACP哈希algorithm(在Windows Server中称为“负载平衡模式”)是否最佳。 我已经看到一些关于改变这种模式的讨论,提供不同交换机的更高吞吐量