With the release of VMware Infrastructure version 3.5, VMware added support for jumbo frames. Although the documentation states that jumbo frames “are not supported for NAS and iSCSI traffic”, jumbo frames for NFS and iSCSI does actually work. Here’s some information on getting it working.
How I Tested
Keep in mind that this is not an “officially supported” configuration (see the section on the “Official” Support Statement below), so use at your own risk. I will not be held responsible if you blow up your production environment trying to make jumbo frames work.
Here’s how I tested the use of jumbo frames for software iSCSI and NFS datastores:
- For the physical switch infrastructure, I used a Cisco Catalyst 3560G running Cisco IOS version 12.2(25)SEB4.
- For the physical server hardware, I used a group of HP ProLiant DL385 G2 servers with dual-core AMD Opteron processors and a quad-port PCIe Intel Gigabit Ethernet NIC.
- For the storage system, I used a NetApp FAS940 running Data ONTAP 7.2.4.
The exact commands and/or procedures may be different for you depending upon the hardware and/or software versions that you’re running in your environment. Keep that in mind.
Configuring the Physical Switch
Fortunately for me, the Cisco Catalyst 3560G does indeed support jumbo frames. (Naturally, you’ll want to ensure that your switch supports jumbo frames.) Jumbo frames are not, however, enabled by default; they must be enabled using the following command in global configuration mode:
system mtu jumbo 9000
Note that 9000 bytes seems to be the generally accepted size for jumbo frames, so that’s what I used.
After running this command, you must reboot the switch. The change doesn’t take effect until a reload. Fortunately, IOS reminds you of this after you enter the command. Once the switch has rebooted, you can verify the MTU setting with this command:
show system mtu
This should report that the system jumbo MTU size is 9000 bytes, confirming that the switch is ready for jumbo frames. Now we’re prepared to configure the storage system.
Configuring the Storage System
Using FilerView, increasing the MTU on the appropriate network interfaces to 9000 bytes is as simple as going to Network > Manage Interfaces and then clicking the Modify link for the interface to be changed. Set the “MTU size” to 9000 (from the default of 1500), click Apply, and you’re ready to roll.
You can verify the settings in FilerView using Network > Manage Interfaces > Show All Interface Details, or by using the “ifconfig -a” command from a Data ONTAP command prompt.
Configuring ESX Server
There is no GUI in VirtualCenter for configuring jumbo frames; all of the configuration must be done from a command line on the ESX server itself. There are two basic steps:
- Configure the MTU on the vSwitch.
- Create a VMkernel interface with the correct MTU.
First, we need to set the MTU for the vSwitch. This is pretty easily accomplished using esxcfg-vswitch:
esxcfg-vswitch -m 9000 vSwitch1
A quick run of “esxcfg-vswitch -l” (that’s a lowercase L) will show the vSwitch’s MTU is now 9000; in addition, “esxcfg-nics -l” (again, a lowercase L) will show the MTU for the NICs linked to that vSwitch are now set to 9000 as well.
Second, we need to create a VMkernel interface. This step is a bit more complicated, because we need to have a port group in place already, and that port group needs to be on the vSwitch whose MTU we set previously:
esxcfg-vmknic -a -i 172.16.1.1 -n 255.255.0.0 -m 9000 IPStorage
This creates a port group called IPStorage on vSwitch1—the vSwitch whose MTU was previously set to 9000—and then creates a VMkernel port with an MTU of 9000 on that port group. Be sure to use an IP address that is appropriate for your network when creating the VMkernel interface.
To test that everything is working so far, use the vmkping command:
vmkping -s 9000 172.16.1.200
Clearly, you’ll want to substitute the IP address of your storage system in that command.
That’s it! From here you should be able to easily add an NFS datastore or connect to an iSCSI LUN using jumbo frames from the ESX server.
“Official” Support Statement
Officially, jumbo frames are only supported by VMware for use by virtual machines. Technically, VMware does not support the use of jumbo frames for the software iSCSI initiator or for use with NFS datastores. At least, that’s my understanding.
So, feel free to tinker around with jumbo frames for IP-based storage, and when VMware adds official support for it in the future—I can’t imagine why they wouldn’t—then you’ll be able to hit the ground running with the configuration steps necessary to make it work.
Tags: ESX, iSCSI, NetApp, NFS, Storage, Virtualization, VMware


25 comments
Comments feed for this article
Trackback link
http://blog.scottlowe.org/2008/04/22/esx-server-ip-storage-and-jumbo-frames/trackback/
Tuesday, April 22, 2008 at 9:42 pm
Trackback from Virtual Enthusiasm - ESX Server, IP Storage, and Jumbo Frames...
Tuesday, April 22, 2008 at 8:24 am
Duncan
Maybe, if you can find the time, you can do some testing with iometer with jumbo frames enabled and disabled to see what the difference is performance wise… would be very interesting to know I guess.
and for Cisco, does changing the MTU size system wide affect the other attached devices in any way?
Tuesday, April 22, 2008 at 9:07 am
Ecio
Hi Scott,
have you done also some benchmarking in order to determine if/how much throughput improvement exists on jumbo frame configuration?
thanks
Tuesday, April 22, 2008 at 9:30 am
Andrew Miller
Fantastic — I’m really hoping for official support for this soon (would love to drop the # of interrupts my servers spend processing storage traffic….not enough to get an iSCSI HBA though ;-).
Tuesday, April 22, 2008 at 11:30 am
Dmitry Sorokin
Does anyone run any performance tests against iSCSI and NFS data stores with and without jumbo frames enabled?
We run tests against NFS data store (NetApp FAS3020) and didn’t see any significant performance improvements. We tested random read/write I/O workload using iozone with 8k blocks, but didn’t test any sequential loads.
Dmitry
Wednesday, April 23, 2008 at 7:08 am
slowe
Duncan,
As far as I am aware, changing the jumbo MTU on a Cisco switch won’t affect non-jumbo traffic. It merely enables the switch to handle jumbo frames. Devices that are configured to use standard sized frames will still operate without any problems.
All,
I *DO* plan on running some performance testing with and without jumbo frames enabled. However, the results of this testing will be a few weeks out, so remain patient! Thanks to everyone for reading and commenting.
Friday, April 25, 2008 at 12:40 am
Dan
We are looking into using Jumbo frames on our 6070 and Sybase/SUN5200 over NFS. We have Cisco 6509’s…
Do you have any general performance numbers on using Jumbo frames on Netapp?
Friday, April 25, 2008 at 4:24 am
Sture
Hi,
We’ve been running Jumbo/NFS in production for nearly two months now. No issues so far
Tuesday, April 29, 2008 at 1:31 pm
Bargi
Hi,
Does anyone know if this also applies to HW ISCSI HBA’s also?
On the topic of performance with jumbo frames I had 2 machines setup and tried with and without, while I saw no real improvement in performance the thing that I could see was that the amount of hit on the processor of the ISCSI target dropped noticable. (can’t tell you specifics but was at least 10-15% easily.
I’ll be setting up a full blown ISCSI/ESX setup over the next few. If anyone thinks it’s worth checking again I’ll put some stats up.
Ray
Friday, May 2, 2008 at 4:04 pm
Jim Heuton
I’ve got to add this one for the noobs (i.e. Me) to ESX 3.5 and iSCSI w/ jumbo frames. You will need to actually add the empty port group to the new vSwitch using the command below BEFORE creating the VMkernel interface (otherwise you’ll get weird errors about the port group not existing). This step is mentioned in the main post, but the command to actually do it isn’t.
esxcfg-vswitch -A vSwitch1
And, thanks for the info! We have jumbo frames currently running on both the VM data and iSCSI networks (EqualLogic arrays w/ 6509s) and haven’t noticed any issues yet.
Friday, May 2, 2008 at 4:05 pm
Jim Heuton
OK, the full command was chopped off. Let’s try that again…
esxcfg-vswitch -A port_group_name vSwitch1
Tuesday, May 13, 2008 at 12:09 pm
Ernie Oporto
So if jumbo frames are not supported for iSCSI or NFS, then a nice compromise would be to use normal frames for the Service Console port and its switch, and set jumbo frames for everything else. Thus, skipping the esxcfg-vmknic command?
Tuesday, May 13, 2008 at 12:24 pm
slowe
Ernie,
Yes, you could do that. That would allow you to use jumbo frames from within VMs–assuming the guest OS supports jumbo frames–and not from the Service Console or VMkernel ports.
Thanks for reading!
Thursday, June 12, 2008 at 4:51 pm
Felix
Hi
I though that the software iSCSI initiator running on the esx host did not support jumbo frames?
If I just want jumbo frames from within my guest OS (Windows 2003 R2), I whould only need to configure the MTU on the vSwitch right
(esxcfg-vswitch -m 9000 vSwitch1)
And no need to a vmkernel?
Thanks
Felix
Thursday, June 12, 2008 at 5:03 pm
slowe
Felix,
Jumbo frames are not supported by VMware for use by the VMkernel (NFS or iSCSI), but they do work just fine as outlined above.
Otherwise, you are correct–to configure jumbo frames for a VM you only need to set the MTU for the vSwitch (and configure the guest OS appropriately).
Thanks for reading!
Thursday, June 12, 2008 at 6:05 pm
Felix
Just need to be sure I got it right
So jumbo frames actually do work from the iSCSI initiator on the ESX?
Thanks
Friday, June 13, 2008 at 12:52 am
slowe
Felix,
Jumbo frames *do* work. I’m using the ESX software iSCSI initiator with jumbo frames right now in my lab. I’m also using NFS with jumbo frames in the lab.
However, jumbo frames are *not* supported for use with iSCSI and NFS. If you run into problems with such a configuration, VMware Technical Support probably isn’t going to help you much.
Does that help clarify things?
Monday, June 16, 2008 at 10:31 am
Fekix
Hi
I can’t get the jumbo/mtu 9000 to work with the microsoft iscsi initator
from my Windows 2003 ENT R2 SP2
It works with the ESX iSCSI initiator
Thanks for a great post
Sunday, June 22, 2008 at 2:22 pm
Justin Grote
Hi Fekix,
You need to use the enhanced vmxnet driver that comes with ESX 3.5 to get jumbo frame support for guest operating sytems. You also get the new TSO TCP Offload feature which further reduces CPU utilization.
http://www.vmware.com/support/vi3/doc/whatsnew_esx35_vc25.html
Wednesday, August 27, 2008 at 3:14 am
Paull
Hi… I have our ESX server connected to our Dell PS5000 currently using standard frames, is there anyway to ‘reconfigure’ the exisiting vmkernel and vswitch, without having to create another ?
Wednesday, August 27, 2008 at 8:40 am
slowe
Paull,
The vSwitch can be reconfigured using esxcfg-vswitch, but you’ll need to recreate the VMkernel NIC using esxcfg-vmknic.
Wednesday, August 27, 2008 at 8:11 pm
Paull
Thanks Slowe…. the only problem I am now having is -
esxcfg-vmknic -a -i 172.16.1.1 -n 255.255.0.0 -m 9000 IPStorage tells me that -m isnt a valid switch. Im doing this via the CLI on my pc and not the server directly. Could this be the issue ?
Wednesday, August 27, 2008 at 9:53 pm
slowe
I take it by your comment that you are using the Remote CLI, then? I would ensure that I have the latest version of the Remote CLI or, if possible, run the command directly on the server. Obviously, this isn’t possible with ESXi, but for “regular” ESX it shouldn’t be an issue.
And keep in mind that this is for ESX 3.5 and higher ONLY.
Hope this helps!
Wednesday, August 27, 2008 at 10:14 pm
Paull
Yeah Remote CLI and i d/l the latest version yesterday and the same issue.. I am using 3.5.. What directory do I need to be in on the ESX server if i try and run these commands.. Logging on as Root and running them in the root directory doesnt work, cannot find command or the like… I really appreciate the help you are giving me here !
Wednesday, August 27, 2008 at 11:07 pm
Paull
Never mind i found it… YAY for the linux nuffies… thanks again for the great help…