vSAN 操作取决于网络配置、可靠性和性能。许多支持请求都源于网络配置错误或网络未按预期方式运行。使用 vSAN 网络运行状况检查 运行状况服务包括用于网络状况检查的类别。 每个运行状况检查都有一个 AskVMware AskVMware 以下网络运行状况检查提供了有关您的 vSAN vSAN :基本(单播)连接检查 vSAN vSAN vMotion:基本(单播)连接检查 vSAN 所有主机均已配置 vSAN vmknic vSAN vSAN 所有主机均具有匹配的多播设置。此检查可确保每个主机都具有正确配置的多播地址。 所有主机均具有匹配的子网 vSAN vSAN 主机已从 VC 断开连接 vSAN 存在连接问题的主机 网络延迟 vSAN vMotion:MTU 检查(对较大数据包执行 Ping 操作) vSAN 集群分区 vSAN 基于其他检查的多播评估 检查网络的命令 配置 vSAN vSAN 使用 ESXCLI 和 RVC 命令可确认网络完全正常,并对 vSAN 您可以确认已在所有主机上正确配置用于 vSAN vSAN esxcli vsan network list 通过使用此命令,您可以确定 vSAN 下面的输出显示 vSAN vSAN vSAN 此外,还请务必检查代理组多播和主组多播。 [root@esxi-dell-m:~] esxcli vsan network list Interface VmkNic Name: vmk1 IP Protocol: IP Interface UUID: 32efc758-9ca0-57b9-c7e3-246e962c24d0 Agent Group Multicast Address: 224.2.3.4 Agent Group IPv6 Multicast Address: ff19::2:3:4 Agent Group Multicast Port: 23451 Master Group Multicast Address: 224.1.2.3 Master Group IPv6 Multicast Address: ff19::1:2:3 Master Group Multicast Port: 12345 Host Unicast Channel Bound Port: 12321 Multicast TTL: 5 Traffic Type: vsan 此项检查可提供一些有用的信息,例如,哪些 VMkernel 接口正用于 vSAN vmk1 esxcli network ip interface list 通过此命令,您可以验证 vSwitch 或分布式交换机等项。 使用此命令可检查已连接的 vSwitch 或分布式交换机,以及 MTU 大小,如果已在环境中配置巨型帧,则该大小可能非常有用。在这种情况下,MTU 默认为 1500。 [root@esxi-dell-m:~] esxcli network ip interface list vmk0 Name: vmk0 <<truncated>> vmk1 Name: vmk1 MAC Address: 00:50:56:69:96:f0 Enabled: true Portset: DvsPortset-0 Portgroup: N/A Netstack Instance: defaultTcpipStack VDS Name: vDS VDS UUID: 50 1e 5b ad e3 b4 af 25-18 f3 1c 4c fa 98 3d bb VDS Port: 16 VDS Connection: 1123658315 Opaque Network ID: N/A Opaque Network Type: N/A External ID: N/A MTU: 9000 TSO MSS: 65535 Port ID: 50331814 最大传输单元大小显示为 9000,因此此 VMkernel 端口是针对巨型帧配置的,因为巨型帧需要的 MTU 约为 9,000。对于巨型帧的使用,VMware 不提供任何建议。但是,支持将巨型帧与 vSAN esxcli network ip interface ipv4 get –i vmk2 此命令会显示 vSAN 借助此信息,管理员现在可以开始在命令行中使用其他可用命令来检查 vSAN [root@esxi-dell-m:~] esxcli network ip interface ipv4 get -i vmk1 Name IPv4 Address IPv4 Netmask IPv4 Broadcast Address Type Gateway DHCP DNS ---- ------------ ------------- -------------- ------------ ------- -------- vmk1 172.40.0.9 255.255.255.0 172.40.0.255 STATIC 0.0.0.0 false vmkping vmkping ~ # vmkping -I vmk2 172.32.0.3 -s 1472 -d PING 172.32.0.3 (172.32.0.3): 56 data bytes 64 bytes from 172.32.0.3: icmp_seq=0 ttl=64 time=0.186 ms 64 bytes from 172.32.0.3: icmp_seq=1 ttl=64 time=2.690 ms 64 bytes from 172.32.0.3: icmp_seq=2 ttl=64 time=0.139 ms --- 172.32.0.3 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.139/1.005/2.690 ms 虽然该命令不验证多播功能,但它可以帮助您确定存在网络问题的恶意 ESXi 主机。您还可以检查响应时间以查看 vSAN 如果配置了巨型帧,当巨型帧 MTU 大小不正确时,此命令将不会报告任何问题。默认情况下,此命令使用的 MTU 大小为 1500。如果需要验证巨型帧是否成功以端到端方式运行,请将 vmkping 与较大数据包 (-s) 选项一起使用,如下所示: ~ # vmkping -I vmk2 172.32.0.3 -s 8972 -d PING 172.32.0.3 (172.32.0.3): 8972 data bytes 9008 bytes from 172.32.0.3: icmp_seq=0 ttl=64 time=0.554 ms 9008 bytes from 172.32.0.3: icmp_seq=1 ttl=64 time=0.638 ms 9008 bytes from 172.32.0.3: icmp_seq=2 ttl=64 time=0.533 ms --- 172.32.0.3 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.533/0.575/0.638 ms ~ # 考虑将 -d 添加到 vmkping 命令,以测试是否可以在不拆分的情况下发送数据包。 esxcli network ip neighbor list 此命令有助于验证所有 vSAN 在此配置中,我们有一个四主机集群,因此此命令返回了其他三个主机的 ARP(地址解析协议)条目,包括其 IP 地址及其 vmknic( vSAN [root@esxi-dell-m:~] esxcli network ip neighbor list -i vmk1 Neighbor Mac Address Vmknic Expiry State Type ----------- ----------------- ------ ------- ----- ------- 172.40.0.12 00:50:56:61:ce:22 vmk1 164 sec Unknown 172.40.0.10 00:50:56:67:1d:b2 vmk1 338 sec Unknown 172.40.0.11 00:50:56:6c:fe:c5 vmk1 162 sec Unknown [root@esxi-dell-m:~] esxcli network diag ping 此命令会检查网络上的重复项以及响应的往返时间。 为获取有关各个主机之间 vSAN vSAN [root@esxi-dell-m:~] esxcli network diag ping -I vmk1 -H 172.40.0.10 Trace: Received Bytes: 64 Host: 172.40.0.10 ICMP Seq: 0 TTL: 64 Round-trip Time: 1864 us Dup: false Detail: Received Bytes: 64 Host: 172.40.0.10 ICMP Seq: 1 TTL: 64 Round-trip Time: 1834 us Dup: false Detail: Received Bytes: 64 Host: 172.40.0.10 ICMP Seq: 2 TTL: 64 Round-trip Time: 1824 us Dup: false Detail: Summary: Host Addr: 172.40.0.10 Transmitted: 3 Recieved: 3 Duplicated: 0 Packet Lost: 0 Round-trip Min: 1824 us Round-trip Avg: 1840 us Round-trip Max: 1864 us [root@esxi-dell-m:~] vsan.lldpnetmap 此 RVC 命令会显示上行链路端口信息。 如果在环境中存在启用了链路层发现协议 (Link Layer Discovery Protocol, LLDP) 的非 Cisco 交换机,有一个 RVC 命令可显示上行链路 <-> 交换机 <-> 交换机端口信息。有关 RVC 的更多信息,请参阅《RVC 命令指南》。 此命令可以帮助您确定在 vSAN > vsan.lldpnetmap 02013-08-15 19:34:18 -0700: This operation will take 30-60 seconds ...+---------------+---------------------------+| Host | LLDP info |+---------------+---------------------------+| 10.143.188.54 | w2r13-vsan-x650-2: vmnic7 || | w2r13-vsan-x650-1: vmnic5 |+---------------+---------------------------+ 此功能仅适用于支持 LLDP 的交换机。要对交换机进行配置,请登录到该交换机并运行以下命令: switch# config t Switch(Config)# feature lldp 要验证 LLDP 是否已启用,请执行以下命令: switch(config)#do show running-config lldp
默认情况下,LLDP 在发送和接收模式下均可运行。如果未找到物理交换机信息,请检查 vDS 属性的设置。默认情况下,系统会创建 vDS,并将发现协议设置为 CDP(Cisco 发现协议)。要解决此问题,请将发现协议设置为 LLDP,并在 vDS 上将操作设置为 二者 检查多播通信 多播配置可能会导致初始 vSAN 部署出现问题。 验证多播在 vSAN 环境中是否正常工作的一种最简单的方法是使用 tcpdump-uw 此 tcpdump-uw 在主要主机上,此命令显示正在发送到多播地址的数据包。在所有其他主机上,可以看到相同的数据包(从主要主机传输到多播地址)。如果不显示,则说明多播未正常工作。在集群中的任意主机上运行此处显示的 tcpdump-uw -v [root@esxi-hp-02:~] tcpdump-uw -i vmk2 multicast -v tcpdump-uw: listening on vmk2, link-type EN10MB (Ethernet), capture size 96 bytes 11:04:21.800575 IP truncated-ip - 146 bytes missing! (tos 0x0, ttl 5, id 34917, offset 0, flags [none], proto UDP (17), length 228) 172.32.0.4.44824 > 224.1.2.3.12345: UDP, length 200 11:04:22.252369 IP truncated-ip - 234 bytes missing! (tos 0x0, ttl 5, id 15011, offset 0, flags [none], proto UDP (17), length 316) 172.32.0.2.38170 > 224.2.3.4.23451: UDP, length 288 11:04:22.262099 IP truncated-ip - 146 bytes missing! (tos 0x0, ttl 5, id 3359, offset 0, flags [none], proto UDP (17), length 228) 172.32.0.3.41220 > 224.2.3.4.23451: UDP, length 200 11:04:22.324496 IP truncated-ip - 146 bytes missing! (tos 0x0, ttl 5, id 20914, offset 0, flags [none], proto UDP (17), length 228) 172.32.0.5.60460 > 224.1.2.3.12345: UDP, length 200 11:04:22.800782 IP truncated-ip - 146 bytes missing! (tos 0x0, ttl 5, id 35010, offset 0, flags [none], proto UDP (17), length 228) 172.32.0.4.44824 > 224.1.2.3.12345: UDP, length 200 11:04:23.252390 IP truncated-ip - 234 bytes missing! (tos 0x0, ttl 5, id 15083, offset 0, flags [none], proto UDP (17), length 316) 172.32.0.2.38170 > 224.2.3.4.23451: UDP, length 288 11:04:23.262141 IP truncated-ip - 146 bytes missing! (tos 0x0, ttl 5, id 3442, offset 0, flags [none], proto UDP (17), length 228) 172.32.0.3.41220 > 224.2.3.4.23451: UDP, length 200 尽管此输出可能显得有些混乱,但此处显示的输出足以说明集群中的四个主机正在从主要主机获取检测信号。必须在每个主机上运行此 tcpdump-uw 如果某些 vSAN 主机无法从主要主机获取时长为一秒的检测信号,则网络管理员需要检查其交换机的多播配置。 为避免出现令人讨厌的 truncated-ip – 146 bytes missing! –s0 [root@esxi-hp-02:~] tcpdump-uw -i vmk2 multicast -v -s0 tcpdump-uw: listening on vmk2, link-type EN10MB (Ethernet), capture size 65535 bytes 11:18:29.823622 IP (tos 0x0, ttl 5, id 56621, offset 0, flags [none], proto UDP (17), length 228) 172.32.0.4.44824 > 224.1.2.3.12345: UDP, length 200 11:18:30.251078 IP (tos 0x0, ttl 5, id 52095, offset 0, flags [none], proto UDP (17), length 228) 172.32.0.3.41220 > 224.2.3.4.23451: UDP, length 200 11:18:30.267177 IP (tos 0x0, ttl 5, id 8228, offset 0, flags [none], proto UDP (17), length 316) 172.32.0.2.38170 > 224.2.3.4.23451: UDP, length 288 11:18:30.336480 IP (tos 0x0, ttl 5, id 28606, offset 0, flags [none], proto UDP (17), length 228) 172.32.0.5.60460 > 224.1.2.3.12345: UDP, length 200 11:18:30.823669 IP (tos 0x0, ttl 5, id 56679, offset 0, flags [none], proto UDP (17), length 228) 172.32.0.4.44824 > 224.1.2.3.12345: UDP, length 200 tcpdump vSAN 集群中的每个 ESXi 主机发出常规 IGMP 成员资格报告(加入)。 tcpdump [root@esxi-dell-m:~] tcpdump-uw -i vmk1 igmp tcpdump-uw: verbose output suppressed, use -v or -vv for full protocol decode listening on vmk1, link-type EN10MB (Ethernet), capture size 262144 bytes 15:49:23.134458 IP 172.40.0.9 > igmp.mcast.net: igmp v3 report, 1 group record(s) 15:50:22.994461 IP 172.40.0.9 > igmp.mcast.net: igmp v3 report, 1 group record(s) 输出显示正在生成 IGMP v3 报告,表明 ESXi 主机会定期更新其成员资格。如果网络管理员不确定 vSAN ESXi 主机是否会正确生成 IGMP,则可以在集群中的每个 ESXi 主机上运行此命令并显示相关跟踪信息以进行验证。 如果您具有多播通信,请使用 IGMP v3。 事实上,可以使用以下命令同时查看多播和 IGMP 流量: [root@esxi-hp-02:~] tcpdump-uw -i vmk2 multicast or igmp -v -s0 一个常见问题是,在多个物理交换机上配置了 vSAN 集群后,虽然已在一个交换机上启用多播,但未跨交换机启用多播。在这种情况下,集群由一个分区中的两个 ESXi 主机构成,但另一个 ESXi 主机(连接到其他交换机)无法加入此集群,而是在另一个分区中构成自己的 vSAN 集群。之前介绍的 vsan.lldpnetmap 构成 vSAN 集群时,会有一些指标显示多播可能存在问题。 假定已按照子网、VLAN 和 MTU 的检查表执行了相关步骤,并且集群中的每个主机都可以对集群中的所有其他主机执行 vmkping 如果在创建集群时存在多播问题,则常见症状是每个 ESXi 主机构成各自的 vSAN 集群,并以自身作为主要主机。如果每个主机具有唯一的网络分区 ID,则此症状表示主机之间没有多播。 但是,如果一部分 ESXi 主机构成一个集群,而另一部分主机构成另一个集群,并且每个集群都具有唯一分区和各自的主要主机、备份主机甚至代理主机,则说明在交换机中启用了多播,但未跨交换机启用多播。vSAN 显示第一个物理交换机上的主机构成了其自己的集群分区,而第二个物理交换机上的主机也构成了其自己的集群分区,并且每个集群都具有自己的主要主机。如果可以确认集群中的主机连接到的交换机,并且集群中的所有主机都连接到同一交换机时,则可能就是这个问题。 检查 vSAN 网络性能 确保 ESXi 主机之间具有足够的带宽。此工具可帮助您测试 vSAN 网络是否以最佳方式运行。 要检查 vSAN 网络的性能,您可以使用 iperf /usr/lib/vmware/vsan/bin/iperf.copy. -–help VMware 知识库文章 2001003 可帮助您进行设置和测试。 在委托创建 vSAN 集群时,此功能非常有用。如果在集群已处于生产环境中时在 vSAN 网络上运行 iperf 检查 vSAN 网络限制 vsan.check.limits > ls 0 / 1 vcsa-04.rainpole.com/ > cd 1 /vcsa-04.rainpole.com> ls 0 Datacenter (datacenter) /vcsa-04.rainpole.com> cd 0 /vcsa-04.rainpole.com/Datacenter> ls 0 storage/ 1 computers [host]/ 2 networks [network]/ 3 datastores [datastore]/ 4 vms [vm]/ /vcsa-04.rainpole.com/Datacenter> cd 1 /vcsa-04.rainpole.com/Datacenter/computers> ls 0 Cluster (cluster): cpu 155 GHz, memory 400 GB 1 esxi-dell-e.rainpole.com (standalone): cpu 38 GHz, memory 123 GB 2 esxi-dell-f.rainpole.com (standalone): cpu 38 GHz, memory 123 GB 3 esxi-dell-g.rainpole.com (standalone): cpu 38 GHz, memory 123 GB 4 esxi-dell-h.rainpole.com (standalone): cpu 38 GHz, memory 123 GB /vcsa-04.rainpole.com/Datacenter/computers> vsan.check_limits 0 2017-03-14 16:09:32 +0000: Querying limit stats from all hosts ... 2017-03-14 16:09:34 +0000: Fetching vSAN disk info from esxi-dell-m.rainpole.com (may take a moment) ... 2017-03-14 16:09:34 +0000: Fetching vSAN disk info from esxi-dell-n.rainpole.com (may take a moment) ... 2017-03-14 16:09:34 +0000: Fetching vSAN disk info from esxi-dell-o.rainpole.com (may take a moment) ... 2017-03-14 16:09:34 +0000: Fetching vSAN disk info from esxi-dell-p.rainpole.com (may take a moment) ... 2017-03-14 16:09:39 +0000: Done fetching vSAN disk infos +--------------------------+--------------------+-----------------------------------------------------------------+ | Host | RDT | Disks | +--------------------------+--------------------+-----------------------------------------------------------------+ | esxi-dell-m.rainpole.com | Assocs: 1309/45000 | Components: 485/9000 | | | Sockets: 89/10000 | naa.500a075113019b33: 0% Components: 0/0 | | | Clients: 136 | naa.500a075113019b37: 40% Components: 81/47661 | | | Owners: 138 | t10.ATA_____Micron_P420m2DMTFDGAR1T4MAX_____ 0% Components: 0/0 | | | | naa.500a075113019b41: 37% Components: 80/47661 | | | | naa.500a07511301a1eb: 38% Components: 81/47661 | | | | naa.500a075113019b39: 39% Components: 79/47661 | | | | naa.500a07511301a1ec: 41% Components: 79/47661 | <<truncated>> 从网络角度而言,RDT 关联 (Assocs) 和套接字计数非常重要。在 vSAN 6.0 及更高版本中,每个主机具有 45,000 个关联。RDT 关联用于跟踪 vSAN 内的对等网络状态。系统会调整 vSAN 的大小,以便它不会用尽 RDT 关联。vSAN 还会限制允许使用的 TCP 套接字数量,并且系统会调整 vSAN 大小,使其永不会用尽 TCP 套接字的分配量。每个主机具有 10,000 个套接字的限制。 vSAN 客户端 对于给定的 vSAN 对象,只有一个 vSAN 所有者 |