VMware Networking Community
seannewbie
Contributor
Contributor
Jump to solution

100% Reservation makes it impossible to deploy NSX-Controller on my homelab

Hi all,

I'm trying deploying NSX-controller in the vCenter Server Web client but got failed repeatedly.

**ESXi 6.5.0,vCenter Server 6.5.0, NSX-Manager  6.4.6.**

The nsx manager was deployed well as I can edit the VM settings to downsize the memory and its RESERVATION, however , it's not the situation as of the NSX controller.

Everytime I deploy the controller within the vCenter Server Web Client,  it always failed with the error saying the HOST MEMORY insurfficient to meet the RESERVATION and the Controller vm was deleted by the system itself , oh, such a proactive good boy.

The reservaton is always 100% and you can edit nothing.

I did read the post here ​but it just makes the existing controller editable. In my case the controller is not installed at all due to the RESERVATION things.

Then i went through the post here but to no avail.

I'm so unlucky.

==

BTW, my laptop has 32 GiB RAM and i5-8265, I'v already assigned 12 GiB to the ESXi host that the NSX Controller will reside in.

Can someone help me out?

Thanks

1 Solution

Accepted Solutions
seannewbie
Contributor
Contributor
Jump to solution

you know what buddy,, it's a lucky day

I finally figuire this out from the DATABASE perspective.

there is a table named vpx_vm, there are two columns named CPU_RESERVATION and MEMORY_RESERVATION, just update them to 0 during your deployment process

and then connect to vCenter Server using powerCLI, and get the CONTROLLER VM to set the -NumCPU and -MemoryMB to your desired numeric, which is 2 and 2048 in my case. It WORKS as a magic!!!

I hope this can help everyone facing the same issue.

anyway, thank you for your great reply referring me to another perspective, i will go through it .

View solution in original post

2 Replies
NicolasAlauzet
Jump to solution

I don't know if this will work. But you can try it!

This is an API call to change the 100% reservation that all the edges have (maybe this will change the parameters for the controllers and help you with your lab) I wans't able to find anything like this specific for the Controller.

First, get the config:

GET https://NSX-Manager-IP-Address/api/4.0/edgePublish/tuningConfiguration

Response Body:

<tuningConfiguration>

<lockUpdatesOnEdge>false</lockUpdatesOnEdge>

<aggregatePublishing>true</aggregatePublishing>

<edgeVMHealthCheckIntervalInMin>0</edgeVMHealthCheckIntervalInMin>

<healthCheckCommandTimeoutInMs>120000</healthCheckCommandTimeoutInMs>

<maxParallelVixCallsForHealthCheck>25</maxParallelVixCallsForHealthCheck>

<publishingTimeoutInMs>1200000</publishingTimeoutInMs>

<edgeVCpuReservationPercentage>100</edgeVCpuReservationPercentage>

<edgeMemoryReservationPercentage>100</edgeMemoryReservationPercentage>

<megaHertzPerVCpu>1000</megaHertzPerVCpu>

</tuningConfiguration

Then you do a PUT, to change the configuration (Highligted in red)

PUT https://NSX-Manager-IP-Address/api/4.0/edgePublish/tuningConfiguration

Response Body:

<tuningConfiguration>

<lockUpdatesOnEdge>false</lockUpdatesOnEdge>

<aggregatePublishing>true</aggregatePublishing>

<edgeVMHealthCheckIntervalInMin>0</edgeVMHealthCheckIntervalInMin>

<healthCheckCommandTimeoutInMs>120000</healthCheckCommandTimeoutInMs>

<maxParallelVixCallsForHealthCheck>25</maxParallelVixCallsForHealthCheck>

<publishingTimeoutInMs>1200000</publishingTimeoutInMs>

<edgeVCpuReservationPercentage>0</edgeVCpuReservationPercentage>

<edgeMemoryReservationPercentage>0</edgeMemoryReservationPercentage>

<megaHertzPerVCpu>1000</megaHertzPerVCpu>

</tuningConfiguration

Once, this is changed, try doing the deploy of the controller!

If you are not familiar with api calls, this may help:

Administer and Execute calls using the NSX vSphere API

-------------------------------------------------------------------
Triple VCIX (CMA-NV-DCV) | vExpert | MCSE | CCNA
Reply
0 Kudos
seannewbie
Contributor
Contributor
Jump to solution

you know what buddy,, it's a lucky day

I finally figuire this out from the DATABASE perspective.

there is a table named vpx_vm, there are two columns named CPU_RESERVATION and MEMORY_RESERVATION, just update them to 0 during your deployment process

and then connect to vCenter Server using powerCLI, and get the CONTROLLER VM to set the -NumCPU and -MemoryMB to your desired numeric, which is 2 and 2048 in my case. It WORKS as a magic!!!

I hope this can help everyone facing the same issue.

anyway, thank you for your great reply referring me to another perspective, i will go through it .