One of the problems of testing NSX in homelab environment is that it is really resource hungry. For example NSX Manager VM deploys with 12 GB RAM. While it is simple to edit its settings and lower memory to about 8 GB without any major impact, VMs that are deployed by NSX automatically (Controllers and Edges) cannot be edited in vSphere Client as the Edit Settings menu option is disabled. Each NSX Controller requires 4 vCPUs and 2.05 GHz CPU reservation. If you go by the book and deploy 3 of them it creates quite a resource impact.
vCPUs can be changed by editing VMs VMX file or by hacking NSX Manager OVF file from which it is deployed from on NSX Manager (located in common/em/components/vdn/controller/ovf/nsx-controller-<version>.vxlan.ovf) if you know how to get to support engineer mode or are not afraid of mounting linux partitions. The CPU reservation cannot be changed this way.
The approach I use is to disable vCenter Server protection of NSX Controller VMs. Find their MoRefIDs (for example with vCenter Managed Object Browser) and then delete respective records from vCenter Server VPX_DISABLED_METHODS table. Afer a restart of vCenter service the VMs are no longer protected and you can simply edit their settings in vSphere Client.
Disclaimer: this is unsupported and should not be done in production environments.
Edit 1/25/1018: Came up with much simpler way of re-enabling disabled method on the NSX Controller VMs. Just use MOB.
Hi Tom,
thank you for your article, but I find easier way to downsize NSX controller.
You just need to directly connect to ESXi host with legacy VIclient and downsize VM, you still can’t decrease shares but that would be enough in most cases.
The biggest issue is the CPU reservation which will get restored back with your method.
Hi Tom, I’m at the MOB, but I can’t find the MoRefIDs of the NSX Controller VMs. I want to delete the respective records from the VPX_DISABLED_METHODS table as you say.
Could you please explain how to find them?
Thanks.
Alfonso
http://kb.vmware.com/kb/1017126
Ah, I found the MoRefIDs! I followed this link:
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1017126
I still don’t know how to delete the respective records from the VPX_DISABLED_METHODS table. I’ll look into that.
I still can’t find how to do this from the Managed Object Browser… Could you tell me if it’s even possible or if you must do it via SQL?
Alfonso, I was playing with this also, I managed to find instructions to modify the Postgres DB on VCSA 6.0 here, http://nilic.github.io/2015/03/21/exploring-vcsa-embedded-postgresql-database/
If you do this, and then find the moref IDs you can make this all work, you also need to restart the vCenter Services…
Yes, directly in the database with SQL Management Studio or similar tool.
has anybody else tried powering off the controllers one at a time, and modifying the cpu and memory in the vmx file
numvcpus = “2”
memSize = “2048”
I decided to leave sched.cpu.min = “2048” unchanged
Afterward reload the .vmx file using this command:
# vim-cmd vmsvc/getallvms
# vim-cmd vmsvc/reload
Russ are you (by any chance) referencing my article ? 😛
http://blog.bertello.org/2015/01/12/nsx-for-newbies-part-4-preparing-for-virtual-networking/