Skip to main content

Usage: Testing Disks

VC automates disk formating and run storage workloads on the target systems. We documented the rules and the mechanism we used to identify disks to run workloads on.

Disk Mount Points

On certain systems, Virtual Client may need to create mount points on each of the disks in order to have both permissions and a path to operate disk I/O work. In general, Virtual Client must create mount points when the following is true:

  • Disks exist that do not have file system partitions/volumes (i.e. uninitialized disks).
  • Disks exist with file system partitions/volumes but without any pre-existing mount points/access paths.

The remainder of this section documents where disk mount points are created on the system when required.

Mount Points on Unix Systems

The following table illustrates the mount points that will be created when required on Unix systems. When logged in as the "root" on the system, mount points will be created at the root of the file system directory structure. When logged in as a user other than "root" (including when running as "sudo"), mount points will be created in the user home directory (e.g. /home/user)

Logged In UserDisk/Device PathsMount Points/Paths
root/dev/sdc1
/dev/sdd1
/mnt_dev_sdc1
/mnt_dev_sdd1
root/dev/sdc1
/dev/sdc2
/dev/sdd1
/dev/sdd2
/mnt_dev_sdc1
/mnt_dev_sdc2
/mnt_dev_sdd1
/mnt_dev_sdd2
non-root user/dev/sdc1
/dev/sdd1
/mnt_dev_sdc1
/mnt_dev_sdd1
non-root user/dev/sdc1
/dev/sdc2
/dev/sdd1
/dev/sdd2
/home/{user}/mnt_dev_sdc1
/home/{user}/mnt_dev_sdc2
/home/{user}/mnt_dev_sdd1
/home/{user}/mnt_dev_sdd2

Mount Points on Windows Systems

Mount points are NOT typically required on Windows systems once disks are formatted and have partitions/volumes. This is because Windows associates a letter with each volume (e.g. C:, D:) and this the disk volume + file system is accessible through this path.

Virtual Client does not currently support formatting disks beyond the first 26 disks due to inherent Windows limitations. Virtual Client can operate on systems with more than 26 total partitions/volumes; however, these must be prepared before running the application

General Disk Testing Guidelines

  1. When targeting the OS disk, ONLY the OS partition for that disk will be targeted.
  2. For systems having disks with more than 1 partition, all partitions will be targeted.
  3. On Unix systems having disks with more than 1 partition, the following device paths are excluded: /, /mnt, /boot/efi.
  4. On Unix systems, device paths having the following prefixes are targeted: /dev/hd, /dev/sd, /dev/nvme, /dev/xvd.
  5. On Windows systems, disks that are offline or read-only will not be targeted.

Disk Filters

Different environments, Azure, AWS/GCP, Lab host, Lab VM, have vastly different configuration of disks. It is a challenge to have a schema that allows you to target the desired disk consistently. Virtual Client implements a set of DiskFilters to accomplish this.

Disk Filters are delimited by ampersand '&'. FilterName and FilterValues are delimited by colon, if applicable. For example, the following filter will return you the disks that are not OS Disk, and is between 3TB and 5TB in size.

OSDisk:false&SizeGreaterThan:3TB&SizeLessThan:5TB

It is important to note that filters are calculated in-order and are non-commutative. In other words, the filter will be examined from left to right, in order. For example, if you have a small os disk and a larger data disk, "OSDisk:false&SmallestSize" will return you the data disk, and "SmallestSize&OSDisk:false" will return empty.

FilterNameParameterDescription
NoneN/AReturn all the disks on system.
BiggestSizeN/AFinds all the disks with the biggest size.
SmallestSizeN/AFinds all the disks with the smallest size.
SizeGreaterThanLong : size in bytes (Support units like 5 GB)Will return disks greater or equal than defined size.
SizeLessThanLong : size in bytes (Support units like 4 TB)Will return disks less or equal than defined size.
SizeEqualToLong : size in bytes (Support units like 3 MB)Will return disks with in ±1% range of defined size.
OSDiskBool: includeDefault to true, which will return OSDisk only. Set to false to remove OS disk.
DiskPathstring: Disk paths delimited by commaReturn the disk which matches the provided disk path.

Default Filter

Default filter means getting the biggest disks.

BiggestSize

Disk Filter Examples

Here we give some example filters for disk testing scenarios.

  1. Test all the biggest disks except your OS disk. The OSDisk:false would be redundant if it's smaller than the disks you want to test.
BiggestSize&OSDisk:false
  1. Testing the OS disk
OSDisk
  1. Testing the smallest non-OS disk.
Smallest&OSDisk:false
  1. Test specific disks on your machine with size. This filter would return all the non-OS disk volumes with size of 4TB ±1%. If you want to test a specific disk with a unique size like 4TB, you can do filters that targets that disk.
SizeEqualTo:4TB&OSDisk:false
  1. Test a Disk which has a specific path. This filter will select the disk, which contains exact match of any specified disk path, in either Disk or Volume. For example, if D:/, E:/ are volumes on same disk and D:/ is provided, the entire disk will be selected.
DiskPath:C:/,D:/
DiskPath:/dev/sda,/dev/sdb