cloudstack icon indicating copy to clipboard operation
cloudstack copied to clipboard

[VMWare] Limit IOPS in Compute/Disk Offerings

Open SadiJr opened this issue 2 years ago • 23 comments

Using the VMWare hypervisor, when trying to create IOPS-limited VMs, either using Compute or Disk offerings, the IOPS limits were not respected in the hypervisor. This behavior has been corrected, in order to be able to limit, in VMWare, the IOPS limit of a VM, as long as the option to limit IOPS via hypervisor is used. Also, I added a new method to LogUtils class to enable to log objects using Gson without exception, to improve logs information.

Types of changes

  • [ ] Breaking change (fix or feature that would cause existing functionality to change)
  • [ ] New feature (non-breaking change which adds functionality)
  • [ ] Bug fix (non-breaking change which fixes an issue)
  • [x] Enhancement (improves an existing feature and functionality)
  • [ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity

Feature/Enhancement Scale

  • [ ] Major
  • [x] Minor

Screenshots (if appropriate):

root-and-data-disks

root-and-data-disks-vmware

How Has This Been Tested?

It was tested in a local lab:

  1. I created three new offerings: one Compute Offering with IOPS limit, one disk offering with IOPS limit and one disk offering without IOPS limit;
  2. I created a new VM using this compute and disks offerings;
  3. Before, the IOPS limitation was not applied;
  4. Now, the IOPS limitations are being applied. Also, I added new unit tests.

SadiJr avatar May 12 '22 15:05 SadiJr

Found UI changes, kicking a new UI QA build @blueorangutan ui

acs-robot avatar Jun 22 '22 12:06 acs-robot

@acs-robot a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

blueorangutan avatar Jun 22 '22 12:06 blueorangutan

UI build: :heavy_check_mark: Live QA URL: http://qa.cloudstack.cloud:8080/client/pr/6386 (SL-JID-1812)

blueorangutan avatar Jun 22 '22 12:06 blueorangutan

Found UI changes, kicking a new UI QA build @blueorangutan ui

acs-robot avatar Jul 27 '22 15:07 acs-robot

@acs-robot a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

blueorangutan avatar Jul 27 '22 15:07 blueorangutan

UI build: :heavy_check_mark: Live QA URL: http://qa.cloudstack.cloud:8080/client/pr/6386 (SL-JID-2015)

blueorangutan avatar Jul 27 '22 15:07 blueorangutan

@blueorangutan help

DaanHoogland avatar Aug 01 '22 13:08 DaanHoogland

@DaanHoogland I understand these words: "help", "hello", "thanks", "package", "test" Test command usage: test [mgmt os] [hypervisor] [keepEnv] [qemuEv] Mgmt OS options: ['centos7', 'centos6', 'suse15', 'alma8', 'ubuntu18', 'ubuntu22', 'ubuntu20', 'rocky8'] Hypervisor options: ['kvm-centos6', 'kvm-centos7', 'kvm-rocky8', 'kvm-alma8', 'kvm-ubuntu18', 'kvm-ubuntu20', 'kvm-ubuntu22', 'kvm-suse15', 'vmware-55u3', 'vmware-60u2', 'vmware-65u2', 'vmware-67u3', 'vmware-70u1', 'vmware-70u2', 'vmware-70u3', 'xenserver-65sp1', 'xenserver-71', 'xenserver-74', 'xcpng74', 'xcpng76', 'xcpng80', 'xcpng81', 'xcpng82'] Note: when keepEnv is passed, you need to specify mgmt server os and hypervisor or use the matrix command. when qemuEv is passed, it will deploy KVM hyperviosr hosts with qemu-kvm-ev, else it will default to stock qemu. Package command usage: package [all(default value),kvm,xen,vmware,hyperv,ovm] - a comma separated list can be passed with package command to bundle the required hypervisor's systemVM templates. Not passing any argument will bundle all - kvm,xen and vmware templates.

Blessed contributors for kicking Trillian test jobs: ['rohityadavcloud', 'nvazquez', 'borisstoyanov', 'DaanHoogland', 'shwstppr', 'andrijapanicsb', 'Pearl1594', 'davidjumani', 'harikrishna-patnala', 'vladimirpetrov', 'sureshanaparti', 'weizhouapache', 'NuxRo']

blueorangutan avatar Aug 01 '22 13:08 blueorangutan

@blueorangutan test centos7 vmware-67u3

DaanHoogland avatar Aug 01 '22 13:08 DaanHoogland

@blueorangutan test centos7 vmware-67u3 keepEnv

DaanHoogland avatar Aug 02 '22 07:08 DaanHoogland

Found UI changes, kicking a new UI QA build @blueorangutan ui

acs-robot avatar Aug 03 '22 13:08 acs-robot

@acs-robot a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

blueorangutan avatar Aug 03 '22 13:08 blueorangutan

UI build: :heavy_check_mark: Live QA URL: http://qa.cloudstack.cloud:8080/client/pr/6386 (SL-JID-2069)

blueorangutan avatar Aug 03 '22 13:08 blueorangutan

@blueorangutan package

DaanHoogland avatar Aug 04 '22 12:08 DaanHoogland

@DaanHoogland a Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

blueorangutan avatar Aug 04 '22 12:08 blueorangutan

Packaging result: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: debian :heavy_multiplication_x: suse15. SL-JID 3906

blueorangutan avatar Aug 04 '22 13:08 blueorangutan

Packaging result: :heavy_multiplication_x: el7 :heavy_check_mark: el8 :heavy_multiplication_x: debian :heavy_multiplication_x: suse15. SL-JID 3912

blueorangutan avatar Aug 05 '22 10:08 blueorangutan

Packaging result: :heavy_multiplication_x: el7 :heavy_multiplication_x: el8 :heavy_multiplication_x: debian :heavy_check_mark: suse15. SL-JID 3916

blueorangutan avatar Aug 05 '22 11:08 blueorangutan

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 3922

blueorangutan avatar Aug 08 '22 04:08 blueorangutan

@blueorangutan test centos7 vmware-67u3

DaanHoogland avatar Aug 08 '22 09:08 DaanHoogland

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + vmware-67u3) has been kicked to run smoke tests

blueorangutan avatar Aug 08 '22 09:08 blueorangutan

Trillian test result (tid-4641) Environment: vmware-67u3 (x2), Advanced Networking with Mgmt server 7 Total time taken: 43733 seconds Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr6386-t4641-vmware-67u3.zip Smoke tests completed. 100 look OK, 1 have errors Only failed tests results shown below:

Test Result Time (s) Test File
test_08_upgrade_kubernetes_ha_cluster Failure 887.39 test_kubernetes_clusters.py

blueorangutan avatar Aug 08 '22 21:08 blueorangutan

@blueorangutan package

DaanHoogland avatar Jan 16 '23 12:01 DaanHoogland

@DaanHoogland a Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

blueorangutan avatar Jan 16 '23 12:01 blueorangutan

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: el9 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 5288

blueorangutan avatar Jan 16 '23 13:01 blueorangutan

@blueorangutan package

DaanHoogland avatar Jan 16 '23 13:01 DaanHoogland

@DaanHoogland a Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

blueorangutan avatar Jan 16 '23 13:01 blueorangutan

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@6ba0ef2). Click here to learn what that means. The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #6386   +/-   ##
=======================================
  Coverage        ?   11.77%           
  Complexity      ?     7664           
=======================================
  Files           ?     2503           
  Lines           ?   245975           
  Branches        ?    38376           
=======================================
  Hits            ?    28971           
  Misses          ?   213234           
  Partials        ?     3770           

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

codecov[bot] avatar Jan 16 '23 13:01 codecov[bot]