This change enables setting limits on total IOPS, read bandwidth, and write bandwidth for each `VmStorageVolume`. These limits can be specified in `Nexus::assemble`: ``` Prog::Vm::Nexus.assemble( ... storage_volumes: [{ size_gib: 40, encrypted: true, max_read_mbytes_per_sec: 200, max_write_mbytes_per_sec: 150, max_ios_per_sec: 25600 }], ...) ``` The implementation uses SPDK's `bdev_set_qos_limit` RPC call during volume setup on the Rhizome side. This feature prepares for future support of burstable instances with limited IO capacity and allows proportional IO allocation based on VM size. These additional allocation strategies will be addressed in upcoming PRs.
7.9 KiB
7.9 KiB