A virtual SCSI host bus adapter (HBA) is composed of two components: a virtual HBA in the guest domain and a virtual storage area network (SAN) in the service domain. The virtual HBA and virtual SAN instances cooperate to implement a SCSI HBA interface for SCSI target drivers that execute in the guest domain. The vSAN service is implemented by the vsan driver, which passes SCSI I/O requests to the physical SCSI HBA driver that executes in the service domain. The vhba driver sends I/O requests to vsan by using a hypervisor-managed logical domain channel (LDC).
A vHBA instance provides access to all SCSI devices that are reachable by a specific vSAN instance. A vHBA can recognize any SCSI device type such as disk, CD, DVD, or tape. The set of reachable SCSI devices changes based on the set of physical SCSI devices that is currently known to the virtual SAN's associated physical HBA driver. The identity and number of SCSI devices known to a specific vHBA are not known until runtime, which also occurs with a physical HBA driver.
The vHBA has virtual LUNs (vLUNs) as its child devices and they behave the same way as physical LUNs. For example, you can use the Oracle Solaris I/O multipathing solution with a vHBA instance and its vLUNs. The device path for a vLUN uses the full cXtYdZsN notation: /dev/[r]dsk/cXtYdZsN. The tY part of the device name indicates the SCSI target device.
After you configure the virtual SAN and virtual SCSI HBA, you can perform operations such as booting a virtual LUN from the OpenBoot prompt or viewing all the virtual LUNs by using the format command.
Figure 8 Virtual SCSI HBAs With Oracle VM Server for SPARC
A virtual SAN exists in a service domain and is implemented by the vsan kernel module, whereas a virtual SCSI HBA exists in a guest domain and is implemented by the vhba module. A virtual SAN is associated with a specific physical SCSI HBA initiator port, whereas a virtual SCSI HBA is associated with a specific virtual SAN.
The vhba module exports a SCSA-compliant interface to receive I/O requests from any SCSA-compliant SCSI target driver. The vhba module translates the I/O requests into virtual I/O protocol messages that are sent through an LDC to the service domain.
The vsan module translates the virtual I/O messages sent by vhba into I/O requests. These requests are sent to a SCSA-compliant physical SCSI HBA driver. The vsan module returns the I/O payload and status to vhba through the LDC. Finally, the vhba forwards this I/O response to the originator of the I/O request.