Virtual Storage Device Emulator product overview
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.
Supported platforms
The following Windows operating system platforms are supported:
- Windows Server 2019
- Windows Server 2016
- Windows 10 32-bit and 64-bit
- Windows 8.1 32-bit and 64-bit
- Windows Server 2012 64-bit
- Windows 8 32-bit and 64-bit
- Windows 7 32-bit and 64-bit
- Windows Server 2008 32-bit and 64-bit
- Windows Vista 32-bit and 64-bit
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:
- Computer system must meet the minimal hardware requirements for supported Windows operating system.
- Sufficient disk space for virtual media storage.
Software requirements:
- Supported Windows operating system with the necessary service pack installed.
NOTE: It is recommended to install all system patches from Windows Update site.
Principal SCSI target architecture
Principal SCSI target architecture of possible interface/hardware configuration:
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.
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.
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:
- LSI53C860
- LSI53C875
- LSI53C895
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.
- SCSI Architecture Model - 3 (SAM-3)
- SCSI Primary Commands - 3 (SPC-3)
- SCSI Block Commands - 3 (SBC-3)
- SCSI Stream Commands - 4 (SSC-4)
- Multi-Media Commands – 6 (MMC-6)
- SCSI Media Changer Commands - 3 (SMC-3)
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.
The following commands from the primary command set are supported.
- Inquiry (12h)
- Log Select (4Ch)
- Log Sense (4Dh)
- Mode Select (6) (15h)
- Mode Select (10) (55h)
- Mode Sense (6) (1Ah)
- Mode Sense (10) (5Ah)
- Persistent Reserve In (5Eh)
- Persistent Reserve Out (5Fh)
- Read Attribute (8Ch)
- Read Buffer (3Ch)
- Release (6) (17h)
- Release (10) (57h)
- Report LUNs (A0h)
- Request Sense (03h)
- Reserve (6) (16h)
- Reserve (10) (56h)
- Security Protocol In (A2h)
- Security Protocol Out (B5h)
- Send Diagnostic (1Dh)
- Test Unit Ready (00h)
- Write Attribute (8Dh)
- Write Buffer (3Bh)
The following shared vital product data parameters are supported.
- Device Identification (83h)
- Supported VPD Pages (00h)
- Unit Serial Number (80h)
The following shared log parameters are supported.
- Read Error Counter (03h)
- Supported Log Pages (00h)
- Write Error Counter (02h)
The following shared mode parameters are supported.
- Control (0Ah)
- Power Condition (1Ah)
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 following commands from the SCSI block command set are supported.
- Format Unit (04h)
- Pre-Fetch (10) (34h)
- Pre-Fetch (16) (90h)
- Prevent Allow Medium Removal (1Eh)
- Read (6) (08h)
- Read (10) (28h)
- Read (12) (A8h)
- Read (16) (88h)
- Read (32) (7Fh/0009h)
- Read Capacity (10) (25h)
- Read Capacity (16) (9Eh/10h)
- Read Defect Data (10) (37h)
- Read Defect Data (12) (B7h)
- Start Stop Unit (1Bh)
- Synchronize Cache (10) (35h)
- Synchronize Cache (16) (91h)
- Verify (10) (2Fh)
- Verify (12) (AFh)
- Verify (16) (8Fh)
- Verify (32) (7Fh/000Ah)
- Write (6) (0Ah)
- Write (10) (2Ah)
- Write (12) (AAh)
- Write (16) (8Ah)
- Write (32) (7Fh/000Bh)
The following mode parameters from SCSI block command set are supported.
- Caching (08h)
- Flexible Disk (05h)
- Format Device (03h)
- Rigid Disk Device Geometry (04h)
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 following commands from the SCSI stream command set are supported.
- Erase (6) (19h)
- Erase (16) (93h)
- Format Medium (04h)
- Load Unload (1Bh)
- Locate (10) (2Bh)
- Locate (16) (92h)
- Prevent Allow Medium Removal (1Eh)
- Read (6) (08h)
- Read (16) (88h)
- Read Block Limits (05h)
- Read Position (34h)
- Report Density Support (44h)
- Rewind (01h)
- Space (6) (11h)
- Space (16) (91h)
- Write (6) (0Ah)
- Write (16) (8Ah)
- Write Filemarks (6) (10h)
- Write Filemarks (16) (80h)
The following vital product data parameters from SCSI stream command set are supported.
- Automation Device Serial Number (B3h)
- Data Transfer Device Element Address (B4h)
- Logical Block Protection VPD page (B5h)
- Manufacturer-assigned Serial Number (B1h)
- Sequential-access Device Capabilities (B0h)
- TapeAlert Supported Flags (B2h)
The following log parameters from SCSI stream command set are supported.
- Device Statistics (14h)
- Sequential-Access Device (0Ch)
- Volume Statistics (17h)
- TapeAlert (2Eh)
The following mode parameters from SCSI stream command set are supported.
- Control Data Protection (0Ah/F0h)
- Data Compression (0Fh/00h)
- Device Configuration (10h)
- Device Configuration Extension (10h/01h)
- Informational Exceptions Control (1Ch)
- Medium Configuration (1Dh)
- Medium Partition (11h)
- Read-Write Error Recovery (01h)
Processor device emulation
Virtual Storage Device Emulator emulates the processor devices according to
SCSI Primary Commands – 2 (SPC-2) standard.
The following commands from the processor device command set are supported.
- Receive (08h)
- Send (0Ah)
Multi-media device emulation
Virtual Storage Device Emulator emulates the Multi-Media (CD/DVD/BD) devices
according to Multi-Media Commands (MMC) standard.
The following commands from the multi-media device command set are supported.
- Blank (A1h)
- Close Track Session (5Bh)
- Format Unit (04h)
- Get Configuration (46h)
- Get Event Status Notification (4Ah)
- Get Performance (ACh)
- Load/Unload Medium (A6h)
- Mechanism Status (BDh)
- Prevent Allow Medium Removal (1Eh)
- Read (10) (28h)
- Read (12) (A8h)
- Read Buffer Capacity (5Ch)
- Read Capacity (25h)
- Read CD (BEh)
- Read Disc Information (51h)
- Read Disc Structure (ADh)
- Read Format Capacities (23h)
- Read TOC/PMA/ATIP (43h)
- Read Track Information (52h)
- Send Cue Sheet (5Dh)
- Set Streaming (B6h)
- Start Stop Unit (1Bh)
- Synchronize Cache (35h)
- Write (10) (2Ah)
- Write (12) (AAh)
- Write And Verify (10) (2Eh)
The following mode parameters from the multi-media device command set are supported.
- Read-Write Error Recovery (01h)
- Write Parameters (05h)
- Caching (08h)
- Timeout and Protect (1Dh)
Optical memory device emulation
Virtual Storage Device Emulator emulates the optical memory (magneto optical
disks) devices according to SCSI Block Commands (SBC) standard.
The following additional commands for the optical memory devices are supported.
- Erase (10) (2Ch)
- Erase (12) (ACh)
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 following commands from the media changer device command set are supported.
- Exchange Medium (A6h)
- Initialize Element Status (07h)
- Move Medium (A5h)
- Prevent Allow Medium Removal (1Eh)
- Read Element Status (B8h)
The following media changer device vital product data parameters are supported.
- TapeAlert Supported Flags (B2h)
The following media changer device log parameters are supported.
- Element Statistics (15h)
- Media Changer Diagnostics Data (16h)
- Media Changer Statistics (14h)
- Tape Alert (2Eh)
The following media changer device mode parameters are supported.
- Device Capabilities (1Fh)
- Element Address Assignment (1Dh)
- Extended Device Capabilites (1Fh/41h)
- Transport Geometry Descriptor (1Eh)
Enabling and disabling of the interface and virtual device
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.
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.
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.
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:
- Manage SCSI target interface state.
- Add new virtual hardware objects and media.
- Remove existing virtual hardware objects and media.
- View and change the properties and state of existing virtual hardware.
- Perform the operations specific to device type.
- Control pseudo SCSI analyzer.
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.
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 SCSI 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.
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 product information
Virtual Storage Device Emulator Technical Description
provides detailed description of the product features.
Product PAD-file is located here.