如何破解ESXi和VNXe之间的1 Gbit iSCSI限制


15

我的iSCSI网络遇到大麻烦,似乎无法使其尽快运行。

因此,在涉及VMware和EMC专家的情况下,我已经尝试了几乎所有方法来从SAN获得完整性能。

我的设备的简短描述:3个HP DL360 G7 / vSphere 5.5 / 4个板载NIC / 4个PCIe iSCSI英特尔NIC 2个HP 2510-24G 1个EMC VNXe 3100/2个存储处理器,每个存储处理器有2个iSCSI专用NIC / 24个15k SAS RAID10 / 6个7.2k SAS RAID6

我采用了最佳实践,并将存储池均匀地放在两个iSCSI服务器上。我创建了2个iSCSI服务器,每个存储处理器上一个。请查看我的iSCSI配置的图像。

iSCSI配置

iSCSI通信是通过VLAN分开的(禁止为其他VLAN设置),我什至在29xx系列的另一台HP交换机上也尝试过。启用了流量控制(也尝试将其禁用),禁用了巨型。不涉及路由。

在ESX主机上,正在使用所有iSCSI NIC,因为我对每个数据存储都使用了“循环”设置。我还使用1 IO的路径更改策略进行了尝试,因为很多其他人似乎都以这种方式获得了性能。我也尝试过内部NIC(Broadcom),但是没有区别。在交换机上,我可以看到端口在ESX端和VNXe端的使用非常均匀。我有一个完美的负载平衡,但是:我总共不能超过1 Gbit。我确实知道VNXe已针对多个连接进行了优化,而Round Robin确实也需要这样做,但是即使我在2个主机和2个数据存储之间(使用不同的iSCSI服务器)进行存储vMotion时,也可以看到一条大约84 MBit /通过Unisphere Web界面。我经常看到那条线的价格与我不敢相信我的磁盘会完全相同的值 不能交付更多或任务要求不高。情况变得越来越好:在每台主机和每台存储处理器上仅使用一根电缆,即可达到相同的性能。因此,我有很多冗余,但是根本没有额外的速度。

正如我已经看到很多人谈论其iSCSI性能一样,我非常想找出我的配置出了什么问题(该配置已由受过VMware和EMC培训的人员进行了测试和验证)。我感谢每一个意见!

编辑:

是的,我已将vMotion配置为使用多个NIC。除该存储外,vMotion始终通过iSCSI适配器而不是vMotion适配器。我已附上我的配置的屏幕截图。

iSCSI端口绑定

iSCSI目标

iSCSI路径

我知道存储vMotion没有基准,但是最近几天我不得不做很多这样的事情,并且上限一直保持在80 MB / s左右。RAID 10中的6个15k 600 GB SAS磁盘池应该可以轻松地处理更多数据,您认为吗?我为您做了IO Meter测试-尝试了其中一些,最快的是256 KiB 100%读取。我获得了64.45 MB / s的速度-我的Unisphere也显示了大约相同的速度。那是在存储在6个15k 300 GB SAS磁盘(RAID 10)池中的VM中,这一天几乎没有其他活动。

IO表

Unisphere

编辑2:

抱歉,用户名重复,但是我在工作时写了这个问题,它没有使用我已经在Stock Overflow获得的用户名。但是,这是显示我的Round Robin设置的屏幕截图。在所有主机和所有商店上都是相同的。

循环赛


我认为没有错。您到底在期待什么?您是否配置了多NIC vMotion?
ewwhite 2014年

3
执行存储vmotion并不是存储系统的基准,因为vmkernel的I / O和CPU使用率受到限制。您是否尝试过使用iometer等进行基准测试?VNXe中使用哪种磁盘,以及哪种RAID /存储池设置?
pauska 2014年

另外,您可以在vSphere内部发布LUN“管理路径”的屏幕截图吗?
pauska 2014年

您使用的用户登录名不同于以前询问该问题的用户,因此您的编辑陷入了排队。
pauska 2014年

感谢您提供的屏幕截图,但仍然不是我想要的。单击您的esxi主机之一,“配置”选项卡,数据存储,选择要进行故障排除的数据存储,然后单击右下角的“属性”链接。然后单击“管理路径”,然后向我们发送该窗口的屏幕截图。
pauska 2014年

Answers:


1

您可能生成的IOPS不足以真正启动。
看看这里了解如何设定默认从1000多个IOPS更改为较小的值。(这是特定于symmetrix的,但是您可以对VMWare Round Robin Provider执行相同的操作)

但是,我还不确定它是否真的能够仅利用一个数据存储完全并行地利用多个链接。我认为您必须同时对多个数据存储进行IOMeter测试,才能看到好处。(虽然不是100%确定)


如我的问题所述,我已经将路径更改策略设置为1而不是1.000-并没有太大变化。
Ryan Hardy

啊,对不起,我一定忽略了这一部分。
2014年

1

为名为EMC的存储供应商创建SATP规则,将路径策略设置为Round Robine和IOPS,默认设置为1000到1。这将在重新启动后保持不变,并且只要显示新的EMC iSCSI LUN,就会使用此规则。要将其应用于现有的EMC iSCSI LUN,请重新引导主机。

esxcli storage nmp satp rule add --satp="VMW_SATP_DEFAULT_AA" \
  --vendor="EMC" -P "VMW_PSP_RR" -O "iops=1"

我一直尝试在1-3之间更改IOPS,并在单个VM上找到最佳性能。就是说,如果您有许多VM和许多数据存储,则1可能不是最佳选择。

确保将VNXe上的每个接口设置为9000 MTU。同样,带有iSCSI接口的vSwitch以及每个VMKernel都应设置为9000 MTU。在VNXe上,创建两个iSCSI服务器-一个用于SPA,一个用于SPB。最初为每个IP地址关联一个IP。然后查看每个iSCSI Server的详细信息,并为每个SP的每个活动接口添加其他IP。这将为您提供所需的循环性能。

然后至少创建两个数据存储。将一个数据存储与iSCSIServer-SPA关联,将一个数据存储与iSCSIServer-SPB关联。这将确保您的SP之一不会闲置。

最后,ESX端上用于iSCSI的所有接口都应转到单独的vSwitch,且所有接口均处于活动状态。但是,您需要在该指定vSwitch内的ESX侧上的每个接口使用VMkernel。您必须覆盖vSwitch故障转移顺序,以使每个VMKernel具有一个活动适配器,而所有其他适配器均未使用。这是我用于配置ESX主机的部署脚本。每个主机共有8个接口,其中4个用于LAN,另外4个用于iSCSI / VMotion通信。

  1. 执行以下配置

一种。#DNS esxcli网络ip dns搜索add --domain = mydomain.net

esxcli网络ip dns服务器添加--server = XXXX

esxcli网络ip dns服务器添加--server = XXXX

b。#设置相应的主机名更新

esxcli系统主机名设置--host = server1 --domain = mydomain.net

C。#将上行链路添加到vSwitch0 esxcli网络vswitch标准上行链路add --uplink-name = vmnic1 --vswitch-name = vSwitch0

esxcli网络vswitch标准上行链路添加--uplink-name = vmnic4 --vswitch-name = vSwitch0

esxcli网络vswitch标准上行链路添加--uplink-name = vmnic5 --vswitch-name = vSwitch0

d。#创建用于存储的vSwitch1并将MTU设置为9000

esxcli网络vswitch标准添加--vswitch-name = vSwitch1

esxcli网络vswitch标准集--vswitch名称= vSwitch1 --mtu = 9000

e。#将上行链路添加到vSwitch1

esxcli网络vswitch标准上行链路添加--uplink-name = vmnic2 --vswitch-name = vSwitch1

esxcli网络vswitch标准上行链路添加--uplink-name = vmnic3 --vswitch-name = vSwitch1

esxcli网络vswitch标准上行链路添加--uplink-name = vmnic6 --vswitch-name = vSwitch1

esxcli网络vswitch标准上行链路添加--uplink-name = vmnic7 --vswitch-name = vSwitch1

F。#设置vSwitch0的活动NIC

esxcli网络vswitch标准策略故障转移集--vswitch名称= vSwitch0 --active-uplinks = vmnic0,vmnic1,vmnic4,vmnic5

G。#设置vSwitch1的活动NIC

esxcli网络vswitch标准策略故障转移集--vswitch名称= vSwitch1 --active-uplinks = vmnic2,vmnic3,vmnic6,vmnic7

H。#为ESX01(而非ESX02)的iSCSI和vmkernel创建端口组

esxcli网络vswitch标准端口组添加--portgroup-name = iSCSI-vmnic2 --vswitch-name = vSwitch1

esxcli网络ip接口添加--interface-name = vmk2 --portgroup-name = iSCSI-vmnic2 --mtu = 9000

esxcli网络ip接口ipv4设置--interface-name = vmk2 --ipv4 = 192.158.50.152 --netmask = 255.255.255.0 --type = static

vim-cmd主机vc / vmotion / vnic_set vmk2

esxcli网络vswitch标准端口组添加--portgroup-name = iSCSI-vmnic3 --vswitch-name = vSwitch1

esxcli网络ip接口添加--interface-name = vmk3 --portgroup-name = iSCSI-vmnic3 --mtu = 9000

esxcli网络ip接口ipv4设置--interface-name = vmk3 --ipv4 = 192.158.50.153 --netmask = 255.255.255.0 --type = static

vim-cmd主机vc / vmotion / vnic_set vmk3

esxcli网络vswitch标准端口组add --portgroup-name = iSCSI-vmnic6 --vswitch-name = vSwitch1

esxcli网络ip接口添加--interface-name = vmk6 --portgroup-name = iSCSI-vmnic6 --mtu = 9000

esxcli网络ip接口ipv4设置--interface-name = vmk6 --ipv4 = 192.158.50.156 --netmask = 255.255.255.0 --type = static

vim-cmd主机vc / vmotion / vnic_set vmk6

esxcli网络vswitch标准端口组添加--portgroup-name = iSCSI-vmnic7 --vswitch-name = vSwitch1

esxcli网络ip接口添加--interface-name = vmk7 --portgroup-name = iSCSI-vmnic7 --mtu = 9000

esxcli网络ip接口ipv4设置--interface-name = vmk7 --ipv4 = 192.158.50.157 --netmask = 255.255.255.0 --type = static

vim-cmd主机vc / vmotion / vnic_set vmk7

一世。#为ESX02而非ESX01的iSCSI和vmkernel创建端口组

esxcli网络vswitch标准端口组添加--portgroup-name = iSCSI-vmnic2 --vswitch-name = vSwitch1

esxcli网络ip接口添加--interface-name = vmk2 --portgroup-name = iSCSI-vmnic2 --mtu = 9000

esxcli网络ip接口ipv4设置--interface-name = vmk2 --ipv4 = 192.168.50.162 --netmask = 255.255.255.0 --type = static

vim-cmd主机vc / vmotion / vnic_set vmk2

esxcli网络vswitch标准端口组添加--portgroup-name = iSCSI-vmnic3 --vswitch-name = vSwitch1

esxcli网络ip接口添加--interface-name = vmk3 --portgroup-name = iSCSI-vmnic3 --mtu = 9000

esxcli网络ip接口ipv4设置--interface-name = vmk3 --ipv4 = 192.168.50.163 --netmask = 255.255.255.0 --type = static

vim-cmd主机vc / vmotion / vnic_set vmk3

esxcli网络vswitch标准端口组add --portgroup-name = iSCSI-vmnic6 --vswitch-name = vSwitch1

esxcli网络ip接口添加--interface-name = vmk6 --portgroup-name = iSCSI-vmnic6 --mtu = 9000

esxcli网络ip接口ipv4设置--interface-name = vmk6 --ipv4 = 192.168.50.166 --netmask = 255.255.255.0 --type = static

vim-cmd主机vc / vmotion / vnic_set vmk6

esxcli网络vswitch标准端口组添加--portgroup-name = iSCSI-vmnic7 --vswitch-name = vSwitch1

esxcli网络ip接口添加--interface-name = vmk7 --portgroup-name = iSCSI-vmnic7 --mtu = 9000

esxcli网络ip接口ipv4设置--interface-name = vmk7 --ipv4 = 192.168.50.167 --netmask = 255.255.255.0 --type = static

vim-cmd主机vc / vmotion / vnic_set vmk7

j。#为每个iSCSI vmkernel设置活动的NIC

esxcli网络vswitch标准端口组策略故障转移集--portgroup-name = iSCSI-vmnic2 --active-uplinks = vmnic2

esxcli网络vswitch标准端口组策略故障转移集--portgroup-name = iSCSI-vmnic3 --active-uplinks = vmnic3

esxcli网络vswitch标准端口组策略故障转移集--portgroup-name = iSCSI-vmnic6 --active-uplinks = vmnic6

esxcli网络vswitch标准端口组策略故障转移集--portgroup-name = iSCSI-vmnic7 --active-uplinks = vmnic7

k。#创建端口组

esxcli network vswitch标准端口组添加--portgroup-name = VMNetwork1 --vswitch-name = vSwitch0

esxcli network vswitch标准端口组添加--portgroup-name = VMNetwork2 --vswitch-name = vSwitch0

esxcli网络vswitch标准端口组添加--portgroup-name = VMNetwork3 --vswitch-name = vSwitch0

l。#将VLAN设置为VM端口组

esxcli网络vswitch标准端口组集-p VMNetwork1 --vlan-id ##

esxcli网络vswitch标准端口组集-p VMNetwork2 --vlan-id ##

esxcli网络vswitch标准端口组集-p VMNetwork3 --vlan-id ###

米 #删除默认的VM端口组

esxcli network vswitch标准端口组删除--portgroup-name =“ VM Network” -v = vSwitch0

。#启用iSCSI软件适配器

esxcli iscsi软件集--enabled = true

esxcli iscsi networkportal add -A vmhba33 -n vmk2

esxcli iscsi networkportal add -A vmhba33 -n vmk3

esxcli iscsi networkportal add -A vmhba33 -n vmk6

esxcli iscsi networkportal add -A vmhba33 -n vmk7

o。#重命名本地数据存储

主机名> $ var =

vim-cmd hostsvc / datastore / rename datastore1 local-$var

p。#定义适用于EMC VNXe 3300的本机多路径存储阵列类型插件,并将循环IOPS从1000调整为1

esxcli storage nmp satp rule add --satp =“ VMW_SATP_DEFAULT_AA” --vendor =“ EMC” -P“ VMW_PSP_RR” -O“ iops = 1”

q。#刷新网络

esxcli网络防火墙刷新

vim-cmd主机vc / net /刷新

  1. 使用vSphere Client为每个主机配置NTP客户端

一种。配置->时间配置->属性->选项-> NTP设置->添加-> ntp.mydomain.net->选中“重新启动NTP服务以应用更改”->确定->等待…->选择“使用主机启动和停止”->确定->选中“启用NTP客户端->确定

  1. 重新启动主机

  2. 继续执行EMC VNXe Storage Provisioning,完成后返回本指南

  3. 每台主机登录到vSphere Client

  4. 将每个数据存储升级到VMFS-5

一种。配置->存储->高亮显示数据存储->升级到VMFS-5


0

不幸的是,我认为您的设置没有问题。对于单个VM,您不能使用超过1 Gb / s的速度。

这里的要点是,您不希望在类似RAID-0的配置中简单地使用两个(或更多)NIC,而是要同时使用它们

我认为您在交换机上配置的802.3ad(有关链路级聚合的标准)通常无法配置为在不同的NIC之间分割单个连接。这是由于interface-alg选择是如何工作的:它基于src和dst MAC和/或IP /端口,并且单个连接将始终具有相同的MAC / IP /端口

这并不意味着您的设置不能推送更高的数字(tput和IOPS),但这对单个VM可以提取多少性能设置了硬性限制。尝试在2/4个不同的VM上加载2个或4个IOMeter实例:我敢打赌,聚合的吞吐量将比单个VM基准测试更高,但是没有一台计算机会通过1 Gb / s的限制。

Linux桥接和某些高端交换机支持不同的链路聚合方法,并启用完整的条带化聚合网络接口。但是,这对其他交换机/系统如何与这些“非标准”聚合方法进行交互具有重要意义。

无论如何,对于存储网络,如果支持,您应该真正启用巨型帧。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.