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:
- When the guest operating system in a virtual machine reads or writes to a SCSI disk, it sends SCSI commands to the virtual disk.
- Device drivers in the virtual machine’s operating system communicate with the virtual SCSI controllers.
- The virtual SCSI controller forwards the command to the VMkernel.
- The VMkernel performs the following tasks.
- Locates the appropriate virtual disk file in the VMFS volume.
- Maps the requests for the blocks on the virtual disk to blocks on the appropriate physical device.
- Sends the modified I/O request from the device driver in the VMkernel to the physical HBA.
- The physical HBA performs the following tasks.
- Packages the I/O request according to the rules of the FC protocol.
- Transmits the request to the SAN.
- 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.