<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>Hi,</div>
<div>In the Icehouse cycle it was decided to deprecate the VMware ESX driver. The motivation for the decision was:</div>
<ul>
<li>The driver is not validated by Minesweeper</li><li>It is not clear if there are actually any users of the driver</li></ul>
<div>Prior to jumping into the proposal we should take into account that the current ESX driver does not work with the following branches:</div>
<ul>
<li>Master (Juno)</li><li>Icehouse</li><li>Havana</li></ul>
<div>The above are due to VC features that were added over the course of these cycles.</div>
<div><br>
</div>
<div>On the VC side the ESX can be added to a cluster and the running VM’s will continue to run. The problem is how that are tracked and maintained in the Nova DB. </div>
<div><br>
</div>
<div><b>Option 1</b>: Moving the ESX(s) into a nova managed cluster. This would require the nova DB entry for the instance running on the ESX to be updated to be running on the VC host. If the VC host restarts at point during the above then all of the running
instances may be deleted (this is due to the fact that _destroy_evacuated_instances is invoked when a nova compute is started <a href="https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L673">https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L673</a>).
This would be disastrous for a running deployment.</div>
<div><br>
</div>
<div>If we do decide to go for the above option we can perform a cold migration of the instances from the ESX hosts to the VC hosts. The fact that the same instance will be running on the ESX would require us to have a ‘noop’ for the migration. This can be
done by configuration variables but that will be messy. This option would require code changes.</div>
<div><br>
</div>
<div><b>Option 2</b>: Provide the administrator with tools that will enable a migration of the running VM’s.</div>
<ol>
<li>A script that will import OpenStack VM’s into the database – the script will detect VM’s running on a VC and import them to the database. </li><li>A scrip that will delete VM’s running on a specific host</li></ol>
<div>The admin will use these as follows:</div>
<ol>
<li>Invoke the deletion script for the ESX</li><li>Add the ESX to a VC</li><li>Invoke the script for importing the OpenStack VM’s into the database</li><li>Start the nova compute with the VC driver</li><li>Terminate all Nova computes with the ESX driver</li></ol>
<div>This option requires the addition of the scripts. The advantage is that it does not touch any of the running code and is done out of band. A variant of option 2 would be to have a script that updates the host for the ESX VM’s to the VC host.</div>
<div><br>
</div>
<div>Due to the fact that the code is not being run at the moment I am in favor of the external scripts as it will be less disruptive and not be on a critical path. Any thoughts or comments?</div>
<div><br>
</div>
<div>Thanks</div>
<div>Gary</div>
</body>
</html>