我有一对 ProCurve 2810-24G,将与 Dell Equallogic SAN 和 Vmware ESXi 一起使用。由于 ESXi 有 MPIO,我对交换机之间的链路配置有点不确定。中继是交换机之间的正确连接方式吗?
我知道 SAN 和 ESXi 主机的端口应该未标记,那么这是否意味着我想在中继端口上使用标记 VLAN?
这或多或少是配置:
trunk 1-4 Trk1 Trunk
snmp-server community "public" Unrestricted
vlan 1
name "DEFAULT_VLAN"
untagged 24,Trk1
ip address 10.180.3.1 255.255.255.0
no untagged 5-23
exit
vlan 801
name "Storage"
untagged 5-23
tagged Trk1
jumbo
exit
no fault-finder broadcast-storm
stack commander "sanstack"
spanning-tree
spanning-tree Trk1 priority 4
spanning-tree force-version RSTP-operation
Equallogic PS4000 SAN 有两个控制器,每个控制器有两个网络接口。戴尔建议将每个控制器连接到每个交换机。从 vmware 文档来看,似乎建议为每个 pNIC 创建一个 vmkernel。使用 MPIO,这可以实现超过 1 Gbps 的吞吐量。
答案1
对 Chopper3 的回答的评论中存在一些争论,由于对 Equallogic 的网络要求和多路径行为的一些方面了解不够深入,这些争论并不十分清楚。
首先是 VMware 端: 对于 ESXi 端的初学者来说,当前建议在使用 iSCSI 软件启动器时,VMware(适用于 ESX\ESXi 4.1)和 Dell 的 iSCSI 软件启动器,您应该将单个物理网卡映射到将用于 iSCSI 的每个 VMkernel 端口。现在推荐的绑定过程强制执行此操作。它需要每个 VMkernel 端口只有一个活动物理网卡,没有备用网卡。不允许绑定。现在您可以作弊,然后返回并添加故障转移网卡,但目的是 MPIO 将处理故障转移,因此这没有任何用处(至少当一切按 VMware 的预期工作时)。
默认的多路径策略将允许使用循环方式与 Equallogic 阵列建立主动、主动连接。
其次是Equallogic方面: Equallogic 阵列具有双控制器,它们以主动/待机模式运行。对于 PS4000,每个控制器上都有两个千兆位网卡。对于主动控制器,这两个网卡都是活动的,并且可以从同一源接收 IO。网络配置建议将阵列的网卡连接到单独的交换机。从服务器端,您有多个链接,这些链接也应该分布到单独的交换机。现在说说奇怪的部分 - Equallogic 阵列希望所有启动器端口都可以看到阵列上的所有活动端口。这是您需要在两个交换机之间建立中继的原因之一。这意味着,对于具有两个 VMkernel iSCSI 端口和一个 PS4000 的主机,启动器和目标之间有 4 条活动路径 - 两个是“直接”的,两个遍历 ISL。
对于备用控制器的连接,适用相同的规则,但这些网卡仅在控制器故障转移后才会变为活动状态,并且适用相同的原则。在此环境中故障转移后,仍将有四条活动路径。
第三个是更高级的多路径: Equallogic 现在有一个多路径扩展模块,可插入 VMware 可插拔存储架构,提供跨 VMkernel 端口的智能负载平衡(使用最小队列深度、循环或 MRU)。如果所有 vmkernel 上行链路网卡无法连接到所有活动的 Equallogic 端口,则此方法将不起作用。这还可确保实际使用的路径数量保持合理 - 在大型 Equallogic 环境中,主机和 Equallogic 组之间的有效路径数量可能非常高,因为所有目标网卡都处于活动状态,并且所有源网卡都可以看到所有目标网卡。
第四个适用于更大的 Equallogic 环境: 在扩展 Equallogic 环境时,您会将其他阵列添加到共享组中。组中所有成员阵列上的所有活动端口都必须能够看到同一组中所有其他阵列上的所有其他活动端口。这也是您需要胖管道来提供 Equallogic iSCSI 结构中所有交换机之间的交换机间连接的另一个原因。这种扩展还大大增加了发起程序和目标之间的有效活动路径的数量。Equallogic 组由 3 个 PS6000 阵列(每个控制器有 4 个网卡,而 PS4000 有 2 个网卡)和一个带有两个 vmkernel 端口的 ESX 主机组成,因此 MPIO 堆栈将有 24 条可能的活动路径可供选择。
Equallogic 环境中的第五个 Bonding\link 聚合和交换机间链路: 所有阵列间和启动器<->阵列连接都是单点对点千兆连接(如果您有 10Gig 阵列,则为 10Gig)。ESX 服务器端无需绑定,也不会从中获益,您无法绑定 Equallogic 阵列上的端口。Equallogic 交换以太网结构中链路聚合\绑定\无论您想怎么称呼它,唯一与它相关的领域是交换机间链路。这些链路需要能够承载与您环境中活动 Equallogic 端口总数相等的并发流 - 即使阵列端口和启动器端口之间的每个点对点链路限制为 1gbps,您也可能需要大量的聚合带宽。
最后: 在 Equallogic 环境中,从主机(启动器)到阵列的流量可以并且将遍历交换机间链路。特定路径是否这样做取决于该特定路径的源和目标 IP 地址,但每个源端口都可以连接到每个目标端口,并且这些路径中至少有一条需要遍历 ISL。在较小的环境(如本环境)中,所有这些路径都将被使用和激活。在较大的环境中,仅使用可能路径的子集,但会发生相同的分布。主机可用的聚合 iSCSI 带宽(如果配置正确)是其所有 iSCSI vmkernel 端口带宽的总和,即使您连接到单个阵列和单个卷也是如此。这可能有多高效是另一个问题,而且这个答案已经太长了。
答案2
Since ESXi does MPIO, I am a little uncertain on the configuration for links between the switches. Is a trunk the right way to go between the switches?
ESX/i 有自己的路径管理 - 它不会在其链接上进入主动/主动状态,除非它的两个或多个链接连接到同一个交换机或者交换机处于 CAM 共享模式(例如 Cisco 的 VSS) - 否则任何其他的都将是主动/被动配置。
如果您愿意,当然可以在交换机之间建立中继,但假设它们都具有到某个核心交换机或路由器的上行链路?如果是这样,那么我不完全确定为什么您要以这种方式在两个交换机之间建立中继,因为如果第一个交换机发生故障,ESX/i 盒只会切换到第二个交换机(如果配置正确)。
I know that the ports for the SAN and the ESXi hosts should be untagged, so does that mean that I want tagged VLAN on the trunk ports?
我不知道这个假设从何而来,ESX/i 在标记或未标记的设置下工作同样舒适,无论是用于客户机还是 iSCSI 流量。话虽如此,我在使用默认 VLAN 时混合标记和未标记时遇到了问题,所以我现在总是标记所有内容并且没有默认 VLAN,这是一个非常灵活的设置,并且根据我的经验,没有明显的性能损失。
答案3
SAN 阵列控制器定义了您应如何连接它。它是否在同一控制器的两个端口上提供相同的 LUN?然后端口 0 连接到交换机 A,端口 1 连接到交换机 B,下一个控制器也是如此。
为什么您要针对具有 1gbit 上行链路端口的 iSCSI SAN 使用 LACP/以太通道?它对您没有任何帮助。创建 2 个 vswitch,每个 vSwitch 中有一个 pNic,并将第一个 pNic 连接到 switchA,将第二个 pNic 连接到 switchB。这将为您提供针对控制器/交换机/nic 故障的完全冗余。