我在iSCSInetworking上遇到了很大的麻烦,似乎无法使其工作得尽可能快。
所以我已经尝试了几乎所有的东西,从我的SAN获得完整的性能,涉及VMware和EMC的专家。
我的装备的简短描述:用于iSCSI的3个HP DL360 G7 / vSphere 5.5 / 4板载NIC / 4个PCIe Intel NIC 2x HP 2510-24G 1个EMC VNXe 3100/2存储处理器,每个都有2个iSCSI专用NIC / 24x 15k SAS RAID10 / 6x 7.2k SAS RAID6
我采取了最佳做法,并将存储池均匀地放在两个iSCSI服务器上。 我创build了2个iSCSI服务器,每个存储处理器上有一个。 请参阅我的iSCSIconfiguration的图像。

iSCSIstream量是通过VLAN隔离的(禁止为其他VLAN设置),我甚至用另一台29xx系列的HP交换机尝试过。 stream量控制已启用(也尝试禁用),Jumbo已禁用。 没有路由参与。
在ESX主机上,正在使用所有iSCSI NIC,因为我对每个数据存储使用了循环法设置。 我也尝试了1 IO的path更改策略,因为许多其他人似乎以这种方式获得了性能。 我也尝试了内部网卡(Broadcom),但是没有区别。 在交换机上,我可以看到端口被非常均匀地使用,ESX端和VNXe端。 我有一个完美的负载平衡,但是,我总共不能超过1 Gbit。 我知道VNXe已经针对多个连接进行了优化,而Round Robin确实也需要这样做,但是即使在两台主机和两个数据存储(使用不同的iSCSI服务器)之间进行存储vMotion时,我也可以看到一条84 MBit / s通过Unisphere web界面。 我可以经常看到这条线,价值完全相同,我不能相信我的磁盘不能提供更多或者任务不够高。 它变得更好了:每台主机和每个存储处理器上只有一根电缆可以实现同样的性能。 所以我得到了很多的冗余,但没有多余的速度。
正如我见过很多人谈论iSCSI性能的时候,我非常想知道我的configuration有什么问题(已经过VMware和EMC培训的人员的testing和validation)。 我很感激每一个意见!
编辑:
是的,我已将vMotionconfiguration为使用多个NIC。 除此之外,vMotion存储总是通过iSCSI适配器,而不是vMotion适配器。 我附上了我的configuration截图。



我知道存储vMotion是没有基准,但是我必须在过去几天做很多这个,上限一直在80 MB / s左右。 RAID 10中的6个15k 600 GB SAS磁盘池应该可以轻松完成更多工作,您不觉得吗? 我为你做了一个IO Metertesting – 尝试了其中一些,最快的是256 KiB 100%读取。 我得到了64.45 MB / s – 我的Unisphere也显示了相同的速度。 这是存储在6x 15k 300 GB SAS磁盘(RAID 10)池中的虚拟机,几乎没有任何其他活动在一天的这个时间。


EDIT2:
对不起,重复的用户名,但我写了这个问题的工作,它没有使用我的用户名我已经在股票溢出。 但是这里是显示我的循环赛设置的屏幕截图。 所有主机和所有商店都是一样的。

有可能你不会产生足够的IOPS来实现这个function。
在这里看看如何将设置从默认的1'000 IOPS更改为更小的值。 (这是特定于symmetrix的,但是您可以对VMWare Round Robin Provider执行相同的操作)
但是,我还不确定它是否真的能够将一个以上的链接与一个数据存储并行使用。 我认为你必须同时在多个数据存储上进行IOMetertesting才能看到好处。 (虽然不是100%肯定)
为名为EMC的存储供应商创buildSATP规则,将path策略设置为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,并发现在单个虚拟机上performance最好。 这就是说,如果你有很多的虚拟机和大量的数据存储,1可能不是最优的…
确保将VNXe上的每个接口设置为9000 MTU。 此外,带有iSCSI接口的vSwitch应该与每个VMKernel一起设置为9000 MTU。 在您的VNXe上,创build两个iSCSI服务器 – 一个用于SPA,一个用于SPB。 最初为每个IP关联一个IP。 然后查看每个iSCSI服务器的详细信息,并为每个SP的每个活动接口添加额外的IP。 这会给你你正在寻找的循环赛performance。
然后创build至less两个数据存储。 将一个数据存储与iSCSIServer-SPA关联,另一个与iSCSIServer-SPB关联。 这将确保你的一个SP没有闲置。
最后,用于iSCSI的ESX端的所有接口都应该连接到单独的vSwitch,所有接口都处于活动状态。 但是,您将需要在指定的vSwitch内的ESX端上的每个接口使用一个VMkernel。 您必须覆盖每个VMKernel的vSwitch故障切换顺序,使其具有一个活动适配器,其他所有其他未使用活动适配器。 这是我用于configurationESX主机的部署脚本。 每台主机共有8个接口,4个用于LAN,4个用于iSCSI / VMotionstream量。
一个。 #DNS esxclinetworkingIP DNS DNSsearch添加 – 域名= mydomain.net
esxclinetworkingIP DNS服务器添加 – 服务器= XXXX
esxclinetworkingIP DNS服务器添加 – 服务器= XXXX
湾 #设置主机名相应地更新
esxcli系统主机名set –host = server1 –domain = mydomain.net
C。 #将上行链路添加到vSwitch0 esxclinetworkingvswitch标准上行链路添加–uplink-name = vmnic1 –vswitch-name = vSwitch0
esxclinetworkingvswitch标准上行链路添加–uplink-name = vmnic4 –vswitch-name = vSwitch0
esxclinetworkingvswitch标准上行链路添加–uplink-name = vmnic5 –vswitch-name = vSwitch0
d。 #创buildvSwitch1进行存储,并将MTU设置为9000
esxclinetworkingvswitch标准添加–vswitch-name = vSwitch1
esxclinetworkingvswitch标准集–vswitch-name = vSwitch1 –mtu = 9000
即 #将上行链路添加到vSwitch1
esxclinetworkingvswitch标准上行链路添加–uplink-name = vmnic2 –vswitch-name = vSwitch1
esxclinetworkingvswitch标准上行链路添加–uplink-name = vmnic3 –vswitch-name = vSwitch1
esxclinetworkingvswitch标准上行链路添加–uplink-name = vmnic6 –vswitch-name = vSwitch1
esxclinetworkingvswitch标准上行链路添加–uplink-name = vmnic7 –vswitch-name = vSwitch1
F。 #为vSwitch0设置活动的网卡
esxclinetworkingvswitch标准策略故障转移集–vswitch-name = vSwitch0 –active-uplinks = vmnic0,vmnic1,vmnic4,vmnic5
G。 #为vSwitch1设置活动的NIC
esxclinetworkingvswitch标准策略故障转移设置–vswitch-name = vSwitch1 –active-uplinks = vmnic2,vmnic3,vmnic6,vmnic7
H。 #为iSCSI创build端口组,为ESX01创buildvmkernel而不是ESX02
esxclinetworkingvswitch标准端口组add –portgroup-name = iSCSI-vmnic2 –vswitch-name = vSwitch1
esxcli network ip interface add –interface-name = vmk2 –portgroup-name = iSCSI-vmnic2 –mtu = 9000
esxcli network ip interface ipv4 set –interface-name = vmk2 –ipv4 = 192.158.50.152 –netmask = 255.255.255.0 –type = static
vim-cmd hostsvc / vmotion / vnic_set vmk2
esxclinetworkingvswitch标准端口组add –portgroup-name = iSCSI-vmnic3 –vswitch-name = vSwitch1
esxcli network ip interface add –interface-name = vmk3 –portgroup-name = iSCSI-vmnic3 –mtu = 9000
esxcli network ip interface ipv4 set –interface-name = vmk3 –ipv4 = 192.158.50.153 –netmask = 255.255.255.0 –type = static
vim-cmd hostsvc / vmotion / vnic_set vmk3
esxclinetworkingvswitch标准端口组add –portgroup-name = iSCSI-vmnic6 –vswitch-name = vSwitch1
esxcli network ip interface add –interface-name = vmk6 –portgroup-name = iSCSI-vmnic6 –mtu = 9000
esxcli network ip interface ipv4 set –interface-name = vmk6 –ipv4 = 192.158.50.156 –netmask = 255.255.255.0 –type = static
vim-cmd hostsvc / vmotion / vnic_set vmk6
esxclinetworkingvswitch标准端口组add –portgroup-name = iSCSI-vmnic7 –vswitch-name = vSwitch1
esxcli network ip interface add –interface-name = vmk7 –portgroup-name = iSCSI-vmnic7 –mtu = 9000
esxcli network ip interface ipv4 set –interface-name = vmk7 –ipv4 = 192.158.50.157 –netmask = 255.255.255.0 –type = static
vim-cmd hostsvc / vmotion / vnic_set vmk7
一世。 #为iSCSI创build端口组,为ESX02创buildvmkernel而不是ESX01
esxclinetworkingvswitch标准端口组add –portgroup-name = iSCSI-vmnic2 –vswitch-name = vSwitch1
esxcli network ip interface add –interface-name = vmk2 –portgroup-name = iSCSI-vmnic2 –mtu = 9000
esxcli network ip interface ipv4 set –interface-name = vmk2 –ipv4 = 192.168.50.162 –netmask = 255.255.255.0 –type = static
vim-cmd hostsvc / vmotion / vnic_set vmk2
esxclinetworkingvswitch标准端口组add –portgroup-name = iSCSI-vmnic3 –vswitch-name = vSwitch1
esxcli network ip interface add –interface-name = vmk3 –portgroup-name = iSCSI-vmnic3 –mtu = 9000
esxcli network ip interface ipv4 set –interface-name = vmk3 –ipv4 = 192.168.50.163 –netmask = 255.255.255.0 –type = static
vim-cmd hostsvc / vmotion / vnic_set vmk3
esxclinetworkingvswitch标准端口组add –portgroup-name = iSCSI-vmnic6 –vswitch-name = vSwitch1
esxcli network ip interface add –interface-name = vmk6 –portgroup-name = iSCSI-vmnic6 –mtu = 9000
esxcli network ip interface ipv4 set –interface-name = vmk6 –ipv4 = 192.168.50.166 –netmask = 255.255.255.0 –type = static
vim-cmd hostsvc / vmotion / vnic_set vmk6
esxclinetworkingvswitch标准端口组add –portgroup-name = iSCSI-vmnic7 –vswitch-name = vSwitch1
esxcli network ip interface add –interface-name = vmk7 –portgroup-name = iSCSI-vmnic7 –mtu = 9000
esxcli network ip interface ipv4 set –interface-name = vmk7 –ipv4 = 192.168.50.167 –netmask = 255.255.255.0 –type = static
vim-cmd hostsvc / vmotion / vnic_set vmk7
学家 #为每个iSCSI vmkernel设置活动的NIC
esxclinetworkingvswitch标准端口组策略故障转移设置–portgroup-name = iSCSI-vmnic2 –active-uplinks = vmnic2
esxclinetworkingvswitch标准端口组策略故障转移设置–portgroup-name = iSCSI-vmnic3 –active-uplinks = vmnic3
esxclinetworkingvswitch标准端口组策略故障转移设置–portgroup-name = iSCSI-vmnic6 –active-uplinks = vmnic6
esxclinetworkingvswitch标准端口组策略故障转移设置–portgroup-name = iSCSI-vmnic7 –active-uplinks = vmnic7
ķ。 #创build端口组
esxclinetworkingvswitch标准端口组add –portgroup-name = VMNetwork1 –vswitch-name = vSwitch0
esxclinetworkingvswitch标准端口组add –portgroup-name = VMNetwork2 –vswitch-name = vSwitch0
esxclinetworkingvswitch标准portgroup add –portgroup-name = VMNetwork3 –vswitch-name = vSwitch0
湖 #将VLAN设置为VM端口组
esxclinetworkingvswitch标准端口组设置-p VMNetwork1 –vlan-id ##
esxclinetworkingvswitch标准端口组设置-p VMNetwork2 –vlan-id ##
esxclinetworkingvswitch标准端口组设置-p VMNetwork3 –vlan-id ###
米 #删除默认的VM端口组
esxclinetworkingvswitch标准端口组删除–portgroup-name =“VMnetworking”-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
页。 #定义EMC VNXe 3300的本机多path存储arraystypes插件并将循环法IOPS从1000调整为1
esxcli storage nmp satp rule add –satp =“VMW_SATP_DEFAULT_AA”–vendor =“EMC”-P“VMW_PSP_RR”-O“iops = 1”
Q值。 #刷新networking
esxclinetworking防火墙刷新
vim-cmd hostsvc / net / refresh
一个。 configuration – >时间configuration – >属性 – >选项 – > NTP设置 – >添加 – > ntp.mydomain.net – >选中“重新启动NTP服务以应用更改” – >确定 – >等待… – >select“用主机启动和停止” – >确定 – >选中“启用NTP客户端 – >确定”
重新启动主机
继续进行EMC VNXe Storage Provisioning,完成后返回本指南
每个主机login到vSphere客户端
将每个数据存储升级到VMFS-5
一个。 configuration – >存储 – >突出显示数据存储 – >升级到VMFS-5
不幸的是,我认为你的设置没有任何问题。 对于单个VM,您无法使用超过1 Gb / s的速度。
这里的要点是,你不想简单地使用两个(或更多)网卡, 你想同时使用它们在RAID-0类似的configuration。
802.3ad是关于链路级聚合的标准,而且我认为您在交换机上configuration的标准通常不能configuration为在不同的NIC上划分单个连接。 这是由于interface-algselect是如何工作的:它基于src和dst MAC和/或IP /端口,并且单个连接始终具有相同的MAC / IP /端口 。
这并不意味着您的设置无法推送更高的数字(包括tput和IOPS),但是这会严重限制单个VM提取的性能。 尝试在2/4个不同的虚拟机上加载2个或4个IOMeter实例:我敢打赌,聚合吞吐量将远高于单个VM基准testing,但是没有一台机器会通过1 Gb / s的限制。
Linux桥接和一些高端交换机支持不同的链路聚合方法,并支持全条带聚合networking接口。 然而,这对于其他交换机/系统如何与这些“非标准”汇聚方法进行交互具有不小的影响。
无论如何,对于存储networking,如果支持的话,你应该真的启用巨型帧。