ESXi stores a virtual machine's disk files within a VMFS datastore that resides on a SAN storage device. When virtual machine guest operating systems send SCSI commands to their virtual disks, the SCSI virtualization layer translates these commands to VMFS file operations.

When a virtual machine interacts with its virtual disk stored on a SAN, the following process takes place:

  1. When the guest operating system in a virtual machine reads or writes to a SCSI disk, it sends SCSI commands to the virtual disk.
  2. Device drivers in the virtual machine’s operating system communicate with the virtual SCSI controllers.
  3. The virtual SCSI controller forwards the command to the VMkernel.
  4. The VMkernel performs the following tasks.
    1. Locates the appropriate virtual disk file in the VMFS volume.
    2. Maps the requests for the blocks on the virtual disk to blocks on the appropriate physical device.
    3. Sends the modified I/O request from the device driver in the VMkernel to the physical HBA.
  5. The physical HBA performs the following tasks.
    1. Packages the I/O request according to the rules of the FC protocol.
    2. Transmits the request to the SAN.
  6. Depending on a port the HBA uses to connect to the fabric, one of the SAN switches receives the request. The switch routes the request to the appropriate storage device.