Hi Andrija,
Thanks for the update, I kind of feared that this still wasn't possible in a clean way. As evidenced by the results, setting the details via the commands I posted *did* have a certain effect, it just didn't work correctly for the root disk controller. I know that changing the controller can make Windows unbootable, but for us, it was the opposite: Having the controller set to the default lsilogic (not SAS) would result in unbootable Windows VMs, because the LSI Logic Parallel SCSI drivers were removed in Windows Server 2012. Without injecting them into the Template, new VMs deployed with this controller won't boot. Since we had a hard time preparing such a template, our solution was to modify the controller instead. That's why I'm asking how to change this permantenly, so we won't have the issue with Windows VMs any more. The same applies to the NIC. The Windows E1000 driver is unreliable with VMware's emulation, so we'd like to switch to VMXNET3 for all Windows VMs. Setting the nicAdapter detail worked as expected, at least. Any suggestions? Regards, Gregor ________________________________ From: Andrija Panic <andrija.pa...@gmail.com> Sent: 17 May 2019 08:30:22 To: users Subject: Re: Changing the NIC and disk controller type permanently Hi Gregor, the code around managing VM details for existing VMs (CONTROLLER specifically) could be a bit better - but in short - there is NO way to change existing controller type from the current ones (for VMware specifically) using CloudStack (btw you "can" make the change in the GUI, while VM is stopped - there is a "Settings" tab there.) You "can" change these details on the VM level (existing VMs) via API/GUI, this changes the records in the "user_vm_details" table - but simply these new values are NOT read/applied during starting an existing VM - actually, even when you change that in GUI (or DB) and start a VM - these values will be reverted back. I just did more tests - and the way to change it would be to stop VM, go to vCenter, change (all 4 controllers) to " LSI Logic SAS" (or any other you want) - then go back to CloudStack and edit VM details (Settings tab, while VM is stopped) to "lsisas1068" - simply to sync ACS to reality (to vCenter). Make sure to do proper testing, since changing root controller driver in Windows can sometimes cause it to fail boot. Best, Andrija On Thu, 16 May 2019 at 21:44, Riepl, Gregor (SWISS TXT) < gregor.ri...@swisstxt.ch> wrote: > > > $ cloudstack addResourceDetail "details[0].key=rootDiskController" > > "details[0].value=lsisas1068" "resourcetype=UserVm" "resourceid=$id" > > Note: lsisas1068 comes from > > https://github.com/apache/cloudstack/blob/4.11.2.0/vmware-base/src/com/cloud/hypervisor/vmware/mo/ScsiDiskControllerType.java > > We had set this to lsilogicsas previously (on CS 4.5), which causes the > following exception on start on CS 4.11.2.0: > > com.cloud.utils.exception.CloudRuntimeException: Invalid root disk > controller detected : none > at > com.cloud.hypervisor.vmware.resource.VmwareResource.execute(VmwareResou > rce.java:1690) > at > com.cloud.hypervisor.vmware.resource.VmwareResource.executeRequest(Vmwa > reResource.java:496) > at > com.cloud.agent.manager.DirectAgentAttache$Task.runInContext(DirectAgen > tAttache.java:315) > at > org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(Mana > gedContextRunnable.java:49) > > ... > -- Andrija Panić