<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"><meta name="Generator" content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang="EN-US" link="blue" vlink="purple"><div class="WordSection1"><p class="MsoNormal">Hi Folks,</p><p class="MsoNormal"> </p><p class="MsoNormal">Today in openstack, “rebuild” instance tears down a running instance & sets up a fresh instance in its place on the same host. “resize” instance migrates the underlying instance disk to another physical host and spawns the instance there. However both these options require that the origin host that was running the instance to be up for the operations to work. If the host is failed (could be irrecoverable if the root FS is corrupted), we cannot recover the instance. All operations on that instance would fail.</p>
<p class="MsoNormal"> </p><p class="MsoNormal">We want to introduce a new “rebuild instance from failed host” operation whereby we could rebuild the instance on another host with the same properties (instance-id, name, network info, metadata, volume attachments) and mark the old instance on failed host for cleanup. Whenever the failed host comes up, it will clear cache for the old instance. This operation is essentially a modified form of today’s “rebuild” instance, in terms of allowing to rebuild the instance even if the underlying host has failed. </p>
<p class="MsoNormal"> </p><p class="MsoNormal">Essentially the “rebuild instance from failed host” will do the following steps:<br># See if it can terminate running instance on existing host. If not create a migration record</p>
<p class="MsoNormal"># Change “host” for instance to a new host (picked up by scheduler) & spawn the instance on that host (with volume attachments, networks connected as it was with the original instance)</p><p class="MsoNormal">
# Optionally during this procedure allow instance flavor to be changed + possibility to give a different “image reference” for it to bootup (could possibly be used to upgrade OS image of the instance during this procedure).</p>
<p class="MsoNormal"># Whenever the failed host comes up, it will read through migration records (as part of init_host), clear up its cache & mark the migration complete.</p><p class="MsoNormal"> </p><p class="MsoNormal">
Note that this procedure could also be used for Upgrading image versions + changing instance flavors even when the origin host is alive, but that is not the primary intended use case.</p><p class="MsoNormal"> </p><p class="MsoNormal">
Question is, is this a reasonable proposal to go forward? If not, are there any other alternative procedures available to meet the requirement?</p><p class="MsoNormal"> </p><p class="MsoNormal">If this is a reasonable proposal to go forward, I will submit a blueprint & follow-up with implementation.</p>
<p class="MsoNormal"> </p><p class="MsoNormal">Thanks.</p><p class="MsoNormal"> </p><p class="MsoNormal">--Shyam</p></div></body></html>