As of vSphere 6.7, asynchronous I/O for NBDSSL transport mode is available. Performance of NBDSSL mode data transfer can be improved with this option.
To implement asynchronous NBDSSL, use the new functions VixDiskLib_ReadAsync and VixDiskLib_WriteAsync in a callback, followed by VixDiskLib_Wait, to replace the VixDiskLib read and write functions. In the development kit, see vixDiskLibSample.cpp for code examples, following logic for the -readasyncbench and -writeasyncbench options.
VDDK has had non-public asynchronous APIs since VDDK 6.0, but behavior is different in earlier releases. File transport mode is synchronous in all releases.
VDDK 6.0 | VDDK 6.5 | 6.7 | |
---|---|---|---|
VixDiskLib_ReadAsync | Always synchronous. |
Same as 6.0. |
For HotAdd and SAN modes, same as 6.0 and 6.5. NBDSSL mode is asynchronous if the ESXi host supports asynchronous NBD. |
VixDiskLib_WriteAsync | For HotAdd and NBDSSL modes, always synchronous. For SAN mode, the API is asynchronous. A thread handles writes one by one in the back-end, so outstanding I/O is always 1. |
Same as 6.0. |
For HotAdd and SAN modes, same as 6.0 and 6.5. NBDSSL mode is asynchronous if the ESXi host supports asynchronous NBD, as does ESXi 6.7. |