An I/O request – from start to finish
Now that we have a general understanding of how ESXi presents storage to a virtual machine and handles load balancing and failover, let's have a look at an I/O request from start to finish. The following figure shows a graphical representation of the following steps:
The VM issues a SCSI request to its respective virtual disk.
Drivers from within the guest OS communicate with the virtual storage adapters.
The virtual storage adapter forwards the command to the VMkernel where the PSA takes over.
The PSA loads the specific MPP (in our case the NMP) depending on the logical device holding the virtual machines disk.
The NMP calls the associated PSP for the logical device
The PSP selects the appropriate path to send the I/O down while taking into consideration any load balancing techniques. The I/O is then queued to the hardware/software initiator, CNA, or HBA depending on the storage transport being used.
If the previous step fails, the NMP calls the appropriate SATP to process error codes and mark paths inactive or failed, and then the previous step is repeated.
The hardware/software initiator, CNA, or FC HBA transforms the I/O request into the proper form depending on the storage transport (iSCSI, FC, or FCoE) and sends the request as per the PSAs instructions.