<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Menlo-Regular;
        panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","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.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Vishvananda Ishaya [mailto:vishvananda@gmail.com]
<br>
<b>Sent:</b> Wednesday, February 11, 2015 5:07 PM<br>
<b>To:</b> OpenStack Development Mailing List (not for usage questions)<br>
<b>Subject:</b> Re: [openstack-dev] [cinder] Fixing stuck volumes - part II<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Feb 11, 2015, at 3:45 PM, D'Angelo, Scott <<a href="mailto:scott.dangelo@hp.com">scott.dangelo@hp.com</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">At the cinder mid-cycle it was decided that the best way to fix volumes stuck in ‘attaching’ or ‘detaching’ was NOT to fix the broken reset-state command. The doc string
 and help message for reset-state have been modified to warn the user that the tool only affects Cinder DB and can cause problems. But, ultimately, a separate command to ‘force-detach’ would be better. I’ve abandoned the original BP/spec for reset-state involving
 the driver.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">I have looked at the existing function ‘force-detach’ in Cinder and it seems to work…except that Nova must be involved. Nova uses the BlockDeviceMapping table to keep track
 of attached volumes and, if Nova is not involved, a force-detach’ed volume will not be capable of being re-attached.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">So, my plan is to submit a blueprint + spec for Novaclient to add a ‘force-detach’ command. This is technically fairly simple and only involves stripping away the checks
 for proper state in Nova, and calling Cinder force-detach. I don’t plan on asking for an exception to feature freeze, unless there is optimism from the community that this could possible get in for L.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">The existing Cinder force-detach calls terminate_connection() and detach_volume().  I assume detach_volume() is covered by the “Volume Detach” minimum feature? I see many
 drivers have terminate_connection(), but not all. I believe this will not be a minimum feature, but others may disagree.<o:p></o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">If you are going to add a force-detach command to nova, I think it would be good to make it detach even if the cinder request fails. Currently if you try to detach a volume (or terminate an instance with an attached volume), if cinder is
 down or the volume node where the volume resides is down, nova refuses to continue, which is pretty bad user experience.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Vish<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><br>
<span style="color:#1F497D">The only problem with that is, what happens when cinder comes back up? You have an user/admin who think that the volume should be available, but cinder DB still lists as attaching | detaching and the backend may still be exporting
 the volume to the Nova compute host.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">We could expose ‘force-detach’ through the cinderclient to fix this, but the admin/user might think that this is the first place to start, and leave Nova out, which results in a volume that cannot be re-attached.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I think that you are right about user experience, but I’m cautious about other problems that might result.<o:p></o:p></span></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">thanks,<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">scottda<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""><a href="mailto:scott.dangelo@hp.com"><span style="color:purple">scott.dangelo@hp.com</span></a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> <o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Menlo-Regular","serif"">__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe:<span class="apple-converted-space"> </span><a href="mailto:OpenStack-dev-request@lists.openstack.org"><span style="color:purple">OpenStack-dev-request@lists.openstack.org</span></a>?subject:unsubscribe<br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"><span style="color:purple">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</span></a><o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>