1
UPGRADING
Release Notes

Here, at StarWind, we don’t have broken things. But perfection has no limits, which is why we continue to build upon our existing solutions and develop them to be up-to-date. We listen to customer feedback, conduct periodic tests, and follow trends in business and technology to keep delivering what hyperconvergence can offer best.

You can find the latest updates regarding the product of your interest below.

NVMe-oF Initiator
2
ANNALS OF DEVELOPMENT

NVMe-oF Initiator Release Notes

Current Features

  • Discovery Service. The Initiator uses it to get the list of NVM subsystems with namespaces that are accessible to the host.
  • KeepAlive. Detects a loss of connection to a remote subsystem.
  • Queue Flow Control Mechanism. Parameters of queues are set for a new target connection.
  • NVMe Multipathing. The Initiator allows connecting the remote subsystem using several ports. In case of loss of path, the connected device remains functional.
  • Asymmetric Namespace Access. The Initiator processes the ANA-related information from the subsystem and translates it into corresponding statuses for MS DSM MPIO module.
  • Asynchronous Event Notifications. Processing of notifications from the subsystem about changes that happen to relevant states.
  • NVMe Reservations.
Version 2.0 (build 672)
24 June 2024

Initiator and Driver Enhancements

Improved:

  • Handling disconnections of NVMe-oF targets connected via Broadcom NICs, reducing the risk of host system freezes.
  • RDMA buffer allocation to prevent session freezes during connection interruptions.
  • SCSI command handling and RAM allocation for older Windows Server versions.
  • Performance and stability for small I/O patterns, especially for 4k read/write operations.

Fixed

  • High IO latency issues.
  • Duplicated session assignment upon connecting an NVMe-oF target.
  • Crashes when disabling network adapters with enabled WMI and connecting NVMe-oF targets.

Core and RDMA Optimizations

Added

  • Header and Data Digests support (activated using TcpHeaderDigests and TcpDataDigests registry parameters)

Improved

  • I/O queue creation and reduced memory leaks.
  • RDMA send optimizations (support for inCapsuleData and LowLatency flags).
  • RDMA request handling and serialization to prevent deadlocks.
  • Performance and stability for RDMA operations and SCSI-NVMeoF translations.
  • Port device interface and memory allocation optimizations for specific NUMA nodes.

Fixed

  • Auto-search for SCSI adapters.
  • BusType reporting issues affecting MPIO.
  • Issue with false I/O errors.
Version 1.9 (build 596)
6 July 2023
  • Added CLI commands insert_all/insert_all_tcp. The command connects all discovered NVMe-oF controllers using RDMA or TCP/IP connection.
  • Minor improvements in processing of keep-alive timeouts.
Version 1.9 (build 578)
1 March 2023
  • Fixed the ReconnectPeriod parameter processing. The ReconnectPeriod parameter value is used to delay reconnect attempts instead of the ReconnectTimeout parameter value. The ReconnectTimeout parameter value defines the timeout required to wait for a session to reconnect before marking the session as failed.
  • Improved the performance: IoLatencyCap default setting changed to 0. It decreases CPU load and improves performance by about 5-10%.
  • Improved the reporting of Thin provisioning capabilities. The device is now always reported as "Thin provisioned" only if it has support for the thin provisioning feature.
Version 1.9 (build 567)
19 October 2022
  • Fixed the ANA state reporting for timed-out connections.
  • Fixed the reporting of the Serial number for devices connected using the WMI (Windows GUI or PowerShell).
  • Fixed the incorrect reporting of Thin provisioning capabilities. The device is now always reported as "The device server does not report a provisioning type" instead of "Thin provisioned."
  • Fixed the error handling for the TCP protocol. The driver could hang up on some incorrect responses.
  • Fixed the memory corruption on PR RELEASE command.
  • Fixed the cleanup on failed connection with RDMA.
Version 1.9 (build 547)
8 August 2022
  • Fixed the issues with stopping the Initiator driver with a large number of established connections. When the Initiator had 40-60 connections, it could hang on driver stop operation or prevent normal system shutdown.
  • Fixed the processing of disconnect operation for connections in the “reconnecting” state. The operation could hang in some cases, preventing the driver from stopping later.
Version 1.9 (build 519)
1 June 2022
  • WMI: MPIO support improved. Target Portal IP address can be selected if target reports multiple ports on discovery. With iSCSI Initiator GUI, it can be done as follows: select target - press Connect button – check Multipath - press Advanced button - select General tab - use Target Portal IP dropdown list. This functionality was available with StarNVMeoF_Ctrl.exe CLI-only in previous versions.
  • WMI: Host node IQN defined with WMI is used for discovery operations now. It is important for cases when target access is limited by host IQNs. It's now possible to configure host IQN using iSCSI Initiator GUI: select Configuration tab and press Change button under the Initiator name panel.
Version 1.9 (build 498)
18 April 2022
  • Default length of Disk Serial ID changed to 40 bytes. It was previously truncated to 36 bytes for compatibility with SCSI protocol. Devices added with previous versions of the initiator will keep using the 36 bytes truncation. Use the registry option to enable truncation to 36 bytes, if required.
  • Initiator stores the values for MaxIoQueuesPerController and IoQueueEntries options when the target is added to use the same values on re-connection.
Version 1.9 (build 493)
18 March 2022
  • Fixed the error in persistent reservations processing. It could lead to storage loss upon the failover procedure in a Windows Server 2019 Cluster when the NVMe-oF-connected storage was configured as Cluster Shared disk.
  • RDMA protocol: NIC drivers compatibility improved.
  • Minor performance optimizations.
Version 1.9 (build 455)
21 July 2021
  • TCP protocol: fixed operation with targets that use multiple R2T requests.
Version 1.9 (build 450)
24 June 2021
  • Fixed queue size negotiation as it had compatibility issues with some controllers.
  • DelayedAcks disabled for TCP protocol for better performance.
  • TCP protocol support added to WMI interface. RDMA and TCP targets are shown with corresponding prefixes in WMI-bases UI, like PowerShell cmdlets and GUI iSCSI Initiator application.
  • Added handling of multiple C2H PDUs per request.
  • Added processing for controller's Maximum Data Transfer Size parameter.
  • Licensing added to the product.
Version 1.9 (build 390)
5 March 2021
  • Added implementation for NVMe over TCP operation. TCP support in the WMI management module will be added later.
  • Added event reporting to Windows System Event Log: initiator logs connection state changes, ANA state updates, session parameters, and other information.
Version 1.8 ( build 332 )
20 October 2020
  • Fixed the issues with stopping drivers with existing IO load or with connections in reconnecting state. These issues could lead to BSOD on reboot or hang-up when the driver was disabled in the device manager in some cases. The driver stopping procedure has been reworked.
Version 1.8 ( build 318 )
12 October 2020
  • Added support for Windows iSCSI Initiator WMI interfaces. The Initiator can be controlled with standard Windows interfaces for iSCSI Initiator management: iSCSI Initiator Desktop application, PowerShell commands for iSCSI Initiator management, iSCSICli.exe
  • Fixed the issue of processing session disconnect on system shutdown, which could lead to system hung on reboot.
  • Added the Installer option to install and configure the Windows MPIO feature.
  • Free License Agreement updated.
Version 1.7 ( build 273 )
4 September 2020
  • Operation with the ANA-enabled target with Failover strategy was significantly reworked: limited the set of operations that are allowed for the path, which is either in the Inaccessible or Transition state; improved the reporting of path states to the system; added notifications about state changes for all paths.
  • Improved the disconnection procedure to limit the resource usage in the case when several devices are being disconnected at once.
  • Fixed the hangup of the system during the driver uninstall when a relatively big number of connections are established.
  • Fixed the MPIO operation for the case when several connections to the same remote port use different NICs on the client system. These paths were treated as equal in previous versions.
Version 1.6 (build 244)
20 July 2020
  • Fixed the processing of errors since some types of errors were not reported to the client system correctly. It could lead to data corruption in some MPIO failover scenarios.
  • Fixed the operation for cases when the target declared support of ANA but did not report the ANA log page properly.
  • Installer enables the MPIO option PathVerificationState now. This setting requires a system reboot after the installation.
Version 1.5 (build 218)
17 June 2020
  • Added processing of "Read Only" attribute of the namespace.
  • Added processing of notifications about changed namespace size.
Version 1.4 (build 207)
3 June 2020
  • Fixed the processing of the failover-failback scenario for MPIO. Disk IO could stall when the failed path would return and the current active path was turned off.
  • Initiator requires enabling the MPIO Path Verification option. It can be done with the PowerShell command:
    • Set-MPIOSetting -NewPathVerificationState Enabled
    • This operation will be added to the installer in later updates.
  • Added a fix for processing the MPIO failover in the scenario when the remote side of the connection is lost without a graceful connection shutdown.
  • ANA state changes translation fixed to notify MPIO about the network disconnects correctly.
  • Asynchronous Event Notifications processing implemented.
  • Added implementation of the ANA functionality: Initiator now processes the ANA-related information for the target correctly and reports it to the client system.
Version 1.3 (build 181)
24 March 2020
  • Added a fix for the operation of the reconnection procedure during the system shutdown.
  • Fixed the error in the processing of the state after the reconnect timeout would expire.
  • When the reconnect is timed out, the driver reports LINK DOWN error to the system.
  • Fixed processing of the LUN counter on reconnects.
  • Fixed the command handling during the reconnect; the client gets the correct error response.
  • PROPERTY GET command response fixed to use the correct bit offset in the structure.
  • Added reconnect timeouts processing to return the correct error to the storage stack on the client system.
Version 1.0.3 (build 140)
23 December 2019
  • Installer added.
  • Persistent connections added.
  • Inf file structure optimized.
  • Set of registry parameters added.
  • Fixes for the driver update procedure.
Version 1.0.3 (build 117)
26 September 2019
  • Initial release of the public technical preview version with basic functionality.
  • Fixes for protocol handling.
  • Keep-alive feature implementation added.
  • Fixes for compatibility with Linux NVMe-oF Kernel Target.
Version 1.0.0 (build 71)
15 March 2019
  • Initial private beta version with basic functionality.
WOW NEWS
Achieve true business agility with StarWind.

Our products are now available at flexible subscription payments simply as part of your OpEx.