Before digging into different type of Initiator Types, Let’s understand first:
- What is Initiator & Target?
- What is Host Bus Adapter?
- What it does and why do we need it?
In networking world, we have Server Client Architecture in which each computer/device on a network can be either a Client or a Server.
A Server is a powerful computing device & it runs multiple services and share it resources with other clients.
Ex. Server running web services known as Web server, Print server, DB server etc…
A Client is usually end device which consumes services from server device. Client is the one which initiate communication with server.
Ex. Laptop, Mobile, Desktop can be considered as Client device while accessing Google server.
In Storage world, we have similar client-server architecture but terminology is little different.
An INITIATOR can be considered as Client and a TARGET can be considered as Server.
WHAT IS INITIATOR & TARGET
An Initiator is the storage device/endpoint that initiates SCSI request. Typically, Initiator serves the same purpose what SCSI adapter does. The only difference is, instead of physically cabling SCSI devices (like HDD, Tape Drives), an SCSI initiator send SCSI commands over an IP/Fiber Channel network.
Ex. Initiator can be any Windows/Linux/ESXi machine or any other operating system having iSCSI/FC initiator module available from the OS.
There are also hardware based Initiators available in market provided by different vendors like Qlogic/Emulex/Broadcom/Brocade.
A Target is the one which serves the SCSI request initiated by SCSI Client device known as Initiator. Similar to Client-Server Architecture, a single Target can serve multiple SCSI requests initiated by Single/Multiple Initiators.
Ex. EMC VNX/VMAX/, HP StorageWorks, Dell EqualLogic, Nimble Storage, Pure Storage etc…
Before digging more into Initiator and Target concepts, let’s put some light on Host Bus Adapter (HBA).
WHAT IS HBA
HBA is the abbreviation of Host Bus Adapter. In simplified words, whatever is the job of NIC (network interface card) in networking world, HBA performs the same function in Storage world.
NIC connects two network devices over network which understands TCP/IP world whereas HBA connects two Storage devices over SAN network which understands SCSI world.
HBA is also a PCI device which gets plugged into PCI/PCIe slot of a server and comes with 2G/4G/8G/16G speed or 10G/40G speed depending on HBA type whether its FC or iSCSI.
Ex. Qlogic/Emulex 4G/8G FC card, Brocade/Broadcom 10G card, Software iSCSI/FCoE etc…
TYPES OF INITIATORS
There are mainly three types of Initiators available in the market.
Software Based Initiator: In these type of initiators, both iSCSI/FCoE & TCP/IP stack is implemented in software itself.
- Cost savings. No need to buy expensive hardware based cards
- Very useful for home labs/Learning storage modules.
- Performance issue due to Host CPU/Mem consumption.
- Limited features/functionalities compared to Hardware based cards.
- VMware Software based iSCSI/FCoE adapter
- Microsoft iSCSI initiator
Hardware Dependent Initiator: In these type of initiators, Only iSCSI/FCoE stack is implemented in Software & IP packet processing gets offloaded to TOE ( TCP/IP offload Engine ) of these type of Hardware based cards.
- Gives better performance than Software based initiators.
- Save Host’s CPU/Mem resources by offloading IP packet processing to hardware cards.
- Performance issue due to Host CPU/Mem still used for iSCSI/FCoE processing.
- Broadcom/Brocade Initiators.
Hardware Independent Initiator: In these type of initiators, Both iSCSI/FCoE and TCP/IP stack is implemented in Hardware itself.
- Best performance. No consumption of Host CPU/Mem resource for iSCSI packet processing.
- Very expensive in compare to other type of initiators.
- Qlogic/Emulex Initiators.