This post is also available in: Italian

Type of iSCSI initiators

With an iSCSI storage solution there are some options in the type of initiators:

  • Software initiators: where the entire iSCSI stack (exept levels 1 and 2) is implemented in software (and for this reason require more CPU/mem resources on the host).
  • Hardware initiators: where the entire iSCSI stack is implemented in hardware (using hardware resources on the adapter); also called iSCSI HBA.
  • Hardware assisted initiators: where part of the iSCSI stack is implemented in hardware (but in some case using host resources), like in the case of TCP Offload Engine (TOE) NIC.

The hardware-assisted (or accelerated) initiatorsdepends on specific hardware feature of some new NIC to offload part of the iSCSI and/or network stack. For TCP/IP offload this feature is usually called TOE (TCP/IP offload Engine) and is usually implemented on some Broadcom adapters.

Note that Intel NICs use a quite different approach rather than TOE, that is called Intel® I/O Acceleration Technology:

In the VMware terminology the hardware-assisted (or accelerated) and (HBA) hardware initiators are also called:

  • Dependent Hardware iSCSI Adapter: depends on VMware networking and iSCSI configuration and management interfaces provided by VMware. This type of adapter can be a card that presents a standard network adapter and iSCSI offload functionality for the same port. The iSCSI offload functionality depends on the host’s network configuration to obtain the IP, MAC, and other parameters used for iSCSI sessions. An example of a dependent adapter is the iSCSI licensed Broadcom 5709 NIC.
  • Independent Hardware iSCSI Adapter: implements its own networking and iSCSI configuration and management interfaces. An example of an independent hardware iSCSI adapter is a card that either presents only iSCSI offload functionality or iSCSI offload functionality and standard NIC functionality. The iSCSI offload functionality has independent configuration management that assigns the IP, MAC, and other parameters used for the iSCSI sessions. An example of a independent adapter is the QLogic QLA4052 adapter.

Support in vSphere

VMware vSphere supports both hardware and software iSCSI initiators. Both supports multi-pathing for higher availability. A best practice is to never mix both type of initiators in the same host.

The configuration is quite different, cause in the hardware version (with iSCSI HBA) the configuration is done only under storage adapters, with a software initiator the configuration must be done also on networking and on firewall (in the full ESX version).

Starting from vSphere 4.1 also some type of iSCSI hardware dependent adapter are supported, but with some limits (for example there isn’t any support for Jumbo Frames, and seems that still limit exist also in vSphere 5.0).

For for information about hardware dependent support see also:

Performance difference

In vSphere (starting from 4.0 version) the performance difference (especially in the throughput) between the different type of initiators is quite minimal. The big technical difference is that an hardware (independent) initiator is a way to offload the complete iSCSI and TCP/IP stack on hardware and save host resources (primary CPU and memory resources). But on new CPU this overhead (for software initiator) could be a minimal problem.

For more information see also:

The right choice?

Of course is depends by several factors and also by customers needs. But could be important understand that throughput performance don’t vary too much between the diffent types (of course a software solution mean more host resources)… it depends more on the NIC speed (and the number of NICs) and the Jumbo Frames (this is not really true for all storage, but for most yes).

Software iSCSI initiators are appropriate mostly where there are limited number of host PCI slots. A software initiator can use a port of an existing NIC for iSCSI traffic (but it’s still strongly recommended to isolate iSCSI traffic for performance and security reasons). But also in other cases a software solution could be fine. Of course a software iSCSI solution is also cheaper than a HBA solution (costs of iSCSI HBA is usually comparable or also bigger that FC HBA).

About the choice for hardware dependent or software iSCSI see: Software iSCSI Initiator with Jumbo Frames vs Hardware dependant iSCSI Initiator without Jumbo Frames and Software or Hardware iSCSI?  No Jumbo Frame on HBA?

More info