You need storage performance monitoring tools to ensure that storage services do their job. Storage monitoring keeps track of resource usage, and storage reporting provides information on virtual machine (VM) configurations. It's important to run storage performance tests to determine the best VM configuration and to gather disk drive statistics.
Many virtualization administrators swear by one storage monitoring tool for accurate storage performance metrics:
Iometer is the most accepted tool, but it hasn't been updated in quite a while. That's why I also recommend the PassMark BurnIn Test tool for VM storage performance reporting. I like the BurnIn Test for larger VMs that use 64-bit operating systems. It collects additional information on memory, CPU and network resources. Using more than one storage monitoring tool can help you collect the most complete storage performance metrics.
It's also important to remember that all storage is not created equal. In addition to different drive types, controller configuration options such as the level of redundant array of independent disks (RAID) and cache amount greatly influence the performance of a disk storage system for virtualization. As far as drives go, the options include serial-attached SCSI, Serial Advanced Technology Attachment and nonrotational storage, or solid-state drives (SSDs).
Monitoring storage performance: An Iometer walkthrough
Regardless of the storage type, you still need an accurate representation of storage performance. Iometer reports the single most important drive statistic: I/O operations per second, or IOPS. IOPS is a finite number that comes from a single drive's metrics. The number is generally multiplied by the number of drives available, minus RAID overhead.
The beauty of Iometer is that the storage monitoring tool works with any hypervisor that supports Windows, Linux or NetWare VMs.
With this free Iometer download, installing Iometer is relatively simple. Once it's installed, the initial screen requires some configuration before you can run storage performance testing for one VM. You should review each tab -- Disk Targets, Network Targets, Access Specifications, Results Display and Test Setup -- before testing storage performance reporting. And run tests only on storage processors that can take additional I/O without affecting other critical workloads.
Figure 1 shows how Iometer selects a disk-sector range. The default value (0 sectors) allocates the entire disk to the tool. For a single hard drive configuration, Iometer's maximum test area is 1,024 sectors, and the tool can easily map these sectors. But on RAID arrays or virtualized storage, that value is abstracted because those 1,024 sectors are usually spread among numerous different hard drives. To ensure consistent results, use the same configuration for each test.
On the Access Specifications tab, you can select a read pattern. This information includes the transfer request size, which aligns to disk allocation units both on the guest OS and within the storage array configuration for the VM's logical unit number, or LUN. Iometer also lets you create custom read-and-write operations for specific disk I/O behavior patterns.
Figure 2 shows two worker threads: a standard thread from Iometer and a write-heavy one that's user-created.
Configure the Test Setup tab before you test the storage reporting. This tab allows you to specify a time limit for the cycle and tweak the configuration. Figure 3 shows Test Setup with a name for the test and run-time duration.
The green flag at the top of Iometer will start the storage monitoring sequence, and the Results Display tab will report the results in real time. Once the test is under way, Iometer displays the IOPS in this tab (see Figure 4) or in the fan-favorite tachometer display.
Note that Iometer opens a .CSV file with the test results, where you can archive and compare metrics across testing iterations. If you want to test storage performance reporting with the same configuration on another VM, you can save the report as a .ICF file.
Storage reporting with the PassMark BurnIn Test
Iometer is popular for reporting IOPS, but the PassMark BurnIn Test is useful for reporting CPU, memory and network performance data.
BurnIn Test reports storage performance metrics in terms of test cycles instead of IOPS (see Figure 5). Some admins prefer this storage reporting method, because many real-world workloads are not as structured and pristine as what you can configure with Iometer. Plus, if a configuration is slow with one tool and not the other, it helps to use both to determine the cause of the behavior.
It's possible to perform multiple types of tests with BurnIn Test. You can run disk test cycles simultaneously, with network resources in one cycle and CPU resources in another, for instance. Figure 6 shows a sample test cycle.
Also note: If you use VMware virtualization, I'd suggest seeking VMware's approval for any performance reports you want to share publicly. For most products, the VMware End User License Agreement says that the company requires notice and approval of any data made public.
Once you compare data, storage reporting can answer questions such as, "What impact will RAID 6 have on my storage area network compared to RAID 5?" If you run test patterns with both storage reporting tools, you get a clear reading on possible VM configurations.
About the author
Rick Vanover (firstname.lastname@example.org), vExpert, VCP, MCITP, MCTS, MCSA, is a virtualization expert in Columbus, Ohio. He is an IT veteran specializing in virtualization, server hardware, operating system support and technology management. Follow Rick on Twitter @RickVanover and click here for Rick's blogger disclosure.
This was first published in January 2011