Home > Storage > PowerVault > Guides > Dell PowerVault ME5 Series: Microsoft SQL Server Best Practices > Validating the storage design
After the I/O requirements have been defined, it is easy to determine whether the hardware can provide the desired performance by running some simple tests. Diskspd is a free Microsoft utility that can simulate I/O patterns generated by SQL Server. There are several other utilities available as well. When selecting a utility to simulate I/O, verify that it meets the following requirements:
The first thing to test on a new configuration is the path between the server and the array. Running a large block sequential read test using small files should saturate the path between the server and the array. This test verifies that all paths are fully functional and can be used for I/O traffic. Run this test on a dedicated server and array; a live system could cause significant performance issues.
To validate the I/O path, run a large block sequential read test using the following guidelines:
If the displayed throughput matches the expected throughput for the number of HBA ports in the server, the paths between the server and PowerVault ME5 array are set up correctly.
After the I/O path has been validated, the next step is to test the drives. For best results when testing drives on a PowerVault ME5 array, use the following guidelines when configuring the test:
The contents of the test file can be verified by viewing the test file with a hex editor after different stages of a test. For example, create a small test file and view it after the initial creation, as well as after the test has run for a few seconds. If the file is filled with zeros, check the configuration settings for the utility or select another utility. Diskspd and IOMeter initially create test files filled with zeros, and then write random characters when performing write tests. To properly initialize a Diskspd or IOMeter test file, run a sequential write test until the entire file has been overwritten with non-zero data. Unfortunately, SQLIO writes zeros during write tests and therefore is not recommended for drive validation.
The purpose of this drive testing is to validate that the storage design will provide the required throughput and IOPS with acceptable latency. It is important that the test does not exceed the designed capacity of the array. For example, an array designed for a workload of 5,000 IOPS is likely to perform poorly with a workload of 10,000 IOPS. If a test is generating a workload higher than the designed capacity, adjust the workload being generated by reducing the number of threads or outstanding I/Os. The results of the Live Optics analysis provide an I/O target to simulate using these tests. To estimate the performance capabilities of the array, run I/O tests with a range of I/O sizes commonly seen with SQL Server. When testing random I/O, test with an I/O size of 8KB and 64KB. When testing sequential I/O, start with I/O sizes of 8KB and 64KB. Because processes such as read-ahead scans and backups can issue much larger sequential I/O, it is also a good idea to test block sizes up to 1024KB.