Virtual Storage Device Emulator management console screenshot

December 21, 2022
Visual SCSI Explorer version 2.9 is available.

May 23, 2021
Visual SCSI Explorer version 2.9 is being prepared for release.

March 31, 2021
Virtual Storage Device Emulator version 1.3 is available.

Subscribe for product news

Virtual Storage Device Emulator overview

 

Virtual Storage Device Emulator management console screenshot Virtual Storage Device Emulator emulates virtual storage controller, virtual storage devices, and virtual media on Windows operating system platforms. Virtual Storage Device Emulator supports iSCSI interface through external and local network interfaces in SCSI target mode. Virtual Storage Device Emulator supports Parallel SCSI interface in SCSI target mode.

Virtual Storage Device Emulator emulates the Direct Access Block (Disk) devices, Sequential Access (Tape Drive) devices, Processor devices, Multi-Media (CD/DVD/BD) devices, Optical Memory (Magneto-optical) devices, and Media Changer (jukebox) devices. Virtual devices store the data in the files located in local file system. Virtual devices can be configured as having either fixed or removable medium. Virtual media can be loaded to and unloaded from virtual devices manually or in automated way.

Virtual Storage Device Emulator emulates the virtual storage controller device for the operating system and other software to access the virtual storage devices. The virtual storage devices that are emulated through virtual storage controller are visible only on the local computer system the Virtual Storage Device Emulator is running on.

Virtual Storage Device Emulator supports iSCSI interface in SCSI target mode. Virtual storage devices that are emulated through iSCSI interface are visible to external initiators running on the other computer systems connected through the network. Local computer system can access virtual devices through iSCSI interface as well.

Virtual Storage Device Emulator emulates virtual storage devices and media through Parallel SCSI interface. Virtual storage devices and media are visible to external initiators and computer systems that are connected to the local computer system through SCSI cable.

Virtual Storage Device Emulator provides management console with graphical user interface (GUI) for managing the virtual hardware and virtual media configuration.

Virtual Storage Device Emulator provides command line interface (CLI) for automation of virtual hardware and virtual media management procedures. CLI module can be invoked either manually or by the other application or script.

Virtual Storage Device Emulator is intended for being used in the following scenarios.

 

Supported platforms

 

The following Windows operating system platforms are supported:

NOTE: 64-bit operating system platforms are supported only for AMD64 (x64) processor architecture.
NOTE: Service Pack 1 or higher should be installed on Windows Vista OS platform.

 

System requirements

 

Hardware requirements:

Software requirements:

NOTE: It is recommended to install all system patches from Windows Update site.

 

Principal architecture

 

Principal architecture of possible interface/hardware configuration:

Virtual Storage Device Emulator principal architecture

Local computer system has connections to Virtual Storage Controller (red arrow) and network connection to iSCSI interface (green arrows). Remote computers 0 and 1 have network connection to iSCSI interface (green arrows) through LAN/WAN. Remote computers 1 and 2 have SCSI connection to SCSI parallel interface (blue arrows) through SCSI cable.

Virtual Storage Controller supports buses from 0 to 7. iSCSI interface supports single standard TCP port 3260 defined for iSCSI protocol. SCSI parallel interface supports single SCSI port.

Target 0 has multiple logical units from LUN0 to LUNn. Target 1 has multiple logical units from LUN0 to LUNm.

Target 0 has virtual connections (orange bidirectional arrows) to bus 0 of Virtual Storage Controller, standard TCP port of iSCSI interface, and single SCSI port of SCSI parallel interface. Target 0 and all it’s logical units (LUN0, LUN1, …, LUNn) are visible to local computer and to remote computers 0, 1, and 2. Local computer can access Target 0 and it’s logical units through multiple paths – Virtual Storage Controller and local network connection to iSCSI interface. Remote computer 1 can access Target 0 and all it’s logical units through multiple paths - LAN/WAN connection to iSCSI interface and SCSI port on SCSI parallel interface.

Target 1 has virtual connections (red bidirectional arrows) to standard TCP port of iSCSI interface and single SCSI port of SCSI parallel interface. Target 1 and all it’s logical units (LUN0, LUN1, …, LUNm) are visible to remote computers 1 and 2. Remote computer 1 can access Target 1 and all it’s logical units through multiple paths – LAN/WAN connection to iSCSI interface and SCSI port on SCSI parallel interface.

Logical units LUN0 and LUNn on Target 0 and LUNm on Target 1 are configured as having fixed or removable medium and are accessing virtual media data files on local file system (brown arrows). Other logical units on both targets do not have medium.

 

Virtual storage controller emulation

 

The virtual storage controller is the communication endpoint for the operating system and other software to access the virtual storage devices and media.

Virtual storage controller accepts the commands and other requests from the system and passes them to core Virtual Storage Device Emulator component for processing. Virtual storage controller handles requests for multiple virtual devices in parallel.

Virtual storage controller is handled by proprietary kernel-mode WDM driver that is implemented according to Virtual Storport model. Virtual storage controller has maximum transfer length 2 MiB.

Multiple instances of virtual storage controller may be installed in the system. Virtual Storage Device Emulator handles first 256 instances of virtual storage controller. Each instance of virtual storage controller has 8 storage buses. For each storage bus the virtual storage controller supports up to 255 SCSI targets. For each SCSI target the virtual storage controller supports up to 255 logical units.

Virtual storage controller is supported only on 32-bit Windows operating system platforms.

 

iSCSI interface support

 

Virtual Storage Device Emulator supports iSCSI interface in SCSI target mode. Virtual storage devices that are emulated through iSCSI interface are visible to external initiators running on the other computer systems connected through the network. Local computer system can access virtual devices through iSCSI interface as well.

The iSCSI interface implementation supports Internet Protocol version 4 (IPv4). Standard TCP port number 3260 is used. Virtual Storage Device Emulator has proprietary implementation of iSCSI protocol.

The iSCSI interface is supported for all available network interfaces including local host network interface. For each network interface up to 255 SCSI targets are supported. For each SCSI target up to 256 logical units are supported.

 

SCSI Parallel interface support

 

Virtual Storage Device Emulator supports SCSI Parallel interface in SCSI target mode for LSI Logic SCSI host adapters or adapters from the other manufacturers that are based on supported LSI53C8xx SCSI controllers. The following SCSI controllers are supported:

SCSI controller is handled by proprietary kernel-mode WDM driver. The driver switches the controller into SCSI target mode so the local computer system is visible as set of SCSI targets and logical units to external initiators connected through SCSI cable. Such controller cannot be used in SCSI initiator mode.

Virtual Storage Device Emulator handles first 256 instances of supported SCSI controllers. Single storage bus is supported for the controller. If controller has narrow SCSI bus up to 7 SCSI targets are supported for such controller. If controller has wide SCSI bus up to 15 SCSI targets are supported for such controller. For each SCSI target up to 8 logical units are supported.

SCSI parallel interface is supported only on 32-bit Windows operating system platforms.

 

Direct access block device emulation

 

Virtual Storage Device Emulator emulates the direct access block (disks) devices according to SCSI Block Commands (SBC) standard. Direct access device provides randomly accessible bock storage.

The virtual direct access device supports the following major features:

 

Sequential access device emulation

 

Virtual Storage Device Emulator emulates the sequential access (tape drive) devices according to SCSI Stream Commands (SSC) standard. Sequential access device provides sequentially accessible logical object storage.

The virtual sequential access device supports the following major features:

 

Processor device emulation

 

Virtual Storage Device Emulator emulates the processor devices according to SCSI Primary Commands – 2 (SPC-2) standard.

On Send (0Ah) command the virtual processor device receives the data without any processing.

On Receive (08h) command the virtual processor device sends data filled by zeros.

 

Multi-media device emulation

 

Virtual Storage Device Emulator emulates the Multi-Media (CD/DVD/BD) devices according to Multi-Media Commands (MMC) standard.

The virtual multi-media device supports the following major features:

 

Optical memory device emulation

 

Virtual Storage Device Emulator emulates the optical memory (magneto optical disks) devices according to SCSI Block Commands (SBC) standard.

The virtual optical memory device supports the following major features in addition to direct access device functionality:

 

Media changer device emulation

 

Virtual Storage Device Emulator emulates the media changer (jukebox) devices according to SCSI Media Changer Commands (SMC) standard. Virtual media changer devices can be configured as having only removable medium.

The virtual media changer device supports the following major features:

 

Interface enabling and disabling

 

If SCSI target interface is in enabled state all connected SCSI targets and logical units are visible to initiators. If SCSI target interface is in disabled state the initiator does not see the SCSI targets and logical units connected to interface buses.

Enabled/disabled SCSI target interface state is persistent and is kept between system restarts. By default the initial state of SCSI target interface state is disabled for security reasons.

 

Virtual device enabling and disabling

 

Enabling and disabling virtual devices emulates the physical powering on and off of the devices. If virtual device is enabled, it is visible to the host and is available for command processing. If virtual device is disabled, it is not visible to the host and is not available for command processing.

Disabled virtual device state remains in virtual hardware configuration. It is possible to enable/disable virtual devices on the fly. Enabled/disabled device state is persistent and is kept between system restarts. By default the device is enabled right after creation.

 

Removable device medium

 

Virtual Storage Device Emulator emulates removable device medium. The virtual media are located in media pool. The GUI management console and command line interface utility provide the means for managing the virtual media.

All virtual media have the following parameters:

Virtual medium data files are being kept in the special folder. It is possible to view and change path to the folder in management console.

The virtual media can be inserted and removed to/from virtual devices on the fly either manually or in automated way. If virtual medium has been inserted to the device, it remains in permanent inserted/loaded state through the system reboot cycles until it is removed from the device.

Maximum possible number of virtual media is 16382.

 

Virtual hardware management console

 

Virtual Storage Device Emulator provides management console with graphical user interface (GUI) for managing SCSI target interfaces, virtual hardware configuration, virtual media, and pseudo SCSI analyzer.

Management console is implemented as Win32 GDI application with graphical user interface.

Using management console the user can perform the following operations:

 

Command line interface

 

Virtual Storage Device Emulator provides command line interface (CLI) for automation of virtual hardware configuration procedures. Command line interface can be invoked either manually or by the other application or script.

Command line interface is implemented as executable module. The module is Win32 console application.

More detailed description can be found in Virtual Storage Device Emulator Command Line Interface Specification document.

 

Large CDB support

 

Virtual Storage Device Emulator supports 32-byte commands for direct block and optical memory devices on Windows 8/2012 and later operating system platforms. Applications and drivers can execute large commands by means of storage request block request or extended SCSI pass through request.

 

SCSI-3 command and parameter support

 

Virtual Storage Device Emulator supports the SCSI commands and the device parameters as described in the SCSI-3 standards documents. The implementation is based on the following standards documents.

Some features from the latest standards documents are also implemented. Virtual Storage Device Emulator supports mandatory SCSI commands and device parameters, and subset of optional commands and device parameters.

 

Primary commands and parameters support

 

The following commands from the primary command set are supported.

The following shared vital product data parameters are supported.

The following shared log parameters are supported.

The following shared mode parameters are supported.

 

Block commands and parameters support

 

The following commands from the SCSI block command set are supported.

The following additional commands for the optical memory devices are supported.

The following mode parameters from SCSI block command set are supported.

 

Stream commands and parameters support

 

The following commands from the SCSI stream command set are supported.

The following vital product data parameters from SCSI stream command set are supported.

The following log parameters from SCSI stream command set are supported.

The following mode parameters from SCSI stream command set are supported.

 

Processor commands and parameters support

 

The following commands from the processor device command set are supported.

 

Multi-media commands and parameters support

 

The following commands from the multi-media device command set are supported.

The following mode parameters from the multi-media device command set are supported.

 

Media changer commands and parameters support

 

The following commands from the media changer device command set are supported.

The following media changer device vital product data parameters are supported.

The following media changer device log parameters are supported.

The following media changer device mode parameters are supported.

 

Multiple targets and multiple logical units per target

 

Virtual Storage Device Emulator supports multiple SCSI targets. Virtual Storage Device Emulator supports multiple logical units per single SCSI target. Logical unit objects are always assigned to the parent SCSI target object.

The configuration of SCSI targets and logical units can be changed dynamically on the fly.

 

Pseudo SCSI analyzer

 

Pseudo SCSI analyzer provides indication of various events that occur in SCSI subsystem and during SCSI command processing. The typical example is arrival of SCSI command from initiator, command processing in target and logical unit, and command completion with SCSI status and sense data.

Pseudo SCSI analyzer allows individual selection of SCSI target interfaces, virtual hardware objects, and events for monitoring. All changes in selection for monitoring are dynamic and take effect immediately.

The content of pseudo SCSI analyzer view can be saved to the text file for later analysis.

 

Virtual connections

 

Virtual connections between interface buses and SCSI targets specify the path of SCSI command routing. When SCSI target is connected to interface bus the SCSI target and assigned logical units are visible to initiators through the interface bus.

Only one virtual connection is allowed between any particular SCSI target and SCSI interface bus. Single SCSI interface bus can be connected up to 256 SCSI targets. Single SCSI target can be connected up to 256 SCSI interface buses. When SCSI target is connected to multiple SCSI interface buses the so-called multi path I/O (MPIO) configuration is used. In MPIO configuration the SCSI target and all assigned logical units are visible to the initiator in multiple instances.

The configuration of virtual connections can be changed dynamically on the fly.

 

Artificial not ready device state

 

Artificial not ready device state provides the means for checking of device state handling in application client software. If not ready device state is enabled all media access commands will be completed with specified error codes.

User can specify additional sense code and additional sense code qualifier values.

 

SCSI error emulation

 

SCSI error emulation provides the means for checking the error handling in application client software. When emulation of SCSI error is enabled the specified SCSI commands are completed with specified error codes.

User can specify SCSI error emulation mode, SCSI commands and operations to fail, SCSI sense data values (sense key, additional sense code, and additional sense code qualifier), and additional error actions that are specific to device type and error type.

The following SCSI errors are supported:

Device type

Operation

SCSI commands

Sequential access

Read

Read (6) (08h), Read (16) (88h)

Sequential access

Write

Write (6) (0Ah), Write (16) (8Ah), Write Filemarks (6) (10h), Write Filemarks (16) (80h)

CD/DVD/BD

Read

Read (10) (28h), Read (12) (A8h)

CD/DVD/BD

Write

Write (10) (2Ah), Write (12) (AAh), Write And Verify (10) (2Eh)

Media changer

Move

Move Medium (A5h), Exchange Medium (A6h)

 

TapeAlert flags emulation

 

Virtual Storage Device Emulator provides the means for emulation of TapeAlert flags. The TapeAlert flags are supported for sequential access and media changer devices.

The user can manage the current values of TapeAlert flags.

 

Unit attention condition emulation

 

Unit attention condition emulation provides the means for generation of any number of unit attentions with specified parameters.

User can specify additional sense code, additional sense code qualifier, and additional sense bytes values.

 

Device temperature emulation

 

Virtual Storage Device Emulator provides the means for emulation of device temperature.

Device temperature is reported in Temperature (0Dh) log page by Log Sense (4Dh) SCSI command. User can specify the values for Temperature (0000h) and Reference Temperature (0001h) log parameters.

 

Import/export door emulation for media changer device

 

Virtual Storage Device Emulator emulates the opening and closing of import/export door for media changer device.

If import/export door is closed all import/export elements are marked as accessible and media changer device is able to move the media to/from import/export elements. If import/export door is open all import/export elements are marked as not accessible and media movement commands to/from import/export elements will fail.

 

Operation timing emulation for media changer device

 

Virtual Storage Device Emulator emulates the operation timing for media changer device in order to imitate the delays in operations of real devices. It is possible to set in device parameters the duration of media movement and element status initialization operations. If operation timing parameter has non-zero value the corresponding delay will be made during SCSI command execution.

Media movement operation timing specifies the delay in Move Medium (A5h) and Exchange Medium (A6h) SCSI commands. Element status initialization operation timing specifies the delay for single element for Initialize Element Status (07h) and Initialize Element Status With Range (37h) SCSI commands.

 

Device extension module

 

Device extension module handles non-standard commands, parameters, and behavior that are specific to certain device models. Single device extension module can be assigned to virtual device.

The device extension module is implemented as Windows DLL-module. Proprietary programmatic interface is used for interaction between device extension module and Virtual Storage Device Emulator core.

Device extension modules can only be developed on request according to commands and parameters specification.

 

Additional information

 

Product PAD-file is located here.