The Pavilion HyperParallel Data PlatformTM provides including industry leading performance, density, scalability, and flexibility. Now, Pavilion brings that high performance to Microsoft customers with support for NVMe-oF for Windows by securing WHQL certification.
Delivering consistent high performance from a storage platform requires several things, including:
- Ability to run different protocols, natively, on independent storage controllers.
- Designed to take advantage of high speed, low latency protocol, such as NVMe-oF, to connect users and applications to data.
- Compatible with the existing infrastructure and operating systems (i.e. block devices by Linux and SCSI devices by Windows and iSCSI) to be accessible through a network as an Initiator and target.
Working with Microsoft Windows requires more than a simple compatibility requirement.
What is WHQL?
Microsoft requires vendors to secure a Windows Hardware Qualification List (WHQL) certification which demonstrates the vendor’s ability to seamlessly incorporate into MS operating systems.
What’s Involved with Securing Certification? And What did Pavilion have to Demonstrate to Earn the Certification?
To earn a WHQL certification on the Windows NVMe-over-TCP initiator, vendors must demonstrate the following:
- The driver must be designed to fit into the infrastructure provided by Microsoft Windows and provide the best possible performance.The design decouples the Network infrastructure component and the Storage component because of the delegation of jobs to the different components. I/O requests will be handled by the storage components, while networking communication, NVMe control, and data path communication will be taken care of by the network infrastructure components. The network infrastructure component is known as the NVMe over Fabric bus driver which is shown as “Pavilion Data Systems NVMe-oF Bus Enumerator”. The storage component, which will take care of the data path, is inserted as “Pavilion Data Systems NVMe-oF StorPort Virtual Adapter”. This distinction is done because the Bus driver can handle infrastructure related requests (TCP, RDMA, and PCIe, etc.) and will handle only NVMe communication over the respective medium; and for storage if created once and stabilized will not be needed to change it for storage related components.
- The driver should have a modular design which can maximize the storage and network infrastructure provided by Microsoft Windows to create high performance code.A modularized design of the Bus driver provides maximum control for implementation across infrastructure types (PCIe, RDMA and TCP etc.). This gives developers the freedom to design infrastructure specific performance-based code implementation and optimization. Some of the optimization features include:
- A stack allocation strategy for implementing the low stack hogging functions
- Designing the functions which are small, but have complete functionality
- A specific design for each different fabric (e.g., PCIe needs a scatter-gather list and TCP requires Data MDLs)
- Driver implementation for maximum performance from the Pavilion HyperParallel Data Platform over Windows. The Pavilion HyperParallel Data Platform delivers up to 120GB/s for Read and 100GB/s Write performance from each 4RU appliance. This performance needs to be leveraged by hosts (and in turn by the applications that need the data) which are accessing Pavilion storage with the lowest possible latency. To do this we need to implement the code with the following optimization:
- Using a small functional stack
- Fast execution of code design
- Implementing asynchronous Data IO handling, Admin command handling and fast IO completion as well by leveraging the fabric specific optimization
- Providing MPIO support
- Testing, application of bug fixes and compliance verificationOnce the design implementation has been completed, unit testing begins. Systems testing, SCSI compliance, and storage stability are all tested to ensure the high availability of the data and stability. These are several verifications which the initiator package goes through, including:
- Unit testing (done at the component level)
- Dev testing (in completeness for whole Initiator package)
- MPIO testing for the High availability (Performed by Dev QA)
- Systems testing and verification which is completed by a separate and independent team to make sure system functionality is intact. This includes thorough testing of the initiator and performance, system level verification of IO, Control etc.
- SCSI general command compliance SPC3 and SBC Supported by Microsoft Windows 2016, Windows 10 and Windows 2019
- Successful completion of WHQL certification test suiteOnce the functional and operational stability is verified, the WHQL certification test suite for Bus and Storport driver is run, which will result in the WHCK test results package. This will be packaged along with Driver files and debugging symbols and submitted to the Microsoft Windows WHQL partner certification portal/dashboard.
With the Pavilion Windows NVMe-oF initiator, customers can now address the following:
- Create an eco-system for Windows without having any specific hardware as the TCP/IP stack is hardware agnostic.
- Provide MMC/CLI based management capabilities to manage NVMe-oF storage devices.
- Offer MPIO support for High Availability evening in the case of one path failure
- Deliver a high-performance initiator solution for NVMe-oF which has Single Initiator performance of 9.5GB/s for reads and 11.4GB/s for writes.
With the WHQL certificate on NVMe-over-TCP initiator, customers using Pavilion are assured that their storage seamlessly integrates with Windows Infrastructure with support of globally acceptable protocols and high performance. WHQL certification is evidence of thorough, independent verification of functional and operational stability with and without MPIO.