Hide Forgot
Description of problem: When a guest created with more than 16GB memory or try to extend VM memory more than 16GB, VM is failed to start with following error: "Cannot run VM. Memory size exceeds supported limit for given cluster version." Version-Release number of selected component (if applicable): rhevm-3.4.1-0.31.el6ev.noarch How reproducible: always Steps to Reproduce: 1. Create new VM or edit existing VM Memory Size to "32768 MB" from RHEVM GUI. 2. Ensure that the installed VM OS is 64-bit so that it support more than 16 GB memory. 3. Now, Start the VM. Actual results: VM failed to start with following error, "Cannot run VM. Memory size exceeds supported limit for given cluster version." Expected results: VM should start without any error. Additional info: In RHEVM GUI portal, if we select Operating System to "Red hat Enterprise Linux 6.x x64" in guest general properties, it allows VM to start with 32 GB memory.
the OS "Ubuntu Precise Pangolin LTS" derives from other which is defined to be 32bit, in that case, engine has limit for 20gb: $ engine-config --get VM32BitMaxMemorySizeInMB VM32BitMaxMemorySizeInMB: 20480 version: general for 64bit, the value change according to cluster version: $ engine-config --get VM64BitMaxMemorySizeInMB VM64BitMaxMemorySizeInMB: 524288 version: 3.0 VM64BitMaxMemorySizeInMB: 2097152 version: 3.1 VM64BitMaxMemorySizeInMB: 2097152 version: 3.2 VM64BitMaxMemorySizeInMB: 2097152 version: 3.3 VM64BitMaxMemorySizeInMB: 4096000 version: 3.4 VM64BitMaxMemorySizeInMB: 4096000 version: 3.5 not sure if Ubuntu should be 32 or 64bit? also, there is a bug in the code that will prevent changing the config value for VM32BitMaxMemorySizeInMB to be used, using the engine-config. for now, you can manually set a different value for the specific cluster version in the db, or add osinfo file to change the specific ubuntu version you are using to 64 bit (i think the osinfo approach is sager, as changing the config will apply to ALL 32bit os)
If given OS doesn't have the x64 suffix it is taken to be 32bit and appropriate memory limits apply. If your selected system doesn't have 64 bit counterpart, please select any other 64 bit linux system, e.g. RHEL 6.x x64 if you want to run linux VMs with large memory. In future we should add support for x64 versions of more linux systems.
could this stuff get backported to 3.5.2 ? I think it's a really important and common use case!
summing what we would like to have: make "other OS" 32bit by default, this will cause all existing OSs to be 32bit including all different linux OSs reported in this bug.. so need to make sure 32bit OSs (like winXp, rhel3, freeBSD..) stay this way.
rhel3 should be no problem, it has a dedicated entry. if this is derived from "other OS" I'd encourage the devs to fix this instead. imho the default today is that you want 64 bit capabilities. wanting "32bit only" needs special care when creating a vm. I get no warning when I select "other OS/linux" that I can't use more than a certain amount of ram. you also get no warning when you specify an invalid amount of ram for this selected os. I really think this deserves a separate BZ, to block on RAM amounts which are not supported by the selected OS type. you should not generate weird engine.log errors but directly block at input (the same is true for vm creation via rest). I can not believe that in a modern product 32 bit is the default for anything like this.
(In reply to Sven Kieske from comment #13) > rhel3 should be no problem, it has a dedicated entry. > if this is derived from "other OS" I'd encourage the devs to fix this > instead. > > imho the default today is that you want 64 bit capabilities. > this is exactly what this RFE is for: make the default to be 64bit, fix the specific 32bit > wanting "32bit only" needs special care when creating a vm. > > I get no warning when I select "other OS/linux" that I can't use > more than a certain amount of ram. > > you also get no warning when you specify an invalid amount of ram for this > selected os. > > I really think this deserves a separate BZ, to block on RAM amounts > which are not supported by the selected OS type. > > you should not generate weird engine.log errors but directly block at input > (the same is true for vm creation via rest). > you get error when trying to run the vm, not when entering the value, because it is cluster depended.
will this get backported to 3.5.2? I think this is a really important and much needed fix. also it seems not very intrusive to me.
on the other hand changing a default during the maintenance releases is not a good idea. We need to confirm the behavior with CloudForms and Foreman as they use "Other" in their flows quite often
(In reply to Michal Skrivanek from comment #16) > on the other hand changing a default during the maintenance releases is not > a good idea. > We need to confirm the behavior with CloudForms and Foreman as they use > "Other" in their flows quite often I understand this doesn't affect anything other than memory limitation. Am i incorrect?
I hope that's it, Roy?
Verified with ovirt-engine-3.6.0-0.0.master.20150627185750.git6f063c1.el6.noarch. [root@user ~]# engine-config --get VM64BitMaxMemorySizeInMB VM64BitMaxMemorySizeInMB: 524288 version: 3.0 VM64BitMaxMemorySizeInMB: 2097152 version: 3.1 VM64BitMaxMemorySizeInMB: 2097152 version: 3.2 VM64BitMaxMemorySizeInMB: 2097152 version: 3.3 VM64BitMaxMemorySizeInMB: 4096000 version: 3.4 VM64BitMaxMemorySizeInMB: 4096000 version: 3.5 VM64BitMaxMemorySizeInMB: 4194304 version: 3.6 [root@user ~]# grep -E 'derivedFrom' /usr/share/ovirt-engine/conf/osinfo-defaults.properties # Specify the 'derivedFrom' key and the os id to inherit all its values except id. os.other_linux.derivedFrom.value = other os.rhel_3.derivedFrom.value = other_linux os.rhel_3x64.derivedFrom.value = other_linux os.rhel_4.derivedFrom.value = rhel_3 os.rhel_4x64.derivedFrom.value = rhel_3x64 os.rhel_5.derivedFrom.value = rhel_4 os.rhel_5x64.derivedFrom.value = rhel_4x64 os.rhel_6.derivedFrom.value = rhel_5 os.rhel_6x64.derivedFrom.value = rhel_5x64 os.rhel_7x64.derivedFrom.value = rhel_6x64 os.windows_xp.derivedFrom.value = other os.windows_2003.derivedFrom.value = windows_xp os.windows_2008.derivedFrom.value = windows_2003 os.windows_2003x64.derivedFrom.value = windows_2003 os.windows_7.derivedFrom.value = windows_xp os.windows_7x64.derivedFrom.value = windows_7 os.windows_2008x64.derivedFrom.value = windows_2003x64 # os.Windows2008R2x64.derivedFrom.value = windows2008 os.windows_2008R2x64.derivedFrom.value = windows_2008x64 os.windows_8.derivedFrom.value = windows_7 os.windows_8x64.derivedFrom.value = windows_7x64 os.windows_2012x64.derivedFrom.value = windows_2008x64 os.windows_2012R2x64.derivedFrom.value = windows_2012x64 os.sles_11.derivedFrom.value = other_linux os.ubuntu_12_04.derivedFrom.value = other_linux os.ubuntu_12_10.derivedFrom.value = ubuntu_12_04 os.ubuntu_13_04.derivedFrom.value = ubuntu_12_04 os.ubuntu_13_10.derivedFrom.value = ubuntu_13_04 os.ubuntu_14_04.derivedFrom.value = ubuntu_13_10 os.debian_7.derivedFrom.value = ubuntu_12_04 os.freebsd.derivedFrom.value = other os.freebsdx64.derivedFrom.value = freebsd os.other_ppc64.derivedFrom.value = other os.other_linux_ppc64.derivedFrom.value = other_ppc64 os.rhel_6_ppc64.derivedFrom.value = other_linux_ppc64 os.sles_11_ppc64.derivedFrom.value = other_linux_ppc64 os.ubuntu_14_04_ppc64.derivedFrom.value = other_linux_ppc64 os.rhel_7_ppc64.derivedFrom.value = rhel_6_ppc64 [root@slitmano32 ~]# grep -E 'bus' /usr/share/ovirt-engine/conf/osinfo-defaults.properties # CPU architecture (*not* the bus width 64/32 bit). Currently only x86_64 is supported os.other.bus.value = 64 os.rhel_3.bus.value = 32 os.windows_xp.bus.value = 32 os.windows_2003x64.bus.value = 64 os.windows_7x64.bus.value = 64 os.freebsd.bus.value = 32 os.freebsdx64.bus.value = 64 Tried to start a vm with > 4TB (4194304MB). result: Cannot run VM. Memory size exceeds supported limit for given cluster version. as expected Tried to start a vm with ~= 4TB (4000000MB). result: Cannot run VM. There is no host that satisfies current scheduling constraints. See below for details: The host monique-vds05.tlv.redhat.com did not satisfy internal filter Memory because has availabe 7252 MB memory. Insufficient free memory to run the VM. as expected due to my host's ability.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHEA-2016-0376.html