Skip to main content

VMware Windows disk stress

VMware Windows disk stress applies stress on the disk resources on Windows OS based VMware VM. It checks the performance of the application running on the VMware Windows VMs under disk stress conditions.

VMware Windows Disk Stress

note

HCE doesn't support injecting VMWare Windows faults on Bare metal server.

Use cases

VMware Windows disk stress

  • Determines the resilience of an application when stress is applied on the disk resources of a VMware Windows virtual machine.
  • Simulates the situation of high disk usage for processes running on the application, which degrades their performance.
  • Helps verify the application's ability to handle disk failures and its failover mechanisms.

Prerequisites

  • Kubernetes > 1.16 is required to execute this fault.

  • Execution plane should be connected to vCenter and host vCenter on port 443.

  • VMware tool should be installed on the target VM with remote execution enabled.

  • Use built-in Administrator user for the experiment. Learn how to enable the built-in Administrator user in Windows.

  • The VM should be in a healthy state before and after injecting chaos.

  • Kubernetes secret has to be created that has the Vcenter credentials in the CHAOS_NAMESPACE.

  • Ensure the installation of Diskspd, a critical dependency for this experiment. Refer to the linked documentation for installation guidance.

  • VM credentials can be passed as secrets or as a chaos engine environment variable.

apiVersion: v1
kind: Secret
metadata:
name: vcenter-secret
namespace: litmus
type: Opaque
stringData:
VCENTERSERVER: XXXXXXXXXXX
VCENTERUSER: XXXXXXXXXXXXX
VCENTERPASS: XXXXXXXXXXXXX

Mandatory tunables

Tunable Description Notes
VM_NAME Name of the target VM. For example, win-vm-1
VM_USER_NAME Username of the target VM. For example, vm-user.
VM_PASSWORD User password for the target VM. For example, 1234. Note: You can take the password from secret as well.

Optional tunables

Tunable Description Notes
MEMORY_CONSUMPTION Amount of Memory to consume in MB. Default: 1024. For more information, go to memory consumption.
BLOCK_SIZE_IN_KILOBYTES Block size for disk write in KB. Default: 128. For more information, go to block size.
WRITE_PERCENTAGE Percentage of total disk write. Default: 100. For more information, go to write percentage.
NUMBER_OF_WORKERS Number of workers involved in disk write. Default: 2. For more information, go to number of workers.
DISK_PATH Path of disk to apply stress. For example, C:\. For more information, go to disk path.
PATH_OF_DISKSPD Path of the Diskspd binary in the VM. For example, C:\Program Files\Diskspd\. For more information, go to path of Diskpd.
TOTAL_CHAOS_DURATION Duration that you specify, through which chaos is injected into the target resource (in seconds). Default: 60 s. For more information, go to duration of the chaos.
RAMP_TIME Period to wait before and after injecting chaos (in seconds). Default: 0 s. For more information, go to ramp time.
SEQUENCE Sequence of chaos execution for multiple instances. Default: parallel. Supports serial and parallel sequence. For more information, go to sequence of chaos execution.
DEFAULT_HEALTH_CHECKDetermines if you wish to run the default health check which is present inside the fault. Default: 'true'. For more information, go to default health check.

Memory consumption

The MEMORY_CONSUMPTION environment variable applies stress on the target Windows VM for a specific duration.

Use the following example to specify Memory consumption:

apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
name: engine-nginx
spec:
engineState: "active"
chaosServiceAccount: litmus-admin
experiments:
- name: vmware-windows-disk-stress
spec:
components:
env:
# Name of the VM
- name: VM_NAME
value: 'test-vm-01'
# Memory consumption in MB
- name: MEMORY_CONSUMPTION
value: '1024'

Block size

The BLOCK_SIZE_IN_KILOBYTES environment variable specifies the block size for disk write in KB.

Use the following example to specify block size:

apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
name: engine-nginx
spec:
engineState: "active"
chaosServiceAccount: litmus-admin
experiments:
- name: vmware-windows-disk-stress
spec:
components:
env:
# Name of the VM
- name: VM_NAME
value: 'test-vm-01'
# Block size for disk write in KB
- name: BLOCK_SIZE_IN_KILOBYTES
value: '128'

Write percentage

The WRITE_PERCENTAGE environment variable specifies the percentage of total disk write.

Use the following example to specify write percentage:

apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
name: engine-nginx
spec:
engineState: "active"
chaosServiceAccount: litmus-admin
experiments:
- name: vmware-windows-disk-stress
spec:
components:
env:
# Name of the VM
- name: VM_NAME
value: 'test-vm-01'
# Percentage of total disk write
- name: WRITE_PERCENTAGE
value: '100'

Number of workers

The NUMBER_OF_WORKERS environment variable specifies the number of workers involved in disk write.

Use the following example to specify the number of workers:

apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
name: engine-nginx
spec:
engineState: "active"
chaosServiceAccount: litmus-admin
experiments:
- name: vmware-windows-disk-stress
spec:
components:
env:
# Name of the VM
- name: VM_NAME
value: 'test-vm-01'
# Number of workers involved in disk write
- name: NUMBER_OF_WORKERS
value: '2'

Disk path

The DISK_PATH environment variable specifies the path of disk to apply stress.

Use the following example to specify the disk path:

apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
name: engine-nginx
spec:
engineState: "active"
chaosServiceAccount: litmus-admin
experiments:
- name: vmware-windows-disk-stress
spec:
components:
env:
# Name of the VM
- name: VM_NAME
value: 'test-vm-01'
# Path of disk to apply stress
- name: DISK_PATH
value: 'C:\\'

Path of Diskspd

The PATH_OF_DISKSPD environment variable specifies the path of the Diskspd tool in the VM.

Use the following example to specify the path of Diskspd:

apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
name: engine-nginx
spec:
engineState: "active"
chaosServiceAccount: litmus-admin
experiments:
- name: vmware-windows-disk-stress
spec:
components:
env:
# Name of the VM
- name: VM_NAME
value: 'test-vm-01'
# Path of the Diskspd tool in the VM
- name: PATH_OF_DISKSPD
value: 'C:\\Program Files\\Diskspd\\'